如果大家有需要帮忙推荐的工具、框架、应用、脚本可以在文章下方留言,留言中被点赞、推荐回复较多的,波哥就会帮各位提前安排哦!
SSH(Secure Shell)是用于远程命令行访问服务器的核心工具。然而,要真正保障 SSH 的安全性,您需要限制访问权限到特定 IP 地址,并遵循一些最佳实践。如果默认将 SSH 开放给所有人访问,这将成为巨大的安全隐患,很容易遭受暴力破解攻击和未经授权的登录。
本文将介绍如何通过限制 IP 地址来保护 Linux 服务器上的 SSH 访问权限,同时分享一些可能对您有用的 SSH 加固技巧。随着威胁的不断演变,加强服务器的安全性和主动进行服务器管理非常重要。通过这些方法,您可以大幅降低安全漏洞的风险,并确保服务器平稳运行。
sshd_config
文件修改 sshd_config 文件是限制 SSH 访问 IP 地址的最简单方法之一。以下是步骤:
打开 sshd_config 文件:
vi /etc/ssh/sshd_config
找到以下配置行:
#PermitRootLogin yes
在它下方添加如下内容:
AllowUsers username@ip_address
将 username 替换为要允许访问的用户名,ip_address 替换为要允许访问的 IP 地址。如果需要添加多个 IP 地址,可用空格分隔。
保存并退出文件,然后重启 SSH 服务:
systemctl restart sshd
这样,只有指定用户从指定 IP 地址访问服务器时才能使用 SSH。
TCP Wrappers 是一种基于规则的访问控制机制,可以通过配置 /etc/hosts.allow 和 /etc/hosts.deny 文件来限制网络服务访问权限。
编辑 /etc/hosts.allow 文件:
vi /etc/hosts.allow
添加以下行:
sshd: IP_address
将 IP_address 替换为允许访问的 IP 地址。
编辑 /etc/hosts.deny 文件:
vi /etc/hosts.deny
添加以下行:
sshd: ALL
这将禁止其他所有 IP 地址的访问。
保存并退出文件,然后重启 SSH 服务:
systemctl restart sshd
您还可以通过防火墙规则限制 SSH 访问权限。以下是不同防火墙工具的实现方法:
iptables
创建一个新规则链并添加规则:
iptables -N SSHALLOW
iptables -A SSHALLOW -s IP_address -p tcp --dport ssh -j ACCEPT
iptables -A SSHALLOW -j DROP
将 IP_address 替换为允许访问的 IP 地址。
保存规则:
service iptables save
重载规则:
sudo service iptables reload
ufw
允许指定 IP 地址访问:
sudo ufw allow from [IP_address] to any port ssh
将 [IP_address] 替换为允许访问的 IP 地址。
拒绝其他所有 IP 地址的访问:
sudo ufw default deny incoming
重载防火墙规则:
sudo ufw reload
firewalld
允许指定 IP 地址访问:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="[IP_address]" port protocol="tcp" port="ssh" accept'
拒绝其他所有 IP 地址:
sudo firewall-cmd --permanent --zone=public --remove-service=ssh
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="![IP_address]" service name="ssh" reject'
重载规则:
sudo firewall-cmd --reload
默认情况下,SSH 监听 22 端口。更改为非标准端口可以提高安全性:1. 编辑 sshd_config 文件:
vi /etc/ssh/sshd_config
找到以下行并更改端口号:
Port 22
将 22 替换为 1024 到 65535 范围内的未使用端口。
重启服务:
systemctl restart sshd
生成 SSH 密钥对并将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中。确保在 sshd_config 文件中启用以下配置:
PubkeyAuthentication yes
在 sshd_config 文件中修改以下配置:
PermitRootLogin no
Fail2ban 通过监控日志文件并禁止显示恶意行为的 IP 地址,保护服务器免受暴力破解攻击。安装和配置 Fail2ban 后,您可以显著提高 SSH 的安全性。
保护服务器安全需要不断努力。通过限制 SSH 访问、使用非标准端口、启用 SSH 密钥认证以及配置 Fail2ban,您可以显著降低服务器遭受攻击的风险。随着网络攻击的频率和复杂性不断提高,确保服务器安全显得尤为重要。
将安全性视为服务器管理的优先事项,并定期更新您的安全策略,是保障系统持续运行的关键。
觉得不错别忘了给波哥一键三连哦!