CentOS下Telnet安全设置有哪些
CentOS下Telnet安全设置及替代方案
Telnet因明文传输数据(易被窃听、篡改)的特性,不适合生产环境使用。若必须使用,可通过以下措施降低风险;更推荐使用SSH(Secure Shell)替代Telnet,实现加密通信。
1. 限制Telnet服务访问范围
通过防火墙规则仅允许可信IP地址访问Telnet端口(默认23),减少暴露面。
- 使用firewalld(CentOS 7+默认):
# 删除默认允许Telnet的规则(若有) sudo firewall-cmd --permanent --remove-service=telnet # 添加仅允许特定IP(如192.168.1.100)访问Telnet端口 sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="23" accept' # 重新加载防火墙配置 sudo firewall-cmd --reload - 使用iptables(传统防火墙):
# 允许特定IP访问23端口 sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 23 -j ACCEPT # 拒绝其他IP访问23端口 sudo iptables -A INPUT -p tcp --dport 23 -j DROP # 保存iptables规则(CentOS 7+需安装iptables-services) sudo service iptables save
2. 禁止root用户通过Telnet登录
root用户拥有最高权限,禁止其通过Telnet登录可防止暴力破解导致系统沦陷。
编辑/etc/securetty文件(控制终端登录权限),删除或注释包含pts/0、pts/1等远程终端的行(如pts/0),仅保留本地登录终端(如tty1~tty6)。
sudo vi /etc/securetty
# 注释以下行(示例)
# pts/0
# pts/1
保存后,root用户无法通过Telnet远程登录,需使用普通用户登录后再切换至root(su -)。
3. 配置SELinux限制Telnet访问
SELinux(Security-Enhanced Linux)可提供额外的访问控制,进一步限制Telnet服务的权限。
- 启用SELinux(若未启用):
# 临时启用SELinux(重启后失效) sudo setenforce 1 # 永久启用SELinux(修改配置文件) sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config - 设置SELinux布尔值:
若需更严格的限制,可禁用Telnet的传输模式:
验证策略是否生效:sudo setsebool -P telnetd_disable_trans ongetsebool -a | grep telnet # 输出应包含:telnetd_disable_trans --> on
4. 强制使用强密码策略
确保Telnet登录账户的密码复杂度足够高,降低被暴力破解的风险。
编辑/etc/pam.d/system-auth文件(认证策略配置),修改密码策略参数:
sudo vi /etc/pam.d/system-auth
# 找到以下行并修改(或添加)
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 minlen=12 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
参数说明:
minlen=12:密码最小长度为12位;dcredit=-1:至少包含1个数字;ucredit=-1:至少包含1个大写字母;lcredit=-1:至少包含1个小写字母;ocredit=-1:至少包含1个特殊字符。
5. 监控Telnet登录日志
定期检查Telnet登录日志,及时发现异常登录行为(如多次失败尝试、陌生IP登录)。
Telnet日志存储在/var/log/secure(CentOS)中,可使用以下命令实时查看:
sudo tail -f /var/log/secure | grep "telnet"
示例日志:
Oct 10 14:30:01 localhost sshd[1234]: Failed password for root from 192.168.1.101 port 23 ssh2
Oct 10 14:30:05 localhost sshd[1234]: Accepted password for user1 from 192.168.1.100 port 23 ssh2
6. 替换为SSH(最安全方案)
SSH通过加密隧道传输数据,彻底解决Telnet的安全隐患。
- 安装SSH服务器:
sudo yum install openssh-server -y - 启动SSH服务并设置开机自启:
sudo systemctl start sshd sudo systemctl enable sshd - 配置SSH安全选项(编辑
/etc/ssh/sshd_config):# 禁用root远程登录 PermitRootLogin no # 使用公钥认证(更安全) PubkeyAuthentication yes # 禁用密码认证(可选,需提前配置公钥) PasswordAuthentication no # 限制登录尝试次数(防止暴力破解) MaxAuthTries 3 # 使用更强的加密算法 Ciphers aes128-ctr,aes192-ctr,aes256-ctr - 重启SSH服务:
sudo systemctl restart sshd - 测试SSH连接:
在本地终端使用以下命令连接:
若配置了公钥认证,可直接登录;若使用密码认证,输入密码即可。ssh user1@your_server_ip -p 22
7. 定期更新系统和软件
及时修补Telnet服务及系统组件的安全漏洞,降低被攻击的风险。
# 更新系统及所有软件包
sudo yum update -y
# 重启系统(若有内核更新)
sudo reboot
注:若无需使用Telnet,建议直接卸载相关软件包,彻底消除安全隐患:
sudo yum remove xinetd telnet-server -y
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS下Telnet安全设置有哪些
本文地址: https://pptw.com/jishu/747557.html
