必须禁用telnet和ftp服务并切换至ssh/sftp:因二者明文传输凭证,风险极高;需停服务、禁自启、删配置、配防火墙,并启用密钥认证的ssh与sftp替代。

禁用Telnet和FTP不是简单封个端口的事,关键在于停服务、锁访问、换替代。这两个协议都明文传输账号密码,一旦暴露在公网,等于把钥匙挂在门把手上。
直接停掉Telnet服务
绝大多数现代Linux发行版(如Ubuntu 22.04+、CentOS 8+、Debian 11+)用systemd管理Telnet,它通常以socket方式运行:
- 停止当前运行:sudo systemctl stop telnet.socket
- 禁止开机自启:sudo systemctl disable telnet.socket
- 确认已停:sudo systemctl status telnet.socket(应显示inactive或not found)
如果系统用xinetd托管Telnet,编辑/etc/xinetd.d/telnet,把disable = no改成disable = yes,再执行sudo systemctl restart xinetd。
彻底禁用FTP服务(不只是vsftpd)
FTP本身不安全,尤其匿名FTP或明文认证模式。禁用需分两步:
- 停服务:sudo systemctl stop vsftpd(或pure-ftpd、proftpd等对应服务名),再sudo systemctl disable vsftpd
- 删配置:检查/etc/vsftpd.conf是否含anonymous_enable=YES,如有,改为NO并重启;若无业务需求,直接卸载:sudo apt remove vsftpd(Debian/Ubuntu)或sudo yum remove vsftpd(RHEL/CentOS)
注意:有些系统会通过xinetd启动FTP,同样要检查/etc/xinetd.d/ftp并设disable = yes。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
防火墙补一刀,防漏网之鱼
即使服务停了,万一哪天被误启或有残留进程监听,防火墙是最后一道防线:
- 用ufw(推荐新手):sudo ufw deny 23/tcp && sudo ufw deny 21/tcp
- 用firewalld(RHEL系):sudo firewall-cmd --permanent --remove-service=telnet --remove-service=ftp && sudo firewall-cmd --reload
- 用iptables(通用):sudo iptables -A INPUT -p tcp --dport 23 -j DROP && sudo iptables -A INPUT -p tcp --dport 21 -j DROP
执行后建议用sudo ss -tuln | grep -E ':(21|23)'验证端口无监听。
务必切换到SSH + SFTP替代方案
禁掉Telnet和FTP后,远程管理必须有安全替代:
- 确保SSH服务正常运行:sudo systemctl is-active sshd(Ubuntu/Debian)或sshd(RHEL/CentOS)
- 关闭密码登录,只用密钥:sudo nano /etc/ssh/sshd_config,设PasswordAuthentication no,重启sshd
- 用SFTP传文件:所有支持SSH的客户端(如FileZilla、WinSCP、命令行sftp user@host)都默认走SFTP,无需额外开FTP端口
这样既满足远程登录和文件传输需求,又避免明文风险。










