运维宝典之 Linux 系统 ssh 加固指导方案

SSH(Secure Shell)是用于远程命令行访问服务器的核心工具。然而,要真正保障 SSH 的安全性,您需要限制访问权限到特定 IP 地址,并遵循一些最佳实践。如果默认将 SSH 开放给所有人访问,这将成为巨大的安全隐患,很容易遭受暴力破解攻击和未经授权的登录。

本文将介绍如何通过限制 IP 地址来保护 Linux 服务器上的 SSH 访问权限,同时分享一些可能对您有用的 SSH 加固技巧。随着威胁的不断演变,加强服务器的安全性和主动进行服务器管理非常重要。通过这些方法,您可以大幅降低安全漏洞的风险,并确保服务器平稳运行。

1. SSH 安全性:使用 sshd_config 文件

修改 sshd_config 文件是限制 SSH 访问 IP 地址的最简单方法之一。以下是步骤:

打开 sshd_config 文件:

复制
vi /etc/ssh/sshd_config1.

找到以下配置行:

复制
#PermitRootLogin yes1.

在它下方添加如下内容:

复制
AllowUsers username@ip_address1.

将 username 替换为要允许访问的用户名,ip_address 替换为要允许访问的 IP 地址。如果需要添加多个 IP 地址,可用空格分隔。

保存并退出文件,然后重启 SSH 服务:

复制
systemctl restart sshd1.

这样,只有指定用户从指定 IP 地址访问服务器时才能使用 SSH。

2. SSH 安全性:使用 TCP Wrappers

TCP Wrappers 是一种基于规则的访问控制机制,可以通过配置 /etc/hosts.allow 和 /etc/hosts.deny 文件来限制网络服务访问权限。

使用 TCP Wrappers 限制 SSH 访问的步骤:

① 编辑 /etc/hosts.allow 文件:

复制
vi /etc/hosts.allow1.

添加以下行:

复制
sshd: IP_address1.

将 IP_address 替换为允许访问的 IP 地址。

② 编辑 /etc/hosts.deny 文件:

复制
vi /etc/hosts.deny1.

添加以下行:

复制
sshd: ALL1.

这将禁止其他所有 IP 地址的访问。

③ 保存并退出文件,然后重启 SSH 服务:

复制
systemctl restart sshd1.
3. SSH 安全性:使用防火墙规则

您还可以通过防火墙规则限制 SSH 访问权限。以下是不同防火墙工具的实现方法:

(1) 使用 iptables

① 创建一个新规则链并添加规则:

复制
iptables -N SSHALLOW iptables -A SSHALLOW -s IP_address -p tcp --dport ssh -j ACCEPT iptables -A SSHALLOW -j DROP1.2.3.

将 IP_address 替换为允许访问的 IP 地址。

② 保存规则:

复制
service iptables save1.

③ 重载规则:

复制
sudo service iptables reload1.

(2) 使用 ufw

① 允许指定 IP 地址访问:

复制
sudo ufw allow from [IP_address] to any port ssh1.

将 [IP_address] 替换为允许访问的 IP 地址。

② 拒绝其他所有 IP 地址的访问:

复制
sudo ufw default deny incoming1.

 ③重载防火墙规则:

复制
sudo ufw reload1.

(3) 使用 firewalld

① 允许指定 IP 地址访问:

复制
sudo firewall-cmd --permanent --add-rich-rule=rule family="ipv4" source address="[IP_address]"1.

② 拒绝其他所有 IP 地址:

复制
sudo firewall-cmd --permanent --zone=public --remove-service=ssh sudo firewall-cmd --permanent --zone=public --add-rich-rule=rule family="ipv4" source address="!1.2.

③ 重载规则:

复制
sudo firewall-cmd --reload1.
4. SSH 安全加固最佳实践

(1) 使用非标准端口

默认情况下,SSH 监听 22 端口。更改为非标准端口可以提高安全性:1. 编辑 sshd_config 文件:

复制
vi /etc/ssh/sshd_config1.

① 找到以下行并更改端口号:

复制
Port 221.

将 22 替换为 1024 到 65535 范围内的未使用端口。

② 重启服务:

复制
systemctl restart sshd1.

(2) 使用 SSH 密钥代替密码

生成 SSH 密钥对并将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中。确保在 sshd_config 文件中启用以下配置:

复制
PubkeyAuthentication yes1.

(3) 禁用 root 登录

在 sshd_config 文件中修改以下配置:

复制
PermitRootLogin no1.

(4) 使用 Fail2ban

Fail2ban 通过监控日志文件并禁止显示恶意行为的 IP 地址,保护服务器免受暴力破解攻击。安装和配置 Fail2ban 后,您可以显著提高 SSH 的安全性。

5. 结论

保护服务器安全需要不断努力。通过限制 SSH 访问、使用非标准端口、启用 SSH 密钥认证以及配置 Fail2ban,您可以显著降低服务器遭受攻击的风险。随着网络攻击的频率和复杂性不断提高,确保服务器安全显得尤为重要。

将安全性视为服务器管理的优先事项,并定期更新您的安全策略,是保障系统持续运行的关键。

THE END
本站服务器由亿华云赞助提供-企业级高防云服务器