视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
通过SSH访问远程Linux服务器的四个安全策略
2025-09-25 05:02:34 责编:小OO
文档
通过SSH访问远程Linux服务器的四个安全策略

本文以CentOS为例总结了配置SSH安全访问中需要注意的四个事项,包括关闭不用的端口,更改SSH端口,IP登陆,以及使用证书登陆。

越来越多的站长,开始使用主机(Dedicated Host)和 VPS。而为了节省成本或提高性能,不少人的独机和 VPS,都是基于 unmanaged 的裸机,一切都要自己 DIY。这时候,安全策略的实施,就犹为重要。下面这篇文章,我以 CentOS 为例,简单地总结一下如何配置 SSH 安全访问。

Linux SSH 安全策略一:关闭无关端口

网络上被攻陷的大多数主机,是黑客用扫描工具大范围进行扫描而被瞄准上的。所以,为了避免被扫描到,除了必要的端口,例如 Web、FTP、SSH 等,其他的都应关闭。值得一提的是,我强烈建议关闭 icmp 端口,并设置规则,丢弃 icmp 包。这样别人 Ping 不到你的服务器,威胁就自然减小大半了。丢弃 icmp 包可在 iptables 中, 加入下面这样一条:

1.-A INPUT -p icmp -j DROP  

2. 

Linux SSH 安全策略二:更改 SSH 端口

默认的 SSH 端口是 22。强烈建议改成 10000 以上。这样别人扫描到端口的机率也大大下降。修改方法:

1.# 编辑 /etc/ssh/ssh_config  

2.vi /etc/ssh/ssh_config  

3.# 在 Host * 下 ,加入新的 Port 值。以 18439 为例(下同):  

4.Port 22  

5.Port 18439  

6. 

7.# 编辑 /etc/ssh/sshd_config  

8.vi /etc/ssh/sshd_config  

9.#加入新的 Port 值  

10.Port 22  

11.Port 18439  

12. 

13.# 保存后,重启 SSH 服务:  

14.service sshd restart  

15. 

这里我设置了两个端口,主要是为了防止修改出错导致 SSH 再也登不上。更改你的 SSH 客户端(例如:Putty)的连接端口,测试连接,如果新端口能连接成功,则再编辑上面两个文件,删除 Port 22 的配置。如果连接失败,而用 Port 22 连接后再重新配置。

端口设置成功后,注意同时应该从 iptables 中, 删除22端口,添加新配置的 18439,并重启 iptables。

如果 SSH 登录密码是弱密码,应该设置一个复杂的密码。Google Blog 上有一篇强调密码安全的文章:Does your password pass the test?

Linux SSH 安全策略三: IP 登录

如果你能以固定 IP 方式连接你的服务器,那么,你可以设置只允许某个特定的 IP 登录服务器。例如我是通过自己的 VPN 登录到服务器。设置如下:

1.# 编辑 /etc/hosts.allow  

2.vi /etc/hosts.allow  

3.# 例如只允许 123.45.67. 登录  

4.sshd:123.45.67.  

Linux SSH 安全策略四: 使用证书登录 SSH

相对于使用密码登录来说,使用证书更为安全。自来水冲咖啡有写过一篇详细的教程,征得其同意,转载如下:

为CentOS配置SSH证书登录验证

来源:自来水冲咖啡

下午帮公司网管远程检测一下邮件服务器,一台CentOS 5.1,使用OpenSSH远程管理。

检查安全日志时,发现这几天几乎每天都有一堆IP过来猜密码。看来得修改一下登录验证方式,改为证书验证为好。

为防万一,临时启了个VNC,免得没配置完,一高兴顺手重启了sshd就麻烦了。(后来发现是多余的,只要事先开个putty别关闭就行了)

以下是简单的操作步骤:

1)先添加一个维护账号:msa

2)然后su - msa

3)ssh-keygen -t rsa

指定密钥路径和输入口令之后,即在/home/msa/.ssh/中生成公钥和私钥:id_rsa id_rsa.pub

4)cat id_rsa.pub >> authorized_keys

至于为什么要生成这个文件,因为sshd_config里面写的就是这个。然后chmod 400 authorized_keys,稍微保护一下。

5)用psftp把把id_rsa拉回本地,然后把服务器上的id_rsa和id_rsa.pub干掉

6)配置/etc/ssh/sshd_config

1.Protocol 2  

2.ServerKeyBits 1024  

3.PermitRootLogin no  #禁止root登录而已,与本文无关,加上安全些  

4. 

5.#以下三行没什么要改的,把默认的#注释去掉就行了  

6.RSAAuthentication yes  

7.PubkeyAuthentication yes  

8.AuthorizedKeysFile    .ssh/authorized_keys  

9. 

10.PasswordAuthentication no  

11.PermitEmptyPasswords no  

12. 

7)重启sshd

1./sbin/service sshd restart  

2. 

8)转换证书格式,迁就一下putty

运行puttygen,转换id_rsa为putty的ppk证书文件

9)配置putty登录

在connection--SSH--Auth中,点击Browse,选择刚刚转换好的证书。然后在connection-Data填写一下auto login username,例如我的是msa。在session中填写服务器的IP地址,高兴的话可以save一下

10)解决一点小麻烦

做到这一步的时候,很可能会空欢喜一场,此时就兴冲冲的登录,没准登下载本文

显示全文
专题