由於工作需要,經常需要配置一些iptables防火牆,來作爲對服務器的一些安全防護。
只放行我們需要的使用的業務端口,其他端口全部禁用掉,配置方法如下:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp --dport 2234 -j ACCEPT iptables -A OUTPUT -p tcp --sport 2234 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptables -A INPUT -p tcp -s 0/0 --dport 53 -j ACCEPT iptables -A OUTPUT -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p udp -s 0/0 --dport 53 -j ACCEPT iptables -A OUTPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables-save > /etc/sysconfig/iptables
需要注意的是,這樣子配置完了之後,千萬不要用iptables -F來進行清除相關規則,否則的話,ssh遠程到服務器將會立馬斷開(別問我是怎麼知道的),只能通過主機控制檯來進行解除相關配置了。想要取消或者刪除某些語句可以通過編輯/etc/sysconfig/iptables來進行解除。如果配置完之後的iptables規則使用iptables -L無法查看出來的話,請先進行保存再進行查看。
另外,如果通過控制檯來進行取消的話,需要使用以下語句來進行取消相關配置:
iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT
取消之後,就可以正常訪問服務器了。
另外附加一下相關常用到的iptables語句:
(1)只允許某臺終端設備使用8087端口進行訪問設備:
iptables -A INPUT -s 192.168.0.183 -p tcp --dport 8087 -j ACCEPT; iptables -A INPUT -p tcp --dport 8087 -j DROP;
(2)只允許某個網段使用8087端口進行訪問設備
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 8087 -j ACCEPT; iptables -A INPUT -p tcp --dport 8087 -j DROP;
(3)禁止使用22號端口進行訪問設備:
iptables -A INPUT -p tcp --destination-port 22 -j DROP;