这是iptables一条规则的基本组成,也是iptables定义规则的命令格式:

wKiom1isP0nRkr_TAAF3C9IgkcA842.png-wh_50

第一列是iptables命令;

第二列指定规则所在的表,常用的是nat和filter表;

第三列是命令,常用命令如下:

-A 在指定链的末尾添加(append)一条新的规则
-D 删除(delete)指定链中的某一条规则,可以按规则序号和内容删除
-I 在指定链中插入(insert)一条新的规则,默认在第一行添加
-R 修改、替换(replace)指定链中的某一条规则,可以按规则序号和内容替换
-L 列出(list)指定链中所有的规则进行查看
-F 清空(flush)规则
-P 设置指定链的默认策略(policy)
-n 使用数字形式(numeric)显示输出

第四列是指定规则作用的挂载点;

第五列是选项,常用选项如下:

-p 指定协议
-s 源地址
-d 目的地址
--sport 源端口号
--dport 目的端口号
--dports 目的端口号列表
-m 补充

第六列是规则,常用规则如下:

ACCEPT 允许数据包通过
DROP 直接丢弃数据包,不给任何回应信息
REJECT 拒绝数据包通过,必要时会给数据发送端一个响应的信息
SNAT 对数据包源地址改写
DNAT 对数据包目的地址改写
LOG 记录数据包
以上基本上对iptables定义规则时的命令及参数进行了介绍,在定义规则时可以作为参考。



1、防止外网用内网IP欺骗

iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP

    查看nat规则

iptables -t nat -L

2、如果想取消上面所加的规则:

iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

3、阻止一个IP连接本机

iptables -t filter -A INPUT -s 192.168.1.5 -i eth0 -j DROP

4、查看本机的IPTABLES的所填规则

iptables -L -n

5、清除filter中所有的规则连接

iptables -F

  清除filter中使用者自定义连接中的规则

iptables -X

6、保存所修改的iptables规则

/etc/rc.d/init.d/iptables save

  重新启动iptables服务

service iptables restart

7、关闭不安全的端口连接本机

iptables -A OUTPUT -p tcp --sport 31337 -j DROP
iptables -A OUTPUT -p tcp --dport 31337 -j DROP

8、开启所需要的端口

     22
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
     80
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

9、禁止一个IP或者一个IP段访问服务器端口服务

     80端口
iptables -t filter -I INPUT 2 -s 192.168.5.0/24 -p tcp --dport http -j DROP

     FTP端口
iptables -t filter -I INPUT 2 -s 192.168.7.9 -p tcp --dport ftp -j DROP