網際網路‎ > ‎

網路監控與iptables


iptraf,監控軟體,好處是文字介面下的類圖形介面

張貼者:2012年10月26日 上午2:04Wei-Chang Lin

特點就是有著親切(?!)的圖型(?!)介面,耗資源很少,蠻簡單好用的工具

1.yum install iptraf安裝
2.直接輸入iptraf即可使用,參數man一下

tcpdump,望文生義...

張貼者:2012年10月26日 上午1:50Wei-Chang Lin

就是一個抓封包的超強軟體啦....

1.一樣用yum install tcpdump安裝
2.簡單的用法就是
tcpdump -nn -i interface port xx net xxx.xxx.xxx/xx或host xxx.xxx.xxx.xxx

例一:
tcpdump -nn -i eth1 port 21 net 192.168.0/24

監看整個192.168.0網段的21 port出入

例二:
tcpdump -nn -i eth1 host 192.168.0.1

監看192.168.0.1這台工作站的所有封包出入

例三:
真的要錄下封包要加上-w 檔名
tcpdump -nn -i eth1 host 192.168.0.1 -w 123.log

使用iptables封鎖特定網站

張貼者:2012年10月26日 上午1:39Wei-Chang Lin

本方式適合用於NAT環境

文章來源
如果公司的防火牆是UNIX-LIKE系統的話:

iptables -t nat -A PREROUTING -p tcp -d apps.facebook.com -m multiport --port 80,443 -j DNAT --to 69.63.176.140

然後員工要玩facebook的game時就會像鬼擋牆的一直redirect到facebook的登入首頁,

而員工們只會懷疑是facebook壞了,不會覺得像是MIS動手腳…

ntop(網路流量監測軟體)安裝

張貼者:2012年10月26日 上午1:38Wei-Chang Lin   [ 已更新 2012年10月26日 上午2:32 ]

ntop 網路流量監測

參考網站

安裝方法:

1.yum install ntop

2.修改一下/etc/ntop.conf檔案,將--disable-schedyield 註解掉,server的ip改成這台機器的位置,不然用網路介面連上時會找不到喔~

3.輸入ntop -A         此時會提示輸入管理員密碼,要打對囉.

4.service ntop start

5.使用網路介面登入,如果ntop.conf沒有改,那應該就是http://localhost:3000

6.沒有意外,打完收工

初次設定iptables

張貼者:2012年8月16日 上午1:13Wei-Chang Lin   [ 已更新 2012年10月26日 上午1:38 ]

以下可以直接寫入rc.local,開機時自動執行
如果是Debian系統的請寫到 /etc/rcS.d/xxxx.sh 裡面囉。

#touch這一行可與/var/run的pid結合,用來判斷系統的服務執行狀況
touch /var/lock/subsys/local  

/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z

/sbin/iptables -P   INPUT DROP
/sbin/iptables -P  OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT

#ACCEPT-lo
/sbin/iptables -A INPUT -i lo -p all -j ACCEPT
#ACCEPT-連進來的dns服務,不想只用真實ip來記位置就開吧
/sbin/iptables -A INPUT -p udp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#DROP-eth0-ping
/sbin/iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j DROP

#允許哪一個ip在哪一個網卡過來的可以通過,不設定又忘記開服務port,用遠端的人就斷線啦~
/sbin/iptables -A INPUT -i eth0 -s XXX.XXX.XXX.XXX  -p all -j ACCEPT    

#ssh
/sbin/iptables -A INPUT  -p tcp --dport 22 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

#http
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT    

#vsftp,看自己開什麼port,如果是學鳥哥那邊的就是照抄
/sbin/iptables -A INPUT -p TCP --dport 21 -j ACCEPT
/sbin/iptables -A INPUT -p TCP --dport 65400:65410 -j ACCEPT
附帶一提,有時會用到一大個區段,加入方法例如 12.104.192.0/255.255.240.0即可

底下是加入nat功能,以內部四個網段為例:

/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp

/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat

#意思就是在路由判斷之前的都Accpet
/sbin/iptables -t nat -P  PREROUTING ACCEPT

#從內部位置出去的,一般都設定為寬鬆的全部通過
/sbin/iptables -t nat -P      OUTPUT ACCEPT

#意思就是在路由判斷之後的都Accpet
/sbin/iptables -t nat -P POSTROUTING ACCEPT

echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.101.0/24 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.102.0/24 -j MASQUERADE

題內話:如果想要將router的功能順便寫進去,記得順便寫下底下的指令

