Ubuntu FTP服务器安全配置方法
一 基础安全原则
二 以 vsftpd 为例的安全配置步骤
sudo apt update && sudo apt install vsftpdsudo systemctl start vsftpd && sudo systemctl enable vsftpdanonymous_enable=NOlocal_enable=YESwrite_enable=YESchroot_local_user=YESallow_writeable_chroot=YES(若 chroot 目录需可写;也可改为不可写并通过子目录授权)xferlog_enable=YESxferlog_std_format=YESuserlist_enable=YESuserlist_file=/etc/vsftpd.user_listuserlist_deny=NO(白名单模式,仅列表内用户可登录)sudo setsebool -P ftp_home_dir 1 以允许 FTP 访问家目录。sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pemssl_enable=YESrsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pemforce_local_data_ssl=YESforce_local_logins_ssl=YESssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NOsudo systemctl restart vsftpdsudo ufw allow 21/tcpsudo ufw allow 20/tcpsudo ufw allow 30000:31000/tcpsudo ufw enablepasv_min_port=30000pasv_max_port=31000sudo useradd -d /home/ftpuser -s /usr/sbin/nologin ftpusersudo passwd ftpusersudo chown -R ftpuser:ftpuser /home/ftpusersudo chmod 755 /home/ftpuserecho "ftpuser" | sudo tee -a /etc/vsftpd.user_listssl_enable=YESallow_anon_ssl=NOforce_ssl=YES三 防火墙与被动模式要点
sudo ufw allow 21/tcpsudo ufw allow 20/tcpsudo ufw allow 30000:31000/tcpsudo ufw status verbose(核对规则)四 用户管理与访问控制
userlist_enable=YESuserlist_file=/etc/vsftpd.user_listuserlist_deny=NO(仅允许列表内用户)sudo useradd -s /usr/sbin/nologin ftpuserchroot_local_user=YES 将用户锁定在其主目录allow_writeable_chroot=YES;更安全的做法是主目录不可写,仅对特定子目录授予写权限(如 upload/)。chmod 755,上传目录 chmod 775 并按需设置属主属组,避免全局可写。五 日志审计与持续加固
xferlog_enable=YESxferlog_std_format=YESsudo tail -f /var/log/vsftpd.log 或 sudo tail -f /var/log/xferlogsudo apt update && sudo apt upgrade -yrsa_cert_file 与 rsa_private_key_file 后重启服务