安全设置:了解Linux SSH登录的必要操作
最编程
2024-08-14 12:38:28
...
ssh服务是最常用的远程登录服务,虽然其比telnet安全多,但是也存在一定的安全漏洞。一些不友好的小伙伴们会使用一些不和谐程序对ssh服务进行暴力破解。对ssh服务进行适当的配置可以完全杜绝暴力破解。同时对sshd服务进行优化配置可以加快连接速度,减少耗费带宽。
编辑/etc/ssh/sshd_config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
Port 2222
ListenAddress 0.0 . 0.0
#若禁止外网用户访问,填写内网IP地址(IPV4和IPV6) Protocol 2
#仅使用SSH协议版本 2 会更安全,SSH协议版本 1 有安全问题
PermitRootLogin no #禁止root用户登陆,降低远程登陆的用户权限。 AllowUsers rd #仅允许指定用户和组登录 PubkeyAuthentication yes #使用公钥认证,推荐使用安全高效! PasswordAuthentication no #禁止使用用户名和密码登陆,使用公钥登陆,防止针对用户名和密码的暴力破解。 PermitEmptyPasswords no #不允许空密码登录,这个太危险啦。 UsePAM no # 利用 PAM 管理使用者认证有很多好处,可以记录与管理。 # 所以这里我们建议你使用 UsePAM 且 ChallengeResponseAuthentication 设定为 no # 如果不用LDAP之类的登陆,建议关闭,优化性能。 ChallengeResponseAuthentication no # 允许任何的密码认证!所以,任何 login.conf 规定的认证方式,均可适用! # 但目前我们比较喜欢使用 PAM 模块帮忙管理认证,因此这个选项可以设定为 no 喔! UseDNS no # 一般来说,为了要判断客户端来源是正常合法的,因此会使用 DNS 去反查客户端的主机名 # 不过如果是在内网互连,这项目设定为 no 会让联机达成速度比较快。 GSSAPIAuthentication no #不基于 GSSAPI 的用户认证,关闭,优化性能。 SyslogFacility AUTH #设置在记录来自sshd的消息的时候,是否给出“facility code”。 X11Forwarding no #如果没有使用x11转发最好关闭掉,优化性能。 PrintLastLog no #不打印最后登陆信息,减少恶意登陆者获取的信息量,防止被恶意利用。 TCPKeepAlive yes #保持长连接,加快连接速度,优化性能。 Banner none #不显示系统banner信息,如果开启会在每次登陆时显示系统信息,减少恶意登陆者获取的信息量,防止被恶意利用。 LoginGraceTime 30
#限制用户必须在指定的时限内认证成功,建议设置低,增加暴力破解难度,单位为秒。 MaxAuthTries 3
#最多登录尝试次数,建议设置低一些,加大暴力破解难度。 ClientAliveInterval 300
#服务器端向客户端每 5 分钟发送一次请求消息, 然后客户端响应, 这样就保持长连接了.默认是 0 , 不发送
ClientAliveCountMax 3
#服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开. 默认是 3
AuthorizedKeysFile .ssh/authorized_keys # 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2 。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内 |
使用TCP wrappers仅允许指定的主机连接
如果你想在你的网络上只允许特定的主机才能连接到你的SSH服务,但又不想使用或弄乱你的iptables配置,那这个方法非常有用,你可以使用TCP wrappers。
在/etc/hosts.deny中创建一个规则,如下:
sshd: ALL
上一篇: 设置 Elastic Docker 部署的安全性:提供 Elastic 安全选项
下一篇: 如何确保服务器的安全设置