centos ssh deny

CentOS SSH Deny:配置与安全实践

在CentOS系统中,SSH(Secure Shell)是远程管理服务器的核心工具,但默认配置可能存在安全风险,如暴力破解、未授权访问等,通过SSH Deny机制,可以有效限制恶意IP的访问,提升服务器安全性,本文将详细介绍CentOS SSH Deny的配置方法、安全策略及常见问题解决方案。

centos ssh deny

SSH Deny的必要性

SSH服务暴露在公网上时,常成为黑客攻击的目标,攻击者通过自动化工具尝试猜测用户名和密码,可能导致账户被破解或服务器被控制,启用SSH Deny功能后,系统可以自动封禁频繁失败的IP地址,减少暴力破解的风险,SSH Deny还能配合防火墙规则,实现更精细的访问控制。

基于Fail2ban的SSH Deny配置

Fail2ban是一个广泛使用的入侵防御工具,可通过监控日志文件自动封禁恶意IP,以下是具体步骤:

  1. 安装Fail2ban
    在CentOS系统中,使用yum命令安装Fail2ban:

    sudo yum install fail2ban -y

    安装完成后,启动并启用服务:

    sudo systemctl start fail2ban
    sudo systemctl enable fail2ban
  2. 配置SSH规则
    Fail2ban的默认配置文件位于/etc/fail2ban/jail.conf,建议复制为自定义配置文件以避免覆盖:

    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

    编辑jail.local文件,添加或修改以下内容:

    [sshd]
    enabled = true
    port = ssh
    filter = sshd
    logpath = /var/log/secure
    maxretry = 3
    bantime = 3600
    • maxretry:最大尝试次数,超过后封禁IP。
    • bantime:封禁时间(秒),3600表示1小时。
  3. 重启Fail2ban服务
    保存配置后,重启服务使生效:

    sudo systemctl restart fail2ban

使用iptables实现SSH Deny

如果不想依赖Fail2ban,可以直接通过iptables手动封禁IP,以下是基本操作:

  1. 查看当前iptables规则

    centos ssh deny

    sudo iptables -L -n
  2. 封禁指定IP
    封禁IP 168.1.100

    sudo iptables -A INPUT -s 192.168.1.100 -j DROP
  3. 保存规则
    CentOS 7及以上版本使用iptables-service保存规则:

    sudo service iptables save
  4. 解封IP
    若需解封,使用以下命令:

    sudo iptables -D INPUT -s 192.168.1.100 -j DROP

优化SSH Deny的安全策略

仅封禁IP可能不够,建议结合以下措施提升安全性:

  1. 禁用root登录
    编辑SSH配置文件/etc/ssh/sshd_config,设置:

    PermitRootLogin no

    重启SSH服务:

    sudo systemctl restart sshd
  2. 使用密钥认证
    禁用密码认证,仅允许SSH密钥登录:

    PasswordAuthentication no
  3. 限制登录用户
    /etc/ssh/sshd_config中添加允许的用户:

    AllowUsers user1 user2
  4. 更改默认SSH端口
    将默认的22端口改为其他高位端口(如2222),减少扫描攻击:

    centos ssh deny

    Port 2222

监控与日志分析

定期检查SSH日志是发现异常的关键,日志文件通常位于/var/log/secure,可通过以下命令查看失败登录记录:

grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr

该命令会统计失败次数最多的IP,便于手动封禁。

常见问题与解决方案

  1. 问题:Fail2ban未生效
    解答:检查jail.local配置是否正确,确保日志路径与实际一致,可通过fail2ban-client status sshd查看规则状态。

  2. 问题:误封合法IP
    解答:使用fail2ban-client set sshd unbanip IP地址解封,或调整maxretryfindtime参数以减少误封。

FAQs

  1. Q: 如何查看当前被封禁的IP列表?
    A: 运行iptables -L -n --line-numbers查看iptables规则,或使用fail2ban-client status sshd查看Fail2ban封禁的IP。

  2. Q: SSH Deny是否会影响正常用户登录?
    A: 若配置合理(如合理的maxretrybantime),不会影响正常用户,但建议为可信IP设置白名单,避免误封。

通过以上方法,可以有效提升CentOS服务器的SSH安全性,减少未授权访问风险,定期更新规则和监控系统状态是长期维护的关键。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-12-31 03:53
下一篇 2025-12-31 04:00

相关推荐

  • CentOS如何配置HTTPD实现HTTPS服务?

    CentOS 安装与配置 HTTPd 与 HTTPSCentOS 简介CentOS(Community Enterprise Operating System)是一个基于Red Hat Enterprise Linux的免费开源操作系统,它继承了Red Hat的稳定性和安全性,并且具有较好的兼容性,CentOS……

    2026-01-23
    004
  • centos系统下如何替代apt-get进行软件安装?

    在Linux世界中,软件包管理是系统维护的核心,许多用户,尤其是那些从Debian或Ubuntu系统迁移过来的用户,常常会在CentOS上尝试使用他们熟悉的apt-get命令,结果却会收到“command not found”的错误,这背后反映了Linux不同发行族系之间最根本的差异之一:软件包管理系统,理解这……

    2025-10-20
    007
  • 如何在电脑上安装CentOS操作系统,步骤详解?

    怎样装CentOS:准备工作在开始安装CentOS之前,请确保以下准备工作已完成:一台计算机或虚拟机,一张CentOS安装光盘或镜像文件,计算机的BIOS设置正确,支持从光盘或USB启动,网络连接(可选,用于安装过程中联网更新),安装步骤启动计算机,进入BIOS设置,将启动顺序设置为从光盘或USB启动,将Cen……

    2026-01-11
    004
  • php如何执行centos系统重启命令?

    在CentOS系统中,PHP作为常用的服务器端脚本语言,其服务状态的稳定对Web应用的运行至关重要,有时因配置修改、模块更新或性能优化,需要重启PHP服务以确保变更生效或恢复服务正常运行,以下是关于在CentOS系统中重启PHP服务的详细操作指南,涵盖不同环境下的命令步骤及注意事项,检测当前PHP服务状态在执行……

    2025-11-21
    004

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信