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

发布于:2024-04-26 ⋅ 阅读:(21) ⋅ 点赞:(0)

方法一、主机限制

[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)

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

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

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

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

重启服务

#重启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

方法二、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系统账户        

方法三、防火墙限制

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

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代表设置的区域
不写就是默认区域。

允许指定ip的所有流量

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

允许指定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

允许指定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服务

允许指定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端口

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

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端口

源自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

禁止指定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