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

系统 Linux 服务器
本文将介绍如何通过限制 IP 地址来保护 Linux 服务器上的 SSH 访问权限,同时分享一些可能对您有用的 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_config

找到以下配置行:

#PermitRootLogin yes

在它下方添加如下内容:

AllowUsers username@ip_address

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

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

systemctl restart sshd

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

2. SSH 安全性:使用 TCP Wrappers

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

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

① 编辑 /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

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

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

(1) 使用 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

(2) 使用 ufw

① 允许指定 IP 地址访问:

sudo ufw allow from [IP_address] to any port ssh

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

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

sudo ufw default deny incoming

 ③重载防火墙规则:

sudo ufw reload

(3) 使用 firewalld

① 允许指定 IP 地址访问:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="[IP_address]"

② 拒绝其他所有 IP 地址:

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

③ 重载规则:

sudo firewall-cmd --reload

4. SSH 安全加固最佳实践

(1) 使用非标准端口

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

  vi /etc/ssh/sshd_config

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

Port 22

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

② 重启服务:

systemctl restart sshd

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

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

PubkeyAuthentication yes

(3) 禁用 root 登录

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

PermitRootLogin no

(4) 使用 Fail2ban

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

5. 结论

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

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

责任编辑:赵宁宁 来源: IT运维技术圈
相关推荐

2012-05-08 13:59:23

2021-05-14 13:16:31

数据安全

2020-12-29 16:39:01

Linux代码命令

2018-07-23 09:24:08

Linux系统运维运维工程师

2016-12-02 20:22:34

OS

2009-11-19 16:04:12

2009-11-06 10:07:45

2012-05-05 21:28:44

2009-10-27 15:18:45

linux脚本Shel

2014-09-17 11:16:42

2009-07-06 09:23:20

2009-07-01 16:44:27

2009-11-17 15:00:03

2010-11-24 14:15:00

2023-10-31 09:22:49

Linux系统

2009-12-15 17:49:42

LINUX系统

2009-12-16 18:02:48

Linux UNIX系

2014-09-17 10:34:47

2011-11-14 09:17:14

Linux运维ClusterShel

2009-10-27 12:43:41

linux vi编辑器
点赞
收藏

51CTO技术栈公众号