在绝大部分的 Linux 服务器上都使用 OpenSSH 作为 SSH server,所以这篇文章只针对 OpenSSH。其实这些技巧都是很基础的,但如果你能好好使用它们的话,一定程度上确实可以有效提升 SSH 的安全性.
#以下配置项都是在 /etc/ssh/sshd_config 文件中修改。
PermitRootLogin no
当你启用这一选项后,你只能用普通用户登录,然后再用 su 或 sudo 切换到 root 帐户。
指定用户
AllowUsers ramesh john jason
指定组
AllowGroups sysadmin dba
指定用户
DenyUsers cvs apache jane
指定组
DenyGroups developers qa
注:Allow 和 Deny 可以组合使用,它们的处理顺序是:DenyUsers, AllowUsers, DenyGroups, AllowGroups
把 SSH 监听端口改为 222
Port 222
当你连接到 SSH 后,默认是提供 2 分钟的时间让你输入帐户和密码来进行登录,你可以修改这个时间为 1 分钟或 30 秒。
LoginGraceTime 1m
如果你的服务器上有多个网卡及 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 来登录,那么做以下设定
ListenAddress 192.168.10.200
ListenAddress 192.168.10.202
当用户在 10 分钟内处于非活动状态的话,就自动断线。
ClientAliveInterval 600
ClientAliveCountMax 0
ClientAliveCountMax:默认为 3 ,表示当 SSH 没有任何活动时, SSH Server 会发送三次检查是否在线(checkalive)的消息。
ClientAliveCountMax:默认为 0,表示当过了几秒后,SSH Server 会发送消息要求用户响应(0 的话表示永远不发送),否则就断线。
- 消息来源
23 Responses to 增强 SSH 安全性的 7 条技巧
南 靖男
五月 23rd, 2011 at 2:13 下午
最重要的一条应该是
PasswordAuthentication no
UsePAM no
[Reply]
ivarptr
五月 23rd, 2011 at 2:29 下午
应该还有一个参数:
MaxAuthTries: 密码最多给重试 的次数。
我的服务器的sshd被暴力攻击过,然后主要设置
LoginGraceTime 和 MaxAuthTries 这两个参数解决的。
http://ivarptr.blogspot.com/2011/01/centos-linux-ssh.html
摘抄两段主要的吧:
1、设置登录密码输入的等待时间和最大重试次数
还是修改 /etc/ssh/sshd_config 文件,找到 LoginGraceTime 和 MaxAuthTries 两行,分别设置为 30 和 3,则表示打开ssh连接之后你要在30秒内输入正确的密码否则断开连接,以及密码最多给重试 3 次。
2、平时 ssh 登录尽量避免密码输入方式,应该采用验证钥匙方式登录,如果客户端也是 linux 系统,则这步骤很简单,先 ssh-keygen -C 'yang@home' 创建一个验证钥匙,然后使用 ssh-copy-id somebody@host.domain 把钥匙复制到服务器上,这样以后 ssh 登录就不用每次都输入密码了。
[Reply]
riku Reply:
五月 23rd, 2011 at 3:00 下午
@ivarptr,嗯, 其实最安全的是用 key 方式,禁止密码认证。
[Reply]
羽飞
五月 23rd, 2011 at 3:55 下午
还有一种方法,就是用密钥的方式!!
[Reply]
eog
五月 23rd, 2011 at 3:58 下午
修改默认端口有什么用,nmap扫描下就知道端口号了。
[Reply]
freetstar
五月 23rd, 2011 at 4:19 下午
@eog, 大部分默认都只扫描22的,这样你可以躲过一大部分
[Reply]
eog Reply:
五月 24th, 2011 at 1:04 上午
你先去用次nmap。@freetstar,
[Reply]
freetstar Reply:
五月 24th, 2011 at 9:00 上午
@eog, 我是说大部分扫描攻击默认是针对22的,当然人家想攻击你,直接nmap扫出来你也没办法
[Reply]
ivarptr Reply:
五月 24th, 2011 at 9:14 上午
@eog, 修改端口的话,对于针对1台主机的扫描是徒劳的,不过如果是针对一个网段的某一个端口的扫描,则刚好闪过了。
修改端口对高端的hacker是无效的,不过对于低端的就很有效了,
我发现国内机房不少服务器是windows的,系统里面通常装有Serv-U,有些还装有360和QQ,扫描一个机房所有主机的3389端口通常是这类低端“hacker”的入门方式。
[Reply]
ivarptr Reply:
五月 24th, 2011 at 9:15 上午
@ivarptr, 哦,撞帖了
[Reply]
增强 SSH 安全性的 7 条技巧 - Jeff-Chen.Com
五月 23rd, 2011 at 5:28 下午
[...] [来源|原文] [...]
增强 SSH 安全性的 7 条技巧 « 太阳照常升起
五月 23rd, 2011 at 8:43 下午
[...] [来源|原文] [...]
eua
五月 24th, 2011 at 1:31 下午
学习了。。。
[Reply]
Peter
五月 25th, 2011 at 6:30 下午
fail2ban 密码输错就ban掉IP
portsentry 扫描我的端口就ban掉IP
[Reply]
增强ssh安全性的技巧 | 残忆's blog
五月 26th, 2011 at 12:34 下午
[...] 翻译 整理by me – [...]
zl
五月 27th, 2011 at 3:59 上午
端口都改了的人还会设一个弱密码?
如果没仇没人会针对一台机器爆破的,浪费时间也浪费资源。
[Reply]
17分享 » 增强 SSH 安全性的 7 条技巧
五月 27th, 2011 at 1:13 下午
[...] http://wowubuntu.com/ssh-security.html 发表评论 | Trackback 免费PPTP VPN-GlobalVPN免费PPTP VPN-MyCombi.net VPN [...]
Heiher
五月 28th, 2011 at 10:35 下午
我这里还有一个针对特定用户限制特定网络访问的方法和大家分享一下,https://heiher.info/2171.html
[Reply]
Aron Xu
五月 29th, 2011 at 9:24 上午
其实有时允许root登录才是个好主意。是否 UsePAM 这个没研究过,一直都在用。
[Reply]
增强ssh安全性的技巧 « 细节的力量
五月 31st, 2011 at 10:40 下午
[...] 翻译 整理by me – [...]
wencan
六月 6th, 2011 at 3:31 下午
站内有没有教linux下翻墙的文章
[Reply]
K.K.K
六月 29th, 2011 at 10:52 下午
那个SSH怎么用?
[Reply]
平阳
七月 29th, 2011 at 11:09 上午
呵呵~~ 都挺实用的。可以参考一下。
[Reply]