多方案限制Linux服务器登录终端IP
服务器在工作环境,个人VPS使用中,如果使用账号密码验证方式登录,这种登录方式存在一定的安全风险,即知道服务器IP、账号密码即可登录服务器,更严重的如果密码设置较简单,在知道IP和账号的情况下,可以对密码进行暴破,且Linux服务器是有默认账户的。解决这一问题,可以对可登录服务器的IP进行限制,限制最大登录错误次数、登录失败锁定策略等,今天针对IP限制进行细究。
方式一:hosts.allow&hosts.deny配置文件限定
这是最常用的方式,通过在这两个配置文件做限定,可以对多种远程登录(ssh、telnet等)的方式进行IP限定。
场景一:白名单方式----除特定IP外其余全部禁止登录
配置之前,我的pc可以登陆到服务器:PCIP:192.168.2.1

在hosts.allow文件中配置允许登录的IP--这里特意设定为2.2,即非PCIP

在hosts.deny文件中配置其余全部禁止登录

当远程连接断开时,将无法再次连接:

场景二:黑名单限制--除了某IP之外其余IP可以登录
hosts.deny配置文件中,对黑名单IP进行限定即可

推出后同样,我的PC将不能再登录

更改IP为192.168.2.2

可以连接:

如果出现连接非常慢的情况,进入sshd_config配置文件,将反向DNS解析关掉,连接速度飞起!

方式二:sshd_config配置文件限定
但是部分系统没有这两个配置文件,就可以切换其它方案,比如今天遇到的麒麟系统就没有这两个配置文件……

这种情况,在ssh配置文件 sshd_config文件中进行配置:
最后一行进行登录IP的限定:

其它配置:
AllowUsers:允许某个用户、某些用户能登录,其它都不能登录
AllowGroups:允许某个组、某些组能登录,其它都不能登录
DenyUsers:拒绝某个用户、某些用户登录,其它都能登录
DenyGroups:拒绝某个组、某些组登录,其它都能登录如:
AllowUsers lisi test@192.168.2.130 /
/允许所有网段的lisi用户和192.168.2.130的test用户通过SSH登录系统,其他的都不允许。
AllowUsers test@192.168.2.*
//允许192.168.2.0网段的test用户通过SSH登录系统。
DenyUsers zhangsan lisi
//拒绝zhangsan、lisi用户通过SSH登录系统。
刚刚改过的192.168.2.2则无法登录

修改IP后可以:

方式三:通过防火墙限定
场景一:白名单:
允许192.168.1.0网段登录
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
//source address也可以为单个IP
firewall-cmd --reload //重启防火墙

查看当前防火墙策略:
firewall-cmd --zone=public --list-rich-rules

但是这里要验证登录是不生效的,因为通过这种防火墙的方式的时候,要首先让防火墙默认拒绝所所有ssh连接---这条在执行防火墙重启之前配置
firewall-cmd --permanent --remove-service=ssh

测试即无法连接:

场景二:黑名单:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" reject'
删除规则:
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
注!!!!
①删除后需要重启一下防火墙
firewall-cmd --reload
②如果不再使用这种防火墙的方式限定ssh的登录,记得把之前做的默认所有ssh拒绝连接配置清除掉
即:
firewall-cmd --permanent --add-service=ssh
再重启下防火墙:
firewall-cmd --reload
才可以继续使用ssh登录
浙公网安备 33010602011771号