117.info
人生若只如初见

CentOS SSH如何防止暴力破解攻击

防止SSH暴力破解攻击是确保服务器安全的重要措施。以下是一些在CentOS系统上防止SSH暴力破解攻击的方法:

1. 使用Fail2Ban

Fail2Ban是一个入侵防御软件框架,可以监控日志文件并根据配置的规则禁止恶意IP地址。

安装Fail2Ban

sudo yum install epel-release
sudo yum install fail2ban

配置Fail2Ban

编辑Fail2Ban的配置文件 /etc/fail2ban/jail.local,添加或修改以下内容:

[DEFAULT]
bantime = 600
findtime = 600
maxretry = 5

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 3

启动Fail2Ban

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

2. 修改SSH端口

将SSH默认端口从22改为其他不常用的端口,可以减少被扫描的概率。

修改SSH配置文件

编辑 /etc/ssh/sshd_config 文件,找到并修改以下行:

Port 22

改为:

Port 2222

重启SSH服务

sudo systemctl restart sshd

3. 使用公钥认证

禁用密码登录,改用SSH密钥对进行认证,可以大大提高安全性。

生成SSH密钥对

在客户端生成SSH密钥对:

ssh-keygen -t rsa -b 4096

将公钥复制到服务器

将生成的公钥(通常是 ~/.ssh/id_rsa.pub)复制到服务器的 ~/.ssh/authorized_keys 文件中:

ssh-copy-id user@server_ip -p 2222

禁用密码登录

编辑 /etc/ssh/sshd_config 文件,确保以下行未被注释且设置正确:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

重启SSH服务

sudo systemctl restart sshd

4. 使用防火墙限制访问

使用iptables或firewalld限制SSH访问来源。

使用iptables

sudo iptables -A INPUT -p tcp --dport 2222 -m state --state NEW -m recent --set
sudo iptables -A INPUT -p tcp --dport 2222 -m state --state NEW -m recent --update --seconds 600 --hitcount 5 -j DROP

使用firewalld

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="your_ip" port protocol="tcp" port="2222" reject'
sudo firewall-cmd --reload

5. 监控和日志分析

定期检查SSH日志文件 /var/log/secure,分析异常登录尝试,并根据需要调整安全策略。

通过以上方法,可以显著提高CentOS服务器的SSH安全性,有效防止暴力破解攻击。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fea18AzsNAw5eA10.html

推荐文章

  • Python版本升级在CentOS上如何操作

    在CentOS上升级Python版本通常涉及以下步骤: 检查当前Python版本:
    使用命令 python --version 或 python3 --version 来查看当前系统中的Python版本。 安装...

  • 如何配置centos上的php-fpm

    在CentOS上配置PHP-FPM(FastCGI Process Manager)通常涉及以下几个步骤: 安装PHP和PHP-FPM:
    首先,你需要安装PHP以及PHP-FPM。你可以使用yum包管理器来...

  • centos cmatrix如何实现过滤功能

    在 CentOS 系统中,cmatrix 是一个基于 curses 的终端模拟器,它可以显示一个类似于 Unix top 命令的实时更新的矩阵。默认情况下,cmatrix 并没有内置的过滤功能...

  • centos如何删除环境变量

    在 CentOS 系统中,你可以通过以下方法删除环境变量: 临时删除环境变量:在当前 shell 会话中删除环境变量,可以使用 unset 命令。例如,如果你想删除名为 MY_V...

  • Linux回收站文件如何转移

    Linux 系统并没有像 Windows 那样明显的回收站概念,但删除的文件通常会移动到用户主目录下的 .local/share/Trash/files 目录中,这个目录就相当于回收站 。

  • Debian挂载时内存不足

    当Debian系统挂载时出现内存不足的情况,可以采取以下几种方法来解决: 启用交换空间: 检查当前的交换空间使用情况:sudo swapon --show 创建交换文件:sudo fa...

  • strings命令如何帮助分析二进制文件

    strings命令是一个在Unix和Linux系统中常用的命令行工具,它可以从二进制文件中提取可打印的字符串。这对于分析二进制文件非常有用,因为它可以帮助你了解程序的...

  • PHP在Ubuntu上如何配置SSL

    在Ubuntu上为PHP配置SSL,您需要遵循以下步骤: 安装Certbot:
    Certbot是一个自动化的SSL证书管理工具,它可以帮助您为您的网站获取和更新Let’s Encrypt S...