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