温馨提示×

centos telnet如何限制连接次数

小樊
47
2025-11-01 10:27:55
栏目: 智能运维

在CentOS系统中,您可以使用iptablesfail2ban来限制Telnet连接次数。以下是具体步骤:

使用iptables限制连接次数

  1. 查看当前iptables规则

    sudo iptables -L -n
    
  2. 添加规则以限制连接次数: 假设您想限制来自特定IP地址的Telnet连接尝试次数为5次,并在超过后阻止该IP地址1小时。

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

    解释:

    • -A INPUT:将规则添加到INPUT链。
    • -p tcp --dport 23:指定协议为TCP,目标端口为23(Telnet)。
    • -m state --state NEW:只匹配新的连接请求。
    • -m recent --set:为新连接设置一个计数器。
    • -m recent --update --seconds 3600 --hitcount 5 -j DROP:更新计数器,如果在3600秒内达到5次连接,则丢弃该连接。
  3. 保存iptables规则: CentOS 7及以上版本使用firewalld,而CentOS 6使用iptables-persistent

    • 对于CentOS 7:
      sudo firewall-cmd --runtime-to-permanent
      sudo firewall-cmd --reload
      
    • 对于CentOS 6:
      sudo service iptables save
      sudo service iptables restart
      

使用fail2ban限制连接次数

  1. 安装fail2ban

    sudo yum install fail2ban -y
    
  2. 配置fail2ban: 编辑/etc/fail2ban/jail.local文件,添加或修改以下内容:

    [DEFAULT]
    bantime = 3600  # 禁用时间(秒)
    findtime = 600  # 检测时间窗口(秒)
    maxretry = 5    # 最大重试次数
    
    [ssh]
    enabled = true
    port = 23
    filter = sshd
    logpath = /var/log/secure
    bantime = 3600
    findtime = 600
    maxretry = 5
    

    解释:

    • bantime:禁用时间,超过此时间后IP将被解封。
    • findtime:检测时间窗口,在此期间内的失败尝试次数将被计数。
    • maxretry:最大重试次数,超过此次数后IP将被禁用。
    • [ssh]部分是示例,您可以根据需要修改端口号和日志路径。
  3. 启动并启用fail2ban服务

    sudo systemctl start fail2ban
    sudo systemctl enable fail2ban
    
  4. 检查fail2ban状态

    sudo systemctl status fail2ban
    

通过以上步骤,您可以有效地限制CentOS系统上的Telnet连接次数,提高系统的安全性。

0