在绝大部分的 Linux 服务器上都使用 OpenSSH 作为 SSH server,所以这篇文章只针对 OpenSSH。其实这些技巧都是很基础的,但如果你能好好使用它们的话,一定程度上确实可以有效提升 SSH 的安全性.
#以下配置项都是在 /etc/ssh/sshd_config 文件中修改。
1. 禁止 root 登录 当你启用这一选项后,你只能用普通用户登录,然后再用 su 或 sudo 切换到 root 帐户。
2. 仅允许指定用户和组登录
指定用户
指定组
3. 禁止指定的用户或组登录
指定用户
指定组
注:
Allow 和 Deny 可以组合使用,它们的处理顺序是:DenyUsers, AllowUsers, DenyGroups, AllowGroups
4. 修改 SSH 监听端口
把 SSH 监听端口改为 222
5. 修改默认登录时间
当你连接到 SSH 后,默认是提供 2 分钟的时间让你输入帐户和密码来进行登录,你可以修改这个时间为 1 分钟或 30 秒。
6. 限制监听 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
你只想让用户通过 202, 203 这两个 IP 来登录,那么做以下设定
7. 当用户处于非活动时断线
当用户在 10 分钟内处于非活动状态的话,就自动断线。
ClientAliveCountMax:默认为 3 ,表示当 SSH 没有任何活动时, SSH Server 会发送三次检查是否在线(checkalive)的消息。
ClientAliveCountMax:默认为 0,表示当过了几秒后,SSH Server 会发送消息要求用户响应(0 的话表示永远不发送),否则就断线。
#以下配置项都是在 /etc/ssh/sshd_config 文件中修改。
1. 禁止 root 登录
PermitRootLogin no
2. 仅允许指定用户和组登录
AllowUsers ramesh john jason
AllowGroups sysadmin dba
3. 禁止指定的用户或组登录
DenyUsers cvs apache jane
DenyGroups developers qa
4. 修改 SSH 监听端口
Port 222
5. 修改默认登录时间
LoginGraceTime 1m
6. 限制监听 IP
ListenAddress 192.168.10.200
ListenAddress 192.168.10.202
7. 当用户处于非活动时断线
ClientAliveInterval 600
ClientAliveCountMax 0