Ubuntu上的FTPS(FTP over SSL/TLS)服务器可以通过一系列步骤进行安全加固,以保护数据传输的安全性和防止未经授权的访问。以下是一些关键的安全加固措施:
首先,确保你已经安装了一个FTP服务器软件,如vsftpd。以下是使用vsftpd作为示例的安装步骤:
sudo apt update
sudo apt install vsftpd
启用本地用户访问:编辑vsftpd配置文件(通常位于/etc/vsftpd.conf
),确保以下配置项设置正确:
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
禁用匿名访问:默认情况下,vsftpd允许匿名访问,但出于安全考虑,建议禁用匿名访问:
anonymous_enable=NO
配置FTP端口范围:编辑vsftpd配置文件以定义FTP数据传输的端口范围:
pasv_min_port=30000
pasv_max_port=31000
启用日志记录:编辑vsftpd配置文件以启用日志记录:
xferlog_enable=YES
xferlog_std_format=YES
为了进一步增强FTP服务器的安全性,可以配置FTP服务器以使用TLS/SSL加密传输数据。以下是配置步骤:
在/etc/ssl
目录下创建一个子目录来存储SSL/TLS证书和密钥文件:
sudo mkdir /etc/ssl/private
生成证书和密钥:
sudo openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048
编辑vsftpd配置文件(通常位于/etc/vsftpd/vsftpd.conf
),添加或找到选项以启用SSL:
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
阻止匿名用户使用SSL登录,并迫使所有的非匿名登录使用安全的SSL链接来传输数据:
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
使用ufw(Uncomplicated Firewall)配置防火墙规则以允许FTP流量通过:
sudo apt install ufw
sudo ufw enable
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
sudo ufw reload
创建FTP用户并设置其主目录:
sudo adduser ftpuser
sudo usermod -d /var/ftp ftpuser
确保用户的主目录具有正确的权限:
sudo chown ftpuser:ftpuser /var/ftp
sudo chmod 755 /var/ftp
使用unattended-upgrades包实现系统的自动更新,定期手动运行:
sudo apt update && sudo apt upgrade
systemctl
命令禁用不必要的服务,减少潜在的安全隐患。通过上述步骤,你可以显著提高Ubuntu FTPS服务器的安全性,保护你的数据和系统免受未经授权的访问。