Linux通过ssh限制IP登录-指定或禁止用户登录,加黑名单,白名单
#方法一:只允许或限制指定用户登录(黑白名单)
##1.只允许指定用户进行登录(白名单):
# 允许 IP 192.168.1.1 登录root 通过帐户登录系统。
#1.打开/etc/ssh/sshd_config配置文件
vi /etc/ssh/sshd_config
#2.在 /etc/ssh/sshd_config 配置文件中设置 AllowUsers 选项,
AllowUsers root@192.168.1.1
#3.重启SSH服务
systemctl restart sshd
##2.只拒绝指定用户进行登录(黑名单):
# 拒绝 IP 192.168.1.10 登录root通过帐户登录系统。
#1.打开/etc/ssh/sshd_config配置文件
vi /etc/ssh/sshd_config
#2.在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,
DenyUsers root@192.168.1.10 #Linux系统账户
#3.重启SSH服务
systemctl restart sshd
#方法二:允许指定段登陆,或禁止指定段登陆
##1.允许192.168.200.0段的IP登录
#允许 192.168.200.0/24这个段的 IP 地址的 ssh 登录
echo "sshd:192.168.200.0/24:allow" >>/etc/hosts.allow
##2.禁止所有的其他IP段的IP登录
#禁止所有的IP段登录机器
echo "sshd:all:deny" >>/etc/hosts.deny
##3.只允许192.168.200.0段的IP登录,其他所有IP段无法登陆
原理:hosts.allow 和hosts.deny 两个文件同时设置规则的时候,hosts.allow 文件中的规则优先级高,在hosts.allow 文件中允许192.168.200.0/24这个段的 IP 地址的 ssh 登录,hosts.deny文件中禁止所有IP登录,按照此方法设置后服务器只允许 192.168.200.0/24这个段的 IP 地址的 ssh 登录,其它的IP 都会拒绝。
#1.允许192.168.200.0段的IP登录
echo "sshd:192.168.200.0/24:allow" >>/etc/hosts.allow
#2.禁止所有的其他IP段的IP登录
echo "sshd:all:deny" >>/etc/hosts.deny
#方法三:通过防火墙限制或允许某个IP或者某个IP段登陆
##1.限制或允许192.168.100.10登录
#1.允许192.168.100.10登录ssh
firewall-cmd--permanent --add-rich-rule 'rulefamily=ipv4 source address=192.168.100.10 service name=ssh accept'
#2.拒绝192.168.200.0/24登录ssh
firewall-cmd--permanent --add-rich-rule 'rulefamily=ipv4 source address=192.168.100.10 service name=ssh reject'
firewall-cmd --reload
##2.限制或允许192.168.100.0/24 IP段登录
1.允许192.168.200.0/24登录ssh
firewall-cmd--permanent --add-rich-rule 'rulefamily=ipv4 source address=192.168.200.0/24 service name=ssh accept'
2.拒绝192.168.200.0/24登录ssh
firewall-cmd--permanent --add-rich-rule 'rulefamily=ipv4 source address=192.168.200.0/24 service name=ssh reject'
firewall-cmd --reload