首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >运维宝典之linux系统ssh加固指导方案

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

作者头像
IT运维技术圈
发布2025-01-13 12:20:19
发布2025-01-13 12:20:19
34300
代码可运行
举报
文章被收录于专栏:IT运维技术圈IT运维技术圈
运行总次数:0
代码可运行

大家好,波哥又来给大家推荐好东西啦!

如果大家有需要帮忙推荐的工具、框架、应用、脚本可以在文章下方留言,留言中被点赞、推荐回复较多的,波哥就会帮各位提前安排哦!

使用 SSH(Secure Shell)来保护服务器访问权限

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

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

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

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

打开 sshd_config 文件:

代码语言:javascript
代码运行次数:0
运行
复制
vi /etc/ssh/sshd_config

找到以下配置行:

代码语言:javascript
代码运行次数:0
运行
复制
#PermitRootLogin yes

在它下方添加如下内容:

代码语言:javascript
代码运行次数:0
运行
复制
AllowUsers username@ip_address

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

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

代码语言:javascript
代码运行次数:0
运行
复制
systemctl restart sshd

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

2. SSH 安全性:使用 TCP Wrappers

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

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

编辑 /etc/hosts.allow 文件:

代码语言:javascript
代码运行次数:0
运行
复制
vi /etc/hosts.allow

添加以下行:

代码语言:javascript
代码运行次数:0
运行
复制
sshd: IP_address

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

编辑 /etc/hosts.deny 文件:

代码语言:javascript
代码运行次数:0
运行
复制
vi /etc/hosts.deny

添加以下行:

代码语言:javascript
代码运行次数:0
运行
复制
sshd: ALL

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

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

代码语言:javascript
代码运行次数:0
运行
复制
systemctl restart sshd

3. SSH 安全性:使用防火墙规则

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

使用 iptables

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

代码语言:javascript
代码运行次数:0
运行
复制
iptables -N SSHALLOW
iptables -A SSHALLOW -s IP_address -p tcp --dport ssh -j ACCEPT
iptables -A SSHALLOW -j DROP

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

保存规则:

代码语言:javascript
代码运行次数:0
运行
复制
service iptables save

重载规则:

代码语言:javascript
代码运行次数:0
运行
复制
sudo service iptables reload
使用 ufw

允许指定 IP 地址访问:

代码语言:javascript
代码运行次数:0
运行
复制
sudo ufw allow from [IP_address] to any port ssh

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

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

代码语言:javascript
代码运行次数:0
运行
复制
sudo ufw default deny incoming

重载防火墙规则:

代码语言:javascript
代码运行次数:0
运行
复制
sudo ufw reload
使用 firewalld

允许指定 IP 地址访问:

代码语言:javascript
代码运行次数:0
运行
复制
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="[IP_address]" port protocol="tcp" port="ssh" accept'

拒绝其他所有 IP 地址:

代码语言:javascript
代码运行次数:0
运行
复制
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'

重载规则:

代码语言:javascript
代码运行次数:0
运行
复制
sudo firewall-cmd --reload

4. SSH 安全加固最佳实践

使用非标准端口

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

代码语言:javascript
代码运行次数:0
运行
复制
   vi /etc/ssh/sshd_config

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

代码语言:javascript
代码运行次数:0
运行
复制
Port 22

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

重启服务:

代码语言:javascript
代码运行次数:0
运行
复制
systemctl restart sshd
使用 SSH 密钥代替密码

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

代码语言:javascript
代码运行次数:0
运行
复制
PubkeyAuthentication yes
禁用 root 登录

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

代码语言:javascript
代码运行次数:0
运行
复制
PermitRootLogin no
使用 Fail2ban

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

5. 结论

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

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

‍‍‍‍‍觉得不错别忘了给波哥一键三连哦!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT运维技术圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 大家好,波哥又来给大家推荐好东西啦!
  • 使用 SSH(Secure Shell)来保护服务器访问权限
  • 1. SSH 安全性:使用 sshd_config 文件
  • 2. SSH 安全性:使用 TCP Wrappers
    • 使用 TCP Wrappers 限制 SSH 访问的步骤:
  • 3. SSH 安全性:使用防火墙规则
    • 使用 iptables
    • 使用 ufw
    • 使用 firewalld
  • 4. SSH 安全加固最佳实践
    • 使用非标准端口
    • 使用 SSH 密钥代替密码
    • 禁用 root 登录
    • 使用 Fail2ban
  • 5. 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档