• 记一次iptables配置(REJECT --reject-with icmp-host-prohibited)


    目的:需要主机A能访问主机B,主机A上telnet  主机B 65005端口,返回如下:

    RBTGW-CH121-b:~ # telnet  192.168.90.25 65005

    Trying 192.168.90.25...

    telnet: connect to address 192.168.90.25: No route to host

    查明原因为主机B开启了iptables防火墙,开启对应端口允许访问规则即可,记录本文主要原因是新增放通规则时用的iptables -A,新规则追加到了(A INPUT -j REJECT --reject-with icmp-host-prohibited)这条规则至下,导致65005端口依然无法被访问,查明原因做次记录。

    新增规则:允许所有ip能访问本机的65005端口

    # 新增规则(-I表示插入在链的第一位置,-A 表示追加到链的末尾位置,防火墙规则是从上往下读取)
    [root@data ~]# iptables -I INPUT -p tcp --dport 65005 -j ACCEPT
    
    # 保存规则到默认文件/etc/sysconfig/iptables
    
    [root@data ~]# service iptables save
    # 重启
    [root@data ~]# service iptables restart

      

    查看当前iptables保存的配置

      特别说明:这里需要注意,如果上面用的iptables -A的方式追加规则,新规则虽然是放通端口,但规则却在-A INPUT -j REJECT --reject-with icmp-host-prohibited之后,防火墙规则读取是由上至下,当读取到该规则后,65005这条新增规则就不会被读取,导致65005依然不能被访问,所以要么使用iptables -I插入到最上面(也可以指定序号),要么通过手动添加规则到该规则前面即可(vim /etc/sysconfig/iptables )

      -A INPUT -p tcp -m tcp --dport 65005 -j ACCEPT # 表示刚新增的规则,此时已允许其他主机访问该端口

      -A INPUT -j REJECT --reject-with icmp-host-prohibited  # 这行是已拒绝其他端口的命令,如果我们将新插入的开放端口在放在这行命令之后的情况下,后面的配置开放的端口是不会被启用的。

    
    
    [root@data ~]# vim /etc/sysconfig/iptables
    
    # Generated by iptables-save v1.4.7 on Tue Mar  9 16:14:49 2021
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [1430:101042]
    -A INPUT -p tcp -m tcp --dport 65005 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 53361 -j ACCEPT
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT
    # Completed on Tue Mar  9 16:14:49 2021
    
    

      

    查看当前规则(蓝色为新增)

    [root@data ~]# service iptables status
    表格:filter
    Chain INPUT (policy ACCEPT)
    num  target     prot opt source               destination    
         
    1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:65005
    2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:53361 
    3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
    4    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    5    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
    7    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
    
    Chain FORWARD (policy ACCEPT)
    num  target     prot opt source               destination         
    1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
    
    Chain OUTPUT (policy ACCEPT)
    num  target     prot opt source               destination  
    未至精疲力尽,不要怨天尤人。昨日因,今日果。今日为,明日果也!
  • 相关阅读:
    laravel5.1框架简介及安装
    数据结构之队列定义及基本操作实现
    PHP之闭包详解
    数据结构之栈定义及基本操作实现
    PHP之MVC微型框架简单搭建
    对web应用中单一入口模式的理解及php实现
    php面向对象编程学习之高级特性
    数据结构之链表定义及基本操作实现
    数据结构之数组定义及基本操作
    感悟
  • 原文地址:https://www.cnblogs.com/ccit/p/14506871.html
Copyright © 2020-2023  润新知