啟動和停止
1、命令:
框架: tables > chains > rules(target)
整體上可認(rèn)為iptables就是由許多chain組成的,要不然其老版本怎么叫做ipchains呢。但是劃分層次為:
一個table可由多個chain組成,一個chain可由多個rules組成(一個rule對應(yīng)一個target)。
target概念的好處是:系統(tǒng)預(yù)置了一些target,如ACCEPT,DROP,REJECT,LOG等,意思是如果這個包匹配這條rule,其處理辦法就是target。這里引入target的好處在于,允許用戶自定義一條chain,然后用chain名做為新的target,這樣,就可以聚合一些rule!形成了層次性的rule,就是說如果滿足這條rule,那么再看其target里面的rule。
1、iptables由四張table組成,每張table由默認(rèn)的chain組成:
(1)filter: 默認(rèn)有三個chain——INPUT,OUTPUT和FORWARD
(2)nat: 做NAT工作,默認(rèn)三個chain——OUTPUT,PREROUTING,POSTROUTING
(3)mangle: 對包的一些參數(shù)進(jìn)行修改,默認(rèn)有五個chain——INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
(4)raw:作用未明,默認(rèn)有兩個chain——OUTPUT,PREROUTING
不同的table分管不同的方面。iptables的默認(rèn)命令是對filter生效??梢杂?t nat指定對nat生效。
2、所謂的配置防火墻就是:
(1)向chain添加rule:
每個chain都是由一系列rule組成的,比如你要更改INPUT這個chain來允許用戶訪問你機(jī)器上的某個端口。
比如這個INPUT有兩個rule,一個用于允許用戶訪問你的5901端口,一個用于允許用戶訪問你的5902端口
一般安全策略:
1、從最嚴(yán)厲的安全措施開始,當(dāng)你發(fā)現(xiàn)有用的東西不能工作時再一點點兒的放寬限度。
2、防火墻不能當(dāng)作防范入侵的主要手段,它只能作為每臺主機(jī)上獨(dú)立保護(hù)措施的一個補(bǔ)充罷了。每臺主機(jī)上的獨(dú)立保護(hù)措施包括crack,tcpd,nmap,COPS,tripwire和相應(yīng)的策略。
規(guī)則和命令:
規(guī)則很簡單,相應(yīng)的包,會交給相應(yīng)的內(nèi)置chain,然后對于chain中的rules,是從上到下的順序進(jìn)行匹配,和break語句一樣。所以,比如你要開放某些端口,就寫上面,最后才寫封閉所有端口。
靜態(tài)規(guī)則:
1、iptables -F chain-name:
清除名為chain-name的chain中的所有rule,只寫-F清除所有的chain中的所有rule,但保留chain。
這默認(rèn)只對filter table的。如果要清除如nat table的,要用 iptables -t nat -F
2、iptables -P chain-name target:
給名為chain-name的chain設(shè)置默認(rèn)的rule。這個通常是放在給該chain設(shè)置的所有rule的開頭。相當(dāng)于break語句中的default。 注意,如果給nat或mangle中的chain設(shè)置,則別忘了用 -t table。 但是注意的是,這里的target只能用內(nèi)置的
3、iptables -A chain-name rule
給名為chain-name的chain添加一條規(guī)則,后面rule是一下的組合:
-j target 預(yù)置target或用戶自定義的chain
-i interface 如eth0
-p proto 協(xié)議,有tcp,udp
-s source-ip 源ip
-d dest-ip 目的ip
--sport source-port 源端口
--dport dest-port 目的端口
--icmp-type type 匹配ICMP類型,比如你允許哪些類型的ICMP包通過,后面跟數(shù)字
! 否定
-t table
4、iptables -I chain-name rulenum rule:
這個和-A的區(qū)別是:插入,而不是加在末尾。rulenum為1表示加在最前面。
5、iptables -X chain-name:
刪除非系統(tǒng)內(nèi)置(用戶自定義)的chain,這個不同于-F,這個是把chain整個刪除,名字都沒了,即你用iptables -L -v看不到了。
6、iptables -D chain-name rule/rulenum
這個同iptable -A chain-name rule完全相反,如果你要刪除chain-name中的一條rule,就按照-A時的寫法就可以刪除之。或者用rulenum,即該chain的從上往下數(shù)的num數(shù),第一條rule的rulenum為1。
7、iptables -L chain-name
打印名為chain-name的chain的rules。不給出chain-name,則打印所有chain。
8、iptables -L -v chain-name
在6的基礎(chǔ)上加了些有用信息,如從開機(jī)到現(xiàn)在,匹配每條rule的包的數(shù)量!
動態(tài)規(guī)則: 針對connection(TCP連接)
1、有三種動態(tài)參數(shù):
NEW:指收到的第一次TCP連接
ESTABLISHED:當(dāng)連接建立后,屬于該connection的包
RELATED:當(dāng)連接建立后,又有相關(guān)的連接建立(典型的是ftp的passive模式,由client發(fā)起到server的數(shù)據(jù)連接,這個端口是由server指定的,但由client發(fā)起)
2、命令:
iptables對請求的URL作IP訪問控制
下面來看一個實例。
服務(wù)器運(yùn)行環(huán)境是Tomcat,現(xiàn)在要實現(xiàn)的目的是,只允許特定的IP訪問某個目錄,
一種方法是在tomcat配置文件server.conf中,使用RemoteAddrValve對虛擬主機(jī)做訪問控制。
另外一種方法可以通過iptables規(guī)則。個人比較喜歡iptables
例如:禁止訪問http://192.168.137.254:10000/managersns 這個路徑,只允許192.168.137.101訪問
標(biāo)簽:景德鎮(zhèn) 河南 天門 威海 黔南 鶴壁 海北 欽州
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《實例解析Linux下iptables的相關(guān)配置與命令使用技巧》,本文關(guān)鍵詞 實例,解析,Linux,下,iptables,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。