iptables仅放行某端口,其他禁用掉

2022-01-11 14:47:45 浏览数 (2)

由于工作需要,经常需要配置一些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;

0 人点赞