SSH黑白名单那些事儿

湖蓝几何球体LinkedIn Banner.png
转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


事件背景

最近在做服务器迁移,几个公有云之间颠来倒去的迁移。然后发现了一个问题:就是有一个拿到的所有服务器,同一个环境的一组服务器,都不能通过scp内网相互传数据包。都会这样的报错:

ssh_exchange_identification: read: Connection reset by peer
lost connection

其实这是/etc/hosts.deny和/etc/hosts.allow文件的原因。

/etc/hosts.allow(允许)和/etc/hosts.deny(禁止)这两个文件是tcpd服务器的配置文件。tcpd服务器可以控制外部IP对本机服务的访问。
linux 系统会先检查/etc/hosts.deny规则,再检查/etc/hosts.allow规则,如果有冲突,按/etc/hosts.allow规则处理。

配置/etc/hosts.deny和/etc/hosts.allow这两个黑白名单文件,可以指定允许使用ssh的服务器,在一定程度上防止外网的攻 击,提高服务器的安全性。

如果只是对少数的服务器开启ssh权限,可以在/etc/hosts.deny配置“sshd:all”禁止所有服务器的ssh权限,然后再在/etc/hosts.allow里面配置指定开启ssh权限的服务器IP。

实验演示:

使用test102和test103两台VMware虚拟机做个实验

IPhostname
10.0.0.102test102
10.0.0.103test103

先测试,test102和test103之间是可以正常相互scp传文件的:
在这里插入图片描述

1、首先在test102的/etc/hosts.deny文件配置禁止所有服务器使用ssh权限,重启ssh服务生效(这个登录窗口注意不要关掉!):

[root@test102 log]# echo "sshd:all" >>/etc/hosts.deny
[root@test102 log]# systemctl restart sshd

但是这样子配置,会发现有一个彩蛋:

那就是当重开一个登录窗口,本地也不能通过xshell、CRT远程连接test102这台服务器了!
在这里插入图片描述

查看日志会发现有这个提示:
在这里插入图片描述

所以:在配置ssh黑名单的时候,记得要把自己远程登录服务器的权限放开!
正确配置姿势:

[root@test102 log]# echo "sshd:all" >>/etc/hosts.deny
[root@test102 log]# echo "sshd:10.0.0.1" >>/etc/hosts.allow  #放开宿主机本地xshell远程登录权限
[root@test102 log]# systemctl restart sshd   #重启生效
[root@test102 log]#

完了之后,重开一个test102窗口,发现本地是可以正常连接了:
在这里插入图片描述

这就证明了前面提到的:linux 系统会先检查/etc/hosts.deny规则,再检查/etc/hosts.allow规则,如果有冲突,按/etc/hosts.allow规则处理。就是说虽然在/etc/hosts.deny里面禁止了所有服务器使用ssh的权限,但是在/etc/hosts.allow里指定了ssh权限白名单,就会放开白名单的IP。

2、在test103上向test102服务器scp文件:
在这里插入图片描述

发现会报这样的错:

[root@test103 ~]# scp test103_1 root@10.0.0.102:~/
ssh_exchange_identification: read: Connection reset by peer
lost connection
[root@test103 ~]# 

因为test103现在还在黑名单里面待着。现在去test102上把test103加到ssh白名单:
在这里插入图片描述

添加白名单后,再次测试scp,成功;
在这里插入图片描述

所以:通过/etc/hosts.allow和/etc/hosts.deny可以设置ssh的黑白名单,能够控制一部分的非法访问,提升服务器的安全性。

一不小心,又涨姿势了!

  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值