iptables的增删改查

增加tcp协议的端口
iptables -A INPUT -p tcp -m tcp --dport 要开放的端口 -j ACCEPT
增加udp协议的端口
iptables -A INPUT -p udp -m udp --dport 要开放的端口 -j ACCEPT

这样添加以后仅仅是临时有效,服务器或者iptables重启后就失效了

service iptables save 永久保存

动作:

REJECT

拒绝并返回信息;默认值为icmp-port-unreachable

使用–reject-with选项,可以设置提示信息

可用值:
icmp-net-unreachable
icmp-host-unreachable
icmp-port-unreachable
icmp-proto-unreachable
icmp-net-prohibited
icmp-host-pro-hibited
icmp-admin-prohibited

ACCEPT

允许

DROP

丢弃(不会输出信息,一直到超时后输出)

添加

添加规则有两个参数 -I-A

-I :默认添加到规则的首部

-A :默认添加规则的到尾部

iptables执行规则时,是从从规则表中从上至下顺序执行的,如果没遇到匹配的规则,就一条一条往下执行,如果遇到匹配的规则后,那么就执行本规则,执行后根据本规则的动作(accept, reject, log 等),决定下一步执行的情况,后续执行一般有三种情况

插入一条规则到首部:

命令语法:iptables -t 表名 -I 链名 匹配条件 -j 动作

iptables -I INPUT -s 192.168.100.200 -j DROP		# 拒绝192.168.100.200上的所有报文访问当前机器
# -t 指定表默认操作的是filter表
# -I 指定链
# -s 指定源地址
# -j 指定动作(ACCEPT)(DROP)(REJECT)

插入一条规则到指定行:

命令语法:iptables -t 表名 -I 链名 规则序号 匹配条件 -j 动作

iptables -I INPUT 3 -s 192.168.100.200 -p tcp --dport 22 -j DROP	# 拒绝192.168.100.200访问本机的22号端口

插入一条规则到尾部:

iptables -A INPUT -s 192.168.100.200 -p tcp --dport 22 -j ACCEPT
删除
命令语法:iptables -t 表名 -D 链名 匹配条件 -j 动作

iptables -D INPUT 2		# 删除第二行的规则:
#也可以根据具体的匹配条件与动作去删除规则,比如,删除源地址为192.168.100.200,动作为ACCEPT的规则(与添加一样选项改为-D即可)
iptables -D INPUT -s 192.168.100.200 -j ACCEPT
修改
命令语法:iptables -t 表名 -R 链名 规则序号 规则原本的匹配条件 -j 动作

iptables -R INPUT 4 -j ACCEPT	# 修改第四条规则的DROP为ACCEPT
iptables -R INPUT 1 -s 192.168.100.200 -p tcp --dport 3306 -j ACCEPT	# 修改第一条规则的为ACCEPT
查看
iptables -nL --line-number

-L  查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,加上-t NAT参数
-v 	输出详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口 
-n	数值输出。IP地址和端口号将以数字格式打印。默认情况下,程序将尝试将它们显示为主机名、网络名或服务(只要适用)
–line-number 显示规则的序列号,这个参数在删除或修改规则时会用到
清空

清空filter表INPUT链中的规则

iptables -F INPUT
保存
保存规则命令如下,表示将iptables规则保存至/etc/sysconfig/iptables文件中,如果对应的操作没有保存,那么当重启iptables或者服务器都会失效
service iptables save