ubuntu 22.04 ssh 服务器安全配置

### 1. 禁用 Root 登录

防止直接使用 `root` 用户登录,强制用户以普通用户身份登录,然后使用 `sudo` 提升权限。

在 `/etc/ssh/sshd_config` 中设置:

```bash

PermitRootLogin no

```

### 2. 使用公钥认证

禁用密码认证,强制使用 SSH 公钥认证,以防止暴力破解。

在 `/etc/ssh/sshd_config` 中设置:

```bash

PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM no

```

### 3. 限制用户登录

通过 `AllowUsers` 或 `AllowGroups` 指定允许登录的用户或组。

在 `/etc/ssh/sshd_config` 中设置:

```bash

AllowUsers user1 user2

# 或

AllowGroups sshusers

```

### 4. 改变默认 SSH 端口

改变默认的 SSH 端口(22)可以减少被扫描和攻击的机会。

在 `/etc/ssh/sshd_config` 中设置:

```bash

Port 2222

```

### 5. 禁用空密码登录

防止使用空密码的账户登录。

在 `/etc/ssh/sshd_config` 中设置:

```bash

PermitEmptyPasswords no

```

### 6. 限制最大认证尝试次数

设置 `MaxAuthTries` 来限制失败的认证尝试次数,从而防止暴力攻击。

在 `/etc/ssh/sshd_config` 中设置:

```bash

MaxAuthTries 3

```

### 7. 启用登录速率限制

使用 `MaxStartups` 限制并发的未认证连接,以防止 DoS 攻击。

在 `/etc/ssh/sshd_config` 中设置:

```bash

MaxStartups 10:30:60

```

- `10`:初始连接数(超过这个数时将开始概率拒绝连接)。

- `30`:超过初始连接数后,按 30% 的概率拒绝连接。

- `60`:最大并发未认证连接数。

### 8. 使用防火墙限制 SSH 访问

使用防火墙(如 `iptables` 或 `ufw`)限制 SSH 的访问范围,仅允许可信任的 IP 地址连接到 SSH 服务。

### 9. 设置登录通知和记录

配置 `LoginGraceTime` 限制未认证用户在登录时的等待时间,设置较短的等待时间可以降低攻击成功率。

在 `/etc/ssh/sshd_config` 中设置:

```bash

LoginGraceTime 30s

```

还可以设置 `LogLevel` 增加日志记录的详细程度:

```bash

LogLevel VERBOSE

```

### 10. 定期更新 OpenSSH

确保你的 OpenSSH 软件是最新版本,以获得最新的安全补丁。

### 11. 禁用 X11 转发

除非确实需要,否则禁用 X11 转发以减少潜在的攻击途径。

在 `/etc/ssh/sshd_config` 中设置:

```bash

X11Forwarding no

```

### 12. 启用防护机制

在现代 Linux 发行版中,可以启用一些额外的防护机制,如:

```bash

UsePrivilegeSeparation sandbox

```

这可以进一步隔离 SSH 进程,减少潜在的攻击面。

### 13. 2FA 双因素认证

通过配置 PAM(Pluggable Authentication Module)支持,例如 Google Authenticator,启用双因素认证。

### 14. 限制登录时间

可以结合 PAM 和 `cron` 服务,限制用户只能在特定时间段内登录 SSH。

这些设置能够显著提高 SSH 的安全性,帮助防止未经授权的访问和潜在的安全威胁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值