基于用户认证默认ftp家目录用户家目录
1. 安装vsftpd服务
1 2 3 4 5 6 7 8
| sudo apt update
sudo apt install vsftpd -y
sudo systemctl status vsftpd
|
2. 配置vsftpd
备份原始配置文件
1
| sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup
|
编辑配置文件
1
| sudo nano /etc/vsftpd.conf
|
主要配置内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| listen=YES listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
connect_from_port_20=YES
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.userlist
pasv_min_port=30000 pasv_max_port=31000
ssl_enable=NO
ftpd_banner=Welcome to FTP Server
idle_session_timeout=600 data_connection_timeout=120
max_clients=50
max_per_ip=5
|
3. 创建FTP用户和自定义目录
mkdir -pv /data/ftp/{user1,user2}
useradd -d /data/ftp/user1 -s /sbin/nologin user1
useradd -d /data/ftp/user2 -s /sbin/nologin user2
passwd user1
passwd user2
设置目录权限
mkdir -pv /data/ftp/user{1..2}/upload
chown -R user1: /data/ftp/user1/
chown -R user2: /data/ftp/user2/
4. 配置用户访问权限
创建允许访问的用户列表
1
| sudo nano /etc/vsftpd.userlist
|
添加允许访问的用户:
user1
user2
5.启动vsftpd服务及验证
systemctl restart vsftpd
ftp [email protected]
ftp [email protected]
基于用户认证支持自定义ftp家目录
1.创建用户配置目录
1
| sudo mkdir /etc/vsftpd_user_conf
|
为特定用户创建配置文件:
1 2
| sudo nano /etc/vsftpd_user_conf/user1
|
在配置文件中添加:
1 2 3 4 5 6
| local_root=/data/ftp/user1/upload write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
|
1 2
| sudo nano /etc/vsftpd_user_conf/user2
|
1 2 3 4 5 6
| local_root=/data/ftp/user2/upload write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
|
2.在主配置文件中启用用户特定配置
在 /etc/vsftpd.conf
文件末尾添加:
1 2
| user_config_dir=/etc/vsftpd_user_conf
|
3.启动验证
systemctl restart vsftpd
ftp [email protected]
ftp [email protected]
基于用户认证配置ssl
1. 启用SSL/TLS加密
1 2 3 4 5 6 7 8 9
| 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 rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem
|
2. 限制连接数和传输速度
1 2 3
| max_clients=50 max_per_ip=5 local_max_rate=1000000
|
vsftpd调试命令
1 2 3 4 5 6 7 8
| sudo vsftpd -olisten=NO /etc/vsftpd.conf
sudo netstat -tlnp | grep :21
sudo cat /etc/vsftpd.userlist
|
vsftpd配置防火墙
1 2 3 4 5 6 7 8
| sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
sudo ufw reload
|