这是iptables一条规则的基本组成,也是iptables定义规则的命令格式:
第一列是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
转载于:https://blog.51cto.com/weizhitian/1900006