helios741 / myblog

觉得好请点小星星,欢迎有问题交流(issue/email)
109 stars 21 forks source link

iptables常用命令 #74

Open helios741 opened 4 years ago

helios741 commented 4 years ago

1. 查看对应规则表中所有规则

iptables -t 表名 -L

2. 指定表指定链的规则

iptables -t 表名 -L 链名

3. 显示序号

iptables -t 表名 -L 链名
helios741 commented 4 years ago

1. 尾部添加规则

命令语法:iptables -t 表名 -A 链名 匹配条件 -j 动作
示例:iptables -t filter -A INPUT -s 192.168.1.146 -j DROP

2. 首部添加规则

命令语法:iptables -t 表名 -I 链名 匹配条件 -j 动作
示例:iptables -t filter -I INPUT -s 192.168.1.146 -j ACCEPT

3. 指定位置添加一个规则

命令语法:iptables -t 表名 -I 链名 规则序号 匹配条件 -j 动作
示例:iptables -t filter -I INPUT 5 -s 192.168.1.146 -j REJECT

4. 设置表的指令链的默认策略

命令语法:iptables -t 表名 -P 链名 动作
示例:iptables -t filter -P FORWARD ACCEPT

5. 根据序号删除

命令语法:iptables -t 表名 -D 链名 规则序号
示例:iptables -t filter -D INPUT 3

6. 根据匹配条件和动作删除规则,删除指定表中指定链的指定规则

命令语法:iptables -t 表名 -P 链名 动作
示例:iptables -t filter -P FORWARD ACCEPT

7. 删除指定表中指定链的所有规则

命令语法:iptables -t 表名 -F 链名
示例:iptables -t filter -F INPUT

8. 删除指定表中的所有规则

命令语法:iptables -t 表名 -F 链名
示例:iptables -t filter -F INPUT

8. 保存iptables规则

命令语法:iptables -t 表名 -F 链名
示例:iptables -t filter -F INPUT

9. 从指定文件载入iptables规则

命令语法:iptables -t 表名 -F 链名
示例:iptables -t filter -F INPUT
helios741 commented 4 years ago

1. -s参数用于匹配报文源地址,可以指定多个,也可以指定一个网段

#示例如下
iptables -t filter -I INPUT -s 192.168.1.111,192.168.1.118 -j DROP
iptables -t filter -I INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -t filter -I INPUT ! -s 192.168.1.0/24 -j ACCEPT

2. -d参数用于匹配报文目的地址,可以指定多个,也可以指定一个网段

#示例如下
iptables -t filter -I OUTPUT -d 192.168.1.111,192.168.1.118 -j DROP
iptables -t filter -I INPUT -d 192.168.1.0/24 -j ACCEPT
iptables -t filter -I INPUT ! -d 192.168.1.0/24 -j ACCEPT

3. -p参数用于匹配报文协议的类型

#示例如下
iptables -t filter -I INPUT -p tcp -s 192.168.1.146 -j ACCEPT
iptables -t filter -I INPUT ! -p udp -s 192.168.1.146 -j ACCEPT

4. -i参数匹配报文从哪个网卡流入本机的

#示例如下
iptables -t filter -I INPUT -p icmp -i eth4 -j DROP
iptables -t filter -I INPUT -p icmp ! -i eth4 -j DROP

5. -o参数用于指明报文要从哪个网卡流出

#示例如下
iptables -t filter -I OUTPUT -p icmp -o eth4 -j DROP
iptables -t filter -I OUTPUT -p icmp ! -o eth4 -j DROP

6. 常用扩展模块

常用的扩展匹配条件如下:

#示例如下
iptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp --sport 22 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 22:25 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport :22 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 80: -j REJECT
iptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp ! --sport 22 -j ACCEPT

7. multiport扩展模块

常用的扩展匹配条件如下:

helios741 commented 4 years ago

1. 创建自定义链

#示例:在filter表中创建IN_WEB自定义链
iptables -t filter -N IN_WEB

2. 引用自定义链

#示例:在INPUT链中引用刚才创建的自定义链
iptables -t filter -I INPUT -p tcp --dport 80 -j IN_WEB

3. 重命名自定义链

#示例:将IN_WEB自定义链重命名为WEB
iptables -E IN_WEB WEB

4. 删除自定义链

删除自定义链要满足下面两个条件:

  1. 自定义链没有被引用
  2. 自定义链中没有任何规则
    #示例:删除引用计数为0并且不包含任何规则的WEB链
    iptables -X WEB
helios741 commented 4 years ago

调试iptables

iptables -t raw -A OUTPUT -p icmp -j TRACE
iptables -t raw -A PREROUTING -p icmp -j TRACE

centos7使用:

 modprobe nf_log_ipv4

centos6使用:

modprobe ipt_LOG

查看是否成功:

# sysctl net.netfilter.nf_log.2
net.netfilter.nf_log.2 = ipt_LOG
helios741 commented 4 years ago

image

helios741 commented 4 years ago

image