《Linux iptables:規(guī)則原理和基礎(chǔ)》和《Linux iptables:規(guī)則組成》介紹了iptables的基礎(chǔ)及iptables規(guī)則的組成,本篇通過實際操作進(jìn)行iptables應(yīng)用場景的實際演示。
防火墻設(shè)置策略
防火墻的設(shè)置策略一般分為兩種,一種叫“通”策略,一種叫“堵”策略:
通策略,默認(rèn)所有數(shù)據(jù)包是不允許通過的,對于允許的數(shù)據(jù)包定義規(guī)則。
堵策略則是,默認(rèn)所有數(shù)據(jù)包是全部允許通過的,對于要拒絕的數(shù)據(jù)包定義規(guī)則。
一般來說服務(wù)器的防火墻設(shè)置都是采用第一種策略,安全性更高,本篇介紹的場景實戰(zhàn)也是采用“通”策略。
場景實戰(zhàn)定義
假定本篇要實現(xiàn)以下場景定義的規(guī)則:
1、對所有的地址開放本機的80、22、10-21端口訪問;
2、對所有的地址開放ICMP協(xié)議的數(shù)據(jù)包訪問;
3、其他未被允許的端口禁止訪問。
iptables規(guī)則實現(xiàn)
實現(xiàn)以上定義的命令操作:
先清空所有默認(rèn)規(guī)則
iptables -F
開放端口
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
開放ICMP
iptables -I INPUT -p icmp -j ACCEPT
禁止其他端口
iptables -A INPUT -j REJECT
查看規(guī)則
iptables -L -n
操作結(jié)果:
iptables規(guī)則定義要點
在以上的操作過程中有幾個點需要注意:
1、一定要允許22端口訪問,否則在輸入iptables -A INPUT -j REJECT時,SSH會立即斷開,無法再進(jìn)行遠(yuǎn)程操作;
2、iptables -A INPUT -j REJECT一定要使用 A 命令追加到規(guī)則末尾,不能使用 I 命令插入,使拒絕操作在最后生效;
3、允許連續(xù)范圍端口可以使用 起始:結(jié)束端口 來指定。