iptables組成:四張表+五條鏈+規(guī)則
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),平桂企業(yè)網(wǎng)站建設(shè),平桂品牌網(wǎng)站建設(shè),網(wǎng)站定制,平桂網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,平桂網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
四張表:filter表,nat表,mangle表,raw表
五條鏈:INPUT OUTPUT FORWARD PREROUTING(DNAT) POSTROUTING(SNAT)
nat表:Nat表主要用于網(wǎng)絡(luò)地址轉(zhuǎn)換。根據(jù)表中的每一條規(guī)則修改網(wǎng)絡(luò)包的IP地址。流中的包僅遍歷一遍Nat表。例如,如果一個(gè)通過某個(gè)接口的包被修飾(修改了IP地址),該流中其余的包將不再遍歷這個(gè)表。通常不建議在這個(gè)表中進(jìn)行過濾,由NAT表支持的鏈稱為PREROUTING 鏈,POSTROUTING 鏈和OUTPUT 鏈。
mangle表:這個(gè)表用于校正網(wǎng)絡(luò)包。它用來對特殊包的包頭和內(nèi)容(TTL,TOS,MARK)進(jìn)行標(biāo)記修改。Mangle表不能用于地址偽裝。支持的鏈包括PREROUTING鏈,OUTPUT鏈,F(xiàn)orward鏈,Input鏈和POSTROUTING鏈
filter表:如果沒有定義任何規(guī)則,F(xiàn)ilter表則被當(dāng)作默認(rèn)的表,并且基于它來過濾。它用來訪問控制,規(guī)則匹配,過濾網(wǎng)絡(luò)包。支持的鏈有INPUT 鏈,OUTPUT 鏈,F(xiàn)ORWARD 鏈。
raw表:在我們想要配置之前被豁免的包時(shí)被使用。它支持PREROUTING 鏈和OUTPUT 鏈
數(shù)據(jù)包規(guī)則:
數(shù)據(jù)包訪問控制:ACCEPT(接收,回復(fù)通過),REJECT(接收,回復(fù)拒絕),DROP(丟棄)
數(shù)據(jù)包改寫:SNAT(源地址改寫),DNAT(目標(biāo)地址改寫)
信息記錄:LOG
-i eth0:從這塊網(wǎng)卡流入的數(shù)據(jù)
流入一般用在INPUT和PREROUTING上
-o eth0:從這塊網(wǎng)卡流出的數(shù)據(jù)
流出一般在OUTPUT和POSTROUTING上
**********************************************************************************************************
一、
規(guī)則1:對10.10.188.233開放本機(jī)的tcp 80,25,110端口的訪問
iptables–I INPUT–i eth2–p tcp–s 10.10.188.233–m multiport --dports 80,25,110–j ACCEPT
規(guī)則2:對所有的地址開放本機(jī)的tcp(22:ssh,10-21(10:21))端口的訪問
iptables–I INPUT–p tcp --dport 22–j ACCEPT
iptables–I INPUT–p tcp --dport 10:21–j ACCEPT
規(guī)則3:允許對所有的地址開放本機(jī)的基于icmp協(xié)議的數(shù)據(jù)包訪問
iptables–I INPUT–p icmp–j ACCEPT
規(guī)則4:其他未被允許的端口則禁止訪問
iptables–A INPUT–j REJECT(iptables–P INPUT DROP)
二、默認(rèn)需要配置
規(guī)則1:允許所有通過lo網(wǎng)卡傳來的數(shù)據(jù)包
iptables–I INPUT–i lo–j ACCEPT
規(guī)則2:允許本地主動(dòng)發(fā)起請求能得到回復(fù)
iptables–I INPUT–m state --state ESTABLISHED,RELATED–j ACCEPT
三、拓展
1.設(shè)置我能ping通別人,別人不能ping通我(相反則為echo-reply)
iptables–A INPUT–p icmp–s 192.168.1.0/24–m icmp --icmp-type echo-request–j DROP
2.限制每個(gè)客戶端最大并發(fā)數(shù)不超過3個(gè)(xshell終端)
iptables–A INPUT–p tcp --dport 22–s 192.168.1.0/24–m connlimt–connlimit-above 2–j DROP
3.限制速度(-m limit --limit匹配速率| --burst緩沖數(shù)量)
iptables–A INPUT–d192.168.1.63–m limit --limit 5/s --burst 100–j ACCEPT(在100個(gè)包內(nèi)不限速,超過一百個(gè)包限制每秒只傳5個(gè)包)
iptables–A INPUT–d192.168.1.63–j DROP
例如icmp洪水***(多主機(jī)ping包占滿內(nèi)存)
iptables–A INPUT–d192.168.1.63–m icmp --icmp-type echo-request–m limit --limit 5/s–j ACCEPT(限制每秒20個(gè)包)
iptables–A INPUT–d192.168.1.63–m icmp --icmp-type echo-request–j DROP
********************************************************************************************
允許ftp規(guī)則模式
(主動(dòng))加入21號端口放行規(guī)則
iptables–I INPUT–p tcp --dport 21–j ACCEPT
(被動(dòng))
1.在vsftpd服務(wù)端配置文件中加入vsftpd來訪的虛擬端口范圍
vim /etc/vsftpd/vsftpd.conf
#listen_port=21
#pasv_enable=YES
#pasv_min_port=50000
#pasv_max_port=60000
加入Iptables–I INPUT–p tcp --dport 50000:60000–j ACCEPT
2.加入內(nèi)核的連接追蹤模塊
modprobe nf_conntrack_ftp
modprobe ip_nat_ftp
查看內(nèi)核模塊:modprobe–l|grep ftp(lsmod | grep nat_ftp)
永久修改:IPTABLES_MODULES=”nf_conntrack_ftp ******************************************************************************************** 員工在公司內(nèi)部(10.10.155.0/24)能訪問服務(wù)器上的任何服務(wù),允許所有人訪問1723***端口,允許公網(wǎng)訪問門戶網(wǎng)站(80端口) iptables–P INPUT DROP iptables–I INPUT–p tcp–i lo –jACCEPT iptables–I INPUT–m state --stateESTABLISHED,RELATED–j ACCEPT iptables–I INPUT–p icmp–jACCEPT iptables–A INPUT–p tcp -s 10.10.155.0/24–j ACCEPT iptables–A INPUT–p tcp -s 10.10.188.0/24–j ACCEPT iptables–A INPUT–p tcp --dport 80–j ACCEPT iptables–A INPUT–p tcp --dport 1723–j ACCEPT ******************************************************************************************** Ip地址轉(zhuǎn)換SNAT(當(dāng)多臺客戶端訪問一臺web服務(wù)端時(shí)使用,源地址可為網(wǎng)段,需開啟內(nèi)核參數(shù)ip_forward) iptables–tnat–A POSTROUTING–p tcp–s 10.10.177.0/24–j SNAT --to 10.10.188.232 Ip地址轉(zhuǎn)換DNAT(當(dāng)1臺客戶端訪問多臺web服務(wù)端時(shí)使用,目的地址可為網(wǎng)段) iptables–tnat–A PREROUTING–p tcp–d 10.10.188.232/24 --dport 80–j DNAT --to 10.10.177.232:80