《SUSE Linux 中SSH安全加固》
- 1 说明
- 2 安全加固
- 2.1 更改 ssh 默认端口
- 2.2 限制 ROOT 远程登陆
- 2.3 修改默认登录时间
- 2.4 升级旧版本
- 2.5 当用户处于非活动时断线
- 2.6 修改加密协议版本
- 2.7 限制 IP 登录
- 2.8 允许或禁止指定用户和组登录
- 2.9 限制监听 IP
- 2.10 最后修改配置文件的属性,防止非授权用户修改配置文件
1 说明
在用 ssh 登陆远程主机 (suse linux 系统) 的时候,出现下列问题:
ssh_exchange_identification: Connection closed by remote host,如图:
这个问题是因 SSH 的安全限制造成的。虽然很好解决,但是需要去机房现场 (因安全规定没有开 VNC)。具体解决办法:修改 /etc/hosts.allow 文件,加入 sshd:ALL:ALLOW,然后 wq 保存并重启 sshd 服务即可。
2 安全加固
注:以下配置项都是在 /etc/ssh/sshd_config 文件中修改
2.1 更改 ssh 默认端口
在 /etc/ssh/sshd_config 文件中查找下面这样的行:
Port 22
将 22 端口更改成其它端口,如:10326 。
保存后,重启 SSHD 服务:service sshd restart
建议改成 10000 以上。这样别人扫描到端口的机率会大大下降。
2.2 限制 ROOT 远程登陆
在 /etc/ssh/sshd_config 文件中查找下面这样的行:
PermitRootLogin yes
将 yes 改为 no.
保存后,重启 SSHD 服务:service sshd restart
当你启用这一选项后,你只能用普通用户登录,然后再用 su 切换到 root 帐户。
2.3 修改默认登录时间
在 /etc/ssh/sshd_config 文件中查找下面这样的行:
LoginGraceTime 2m
当你连接到 SSH 后,默认是提供 2 分钟的时间让你输入帐户和密码来进行登录,你可以修改这个时间为 1 分钟或 30 秒。
2.4 升级旧版本
升级陈旧的 Openssh 版本,因为早期的 Openssh 版本,存在安全漏洞。对于一个新配置的 Openssh 服务器来说使用最新稳定版本是最明智的选择。可以在其官网 http://www.openssh.com 下载源代码进行编译。
2.5 当用户处于非活动时断线
在 /etc/ssh/sshd_config 文件中查找下面这样的行:
ClientAliveCountMax 3
ClientAliveInterval 0
进行如下修改:
ClientAliveInterval 600
ClientAliveCountMax 0
ClientAliveCountMax 600:当用户在 10 分钟内处于非活动状态的话,就自动断线。
ClientAliveCountMax:默认为 3 ,表示当 SSH 没有任何活动时, SSH Server 会发送三次检查是否在线 (checkalive) 的消息。
ClientAliveCountMax:默认为 0,表示当过了几秒后,SSH Server 会发送消息要求用户响应 (0 的话表示永远不发送),否则就断线。
2.6 修改加密协议版本
在 /etc/ssh/sshd_config 文件中查找下面这样的行:
#Protocol 2,1
默认是 1 和 2 都可以,将其改为 Protocol 2
保存后,重启 SSHD 服务:service sshd restart
与 version 1 不同的是,在 version 2 当中将不再产生 server key 了,所以当 Client 端联机到 Server 端时,两者将藉由 Diffie-Hellman key 的演算方式来产生一个分享的 Key ,之后两者将藉由类似 Blowfish 的演算方式进行同步解密的动作!
2.7 限制 IP 登录
如果你以固定 IP 方式连接你的服务器,那么你可以设置只允许某个特定的 IP 登录服务器。例如我是通过特定堡垒机登录到服务器。设置如下:
编辑 /etc/hosts.allow
vi /etc/hosts.allow
例如只允许 124.45.67.52 登录
sshd:124.45.67.52:ALLOW
保存后,重启 SSHD 服务:service sshd restart
2.8 允许或禁止指定用户和组登录
仅允许指定用户和组登录
AllowUsers john jason 指定用户
AllowGroups sysadmin dba 指定组
禁止指定的用户或组登录
DenyUsers corn apath 指定用户
DenyGroups devers qa 指定组
保存后,重启 SSHD 服务:service sshd restart
注:Allow 和 Deny 可以组合使用,它们的处理顺序是:DenyUsers, AllowUsers, DenyGroups, AllowGroups
2.9 限制监听 IP
如果你的服务器上有多个网卡及 IP ,那么你可以限制某些 IP 不监听 SSH,只允许通过某些 IP 来登录。
比如你有四个网卡
eth0 – 192.168.10.200
eth1 – 192.168.10.201
eth2 – 192.168.10.202
eth3 – 192.168.10.203
你只想让用户通过 200, 202 这两个 IP 来登录,那么做以下设定
在 /etc/ssh/sshd_config 文件中查找下面这样的行:
#ListenAddress 0.0.0.0,进行如下修改
ListenAddress 192.168.10.200
ListenAddress 192.168.10.202
2.10 最后修改配置文件的属性,防止非授权用户修改配置文件
#chmod 644 /etc/ssh/sshd_config
另外注意 /etc/ssh 下的文件不能设为 777 的权限,因为 ssh 本来就是一个安全登陆的模式,如果设成 777(所有人可以任意访问修改),那还有什么安全性可言呢?