Debian 与 vsftpd 的防火墙配置
一、前置准备
sudo apt update && sudo apt install vsftpdsudo systemctl start vsftpd && sudo systemctl enable vsftpdsudo ufw status;启用:sudo ufw enable。如未安装 UFW,可先 sudo apt install ufw。二、UFW 规则配置
sudo ufw allow 20:21/tcpsudo ufw allow 21/tcpsudo ufw allow 49152:65535/tcpsudo ufw allow 990/tcpsudo ufw reloadsudo ufw status verbose(确认规则与方向)。三、vsftpd 配置要点
anonymous_enable=NO、local_enable=YES、write_enable=YESchroot_local_user=YESpasv_enable=YES、pasv_min_port=49152、pasv_max_port=65535ssl_enable=YES、rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem、rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.keysudo systemctl restart vsftpd。四、常见场景与端口对照
| 场景 | 需放行端口 | vsftpd 关键配置 | 说明 |
|---|---|---|---|
| 主动模式 FTP | 20/tcp、21/tcp | connect_from_port_20=YES |
服务器主动连客户端高位端口,需放行服务器出/入站的 20 与 21。 |
| 被动模式 FTP | 21/tcp + 被动区间 | pasv_enable=YES、pasv_min_port、pasv_max_port |
客户端连服务器被动端口区间,区间两端需在防火墙放行。 |
| 隐式 FTPS | 990/tcp(及被动区间) | ssl_enable=YES |
隐式 FTPS 常用 990 作为控制端口,数据通道同样走被动区间。 |
| 自定义被动区间 | 例如 21100:21110/tcp | pasv_min_port=21100、pasv_max_port=21110 |
便于在云厂商安全组/防火墙中精确放行。 |
五、验证与排错
sudo ufw status verbosenc -vz <服务器IP> 21、nc -vz <服务器IP> 990、nc -vz <服务器IP> <被动端口>sudo journalctl -u vsftpd -fsudo systemctl restart vsftpd