温馨提示×

ubuntu怎么禁止ftp登录

小樊
38
2026-10-02 14:01:57
栏目: 智能运维

在 Ubuntu 上“禁止 FTP 登录”通常有几种不同场景,下面按最常见需求给你说明做法。


一、完全禁止 FTP 服务(最彻底)

如果你根本不想提供 FTP 服务:

1. 查看是否安装了 FTP 服务

常见 FTP 服务有:

  • vsftpd
  • proftpd
  • pure-ftpd
systemctl status vsftpd

2. 停止并禁用 FTP 服务

以 vsftpd 为例:

sudo systemctl stop vsftpd
sudo systemctl disable vsftpd

如果使用的是 proftpd:

sudo systemctl stop proftpd
sudo systemctl disable proftpd

✅ 这样 FTP 端口(21)就不会再监听,任何人都无法 FTP 登录。


二、只允许 SFTP,禁止 FTP(推荐)

如果你只是想禁用不安全的 FTP,但保留文件传输:

使用 OpenSSH 的 SFTP(更安全)

Ubuntu 默认已支持 SFTP(基于 SSH)。

只需确保:

  • FTP 服务已关闭(见上面)
  • SSH 服务正常运行
sudo systemctl status ssh

用户可通过:

sftp://用户名@服务器IP

登录。


三、禁止某个用户使用 FTP(但保留系统登录)

方法 1:修改 shell(常用)

FTP 登录通常需要合法 shell。

sudo usermod -s /usr/sbin/nologin 用户名

或:

sudo usermod -s /bin/false 用户名

⚠️ 注意:这也会影响 SSH 登录(推荐用 /usr/sbin/nologin)。


方法 2:vsftpd 禁止用户

编辑:

sudo nano /etc/vsftpd.conf

添加:

userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list

然后:

echo 用户名 | sudo tee -a /etc/vsftpd.user_list
sudo systemctl restart vsftpd

四、防火墙层面禁止 FTP(临时封堵)

sudo ufw deny 21/tcp

或(iptables):

sudo iptables -A INPUT -p tcp --dport 21 -j DROP

✅ 推荐方案总结

需求 推荐做法
完全不用 FTP 停止并禁用 vsftpd
安全传输文件 用 SFTP,关 FTP
禁止某用户 nologin + vsftpd 用户列表
临时封端口 ufw deny 21

如果你能告诉我:

  • 用的是 vsftpd / proftpd / pure-ftpd
  • 是想 禁所有 FTP 还是 禁某个用户

我可以给你更精确的一条命令方案。

0 踩