您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。