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