广告图片
TOP云-靠谱的企业级公有云服务平台

云服务器、物理服务器、云安全、SSL证书限时3折抢购!

双路E5-2640V4(40核)64G内存480G SSD硬盘30M独享带宽物理机仅需368元;香港铂金云服务器2H/2G/15M仅需19.8元/月;4H/4G/25M仅需29.8元/月,

TOP云-靠谱的企业级公有云服务平台:双路E5-2640V4(40核)64G内存480G SSD硬盘30M独享带宽物理机仅需368元;香港铂金云服务器2H/2G/15M仅需19.8元/月;4H/4G/25M仅需29.8元/月,云服务器、物理服务器、云安全、SSL证书限时3折抢购!点击这里立即抢购! 展开广告

TOP云物理服务器特惠,CPU可选双路E5-2660(32核)、双路E5-2680v2(40核)、双路E5-2696/98 V4(88核)、双路Gold 6138(80核)、双路Platinum 8173(112核);
内存从32G-128G可选,带宽有单线、多线独享20M-200M,价格低至368元。
购买链接:https://c.topyun.vip/cart?fid=1&gid=236

  在服务器管理中,SSH服务是远程运维的核心通道,但开放给所有IP访问可能带来安全风险(如暴力破解、恶意扫描)。通过配置/etc/hosts.allow/etc/hosts.deny文件,可精准控制允许或拒绝访问SSH的IP段,大幅提升服务器安全性。本文将详细介绍配置方法、常见场景及注意事项,并推荐一款适合高安全需求的TOP云物理服务器,助您轻松构建安全的远程访问环境。


一、为什么需要限制SSH访问IP?

1. 降低暴力破解风险

  攻击者常通过扫描工具批量尝试SSH登录,限制访问IP可大幅减少被扫描的概率,保护账号安全。

2. 符合合规要求

  金融、医疗等行业合规标准(如PCI DSS、等保2.0)明确要求远程访问需限制为可信IP段。

3. 优化网络性能

  减少无效连接请求,降低服务器负载,尤其适用于高并发场景(如多用户同时登录)。

4. 防止内部误操作

  仅允许特定办公网络或运维团队IP访问,避免因权限扩散导致的误操作或数据泄露。


二、hosts.allow与hosts.deny配置原理

1. 文件作用

  • /etc/hosts.allow:定义允许访问服务的IP或网段(白名单)。
  • /etc/hosts.deny:定义拒绝访问服务的IP或网段(黑名单)。
  • 优先级:先检查hosts.allow,若匹配则允许访问;否则检查hosts.deny,若匹配则拒绝;均不匹配则默认允许(不安全,需显式配置)。

2. 语法规则

  • 格式服务名: IP或网段
    示例:
    Ini

    sshd: 192.168.1.0/24  # 允许192.168.1.0/24网段访问SSH
    sshd: 203.0.113.45    # 允许单个IP 203.0.113.45访问
  • 通配符
    • ALL:匹配所有服务或IP。
    • LOCAL:匹配本地回环地址(127.0.0.1)。
    • PARANOID:严格匹配IP与反向DNS解析结果(可能影响合法访问)。

三、配置步骤与场景示例

场景1:仅允许特定IP段访问SSH(推荐)

需求:仅允许192.168.1.0/24203.0.113.0/24两个网段访问SSH,拒绝其他所有IP。
步骤

  1. 编辑/etc/hosts.allow,添加允许的IP段:
    Bash

    sudo nano /etc/hosts.allow

    内容:

    Ini

    sshd: 192.168.1.0/24 203.0.113.0/24
  2. 编辑/etc/hosts.deny,拒绝所有其他IP:
    Bash

    sudo nano /etc/hosts.deny

    内容:

    Ini

    sshd: ALL
  3. 验证配置
    • 从允许的IP测试SSH连接:
      Bash

      ssh user@your-server-ip
    • 从拒绝的IP测试,应提示Connection refused

场景2:允许所有IP但拒绝特定恶意IP

需求:临时封禁攻击者IP10.0.0.55,同时保留其他合法访问。
步骤

  1. 编辑/etc/hosts.deny,添加拒绝规则:
    Ini

    sshd: 10.0.0.55
  2. 无需修改hosts.allow(默认允许所有未被拒绝的IP)。

场景3:多服务差异化控制

需求:允许192.168.1.0/24访问SSH和FTP,但仅允许203.0.113.45访问SSH。
步骤

  1. 编辑/etc/hosts.allow
    Ini

    sshd: 192.168.1.0/24 203.0.113.45
    vsftpd: 192.168.1.0/24  # FTP服务仅允许192.168.1.0/24
  2. 编辑/etc/hosts.deny,拒绝其他所有SSH和FTP访问:
    Ini

    sshd: ALL
    vsftpd: ALL

