centos telnet如何防止被攻击
导读:1. 禁用Telnet服务(最彻底的安全措施) Telnet传输数据(包括用户名、密码)为明文,易被窃听或篡改,优先选择禁用该服务。执行以下命令停止并禁用Telnet: sudo systemctl stop telnet.socket...
1. 禁用Telnet服务(最彻底的安全措施)
Telnet传输数据(包括用户名、密码)为明文,易被窃听或篡改,优先选择禁用该服务。执行以下命令停止并禁用Telnet:
sudo systemctl stop telnet.socket # 停止Telnet服务
sudo systemctl disable telnet.socket # 禁止开机自启
通过systemctl status telnet.socket确认服务状态(显示“inactive (dead)”且“disabled”即为生效)。
2. 使用防火墙限制Telnet端口访问
即使服务未禁用,也可通过防火墙阻断未授权访问。针对CentOS常用防火墙工具:
- firewalld(推荐,适用于CentOS 7+):
sudo firewall-cmd --permanent --remove-service=telnet # 移除Telnet服务规则(若已存在) sudo firewall-cmd --reload # 重新加载配置 - iptables(传统工具):
sudo iptables -A INPUT -p tcp --dport 23 -j DROP # 拒绝23端口的TCP连接 sudo service iptables save # 保存规则(CentOS 6及以下)
此操作可有效阻止外部IP访问Telnet端口。
3. 用SSH替代Telnet(最佳替代方案)
SSH提供加密通信通道,彻底解决Telnet的安全缺陷。配置步骤如下:
- 安装SSH服务器:
sudo yum install openssh-server -y - 启动并设置开机自启:
sudo systemctl start sshd sudo systemctl enable sshd - 强化SSH配置(编辑
/etc/ssh/sshd_config):PermitRootLogin no # 禁止root远程登录 PubkeyAuthentication yes # 启用公钥认证(更安全) PasswordAuthentication no # 可选:禁用密码认证(需提前配置公钥) MaxAuthTries 3 # 限制登录尝试次数(防止暴力破解) - 重启SSH服务:
sudo systemctl restart sshd - 配置防火墙允许SSH:
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
通过SSH反向隧道或密钥认证进一步提升安全性。
4. 使用SELinux增强安全防护
SELinux可通过强制访问控制(MAC)限制Telnet服务的权限:
- 启用SELinux(若未启用):
sudo setenforce 1 # 临时设置为Enforcing模式 sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config # 永久生效 - 禁用Telnet传输(可选):
sudo setsebool -P telnetd_disable_trans on # 阻止Telnet的网络传输
通过getsebool -a | grep telnet验证策略是否生效。
5. 监控与入侵防御
- 监控Telnet登录日志:定期检查
/var/log/secure(CentOS)中的Telnet登录记录,识别异常尝试:sudo grep 'telnet' /var/log/secure - 使用Fail2Ban防御暴力破解:
安装并配置Fail2Ban,自动封禁多次登录失败的IP:编辑sudo yum install fail2ban -y sudo systemctl start fail2ban sudo systemctl enable fail2ban/etc/fail2ban/jail.local,添加Telnet监控规则:重启Fail2Ban使配置生效。[telnet] enabled = true port = 23 filter = telnetd logpath = /var/log/secure maxretry = 3 bantime = 600
6. 限制Telnet登录用户(若必须使用)
若因特殊需求需保留Telnet,可通过以下方式缩小攻击面:
- 创建专用用户:创建仅用于Telnet的低权限用户(如
telnetuser),并设置强密码。 - 修改
/etc/securetty文件:注释或删除root用户的登录权限,防止root通过Telnet登录:sudo vi /etc/securetty # 注释掉类似“tty1”“tty2”的行(或添加“#”前缀) - 配置xinetd限制访问:编辑
/etc/xinetd.d/telnet,添加only_from指令限制允许访问的IP段:重启xinetd服务使配置生效:service telnet { disable = no only_from = 192.168.1.0/24 # 仅允许内网IP访问 }
注意:此方法仍无法解决明文传输问题,仅作为临时缓解措施。sudo systemctl restart xinetd
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos telnet如何防止被攻击
本文地址: https://pptw.com/jishu/745704.html
