CentOS中Telnet安全设置有哪些
CentOS中Telnet安全设置及替代方案
1. 安装Telnet服务(仅基础需求)
若需使用Telnet,首先安装telnet-server
包(CentOS默认未安装):
sudo yum install telnet-server
安装后,通过systemctl
启动并设置开机自启:
sudo systemctl start telnet.socket
sudo systemctl enable telnet.socket
注:Telnet本身不安全,仅在测试或内部网络等低安全需求场景下使用。
2. 配置防火墙限制访问
默认情况下,防火墙(firewalld/iptables)会阻止Telnet端口(23/tcp)的流量,需手动放行:
- firewalld(推荐):
sudo firewall-cmd --permanent --add-port=23/tcp 永久添加23端口规则 sudo firewall-cmd --reload 重新加载防火墙配置
- iptables(传统方式):
sudo iptables -A INPUT -p tcp --dport 23 -j ACCEPT 允许23端口tcp流量 sudo service iptables save 保存iptables规则(CentOS 7及以上需用systemctl)
提示:防火墙仅能限制网络层访问,无法解决Telnet明文传输的核心安全问题。
3. 禁止root用户通过Telnet登录
Telnet传输的用户名和密码为明文,禁止root登录可降低被暴力破解的风险:
编辑/etc/securetty
文件(控制终端登录权限),注释或删除包含pts/0
、pts/1
等的行(这些是Telnet使用的虚拟终端):
sudo vi /etc/securetty
示例:注释root对应的行
pts/0
pts/1
修改后,root用户无法通过Telnet登录,需使用普通用户登录后再切换至root(su -
)。
4. 使用xinetd优化服务配置
CentOS中Telnet通常由xinetd
(超级服务守护进程)管理,需编辑其配置文件/etc/xinetd.d/telnet
:
sudo vi /etc/xinetd.d/telnet
确保以下关键配置(启用服务并记录登录用户):
service telnet
{
disable = no 设为no表示启用服务
socket_type = stream
protocol = tcp
wait = no
user = root 以root身份运行(需结合securetty限制)
server = /usr/sbin/in.telnetd
log_on_failure += USERID 记录失败登录的用户名(便于审计)
}
修改后重启xinetd
服务使配置生效:
sudo systemctl restart xinetd
注:log_on_failure
可帮助追踪非法登录尝试,提升安全审计能力。
5. 启用SELinux增强安全
若SELinux处于enforcing
模式(默认),可通过调整策略限制Telnet服务的权限:
- 查看SELinux状态:
sestatus
- 临时禁用Telnet(测试用):
sudo setenforce 0
- 永久禁用Telnet(修改配置文件):
编辑/etc/selinux/config
,将SELINUX=enforcing
改为SELINUX=permissive
(允许但不强制执行策略)或SELINUX=disabled
(完全禁用)。 - 更严格的SELinux策略(可选):
使用setsebool
命令禁止Telnet服务:sudo setsebool -P telnetd_disable 1 永久禁用Telnet
SELinux通过强制访问控制(MAC)进一步提升系统安全性,建议保持enforcing
模式并结合策略调整。
6. 定期更新系统和软件
及时修复Telnet服务的安全漏洞,降低被攻击的风险:
sudo yum update telnet-server xinetd 更新Telnet相关软件包
sudo yum update 更新系统所有软件包
定期更新是防范已知漏洞的重要手段,尤其是针对Telnet这类老旧协议。
7. 强烈建议:使用SSH替代Telnet
Telnet的核心安全缺陷是明文传输(用户名、密码、命令均以明文形式传输),易受中间人攻击(MITM)、数据窃听等威胁。SSH(Secure Shell)通过加密通道保障数据安全,是Telnet的最佳替代方案:
- 安装SSH服务器:
sudo yum install openssh-server
- 启动并设置开机自启:
sudo systemctl start sshd sudo systemctl enable sshd
- 配置SSH增强安全(可选):
编辑/etc/ssh/sshd_config
,设置以下参数:PermitRootLogin no 禁止root远程登录 PubkeyAuthentication yes 启用公钥认证(更安全) PasswordAuthentication no 可选:禁用密码认证(仅公钥认证) MaxAuthTries 3 限制登录尝试次数(防止暴力破解) Ciphers aes128-ctr,aes192-ctr,aes256-ctr 使用强加密算法
- 重启SSH服务:
sudo systemctl restart sshd
SSH通过加密通信彻底解决了Telnet的安全问题,是生产环境中远程管理的标准方案。
总结
Telnet因明文传输特性不适合生产环境,若必须使用,需通过防火墙限制访问、禁止root登录、优化xinetd配置等方式降低风险;优先选择SSH替代Telnet,从根本上解决安全问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS中Telnet安全设置有哪些
本文地址: https://pptw.com/jishu/715484.html