四、TOP云物理服务器:高安全SSH访问的理想平台

  在配置SSH访问控制时,服务器的稳定性和网络质量是关键。TOP云物理服务器提供以下优势,确保您的安全策略高效执行:

  • 高性能硬件

    • CPU可选双路E5-2660(32核)至双路Platinum 8173(112核),轻松应对高并发SSH连接和防火墙规则匹配。
    • 内存从32G到128G可选,避免因资源不足导致安全策略生效延迟。
  • 稳定网络带宽

    • 提供单线、多线独享20M-200M带宽,降低网络延迟对访问控制的影响,确保规则快速生效。
    • 支持带宽灵活升级,满足业务增长需求。
  • 企业级安全支持

    • 物理服务器独享资源,避免虚拟化环境下的安全风险。
    • 低至368元的起售价,让您以低成本构建高安全性的远程访问环境。

立即选购,为您的SSH安全保驾护航!
点击这里,了解更多并购买TOP云物理服务器


五、注意事项与常见问题

1. 配置顺序与优先级

  • 务必先配置hosts.allow,再配置hosts.deny。若顺序颠倒或遗漏,可能导致服务不可用。
  • 默认策略:若未显式配置hosts.deny,未匹配hosts.allow的IP将默认允许访问(不安全)。

2. 语法错误排查

  • 规则不生效
    • 检查文件权限是否为644-rw-r--r--):
      Bash

      sudo chmod 644 /etc/hosts.allow /etc/hosts.deny
    • 确保规则格式正确(如IP段使用/24而非*)。
  • 服务名错误
    • SSH服务名通常为sshd(OpenSSH),但某些系统可能为ssh,需通过以下命令确认:
      Bash

      ps aux | grep ssh  # 查看运行中的SSH服务进程名

3. 测试与回滚

  • 测试前备份配置
    Bash

    sudo cp /etc/hosts.allow /etc/hosts.allow.bak
    sudo cp /etc/hosts.deny /etc/hosts.deny.bak
  • 快速回滚
    • 若配置错误导致无法SSH登录,可通过云控制台VNC终端救援模式恢复访问,然后修正配置。

4. 结合其他安全措施

  • 使用SSH密钥认证:禁用密码登录,进一步降低暴力破解风险。
    Ini

    # 在/etc/ssh/sshd_config中设置:
    PasswordAuthentication no
    ChallengeResponseAuthentication no
  • 配置Fail2Ban:自动封禁频繁尝试登录的IP。
    Bash

    sudo apt install fail2ban  # Ubuntu/Debian
    sudo yum install fail2ban  # CentOS/RHEL

5. 允许本地回环访问

  • 若需从服务器本地访问SSH(如通过localhost127.0.0.1),需在hosts.allow中显式允许:
    Ini

    sshd: LOCAL

六、高级配置技巧

1. 使用CIDR表示法简化规则

  • 允许多个连续网段时,可用CIDR合并规则:
    Ini

    sshd: 192.168.1.0/24 192.168.2.0/24  # 传统写法
    sshd: 192.168.0.0/23               # 合并为192.168.0.0-192.168.1.255

2. 动态更新规则(结合脚本)

  • 通过脚本动态添加恶意IP到hosts.deny
    Bash

    echo "sshd: $MALICIOUS_IP" | sudo tee -a /etc/hosts.deny

3. 监控访问日志

  • 实时查看SSH登录尝试:
    Bash

    sudo tail -f /var/log/auth.log  # Ubuntu/Debian
    sudo journalctl -u ssh --follow  # CentOS/RHEL(systemd)
  • 结合grep过滤特定IP:
    Bash

    sudo grep "Failed password" /var/log/auth.log | grep "10.0.0.55"

七、总结与最佳实践

  1. 最小权限原则:仅允许必要的IP段访问SSH,拒绝所有其他IP。
  2. 显式配置默认策略:在hosts.deny中添加sshd: ALL,避免默认允许未匹配的IP。
  3. 多层次防护:结合hosts.allow/deny、SSH密钥认证、Fail2Ban等工具构建纵深防御。
  4. 定期审计规则:清理不再需要的IP段,避免规则膨胀导致管理困难。
  5. 测试与备份:修改前备份配置,并通过云控制台或本地网络测试规则生效情况。

  通过合理配置/etc/hosts.allow/etc/hosts.deny,您可显著提升服务器SSH访问的安全性。搭配TOP云物理服务器的强劲性能和稳定网络,您的远程运维将更加高效、可靠!

阿, 信