引子:centos一般本身就帶有iptables防火牆,一hyper-v架構centos系統的VPS由於採用網上廣為流傳的IPTABLES設定方法,導致無法修改ssh的22連接埠,如果你修改ssh連接埠無效,那麼也可以參考本文。之前的一些centosiptables教程設定有問題,不正確的設定也許可以起到作用,但是卻會增加系統的負載,不能最優的iptables配置方法,然後被各網站抄來抄去,最終就會給linux新人帶來一些困擾。強烈建議採用本文的配置方法重新設定centos的iptables。
一:centosiptables的正確設定方法和禁止PING
1.清除已有iptables規則
iptables-Fiptables-Xiptables-Z
2.iptables的配置,這裡張小三資源網採用centos官方給出的預設的防火牆規則,我們只需要添加或刪除不用的連接埠就可以了,這樣才能最大化的相容各種環境,降低防火牆不相容造成的負載等問題。
首先運行命令:vi/etc/sysconfig/iptables添加如下內容。
#Firewallconfigurationwrittenbysystem-config-securitylevel
#Manualcustomizationofthisfileisnotrecommended.
*filter
:INPUTACCEPT[0:0]
:FORWARDACCEPT[0:0]
:OUTPUTACCEPT[0:0]
:RH-Firewall-1-INPUT-[0:0]
-AINPUT-jRH-Firewall-1-INPUT
-AFORWARD-jRH-Firewall-1-INPUT
#准許本機localhost訪問
-ARH-Firewall-1-INPUT-ilo-jACCEPT
#是否禁止ping,禁止的話可以在下面這句的開頭加#號。
-ARH-Firewall-1-INPUT-picmp--icmp-typeany-jACCEPT
#允許已建立的或相關連的通行
-ARH-Firewall-1-INPUT-mstate--stateESTABLISHED,RELATED-jACCEPT
#開放s.s.h的22連接埠(開放其它連接埠可以按照下面規則自己添加)
-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport22-jACCEPT
#開放80連接埠
-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport80-jACCEPT
#開放ftp的21連接埠
-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport21-jACCEPT
#除放開的連接埠外禁止其它連接埠
-ARH-Firewall-1-INPUT-jREJECT--reject-withicmp-host-prohibited
COMMIT
3.最後儲存一下
serviceiptablessave
#防止iptables機器重啟失效,重啟iptables自動生效,運行如下命令chkconfig--level345iptablesonserviceiptablesrestart
二:iptables應用
1.查看已添加的iptables規則:
iptables-L
2.刪除已添加的iptables規則:
將所有iptables規則按照1.2.3....進行排序,執行:iptables-L-n--line-numbers如果要刪除INPUT裡序號為5的規則,執行:iptables-DINPUT5
3.利用iptables屏蔽指定的IP:
#屏蔽單個IP的命令是iptables-IINPUT-s123.45.6.7-jDROP
#封整個段即從123.0.0.1到123.255.255.254的命令
iptables-IINPUT-s123.0.0.0/8-jDROP
#封IP段即從123.45.0.1到123.45.255.254的命令
iptables-IINPUT-s124.45.0.0/16-jDROP
#封IP段即從123.45.6.1到123.45.6.254的命令是
iptables-IINPUT-s123.45.6.0/24-jDROP