• iptables简单应用

    发布时间:2016-3-3 18:58 Thursday 作者:苏苏 阅读(1909)

      iptables是linux下一个简单实用的防火墙组件,基本上是必须安装的。


      一、安装软件

      我们购买的VPS,一般都已经预装iptables,可以先检查下iptables状态,确认是否安装。

      service iptables status

      若提示为iptables:unrecognized service,则需要安装。

      yum install iptables   #CentOS系统

      apt-get install iptables    #Debian系统


      二、配置规则

      以下命令我们以CentOS为例,敬请留意。

      安装好的iptables配置文件在/etc/sysconfig/iptables,默认的iptables我们可以无视之,采用下面的命令,清除默认规则。

      iptables –F 

      iptables –X

      iptables –Z

      接下来,添加我们自己的iptalbes规则,开放指定端口,关闭危险端口之类。,以下,是一个简单的规则:

      #允许本地回环接口(即运行本机访问本机)

      iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

      # 允许已建立的或相关连的通行

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

      #允许所有本机向外的访问

      iptables -A OUTPUT -j ACCEPT

      # 允许访问22端口

      iptables -A INPUT -p tcp –dport 22 -j ACCEPT

      #允许访问80端口

      iptables -A INPUT -p tcp –dport 80 -j ACCEPT

      #允许FTP服务的21和20端口

      iptables -A INPUT -p tcp –dport 21 -j ACCEPT

      iptables -A INPUT -p tcp –dport 20 -j ACCEPT

      #如果有其他端口的话,规则也类似,稍微修改上述语句就行

      #禁止其他未允许的规则访问

      iptables -A INPUT -j REJECT  #注意:如果22端口未加入允许规则,SSH链接会直接断开。

      iptables -A FORWARD -j REJECT

      如果还有需要开启的端口,可以在上面添加,然后,保存规则并重启,否则以上的更改会失效。

      service iptables save    #保存

      service iptables restart     #重启

      禁止单个IP:

      -A INPUT -s 1.2.3.4 -j DROP


      三、查询修改及删除

      iptables -L –n    #查询规则

      iptables -L -n --line-numbers  #将规则按数字序号显示方便删除

      iptables -D INPUT 4   #删除第四条规则


      四、设定开机启动

      chkconfig iptables on


      五、其他规则

      以下部分规则,大家可以做些参考。

      # 打开 syncookie (轻量级预防 DOS 攻击)

      sysctl -w net.ipv4.tcp_syncookies=1 &>/dev/null

      # 设置默认 TCP 连接痴呆时长为 3800 秒  此选项可以大大降低连接数

      sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=3800 &>/dev/null

      # 设置支持最大连接树为 30W(这个根据内存和 iptables 版本来,每个 connection 需要 300 多个字节)

      sysctl -w net.ipv4.ip_conntrack_max=300000 &>/dev/null

      # 防止SYN攻击 轻量

      iptables -N syn-flood

      iptables -A INPUT -p tcp –syn -j syn-flood

      iptables -A syn-flood -p tcp -m limit –limit 3/s –limit-burst 6 -j RETURN

      iptables -A syn-flood -j REJECT

      # 对于不管来自哪里的ip碎片都进行控制,允许每秒通过100个碎片

      iptables -A FORWARD -f -m limit –limit 100/s –limit-burst 100 -j ACCEPT

      # icmp包通过的控制,防止icmp黑客攻击

      iptables -A FORWARD -p icmp -m limit –limit 1/s –limit-burst 10 -j ACCEPT

      # 丢弃坏的TCP包

      iptables -A FORWARD -p TCP ! –syn -m state –state NEW -j LOG –log-prefix “New not syn:”

      iptables -A FORWARD -p TCP ! –syn -m state –state NEW -j DROP


    特别申明:若无说明,文章均为原创,转载时请注明本文地址,谢谢合作!
    本文链接: