您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux系统怎么安装VSFTPD
## 一、VSFTPD简介
VSFTPD(Very Secure FTP Daemon)是Linux平台上一款轻量级且高度安全的FTP服务器软件,具有以下核心特点:
1. **安全性设计**:
- 原生支持chroot隔离
- 无root权限运行
- 采用最小权限原则
2. **性能表现**:
- 单机支持数千并发连接
- 传输效率优于多数FTP服务
3. **协议支持**:
- 完整支持FTP和FTPS
- IPv6兼容
## 二、安装前准备
### 系统环境检查
```bash
# 查看系统版本
lsb_release -a
# 或
cat /etc/os-release
# 检查防火墙状态
sudo systemctl status firewalld
# 或
sudo ufw status
不同Linux发行版的安装命令:
发行版 | 安装命令 |
---|---|
Ubuntu/Debian | sudo apt update && sudo apt install vsftpd |
CentOS/RHEL | sudo yum install vsftpd |
Arch Linux | sudo pacman -S vsftpd |
编辑主配置文件:
sudo nano /etc/vsftpd.conf
推荐基础配置:
# 基本设置
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
# 安全设置
chroot_local_user=YES
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
创建专用FTP用户:
sudo useradd -m ftpuser
sudo passwd ftpuser
# 设置目录权限
sudo chown -R ftpuser:ftpuser /home/ftpuser
sudo chmod 750 /home/ftpuser
# firewalld配置示例
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=20/tcp
sudo firewall-cmd --reload
# ufw配置示例
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
生成证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
配置文件添加:
ssl_enable=YES
allow_anon_ssl=NO
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
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=your_server_ip
local_max_rate=102400 # 100KB/s
anon_max_rate=51200 # 50KB/s
max_clients=50
max_per_ip=5
操作 | 命令 |
---|---|
启动服务 | sudo systemctl start vsftpd |
停止服务 | sudo systemctl stop vsftpd |
重启服务 | sudo systemctl restart vsftpd |
开机自启 | sudo systemctl enable vsftpd |
查看状态 | sudo systemctl status vsftpd |
连接超时 “`bash
sudo netstat -tuln | grep 21
# 测试本地连接 ftp localhost
2. **530登录错误**
- 检查`/etc/vsftpd.user_list`和`/etc/vsftpd.chroot_list`
- 验证PAM配置:`/etc/pam.d/vsftpd`
3. **文件传输失败**
```bash
# 检查SELinux状态
getenforce
# 临时禁用测试
sudo setenforce 0
# 查看实时日志
sudo tail -f /var/log/vsftpd.log
# 常见日志位置:
# /var/log/messages
# /var/log/syslog
# /var/log/vsftpd.log
定期更新软件包
sudo apt update && sudo apt upgrade vsftpd
使用Fail2Ban防护
# /etc/fail2ban/jail.local添加:
[vsftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = vsftpd
logpath = /var/log/vsftpd.log
maxretry = 3
禁用不必要功能 “`ini
anonymous_enable=NO
# 限制用户列表 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
## 八、客户端连接示例
### Linux客户端
```bash
ftp your_server_ip
# 或使用lftp(支持TLS)
lftp -u username -p 21 your_server_ip
ftp://username@your_server_ip
创建用户数据库:
sudo bash -c "echo -e 'user1\\npass1\\nuser2\\npass2' > /etc/vsftpd/virtual_users.txt"
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
PAM配置:
# /etc/pam.d/vsftpd.virtual添加:
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
可通过修改PAM配置实现MySQL/PostgreSQL认证:
# 安装pam_mysql
sudo apt install libpam-mysql
man vsftpd.conf
注意:所有配置修改后需重启服务生效:
sudo systemctl restart vsftpd
“`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。