• 【Firewall】服务器访问限制白名单


    方法一、主机限制

    [root@slave2 ~]# ssh -V
    OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
    [root@slave2 ~]# cat /etc/centos-release
    CentOS Linux release 7.3.1611 (Core)
    
    • 1
    • 2
    • 3
    • 4

    修改配置文件/etc/hosts.allow

    #在配置文件末新增参数,具体IP按需调整
    [root@slave1 opt]# vi /etc/hosts.allow
    #允许单个IP访问
    sshd:192.168.124.64:allow
    #允许IP段访问
    sshd:192.168.124.*:allow
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    修改配置文件/etc/hosts.deny

    #在配置文件末新增参数
    [root@slave1 opt]# vim /etc/hosts.deny
    #拒绝除hosts.allow里指定IP之外的所有ssh访问
    sshd:ALL
    
    • 1
    • 2
    • 3
    • 4

    重启服务

    #重启ssh服务
    [root@slave1 opt]# systemctl restart sshd
    #限制访问前的状态
    #会有提示输入密码的选项
    [root@slave2 ~]# ssh 192.168.124.82 -p 8017
    root@192.168.124.82's password:
    #限制访问后的状态:
    #远程ssh端口依然是通的
    [root@slave2 ~]# telnet 192.168.124.82 8017
    Trying 192.168.124.82...
    Connected to 192.168.124.82.
    Escape character is '^]'.
    ^]
    telnet> ^CConnection closed.
    #但是无法通过ssh访问
    [root@slave2 ~]# ssh 192.168.124.82 -p 8017
    ssh_exchange_identification: read: Connection reset by peer
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    方法二、sshd_config限制

    vi /etc/ssh/sshd_config
    新增配置
    #仅允许192.168.124.64主机通过root用户访问,AllowUsers root@ip1,ip2,
    AllowUsers root@192.168.124.64
    #重启sshd
    systemctl restart sshd
    
    #多用户情况格式
    AllowUsers user1@ip1,ip2 user2@ip3,ip4
    ------------------------------------------------
    拒绝指定用户进行登录(黑名单)# 拒绝 zhangsan、lisi 帐户通过 SSH 登录系统
    DenyUsers   zhangsan lisi    #Linux系统账户        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    方法三、防火墙限制

    firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.124.64/32" port protocol="tcp" port="8017" accept"
    firewall-cmd --permanent --zone=public --remove-service=ssh
    firewall-cmd --reload
    
    • 1
    • 2
    • 3

    firewall常用命令

    开放防火墙端口

    #开放防火墙端口
    firewall-cmd --permanent --zone=public --add-port=7001-7004/tcp
    firewall-cmd --permanent --zone=public --add-port=9740/tcp
    #加载立即生效
    firewall-cmd --reload
    #查看当前开放端口
    firewall-cmd --list-ports
    #删除防火墙端口
    firewall-cmd --permanent --zone=public --remove-port=9740/tcp 
    –permanent代表永久设置
    -reload 代表使用永久设置立马生效。
    –zone代表设置的区域
    不写就是默认区域。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    允许指定ip的所有流量

    firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.124.64/32" accept" # 表示允许来自192.168.124.64的所有流量
    
    • 1

    允许指定ip的指定协议

    firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.124.64/32" protocol value="icmp" accept" # 允许192.168.124.64主机的icmp协议,即允许192.168.124.64主机ping
    
    • 1

    允许指定ip访问指定服务

    firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.124.64/32" service name="ssh" accept" # 允许192.168.124.64主机访问ssh服务
    
    • 1

    允许指定ip访问指定端口

    firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.124.64/32" port protocol="tcp" port="22" accept" # 允许192.168.124.64主机访问22端口
    
    • 1

    允许指定网段访问指定端口

    firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.1/24" port protocol="tcp" port="22" accept" # 允许192.168.0.x主机访问22端口
    
    • 1

    源自IP或子网的流量导向指定的区域

    firewall-cmd --permanent --zone=public --add-source=192.168.0.0/24
    firewall-cmd --permanent --zone=public --remove-source=192.168.0.0/24
    
    • 1
    • 2

    禁止指定ip/网段,在上面各个命令中,将 accept 设置为 reject表示拒绝

    防火墙的区域

    查看所有的域:firewall-cmd --get-zones
    查看active区域信息: firewall-cmd --get-active-zones
    查看指定网卡所属区域: firewall-cmd --get-zone-of-interface=eno1
    查看默认区域:firewall-cmd --get-default-zone
    修改默认区域:firewall-cmd --set-default-zone=internal
    查看特定区域的所有配置:firewall-cmd --zone=public --list-all
    添加ssh服务:firewall-cmd --permanent --zone=public --add-service=ssh
    删除ssh服务:firewall-cmd --permanent --zone=public --remove-service=ssh
    允许icmp协议:firewall-cmd --permanent --zone=public --add-protocol=icmp
    取消icmp协议:firewall-cmd --permanent --zone=public --remove-protocol=icmp
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    使用PostGIS对数据做拓扑抽稀
    SQL报错:Out of range value for column ‘fileLength‘ at row 1
    声网首席科学家钟声:感知实时互联网
    Django——模板层、模型层
    操作系统·处理机调度死锁
    Matlab save colormap
    wires hark抓包内容解析
    vs code 离线安装 CodeLLDB 包[Acquiring CodeLLDB platform package]
    【Java从入门到精通 07】:面向对象编程(基础部分)
    YYGH-9-预约下单
  • 原文地址:https://blog.csdn.net/qq_51417587/article/details/138181126