/sbin/route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.101.254
/sbin/route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.101.254
/sbin/route add -net 192.168.102.0 netmask 255.255.255.0 gw 192.168.101.254
--------

iptables設定說明

1.觀看現有的設定:

iptables -L      (觀看時以服務的名稱方式顯示)
     
例:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp -- anywhere             anywhere            tcp dpt:ftp


iptables -L -n   (觀看時以ip和port的方式顯示)

例:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp -- 0.0.0.0/0            0.0.0.0/0           tcp dpt:21

2.重要基本概念!
(1)放在iptables裡面的IP位址可以是單 一一個(例如:192.168.0.250/32或以另一種192.168.0.250/255.255.255.0表示皆可。),也可以是一整個區段 (例如上面提到的:12.104.192.0/255.255.240.0)。
(2)基本上iptables可以接受一些例如--dport www之類的表示法,甚至可以接受www.xxx.ooo這種網址,不過不建議,乖乖用數字比較安心啦~
   
3. 參數說明(詳細來源請參看鳥哥的網站 http://linux.vbird.org/linux_server/0250simple_firewall.php、以及這邊 http://163.26.161.130/~kv/iptables.htm、個人比較過後覺得Netman大神的這篇架設NAThttp://www.study-area.org/linux/servers/linux_nat.htm最清楚)

* 建立一個新的(自定)鏈 ( -N )。
    * 刪除一個空的(自定)鏈 ( -X )。
    * 改變一個內建鏈的原則 ( -P )。
    * 列出一個鏈中的規則 ( -L )。
    * 清除一個(內建)鏈中的所有規則 ( -F )。
    * 歸零( zero ) 一個鏈中所有規則的封包字節(byte) 記數器( -Z )。
    * 在一個鏈的最後面新增( append ) 一條規則 ( -A )。
    * 在鏈內某個位置插入( insert ) 一條新規則( -I )。
    * 在鏈內某個位置替換( replace ) 一條規則 ( -R )。
    * 在鏈內某個位置刪除( delete ) 一條規則 ( -D )。
    * 刪除(delete) 鏈內第一條符合的規則 (-D)。

> iptables [-AI 鏈] [-io 網路介面] [-p 協定] [-s 來源IP/網域] [-d 目標IP/網域] -j [ACCEPT|DROP]

-A  :新增一條規則,該規則增加在最後面,例如原本已經有四條規則,
    使用 -A 就可以加上第五條規則!
-I  :插入一條規則,如果沒有設定規則順序,預設是插入變成第一條規則,
    例如原本有四條規則,使用 -I 則該規則變成第一條,而原本四條變成 2~5
 INPUT :規則設定為 filter table 的 INPUT 鏈
 OUTPUT :規則設定為 filter table 的 OUTPUT 鏈
 FORWARD:規則設定為 filter table 的 FORWARD 鏈

-i    :設定『封包進入』的網路卡介面,封包所進入的那個網路介面,例如 eth0, lo 等介面。需與 INPUT 鏈配合;
-o    :設定『封包流出』的網路卡介面,封包所傳出的那個網路介面,需與 OUTPUT 鏈配合;
 interface :網路卡介面,例如 ppp0, eth0, eth1....

-p  :請注意,這是小寫呦!封包的協定啦!
 tcp :封包為 TCP 協定的封包;
 upd :封包為 UDP 協定的封包;
 icmp:封包為 ICMP 協定、
 all :表示為所有的封包!

-s     :來源封包的 IP 或者是 Network ( 網域 );若規範為『不許』時,則加上 ! 即可,例如:
   -s ! 192.168.100.0/24 表示不許 192.168.100.0/24 之封包來源;

--sport:來源封包的 port 號碼,也可以使用 port1:port2 如 21:23
     同時通過 21,22,23 的意思
-d     :目標主機的 IP 或者是 Network ( 網域 );與s的差別在於一個是來源一個是目標
--dport:目標主機的 port 號碼;特別注意,此時-p參數要指定為對應的tcp等協定,不然就會看到像

iptables v1.4.4: unknown option --dport'
這種錯誤訊息產生

-j   :動作,可以接底下的動作;
 ACCEPT :接受該封包
 DROP  :丟棄封包
 LOG  :將該封包的資訊記錄下來 (預設記錄到 /var/log/messages 檔案)

各個規則鏈的預設政策可獨立自主的設定,不必受其它鏈的影響。

iptables [-AI 鏈] [-io 網路介面] [-p 協定] [-s 來源IP/網域] [-d 目標IP/網域] -j [ACCEPT|DROP]

1-5 of 5