匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

Linux 安全加固:SSH 安全配置与访问控制

Linux 安全加固:SSH 安全配置与访问控制

SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地传输数据。它通常用于远程登录和执行命令,非常适用于系统管理员进行远程管理工作。然而,SSH 服务的默认配置可能存在安全风险,因此必须进行配置和加固,以确保系统的安全性和稳定性。

本文将介绍如何进行 SSH 安全配置和访问控制,包括以下知识点:

1. 关闭 SSH 的 root 用户登录

2. 修改 SSH 端口号

3. 启用公钥认证

4. 使用防火墙控制 SSH 访问

关闭 SSH 的 root 用户登录

root 用户是系统的最高权限账户,如果黑客能够破解 root 用户的密码,那么他们就可以完全控制系统。因此,为了增加系统的安全性,我们应该禁用 root 用户的 SSH 登录,并使用其他普通用户登录系统。

要禁用 SSH 的 root 用户登录,可以通过修改 SSH 配置文件 /etc/ssh/sshd_config 来实现。打开该文件并找到以下行:

```
#PermitRootLogin yes
```

将其改为:

```
PermitRootLogin no
```

这样就可以禁用 SSH 的 root 用户登录。

修改 SSH 端口号

默认情况下,SSH 服务使用的端口号为 22,这使得黑客很容易扫描和攻击系统。因此,为了增加系统的安全性,我们应该将 SSH 的端口号修改为其他非常用端口。

要修改 SSH 的端口号,可以通过修改 SSH 配置文件 /etc/ssh/sshd_config 来实现。找到以下行:

```
#Port 22
```

将其改为:

```
Port 2222
```

这样就可以将 SSH 的端口号修改为 2222。

启用公钥认证

使用密码进行 SSH 登录时,存在密码泄露和暴力破解的风险。因此,为了增加系统的安全性,我们应该启用公钥认证,这样用户需要使用他们的 SSH 公钥来进行登录。

要启用公钥认证,可以通过修改 SSH 配置文件 /etc/ssh/sshd_config 来实现。找到以下行:

```
#PasswordAuthentication yes
```

将其改为:

```
PasswordAuthentication no
```

然后在用户家目录下创建 .ssh 目录,并在其中创建 authorized_keys 文件。将用户的 SSH 公钥添加到 authorized_keys 文件中。

使用防火墙控制 SSH 访问

使用防火墙可以有效地保护系统免受攻击和恶意访问。要控制 SSH 访问,可以使用防火墙软件,如 iptables 或 firewalld。

对于 iptables,可以使用以下命令来控制 SSH 访问:

```
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 2222 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP
```

这些命令将允许来自 SSH 端口的传入和传出连接,并拒绝所有其他连接。

对于 firewalld,可以使用以下命令来控制 SSH 访问:

```
firewall-cmd --add-port=2222/tcp --permanent
firewall-cmd --reload
```

这些命令将允许来自 SSH 端口的传入连接。

总结

SSH 是一种非常安全的远程管理协议,但默认配置可能存在安全风险。本文介绍了如何进行 SSH 安全配置和访问控制,包括关闭 SSH 的 root 用户登录,修改 SSH 端口号,启用公钥认证和使用防火墙控制 SSH 访问。通过这些措施,可以增加系统的安全性和稳定性,有效地防止黑客攻击和非法访问。