一.第一种方法
通过修改TCP Wrappers服务访问控制来实现限制登录Linux
1.这里以sshd服务为例,配置完成后,只允许配置允许的IP才能ssh连接本机服务器,其他IP拒绝判断某一个基于tcp协议的服务是否支持tcp_wrapper,要先判断它是否支持libwrap库
一般支持tcp_wrapper的服务有ssh、ftp、nfs、telnet等服务。也不一定全部都支持。只有查询到服务支持libwrap库,才可以被tcp_wrapper控制,才可以配置tcp_wrapper,否则配置了也不会生效。
ldd查询服务是否支持libwrap,什么都没显示的话就是不支持
ldd `which sshd` |grep libwrap #需要先查询是否安装了libwrap库,如果未安装则如下方式无法使用
vim /etc/hosts.allow #先编辑hosts.allow配置文件
sshd:192.168.186.150 #添加允许的IP远程登录本机服务器,如果有多个不同网段的IP,可以以逗号隔开连续写
或
sshd:192.168.2.0 #添加允许的2.0网段的IP远程登录本机服务器
vim /etc/hosts.deny #编辑hosts.deny配置文件
sshd:ALL #拒绝所有所有IP远程登录本机服务器
不用重启,以上配置,配置完成后立即生效
验证结果:
如下是192.168.186.128服务器的配置
说明:我这里只允许192.168.186.150这个IP能登录服务器(其他IP都无法登录服务器)192.168.186.128。说明:其他IP都无法登录服务器192.168.186.128。
二.修改sshd_config配置文件来实现限制登录Linux
ldd `which sshd` |grep libwrap #查询没有安装,所以采用如下的配置
#这里只允许如下几个IP才能登录服务器,其他的IP都无法登录
vim /etc/ssh/sshd_config
ALLowUsers *@10.50.75.253
ALLowUsers *@172.61.3.254
ALLowUsers *@172.61.6.254
ALLowUsers *@172.53.7.88 #添加允许登录的IP,*代表任意用户
#DenyUsers *@192.168.2.1 #拒绝登录的IP,与ALLowUsers二选一进行配置就可以了,*代表任意用户
systemctl restart sshd #重启sshd服务