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

相关推荐

  • SUSE与CentOS系统,究竟在架构、特性上有哪些本质区别?

    SUSE Linux Enterprise和CentOS作为市场上两大主流的Linux发行版,它们各自拥有独特的优势和特点,本文将从以下几个方面对比分析SUSE Linux Enterprise和CentOS,帮助读者更好地了解它们的区别,发行方式SUSE Linux EnterpriseSUSE Linux……

    2026-02-01
    003
  • CentOS下zip和tar压缩命令具体怎么用?

    在Linux服务器管理中,数据压缩与归档是一项基础且至关重要的技能,它不仅能有效节省宝贵的磁盘空间,还能简化文件的传输与备份流程,在CentOS这一广泛使用的企业级操作系统上,zip和tar是两款最核心的压缩与归档工具,本文将深入探讨这两款工具的用法、差异以及最佳实践,帮助您高效地管理数据,zip 命令:跨平台……

    2025-10-06
    004
  • centos7.1查看命令有哪些?新手必学的5个实用技巧

    在CentOS 7.1系统中,查看系统信息是日常运维和管理的基础操作,通过命令行工具,管理员可以快速获取硬件、软件、网络等多方面的数据,从而更好地监控系统状态或排查问题,以下是几种常用的查看方法及其具体操作,查看系统基本信息使用uname命令可以快速获取系统的核心信息,如内核名称、节点名称、操作系统版本等,un……

    2025-12-19
    002
  • CentOS dfeet无法连接?本地服务排查指南来了!

    CentOS 系统中的磁盘管理基础CentOS 作为一款广泛使用的 Linux 发行版,其磁盘管理功能是系统运维的核心技能之一,无论是服务器还是个人开发环境,合理管理磁盘空间、分区和文件系统都是确保系统稳定运行的关键,本文将介绍 CentOS 系统中磁盘管理的基本概念、常用命令以及实际操作技巧,帮助用户更好地理……

    2026-01-05
    003

发表回复

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

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信