在CentOS系统中,您可以使用iptables和fail2ban来限制Telnet连接次数。以下是具体步骤:
查看当前iptables规则:
sudo iptables -L -n
添加规则以限制连接次数: 假设您想限制来自特定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次连接,则丢弃该连接。保存iptables规则:
CentOS 7及以上版本使用firewalld,而CentOS 6使用iptables-persistent。
sudo firewall-cmd --runtime-to-permanent
sudo firewall-cmd --reload
sudo service iptables save
sudo service iptables restart
安装fail2ban:
sudo yum install fail2ban -y
配置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]部分是示例,您可以根据需要修改端口号和日志路径。启动并启用fail2ban服务:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
检查fail2ban状态:
sudo systemctl status fail2ban
通过以上步骤,您可以有效地限制CentOS系统上的Telnet连接次数,提高系统的安全性。