Linux 怎么防止 ssh 被暴力破解

原创
ithorizon 7个月前 (10-07) 阅读数 41 #Linux

Linux 怎样防止 SSH 被暴力破解

在当今的网络环境中,SSH(Secure Shell)是一种广泛使用的远程登录协议,它提供了可靠的登录对策,用于在Linux系统之间进行远程管理。然而,由于SSH的可靠性较高,一些恶意用户大概会尝试通过暴力破解来获取系统访问权限。为了保护您的Linux系统不受SSH暴力破解的威胁,以下是一些有效的预防措施。

1. 制约SSH登录尝试次数

通过制约SSH登录尝试次数,可以有效地防止暴力破解。以下是在Linux系统中实现这一功能的步骤:

# 安装fail2ban

sudo apt-get install fail2ban

# 编辑fail2ban的配置文件

sudo nano /etc/fail2ban/jail.conf

# 在[sshd]部分添加以下内容

[sshd]

enabled = true

port = 22

filter = sshd

logpath = /var/log/auth.log

maxretry = 3

findtime = 600

bantime = 3600

# 重启fail2ban服务

sudo systemctl restart fail2ban

上述代码中,`maxretry` 参数用于设置最大尝试次数,`findtime` 参数用于设置检查日志的时间间隔,`bantime` 参数用于设置禁止登录的时间。

2. 使用强密码策略

确保所有用户都使用强密码是防止SSH暴力破解的基础。以下是一些设置强密码的策略:

- 使用至少8个字符的密码,并包含大小写字母、数字和特殊字符。

- 避免使用常见的单词或短语。

- 定期更换密码。

以下是在Linux系统中设置强密码策略的步骤:

# 修改系统密码策略

sudo nano /etc/pam.d/common-password

# 在文件中添加以下内容

password requisite pam_pwquality.so retry=3 minlen=8 difok=3 ucredit=-1 lcredit=-1 dcredit=-1

# 重启pam服务

sudo systemctl restart pam_systemd

上述代码中,`minlen` 参数用于设置密码最小长度,`difok` 参数用于设置密码必须与旧密码不同的最小字符数,`ucredit`、`lcredit` 和 `dcredit` 参数分别用于设置密码中必须包含的大写字母、小写字母和数字的最小数量。

3. 制约SSH登录端口

将SSH登录端口从默认的22改为其他端口,可以减少恶意用户尝试破解的机会。以下是在Linux系统中更改SSH登录端口的步骤:

# 修改SSH配置文件

sudo nano /etc/ssh/sshd_config

# 在文件中找到以下内容并修改

Port 22

# 保存并退出文件

# 重启SSH服务

sudo systemctl restart ssh

请注意,更改SSH端口后,所有通过SSH连接到服务器的用户都需要更新他们的SSH客户端配置文件(例如,`~/.ssh/config`),以使用新的端口。

4. 使用公钥认证

与密码认证相比,公钥认证更加可靠。以下是在Linux系统中使用公钥认证的步骤:

# 生成公钥和私钥

ssh-keygen -t rsa -b 4096

# 将公钥添加到授权密钥文件中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

# 将公钥上传到远程服务器的相应目录

ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@服务器IP地址

在上述代码中,`-t rsa` 参数指定生成RSA密钥,`-b 4096` 参数指定密钥长度为4096位。

5. 监控SSH日志

监控SSH日志可以帮助您及时发现异常登录尝试。以下是在Linux系统中监控SSH日志的步骤:

# 安装logwatch

sudo apt-get install logwatch

# 编辑logwatch配置文件

sudo nano /etc/logwatch.conf.local

# 在文件中找到以下内容并取消注释

LOGWATCHocer_include /var/log/auth.log

# 运行logwatch

sudo logwatch

在上述代码中,`LOGWATCHocer_include` 参数用于指定要监控的日志文件。

6. 使用防火墙规则

使用防火墙规则制约SSH登录尝试可以进一步尽大概减少损耗可靠性。以下是在Linux系统中使用防火墙规则的步骤:

# 安装iptables

sudo apt-get install iptables

# 编辑iptables规则

sudo nano /etc/iptables/rules.v4

# 在文件中添加以下内容

iptables -A INPUT -p tcp --dport 22 -j DROP

# 保存并退出文件

# 应用iptables规则

sudo iptables-apply

在上述代码中,

本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Linux


热门