有时候为了服务器的安全考虑,我们可以在服务器上做限制,禁止其他ip地址连接服务器。
方法一:修改ssh配置文件
其实做这个操作很简单,只需要改/etc/ssh/sshd_config配置文件,再最后一行添加下面语句即可
allowusers root@49.4.151.24 ##注意此处添加的ip地址应为内网出口的公网ip地址,而不是局域网的内网ip allowusers root@1.119.144.11 ##可以添加多行,表示容许多个ip访问服务器
修改完毕后重启ssh
/etc/init.d/sshd restart
测试
可以新建个用户,然后使用新用户登录,看能否登录上;还可以让朋友登录测试
如果测试过程中有问题,可以看登录日志tail -f /var/log/secure
下面日志中就可以看出来,我设置的内网ip并没有出现在日志中,而是一个公网ip,由此可以看出,配置文件识别的是公网ip(此也可以看出来自己的公网ip地址),修改配置文件
中的内网ip为公网ip后,测试通过。
方法二:修改两个配置文件/etc/hosts.allow和/etc/hosts.deny
/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。 比如SSH服务,我们通常只对管理员开放,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的IP段;
首先编辑允许连接服务器的ip,即可以放行的ip
Vim /etc/hosts.allow
添加一行
sshd:49.4.151.24:allow #此处ip仍然为局域网出口的公网ip
如果有多台服务器,比如我们有多台云服务器,那么这个允许的ip地址可能不一样,可以在登录服务器上会有ip地址提示,如下
然后编辑禁止连接服务器的ip地址
vim /etc/hosts.deny
输入(表示除了上面允许的,其他的ip 都拒绝登陆ssh)
sshd:ALL
编辑完上面两个文件后,无需重启任何配置文件,即时生效
上面两种方法对比的区别在于第一种方法限制范围更强,不仅限制了ip,而且用户不对,也登录不了服务器;第二种方法只限制了ip地址,只要密码正确,用户名不同也可以登录,这种适用于局域网中有多人需要登录服务器的需求。
注意:/etc/hosts.deny中的设置会影响ansible远程管理,如果需要ansible管理,可以将ansible所在的服务器地址(如果使用的私网ip,那么添加私网ip)添加到/etc/hosts.allow中
sshd:10.172.288.60:allow