由于工作需要,经常需要配置一些iptables防火墙,来作为对服务器的一些安全防护。
只放行我们需要的使用的业务端口,其他端口全部禁用掉,配置方法如下:
代码语言:javascript复制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无法查看出来的话,请先进行保存再进行查看。
另外,如果通过控制台来进行取消的话,需要使用以下语句来进行取消相关配置:
代码语言:javascript复制iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
取消之后,就可以正常访问服务器了。
另外附加一下相关常用到的iptables语句:
(1)只允许某台终端设备使用8087端口进行访问设备:
代码语言:javascript复制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端口进行访问设备
代码语言:javascript复制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号端口进行访问设备:
代码语言:javascript复制iptables -A INPUT -p tcp --destination-port 22 -j DROP;