1. 选择安全FTP软件并安装
在Debian上,vsftpd(Very Secure FTP Daemon)是首选FTP服务器软件,以其高安全性和稳定性著称。安装步骤:更新系统包列表并安装vsftpd:sudo apt update && sudo apt install vsftpd
。
2. 严格配置vsftpd.conf文件
编辑/etc/vsftpd.conf
(需root权限),通过以下关键参数强化安全:
anonymous_enable=NO
(防止未授权用户上传/下载文件);local_enable=YES
(允许本地系统用户登录);chroot_local_user=YES
(将用户限制在其家目录,无法访问系统其他路径);allow_writeable_chroot=YES
(避免因家目录不可写导致登录失败);write_enable=NO
(进一步增强安全性);chroot_list_enable=YES
和chroot_list_file=/etc/vsftpd.chroot_list
,仅允许列表中的用户访问FTP服务器(需手动添加允许的用户)。3. 配置防火墙规则
使用**UFW(Uncomplicated Firewall)**管理防火墙,允许FTP必需的端口:
sudo ufw allow 21/tcp
;sudo ufw allow 20/tcp
;/etc/vsftpd.conf
设置pasv_min_port=30000
、pasv_max_port=31000
,然后在UFW中允许该范围:sudo ufw allow 30000:31000/tcp
;sudo ufw enable
(确认规则生效后,仅允许指定流量通过)。4. 启用TLS/SSL加密传输
FTP默认传输为明文,易被窃听。通过以下步骤启用TLS/SSL:
sudo apt install openssl
;sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
(私钥和证书合并为一个文件);/etc/vsftpd.conf
中添加:ssl_enable=YES
、force_local_data_ssl=YES
、force_local_logins_ssl=YES
、rsa_cert_file=/etc/ssl/private/vsftpd.pem
、rsa_private_key_file=/etc/ssl/private/vsftpd.pem
(强制所有连接使用加密)。5. 强化用户权限与访问控制
sudo adduser ftpuser
(设置强密码,如包含大小写字母、数字和特殊字符);/var/ftp
),并设置权限:sudo usermod -d /var/ftp ftpuser
、sudo chmod 755 /var/ftp
(确保用户只能访问自己的目录);/etc/ssh/sshd_config
,设置PermitRootLogin no
(防止root通过SSH登录),重启SSH服务:sudo systemctl restart sshd
。6. 定期更新与维护
sudo apt update && sudo apt upgrade
,安装最新的安全补丁(修复已知漏洞);/var/log/vsftpd.log
,通过tail -f /var/log/vsftpd.log
实时查看登录记录,或使用Logwatch
工具自动生成每日报告;Lynis
或OpenVAS
等工具定期扫描FTP服务器,检测潜在安全问题(如弱密码、未授权访问)。7. 额外安全措施
/etc/ssh/sshd_config
,设置PasswordAuthentication no
、PubkeyAuthentication yes
(强制使用SSH密钥认证,提升远程管理安全性);/etc/pam.d/common-password
,添加minlen=12
(密码最小长度12位)、dcredit=-1
(至少1个小写字母)、ucredit=-1
(至少1个大写字母)、ocredit=-1
(至少1个特殊字符),强制用户设置复杂密码;chkrootkit
或rkhunter
工具检查系统是否被植入rootkit,及时发现并清除恶意软件。