# CentOS8通过VSFTPD配置FTPs的方法 ## 前言 在当今的互联网环境中,数据传输的安全性越来越受到重视。传统的FTP协议由于采用明文传输,存在严重的安全隐患。FTPs(FTP over SSL/TLS)作为FTP的安全扩展,通过SSL/TLS加密技术为文件传输提供了安全保障。本文将详细介绍在CentOS8系统上使用VSFTPD(Very Secure FTP Daemon)配置FTPs服务的完整过程。 ## 一、FTPs简介 ### 1.1 FTPs与FTP的区别 FTPs(FTP Secure)是标准FTP协议的加密版本,主要区别在于: - **加密方式**:FTPs使用SSL/TLS加密所有通信内容 - **端口差异**:FTPs默认使用990端口(控制连接) - **安全性**:FTPs能有效防止中间人攻击和数据窃听 ### 1.2 VSFTPD的优势 VSFTPD作为Linux平台最流行的FTP服务器之一,具有: - 轻量级且高性能 - 出色的安全特性 - 支持虚拟用户 - 良好的兼容性 ## 二、环境准备 ### 2.1 系统要求 - CentOS8操作系统(最小化安装) - 具有sudo权限的用户 - 稳定的网络连接 ### 2.2 安装必要组件 ```bash sudo dnf install -y vsftpd openssl
允许FTPs相关端口:
sudo firewall-cmd --permanent --add-port=21/tcp sudo firewall-cmd --permanent --add-port=990/tcp sudo firewall-cmd --permanent --add-port=40000-50000/tcp sudo firewall-cmd --reload
sudo mkdir /etc/vsftpd/ssl sudo chmod 700 /etc/vsftpd/ssl
使用OpenSSL生成自签名证书:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ -keyout /etc/vsftpd/ssl/vsftpd.key -out /etc/vsftpd/ssl/vsftpd.crt \ -subj "/C=CN/ST=Beijing/L=Beijing/O=YourCompany/CN=yourdomain.com"
参数说明: - -days 3650
:证书有效期(10年) - -newkey rsa:2048
:使用2048位RSA密钥 - 请根据实际情况修改subj
参数
sudo chmod 600 /etc/vsftpd/ssl/vsftpd.*
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
sudo vi /etc/vsftpd/vsftpd.conf
添加/修改以下内容:
# 基本设置 listen=YES listen_ipv6=NO anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES # 安全设置 chroot_local_user=YES allow_writeable_chroot=YES pasv_enable=YES pasv_min_port=40000 pasv_max_port=50000 # SSL/TLS配置 ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO rsa_cert_file=/etc/vsftpd/ssl/vsftpd.crt rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key require_ssl_reuse=NO ssl_ciphers=HIGH
sudo adduser ftpuser sudo passwd ftpuser sudo mkdir -p /home/ftpuser/files sudo chown ftpuser:ftpuser /home/ftpuser/files sudo chmod 750 /home/ftpuser
sudo sestatus
sudo setsebool -P ftpd_full_access on sudo setsebool -P ftpd_use_passive_mode on
sudo semanage fcontext -a -t public_content_rw_t "/home/ftpuser(/.*)?" sudo restorecon -Rv /home/ftpuser
sudo systemctl enable vsftpd sudo systemctl start vsftpd sudo systemctl status vsftpd
使用支持FTPs的客户端(如FileZilla)进行连接测试: - 主机:服务器IP地址 - 协议:FTP over TLS - 用户:ftpuser - 密码:设置的用户密码 - 端口:21
sudo tail -f /var/log/vsftpd.log
sudo mkdir /etc/vsftpd/virtual_users sudo touch /etc/vsftpd/virtual_users/logins.txt
sudo vi /etc/vsftpd/virtual_users/logins.txt
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users/logins.txt /etc/vsftpd/virtual_users/vsftpd-virtual-user.db
在vsftpd.conf
中添加:
local_max_rate=102400 # 限制本地用户速度为100KB/s anon_max_rate=51200 # 限制匿名用户速度为50KB/s
deny_file={*.exe,*.sh,*.php} max_clients=50 max_per_ip=5
VSFTPD日志通常位于: - /var/log/vsftpd.log
- /var/log/messages
userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO
xferlog_enable=YES dual_log_enable=YES log_ftp_protocol=YES
调整连接参数:
max_clients=100 max_per_ip=10 accept_timeout=60 connect_timeout=60
启用主动模式优化:
port_enable=YES port_promiscuous=YES
内核参数调优:
echo "net.ipv4.tcp_window_scaling = 1" >> /etc/sysctl.conf echo "net.core.rmem_max = 16777216" >> /etc/sysctl.conf echo "net.core.wmem_max = 16777216" >> /etc/sysctl.conf sysctl -p
通过本文的详细指导,您应该已经成功在CentOS8系统上配置了安全的FTPs服务。VSFTPD配合SSL/TLS加密,能够为企业文件传输提供可靠的安全保障。建议定期检查服务器日志,及时更新软件和证书,以维持服务的安全性和稳定性。
sudo systemctl restart vsftpd
sudo vsftpd /etc/vsftpd/vsftpd.conf
sudo netstat -tulnp | grep vsftpd
”`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。