linux iptables 配置

1.查看已有配置

   iptables -L -n

2.清除原有规则.

  iptables -F        清除预设表filter中的所有规则链的规则
  iptables -X        清除预设表filter中使用者自定链中的规则

3.设定预设规则

  
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

  上面的意思是,当超出了IPTABLES里filter表里的两个链规则(INPUT,FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流入数据包
  而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在着个规则里的包怎么办呢,那就是通过.
  可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过.
  这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,而且要写的规则就会增加.但如果你只想要有限的几个规则是,如只做WEB服务器.还是推荐三个链都是DROP.
  注:如果你是远程SSH登陆的话,当你输入第一个命令回车的时候就应该掉了.因为你没有设置任何规则.

4.添加规则.

  首先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链
  为了能采用远程SSH登陆,我们要开启22端口.
  iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT (注:这个规则,如果你把OUTPUT 设置成DROP的就要写上这一部,好多人都是望了写这一部规则导致,始终无法SSH.在远程一下,是不是好了.
  其他的端口也一样,如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加一条链:
  iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT ,其他同理.)
  如果做了WEB服务器,开启80端口.
  iptables -A INPUT -p tcp --dport 80 -j ACCEPT
 
  保存配置 /etc/rc.d/init.d/iptables save
  重启服务 service iptables restart
 
也可以直接修改 /etc/sysconfig/iptables 中的配置
  
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT   #入网规则
-A INPUT -p tcp -m tcp --sport 3306 -j ACCEPT   #出网规则
-A INPUT -p tcp -m tcp --dport 6000 -j ACCEPT 
-A INPUT -p tcp -m tcp --sport 6000 -j ACCEPT 
如果直接修改了 /etc/sysconfig/iptables 的话 直接 service iptables restart 就可以了
 

5.注意 要想使用curl或者file_get_contents要添加以下语句

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

 

原文地址:https://www.cnblogs.com/mr-amazing/p/4431695.html