查看防火墙规则: 
 iptables -nvL –line-number 
 -L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数 
 -n 不对ip地址进行查,加上这个参数显示速度会快很多 
 -v 输出详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口 
 –line-number 显示规则的序列号,这个参数在删除或修改规则时会用到 
 添加一条规则到尾部 
 iptables -A INPUT -s 192.168.1.5 -j DROP 
 添加一条规则到第三行 
 iptables -A INPUT 3 -s 192.168.1.5 -j DROP 
 删除防火墙规则,把前面添加的规则,-A改成-D就可以删除该防火墙的规则了 
 iptables -D INPUT -s 192.168.1.5 -j DROP 
 命令规则比较长,则使用行号进行删除 
 先查看行号:iptables -nvL –line-number 
 再删除对应的规则:iptables -D input num l例如:iptables -D input 3 
 命令规则: 
 黑名单方式: 
 屏蔽某一个IP:iptables -I INPUT -s 123.45.6.7 -j DROP 
 iptables -A INPUT -i eth0 -p tcp -s IP -j DROP 
 屏蔽IP段:封IP段即从123.45.0.1到123.45.255.254的命令 
 iptables -I INPUT -s 124.45.0.0/16 -j DROP 
 将发往某一个IP的数据包丢掉: 
 iptables -I OUTPUT -s 123.45.6.7 -j DROP 
 白名单方式 
 只允许指定机器ssh连接本机 
 iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 –dport 22 -m state –state NEW,ESTABLESHED -j ACCEPT 
 模拟随机丢包率 
 iptables -A FORWARD -p icmp -m statistic –mode random –probability 0.31 -j REJECT //表示31%的丢包率或者-m random –average 5 -j DROP 表示模拟丢掉5%比例的包 
 模拟网络延时,这个需要linux下载和安装一个工具tc,tc还有很多其他的网络控制方法,tc 全名为 traffic control(流量控制) 
 tc qdisc add dev eth0 root netem delay 3000ms 
 可以在 3000ms 后面在加上一个延时,比如 ’3000ms 200ms‘表示 3000ms ± 200ms ,延时范围 2800 – 3200 之间. 
 其他常使用的命令 
 1.删除已有规则 
 在新设定iptables规则时,可以先用以下命令清除旧规则: 
 iptables -F 
 (or iptables –flush) 
 2.网口转发配置 
 对于用作防火墙或网关的服务器,一个网口连接到公网,其他网口的包转发到该网口实现内网向公网通信,假设eth0连接内网,eth1连接公网,配置规则如下: 
 iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT 
 3.端口转发配置 
 对于端口,我们也可以运用iptables完成转发配置: 
 iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 –dport 422 -j DNAT –to 192.168.102.37:22 
 以上命令将422端口的包转发到22端口,因而通过422端口也可进行SSH连接,当然对于422端口,我们也需要像以上“4.配置服务项”一节一样,配置其支持连接建立的规则。 
 4 DoS攻击防范 
 利用扩展模块limit,我们还可以配置iptables规则,实现DoS攻击防范: 
 iptables -A INPUT -p tcp –dport 80 -m limit –limit 25/minute –limit-burst 100 -j ACCEPT 
 –litmit 25/minute 指示每分钟限制最大连接数为25 
 –litmit-burst 100 指示当总连接数超过100时,启动 litmit/minute 限制 
 5.将丢弃包情况记入日志(没有尝试过) 
 使用LOG目标和syslog服务,我们可以记录某协议某端口下的收发包情况。拿记录丢包情况举例,可以通过以下方式实现。 
 首先自定义一个chain: 
 iptables -N LOGGING 
 其次将所有接收包导入LOGGING chain中: 
 iptables -A INPUT -j LOGGING 
 然后设置日志前缀、日志级别: 
 iptables -A LOGGING -m limit –limit 2/min -j LOG –log-prefix “IPTables Packet Dropped: ” –log-level 7 
 最后将包倒向DROP,将包丢弃: 
 iptables -A LOGGING -j DROP 
 另可以配置syslog.conf文件,指定iptables的日志输出。修改 修改使用-R参数 
 将第三行规则改为ACCEPT先看下当前规则: 
 [root@test ~]# iptables -nL –line-number 
 Chain INPUT (policy ACCEPT) 
 num target prot opt source destination 
 1 DROP all – 192.168.1.1 0.0.0.0/0 
 2 DROP all – 192.168.1.2 0.0.0.0/0 
 3 DROP all – 192.168.1.5 0.0.0.0/0 
 修改: 
 [root@test ~]# iptables -R INPUT 3 -j ACCEPT 
 再查看下: 
 [root@test ~]# iptables -nL –line-number 
 Chain INPUT (policy ACCEPT) 
 num target prot opt source destination 
 1 DROP all – 192.168.1.1 0.0.0.0/0 
 2 DROP all – 192.168.1.2 0.0.0.0/0 
 3 ACCEPT all – 0.0.0.0/0 0.0.0.0/0 
 - 防火墙生效 
 防火墙修改后要先保存 
 再重新启动才会生效 
 保存:service iptables save 
 重启:service iptables restart