安全和保护SSH服务器的5个最佳实践

在本文中,我将向您展示一些简单的工具和技巧,帮助您收紧ssh服务器安全性。

SSH( 安全谢尔升)是用于连接本地或远程Linux服务器传送文件的一个开源网络协议,经由上安全通道连接的SCP或两个服务器之间SFTP使远程备份,远程命令执行和其他网络相关的任务通过网络。

SSH Security Tips

SSH服务器安全提示

在本文中,我将向您展示一些简单的工具和技巧,帮助您收紧ssh服务器安全性。 在这里你会找到如何保护和防止SSH服务器的蛮力字典攻击一些有用的信息。

DenyHosts

的DenyHosts是一个开源的SSH服务器基于日志的入侵防御安全脚本写在Python编程语言,旨在通过Linux系统管理员和用户运行监测和分析SSH服务器的访问日志失败的登录尝试都知道基于字典攻击暴力力攻击 该脚本通过禁止后失败的登录尝试集多个IP地址,还可以防止获得访问到服务器的此类攻击。

DenyHosts功能
  1. 跟踪的/ var /日志/安全的找到所有的成功和失败的登录尝试和过滤它们。
  2. 密切关注用户和违规主机的所有失败登录尝试。
  3. 不断观看每个现有和不存在的用户(例如XYZ)当一个失败的登录尝试。
  4. 跟踪每种违规用户,主机和可疑登录尝试(如果登录失败次数)禁止通过增加/etc/hosts.deny文件文件中的条目该主机的IP地址。
  5. (可选)发送新阻止的主机和可疑登录的电子邮件通知。
  6. 还维护在单独文件中的所有有效和无效的失败用户登录尝试,以便于识别哪个有效或无效的用户受到攻击。 因此,我们可以删除该帐户或更改密码或为该用户禁用shell。

阅读更多安装的DenyHosts来阻止RHEL / CentOS的/ Fedora的SSH服务器攻击

Fail2Ban

的fail2ban是用Python编写的编程语言中最流行的开源入侵检测 / 防御框架之一。 它的工作通过扫描日志文件例如/ var /日志/安全 ,/var/log/auth.log, 在/ var /日志/ pwdfail等。 失败的登录尝试次数太多。 的fail2ban用于更新的Netfilter / iptables的TCP包装的 hosts.deny中文件,拒绝攻击者的IP地址设定的时间量。 它还能够在管理员设置的一段时间内取消阻止已阻止的IP地址。 但是,取消挂起的某些分钟足以阻止这种恶意攻击。

Fail2Ban功能
  1. 多线程高度可配置的。
  2. 日志文件支持旋转,并能处理像(sshd之前 ,vsftpd的Apache等)多种服务。
  3. 监视日志文件并查找已知和未知的模式。
  4. 采用的Netfilter / iptables的TCP包装 (/etc/hosts.deny文件 )表禁止攻击者的IP。
  5. 当一个给定的模式已被确定为相同的IP地址为超过X倍以上运行脚本。

阅读更多安装的fail2ban防止在RHEL / CentOS的/ Fedora的SSH服务器攻击

3.禁用根登录

默认情况下Linux系统是每个配置为允许每个人,包括root用户本身,让大家直接登录系统并获得root访问权限的SSH远程登录。 尽管SSH服务器允许禁用或启用root用户登录更安全的方式,它总是一个好主意,禁止root权限,保持服务器有点更安全。

有这么多的人通过简单地提供不同的帐户名和密码,一个又一个试图通过SSH攻击蛮力root账户。 如果您是系统管理员,则可以检查ssh服务器日志,您可以在其中找到失败的登录尝试次数。 背后失败的登录尝试次数的主要原因是有足够的弱口令和有意义的黑客/攻击者尝试。

如果您有强密码,那么你很可能是安全的,但最好是禁止root登录,并有定期的独立账户登录,然后使用sudo 或在需要时获得root访问权限。

阅读更多如何禁用SSH root登录和LIMITE SSH访问

4.显示SSH横幅

这可从SSH项目开始最古老的特点之一,但我几乎没有见过它由任何人。 无论如何,我觉得它的重要和非常有用的功能,我已经用于所有我的Linux服务器。

这不是任何安全目的,但是这面旗帜的最最大的好处是,它是用来显示SSH 警告消息的密码提示之前未经授权的访问和欢迎消息授权用户和登录的用户之后。

阅读更多如何显示SSH和MOTD标语消息

5. SSH无密码登录

使用SSH凯基一个SSH密码登录较少将建立两个Linux服务器 ,这使得文件传输同步容易得多之间的信任关系。 如果您处理远程自动备份,远程脚本执行,文件传输,远程脚本管理等,而不必每次都输入passwrod,这是非常有用的。

阅读更多如何设置SSH密码登录