多方案限制Linux服务器登录终端IP

服务器在工作环境,个人VPS使用中,如果使用账号密码验证方式登录,这种登录方式存在一定的安全风险,即知道服务器IP、账号密码即可登录服务器,更严重的如果密码设置较简单,在知道IP和账号的情况下,可以对密码进行暴破,且Linux服务器是有默认账户的。解决这一问题,可以对可登录服务器的IP进行限制,限制最大登录错误次数、登录失败锁定策略等,今天针对IP限制进行细究。

方式一:hosts.allow&hosts.deny配置文件限定

这是最常用的方式,通过在这两个配置文件做限定,可以对多种远程登录(ssh、telnet等)的方式进行IP限定。

场景一:白名单方式----除特定IP外其余全部禁止登录

配置之前,我的pc可以登陆到服务器:PCIP:192.168.2.1

image-20230807113206448

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

image-20230807113239256

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

image-20230807113324400

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

image-20230807113350888

场景二:黑名单限制--除了某IP之外其余IP可以登录

hosts.deny配置文件中,对黑名单IP进行限定即可

image-20230807113443575

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

image-20230807113505406

更改IP为192.168.2.2

image-20230807113533066

可以连接:

image-20230807113555455

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

image-20230807113628277

方式二:sshd_config配置文件限定

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

image-20230807113659773

这种情况,在ssh配置文件 sshd_config文件中进行配置:

最后一行进行登录IP的限定:

image-20230807113729320

其它配置: 
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则无法登录

image-20230807113841335

修改IP后可以:

image-20230807114334398

方式三:通过防火墙限定

场景一:白名单:

允许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  //重启防火墙

image-20230807114436206

查看当前防火墙策略:

firewall-cmd --zone=public --list-rich-rules

image-20230807114508582

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

firewall-cmd --permanent --remove-service=ssh

image-20230807114613072

测试即无法连接:

image-20230807114632903

场景二:黑名单:

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登录
posted @ 2023-08-07 11:48  寻梦99  阅读(2986)  评论(0)    收藏  举报