介紹:
防火墻默認(rèn)有四表五鏈
四表:(表的優(yōu)先級:raw > mangle > nat > filter )
1.Raw表——兩個鏈:PREROUTING、OUTPUT
作用:決定數(shù)據(jù)包是否被狀態(tài)跟蹤機(jī)制處理 內(nèi)核模塊:iptable_raw
2.Mangle表——五個鏈:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改數(shù)據(jù)包的服務(wù)類型、TTL、并且可以配置路由實(shí)現(xiàn)QOS內(nèi)核模塊:iptable_mangle
3.Nat表——三個鏈:PREROUTING、POSTROUTING、OUTPUT
作用:用于網(wǎng)絡(luò)地址轉(zhuǎn)換(IP、端口) 內(nèi)核模塊:iptable_nat
4.filter表——三個鏈:INPUT、OUTPUT、FORWARD
作用:過濾數(shù)據(jù)包,定義拒絕或者允許 內(nèi)核模塊:iptables_filter
五鏈:(默認(rèn)的,不能刪除,但能清除里面的規(guī)則)
1.INPUT——進(jìn)來的數(shù)據(jù)包應(yīng)用此規(guī)則鏈中的策略
2.OUTPUT——外出的數(shù)據(jù)包應(yīng)用此規(guī)則鏈中的策略
3.FORWARD——轉(zhuǎn)發(fā)數(shù)據(jù)包時應(yīng)用此規(guī)則鏈中的策略
4.PREROUTING——對數(shù)據(jù)包作路由選擇前應(yīng)用此鏈中的規(guī)則
5.POSTROUTING——對數(shù)據(jù)包作路由選擇后應(yīng)用此鏈中的規(guī)則
一、開始對防火墻配置時:
iptables -X(清除所有自定義規(guī)則鏈)
iptables -F(清除所有規(guī)則)
iptables -L(列出所有[加n 以數(shù)字形式顯示IP])
二、編寫規(guī)則:
iptables -I (插入規(guī)則) 規(guī)則鏈名 優(yōu)先級
iptables -A (增加規(guī)則,默認(rèn)是) 規(guī)則鏈名
iptables -D (刪除規(guī)則) 規(guī)則鏈名 序號
iptables -N (自定義規(guī)則鏈名)
iptables -P (默認(rèn)) 規(guī)則鏈名 DROP(拒絕)或者ACCEPT(允許) PS:建議除緊急情況外,最后配置
-p (協(xié)議)
--sport(源端口)
--dport(目的端口)
-s (源地址)
-d(目的地址)
-i(入網(wǎng)卡)
-o(出網(wǎng)卡)
-m(擴(kuò)展)
1、state --state RELATED,ESTABLISHED //用狀態(tài)檢測,因回來的數(shù)據(jù)沒能轉(zhuǎn)發(fā)。 2、limit --limit 5/m --limit-burst 10//10個通行證,每分鐘增加5個 3、connlimit --connlimit-above 1 //每個IP地址只允許1個連接
-j (行為)
ACCEPT(接受)
DROP(停止)
DNAT(目的地址轉(zhuǎn)發(fā))一般在PREROUTING鏈中
SNAT(源地址轉(zhuǎn)發(fā)) 一般在POSTROUTING鏈中
規(guī)則鏈名(加入這條規(guī)則鏈)
MASQUSERADE(地址偽裝)
--to-destination(目標(biāo)地址)
-t nat (選擇nat表,一般地址映射用到)
--line-number (顯示序號)
例子:
1)linux系統(tǒng)作為服務(wù)器和防火墻時:
1.允許外界能訪問我的80端口httpd服務(wù):
iptables -A INPUT -p tcp --dport 80 -j ACCEPT tcp協(xié)議目的端口80在入站規(guī)則通過
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT tcp協(xié)議源端口80在出站規(guī)則通過
也可以自定義規(guī)則鏈:
iptables -N httpd-in //自定義規(guī)則名為httpd-in
iptalbes -A INPUT -j httpd-in //把httpd-in規(guī)則鏈加入到INPUT鏈
iptables -A httpd-in -p tcp --dport 80 -j ACCEPT tcp協(xié)議目的端口80在httpd-in鏈通過
iptables -N httpd-out //自定義規(guī)則名為httpd-out
iptalbes -A OUTPUT -j httpd-out //把httpd-out規(guī)則鏈加入到OUTPUT鏈
iptables -A httpd-out -p tcp --sport 80 -j ACCEPT tcp協(xié)議源端口80在httpd-out鏈通過 自定義規(guī)則鏈一定要加入到默認(rèn)規(guī)則鏈中,可以使得iptables默認(rèn)規(guī)則鏈不至于混亂無序
2.允許ping:(只要前面兩條就可ping通)
iptables -A INPUT -i eth0 -p icmp -j ACCEPT eth0網(wǎng)卡入站時的icmp包允許通過
iptables -A OUTPUT -o eth0 -p icmp -j ACCEPT eth0網(wǎng)卡出站時的icmp包允許通過
iptables -A OUTPUT -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT 從eth0網(wǎng)卡出站時的狀態(tài)檢測允許
2)linux系統(tǒng)只作為防火墻時:
echo 1 > /proc/sys/net/ipv4/ip_forward /啟動路由功能,允許轉(zhuǎn)發(fā)
1.允許80端口httpd服務(wù)轉(zhuǎn)發(fā):
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT //允許tcp目的端口80轉(zhuǎn)發(fā)
2.允許ping轉(zhuǎn)發(fā):
iptables -A FORWARD -p icmp -j ACCEPT //允許icmp包轉(zhuǎn)發(fā)
3.目的地址映射:
iptables –t nat –A PREROUTING –d 192.168.99.101 –j DNAT --to 192.168.100.102 //路由前,目的IP:192.168.99.101 轉(zhuǎn)換成IP:192.168.100.102)
4.內(nèi)網(wǎng)源地址隱藏:
iptables -t nat -A POSTROUTING -j MASQUERADE //路由后,內(nèi)網(wǎng)地址隱藏,源地址變成防火墻外網(wǎng)IP地址
5.訪問限時:(date顯示時間,072016182005[月日時分年]7月20號16點(diǎn)18分2005年,直接date 數(shù)字改系統(tǒng)時間進(jìn)行測試)
iptables –I FORWARD –s 192.168.100.0/24 –m time --timestart 16:10 --timestop 18:10 -j ACCEPT //對源網(wǎng)段192.168.100.0/24,開始時間16:10-18:10 允許通過
iptables –I FORWARD –d 192.168.100.0/24 –m time --timestart 16:10 --timestop 18:10 -j ACCEPT //對目的網(wǎng)段192.168.100.0/24,開始時間16:10-18:10 允許通過
6.訪問限速:
iptables -I FORWARD -p tcp --dport 21 -m connlimit --connlimit-above 1 -j DROP //對21端口轉(zhuǎn)發(fā),每個IP地址超過1個連接就拒絕
3)使用日志監(jiān)控程序記錄:
/usr/local/ulogd/sbin/ulogd & //啟動這個程序
iptables -A FORWARD -p icmp -j ACCEPT //允許icmp轉(zhuǎn)發(fā)鏈
iptables -A FORWARD -p icmp -j ULOG //對icmp轉(zhuǎn)發(fā)鏈進(jìn)行監(jiān)控
以上是我個人學(xué)習(xí)積累到的知識,如有需要更正或者增加的地方,歡迎來與我交流學(xué)習(xí)一番,共同進(jìn)步,謝謝觀看。
|