龙之介大人

iptables的使用与基本扩展匹配的使用
iptables的基本使用iptables的基本使用方式如上图所示,上图包含了基础与扩展的使用方式.iptable...
扫描右侧二维码阅读全文
11
2020/02

iptables的使用与基本扩展匹配的使用

iptables的基本使用

iptables的基本使用方式如上图所示,上图包含了基础与扩展的使用方式.

iptables: 用户空间的工具,写规则,并自动发往netfilter,立即生效;netfilter: 接收并生效规则;

iptables工具语法

  • 规则与链的计数器:

    • pkts:由规则或链所匹配到的报文的个数.
    • bytes: 由规则或链匹配到的所有报文大小之和.
iptables [-t TABLE] SUBCOMMANDS chain CRETIRIA -j TARGET

#表
-t TABLES:
    filter, nat, mangle, raw, security
    可以省略,省略默认为filter

#链的管理规则
SUBCOMMANDS:
    #链管理
    -F: --flush [chain] ,清空规则链;
    -N: --new-chain chain , 创建新的自定义规则链;
    -X: --delete-chain [chain] , 删除用户自定义的空的规则链;
    -Z: --zero [chain [rulenum]] , 置零,规则计数器置零;
    -P: --policy chain target , 为指定链设置默认策略,对filter表来讲,默认规则为ACCEPT, DROP, REJECT;
    -E: --rename-chain old-chain new-chain , 重命名自定义链;引用计数不为0的自定义链,无法改名,也无法删除;
    #链规则管理
    -A:--append chain rule-specification ,将新规则追加于指定链的尾部;
    -I:--insert chain [rulenum] rule-specification ,将新规则插入至指定链的指定位置;
    -D:--delete chain rulenum ,删除指定链上的指定规则;
        有两种指定方式:
            1. 指定匹配条件
            2. 指定规则编号
    -R: --replace chain rulenum rule-specification , 替换/修改指定链上的指定规则;
    #查看
    -L: list [chain] ,列出指定链上的指定规则
        -n: numberic, 以数值格式显示地址和端口号;
        -v: verbose, 显示详细信息;
            -vv,-vvv
        --line-numbers: 显示规则编号;
        -x: exactly, 显示计数器计数的精确值;
    -S:  --list-rules [chain] , 打印所选链中的所有规则,以iptables命令方式打印;

#链
chain:
    #默认
    PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING

#指定匹配规则
CRETIRIA:
    #基本匹配
    [!] -s, --src, --source IP|Netaddr: 检查报文中源IP地址是否符合此处指定的地址范围;
    [!] -d, --dst, --destination IP|Netaddr: 检查报文中源IP地址是否符合此处指定的地址范围;
    [!] -p, --protocol {tcp|udp|icmp|icmpv6}: 检查报文中的协议,即ip首部中的protocols所标识的协议;
    [!] -i, --in-interface IFACE: 数据报文的流入接口;仅能用于PREROUTING, INPUT及FORWARD链上;
    [!] -o, --out-interface IFACE:数据报文的流出接口;仅能用于FORWARD, OUTPUT及POSTROUTING链上;
    #扩展匹配
    -m, --macth macth_name --spec_options: 指定要使用的匹配项,即测试特定属性的扩展模块。
    例如:-m tcp --dport 22
    #隐式扩展:对-p protocol指明的协议进行的扩展,可以省略-m选项.
    -p tcp
        --dport PORT[-PORT]: 目标端口,可以是单个端口或者连续的多个端口;
        --sport PORT[-PORT]: 源端口,可以是单个端口或者连续的多个端口;
        --tcp-flags LIST1 LIST2: 检查LIST1所指明的所有标志位,且这其中LIST2表示的所有标记位必须为1,而余下的必须为0;没有LIST1中指明的,不作检查;
        SYN, ACK, FIN, RST, PSH, URG
        例如:--tcp-flags SYN,ACK,FIN,RST SYN 这个表示:syn.ack,rst,fin四个位要求syn必须是1
        --syn: 表示是否新建的tcp请求
    -p udp
        --dport: PORT[-PORT]: 目标端口,可以是单个端口或者连续的多个端口;
        --sport: PORT[-PORT]: 源端口,可以是单个端口或者连续的多个端口;
    -p icmp
        --icmp-type: 0:echo-reply, 8:echo-request
    #显示扩展:必须使用-m选项指定使用的扩展;
#目标
-j TARGET:jump至指定的TARGET
    ACCEPT: 接受
    DROP: 丢弃
    REJECT: 拒绝
    RETURN: 返回调用链
    REDIRECT: 端口重定向
    LOG: 记录日志
    MARK: 做防火墙标记
    DNAT: 目标地址转换
    SNAT: 源地址转换
    MASQUERADE: 地址伪装
    ....
    自定义链: 由自定义链上的规则进行匹配检查.



#链信息标注
[root@study3 ~]# iptables -L -n
target     prot      opt     source           destination         
ACCEPT     all       --      0.0.0.0/0        0.0.0.0/0            ctstate RELATED,ESTABLISHED
目标       协议      选项    来源地址          目标地址             连接追踪状态

[root@template ~]# iptables -L -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts  bytes   target prot opt in out  source        destination         
385   30401   ACCEPT all  --  *  *    0.0.0.0/0     0.0.0.0/0       ctstate RELATED,ESTABLISHED        
# pkts:由规则或链所匹配到的报文的个数.
# bytes: 由规则或链匹配到的所有报文大小之和.
# target:规则对应的target,往往表示规则对应的"动作",即规则匹配成功后需要采取的措施。
# prot:表示规则对应的协议,是否只针对某些协议应用此规则。
# opt:表示规则对应的选项。
# in:表示数据包由哪个接口(网卡)流入,我们可以设置通过哪块网卡流入的报文需要匹配当前规则。
# out:表示数据包由哪个接口(网卡)流出,我们可以设置通过哪块网卡流出的报文需要匹配当前规则。
# source:表示规则对应的源头地址,可以是一个IP,也可以是一个网段。
# destination:表示规则对应的目标地址。可以是一个IP,也可以是一个网段。

iptables链操作示例

查看链信息

#查看filter链信息
[root@study02 ~]# iptables -L  #不指定默认为filter链
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD_IN_ZONES (0 references)  #references表示应用此表的数量
target     prot opt source               destination     


#查看filter链详细信息
[root@study02 ~]# iptables -t filter -L -v
Chain INPUT (policy ACCEPT 401 packets, 23451 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 243 packets, 78008 bytes)
 pkts bytes target     prot opt in     out     source               destination   

增删改链

#删除自定义链
[root@study02 ~]# iptables -t filter -X  #-X不加参数表示删除所有自定义链
[root@study02 ~]# iptables -t filter -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination


#添加自定义链
[root@study02 ~]# iptables -t filter -N IN_public
[root@study02 ~]# iptables -t filter -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain IN_public (0 references)   #这是我们添加的自定义链,自定义的链会显示引用计数.
target     prot opt source               destination  


#修改自定义链名字
#修改是需要注意的是,如果内部没有规则且没有被引用就可以更改链名
[root@study02 ~]# iptables -t filter -E IN_public OUT_public
[root@study02 ~]# iptables -t filter -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUT_public (0 references) #修改后的链名
target     prot opt source               destination  

修改链规则

#修改链的默认规则
[root@study02 ~]# iptables -F
[root@study02 ~]# iptables -X
[root@study02 ~]# iptables -t filter -P FORWARD DROP #修改链默认规则
[root@study02 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination     

#删除某个链的规则
[root@study02 ~]# iptables -t filter -L --line-numbers 
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
...        
7    FORWARD_OUT_ZONES  all  --  anywhere             anywhere            
8    DROP       all  --  anywhere             anywhere             ctstate INVALID
9    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited  #删除第9条规则
[root@study02 ~]# iptables -t filter -D FORWARD 9 #删除FORWARD链第9条规则
[root@study02 ~]# iptables -t filter -L --line-numbers
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
......    
6    FORWARD_OUT_ZONES_SOURCE  all  --  anywhere             anywhere            
7    FORWARD_OUT_ZONES  all  --  anywhere             anywhere            
8    DROP       all  --  anywhere             anywhere             ctstate INVALID

增加基本链规则管理

#在INPUT链上添加一条规则,任何地址都能访问本机,本机IP:10.10.1.109
[root@study02 ~]# iptables -F #清空规则
[root@study02 ~]# iptables -X #清空自定义链
[root@study02 ~]# iptables -t filter -A INPUT -s 0.0.0.0/0 -d 10.10.1.109 -p tcp -j ACCEPT
[root@study1 ~]# iptables -t filter -L INPUT -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/24           10.10.1.109   
# -s: 源地址,可以省略.
# -d: 目标地址
# -P: 报文类型
# -j: 目标类型


#在OUTPUT链添加一条规则,本机任何响应的TCP报文都放行,本机IP:10.10.1.109
[root@study1 ~]# iptables -t filter -A OUTPUT -s 10.10.1.109 -d 0.0.0.0/0 -p tcp -j ACCEPT
[root@study1 ~]# iptables -t filter -L OUTPUT -n
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  10.10.1.109          0.0.0.0/24   
# -s: 源地址
# -d: 目标地址,可以省略.
# -P: 报文类型
# -j: 目标类型

#本机ssh报文匹配显示示例
[root@study1 ~]# iptables -t filter -L -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  263 16920 ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   23  2488 ACCEPT     tcp  --  *      *       10.10.1.109          0.0.0.0/0  


#修改filter链规则为DROP,测试以上规则是否会放行ssh
[root@study1 ~]# iptables -t filter -P INPUT DROP
[root@study1 ~]# iptables -t filter -P FORWARD DROP
[root@study1 ~]# iptables -t filter -P OUTPUT DROP
[root@study1 ~]# iptables -t filter -L -n -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  369 23176 ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109         

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   83  7916 ACCEPT     tcp  --  *      *       10.10.1.109          0.0.0.0/0   
# 只要是tcp类型的报文依然可以继续访问.
#但是在其他机器是无法ping通
[root@study02 ~]# ping 10.10.1.109 -c 3
PING 10.10.1.109 (10.10.1.109) 56(84) bytes of data.

--- 10.10.1.109 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms
  • 放行ICMP协议
#放行icmp协议报文让其他机器可以ping通
[root@study1 ~]# iptables -t filter -A INPUT -s 0.0.0.0/0 -d 10.10.1.109 -p icmp -j ACCEPT
[root@study1 ~]# iptables -t filter -A OUTPUT -s 10.10.1.109 -d 0.0.0.0/0 -p icmp -j ACCEPT
[root@study1 ~]# iptables -t filter -L -n -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  845 51080 ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109         
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            10.10.1.109         

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  335 29468 ACCEPT     tcp  --  *      *       10.10.1.109          0.0.0.0/0           
    0     0 ACCEPT     icmp --  *      *       10.10.1.109          0.0.0.0/0   
#在其他机器上ping测试
[root@study02 ~]# ping 10.10.1.109 -c 3
PING 10.10.1.109 (10.10.1.109) 56(84) bytes of data.
64 bytes from 10.10.1.109: icmp_seq=1 ttl=64 time=0.231 ms
64 bytes from 10.10.1.109: icmp_seq=2 ttl=64 time=0.169 ms
64 bytes from 10.10.1.109: icmp_seq=3 ttl=64 time=0.161 ms

--- 10.10.1.109 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.161/0.187/0.231/0.031 ms
  • 放行eth0接口报文流入流出
#查看规则序号
[root@study1 ~]#  iptables -t filter -L --line-numbers
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  anywhere             study1              
2    ACCEPT     icmp --  anywhere             study1              

Chain FORWARD (policy DROP)
num  target     prot opt source               destination         

Chain OUTPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  study1               anywhere            
2    ACCEPT     icmp --  study1               anywhere         
#删除规则   
[root@study1 ~]# iptables -t filter -D INPUT 2
[root@study1 ~]# iptables -t filter -D OUTPUT 2
#添加规则
[root@study1 ~]# iptables -t filter -A INPUT -s 0.0.0.0/0 -d 10.10.1.109 -i eth0 -j ACCEPT #-i表示流入
[root@study1 ~]# iptables -t filter -A OUTPUT -s 10.10.1.109 -d 0.0.0.0/0 -o eth0 -j ACCEPT  #-o表示流出
[root@study1 ~]# iptables -t filter -L -n -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1727  107K ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109         
    0     0 ACCEPT     all  --  eth0   *       0.0.0.0/0            10.10.1.109         

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  882 75676 ACCEPT     tcp  --  *      *       10.10.1.109          0.0.0.0/0           
    0     0 ACCEPT     all  --  *      eth0    10.10.1.109          0.0.0.0/0 

扩展匹配-链规则管理

扩展匹配所需要的扩展模块:/usr/lib64/xtables/,大写的扩展模块是TARGET;小写的模块可以做匹配条件.

#扩展匹配方式放行本机ssh服务报文,以插入的方式修改第一条规则
[root@study1 ~]# iptables -t filter -I INPUT -s 0.0.0.0/0 -d 10.10.1.109 -p tcp --dport 22 -j ACCEPT
[root@study1 ~]# iptables -t filter -I OUTPUT -s 10.10.1.109 -d 0.0.0.0/0 -p tcp --sport 22 -j ACCEPT
#INPUT放行规则是没有办法确定sport的端口所以可以省略sport
#OUTPUT放行规则是没有办法确定dport的端口所以可以省略dport

[root@study1 ~]# iptables -t filter -L  -n -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  401 24896 ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109          tcp dpt:22
 2010  124K ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109         
    3   228 ACCEPT     all  --  eth0   *       0.0.0.0/0            10.10.1.109         

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   51  4972 ACCEPT     tcp  --  *      *       10.10.1.109          0.0.0.0/0            tcp spt:22
 1232  112K ACCEPT     tcp  --  *      *       10.10.1.109          0.0.0.0/0           
    4   304 ACCEPT     all  --  *      eth0    10.10.1.109          0.0.0.0/0  


#尝试放行httpd服务报文
# 1. study1的iptables规则
[root@study1 ~]# iptables -t filter -L INPUT -n -v
Chain INPUT (policy DROP 6 packets, 759 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  902 53044 ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109          tcp dpt:22
 7352   19M ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109    #这条规则是允许任何地址访问本机    
   32  5974 ACCEPT     all  --  eth0   *       0.0.0.0/0            10.10.1.109      

# 2.在其他机器测试httpd服务是否能访问
[root@study02 ~]# curl 10.10.1.109 -I  #因此测试study2机器可以正常访问
HTTP/1.1 403 Forbidden
Date: Tue, 11 Feb 2020 10:28:46 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8

# 3. 删除INPUT与OUTPUT第2,3 条规则尝试能否访问
[root@study1 ~]# iptables -t filter -D INPUT 2
[root@study1 ~]# iptables -t filter -D OUTPUT 2
[root@study1 ~]# iptables -t filter -L INPUT -n -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1056 62208 ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109          tcp dpt:22
   38  6736 ACCEPT     all  --  eth0   *       0.0.0.0/0            10.10.1.109  
# 访问测试
[root@study02 ~]# curl 10.10.1.109 -I
curl: (7) Failed connect to 10.10.1.109:80; 连接超时

# 4. 使用扩展匹配放行httpd服务的报文
[root@study1 ~]# iptables -t filter -A INPUT -s 0.0.0.0/0 -d 10.10.1.109 -p tcp --dport 80 -j ACCEPT
[root@study1 ~]# iptables -t filter -A OUTPUT -s 10.10.1.109 -d 0.0.0.0/0 -p tcp --sport 80 -j ACCEPT
[root@study1 ~]# iptables -t filter -L -n -v 
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1711  102K ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109          tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109          tcp dpt:80

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  888 95764 ACCEPT     tcp  --  *      *       10.10.1.109          0.0.0.0/0            tcp spt:22
    0     0 ACCEPT     tcp  --  *      *       10.10.1.109          0.0.0.0/0            tcp spt:80
[root@study02 ~]# curl 10.10.1.109 -I
HTTP/1.1 403 Forbidden
Date: Tue, 11 Feb 2020 11:49:31 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8
  • 扩展匹配方式放行ICMP报文
#例如放行本机ICMP报文出去
# 1.本机ping 10.10.1.110主机
[root@study1 ~]# ping 10.10.1.110 -c 2
PING 10.10.1.110 (10.10.1.110) 56(84) bytes of data.
ping: sendmsg: 不允许的操作
ping: sendmsg: 不允许的操作
# 2.放行本机ICMP报文
[root@study1 ~]# iptables -t filter -A OUTPUT -s 10.10.1.109 -d 0.0.0.0/0 -p icmp --icmp-type 8 -j ACCEPT
[root@study1 ~]# iptables -t filter -A INPUT -s 0.0.0.0/0 -d 10.10.1.109 -p icmp --icmp-type 0 -j ACCEPT
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 2662  158K ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109          tcp dpt:22
   32  3458 ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.109          tcp dpt:80
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            10.10.1.109          icmptype 0
[root@study1 ~]# iptables -t filter -L OUTPUT -n -v
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1271  130K ACCEPT     tcp  --  *      *       10.10.1.109          0.0.0.0/0            tcp spt:22
   30  8366 ACCEPT     tcp  --  *      *       10.10.1.109          0.0.0.0/0            tcp spt:80
    0     0 ACCEPT     icmp --  *      *       10.10.1.109          0.0.0.0/0            icmptype 8
# 3.本机ping测试
[root@study1 ~]# ping -c 3 10.10.1.110
PING 10.10.1.110 (10.10.1.110) 56(84) bytes of data.
64 bytes from 10.10.1.110: icmp_seq=1 ttl=64 time=0.235 ms
64 bytes from 10.10.1.110: icmp_seq=2 ttl=64 time=0.169 ms
64 bytes from 10.10.1.110: icmp_seq=3 ttl=64 time=0.200 ms

--- 10.10.1.110 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.169/0.201/0.235/0.029 ms
# 4.其他机器ping本机
[root@template ~]# ping 10.10.1.109
PING 10.10.1.109 (10.10.1.109) 56(84) bytes of data.
^C
--- 10.10.1.109 ping statistics ---
30 packets transmitted, 0 received, 100% packet loss, time 28999ms
# 5.放行本机icmp报文出去
[root@study1 ~]# iptables -t filter -A INPUT -s 0.0.0.0/0 -d 10.10.1.109 -p icmp --icmp-type 8 -j ACCEPT
[root@study1 ~]# iptables -t filter -A OUTPUT -s 10.10.1.109 -d 0.0.0.0/0 -p icmp --icmp-type 0 -j ACCEPT
[root@study3 ~]# ping -c3 10.10.1.109
PING 10.10.1.109 (10.10.1.109) 56(84) bytes of data.
64 bytes from 10.10.1.109: icmp_seq=1 ttl=64 time=0.185 ms
64 bytes from 10.10.1.109: icmp_seq=2 ttl=64 time=0.178 ms
64 bytes from 10.10.1.109: icmp_seq=3 ttl=64 time=0.156 ms

--- 10.10.1.109 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.156/0.173/0.185/0.012 ms
#此时双方的主机都能ping通
  • ICMP报文类型

最后修改:2020 年 02 月 11 日 08 : 22 PM

发表评论