5154

Good Luck To You!

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安全性,减少未授权访问风险,定期更新规则和监控系统状态是长期维护的关键。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.