vsftpd部署
# 安装vsftpd
yum install vsftpd -y
1
# 默认配置介绍
grep -vE "^#|^$" /etc/vsftpd/vsftpd.conf
# 这个选项禁止匿名用户登录。默认情况下是 NO,即禁止匿名访问
anonymous_enable=NO
# 允许本地用户使用他们的系统账户登录 FTP 服务器。如果设置为 NO,则只有匿名用户和虚拟用户可以登录。
local_enable=YES
# 禁止任何写操作,包括上传、删除、修改文件等操作。默认情况下是 NO,如果需要允许用户进行写操作,必须将此选项设置为 YES
write_enable=YES
# 定义本地用户上传文件时的权限掩码,默认值 022 会为文件设置权限为 755
local_umask=022
# 当用户进入目录时显示包含消息的文件,通常是 .message 文件。
dirmessage_enable=YES
# 启用传输日志,所有的上传和下载操作都会记录在日志文件中,日志路径可以通过 xferlog_file 进行配置。
xferlog_enable=YES
# 禁止本地用户访问文件系统的根目录。设置为 YES 后,本地用户会被限制在自己的主目录中,无法访问其他系统文件。
connect_from_port_20=YES
# 定义是否以标准格式记录传输日志
xferlog_std_format=YES
# 控制 vsftpd 是否作为独立的服务监听 IPv4 连接,如果设置为 NO,vsftpd 将不会独立监听 IPv4 网络接口
listen=NO
#控制 vsftpd 是否作为独立的服务监听 IPv6 连接。如果设置为 YES,vsftpd 将独立监听 IPv6 网络接口,而不依赖于 inetd 或 xinetd
listen_ipv6=YES
# 该选项指定了 PAM(Pluggable Authentication Module)服务名称,用于认证 FTP 用户
pam_service_name=vsftpd
# 启用用户列表功能,阻止用户登录。通过 userlist_file 指定用户列表文件的路径。
userlist_enable=YES
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 匿名用户配置操作
功能:可以查看,删除文件夹,创建文件夹,修改文件夹
# 这个选项禁止匿名用户登录。默认情况下是 NO,即禁止匿名访问
anonymous_enable=YES
#允许匿名用户上传文件并可以创建目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
1
2
3
4
5
6
2
3
4
5
6
授权 chown ftp.ftp /var/ftp/pub/
注意,默认匿名用户家目录的权限是755,这个权限是不能改变的。切记!
# 系统用户操作
useradd -s /sbin/nologin team1
useradd -s /sbin/nologin team2
echo "123456" | passwd --stdin team1
echo "123456" | passwd --stdin team2
1
2
3
4
2
3
4
配置文件
anonymous_enable=NO:禁止匿名用户登录
local_enable=YES:允许本地用户登录
local_root=/var/www/html:设置本地用户的根目录为/var/www/html
chroot_list_enable=YES:激chroot 功能
chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名
allow_writeable_chroot=YES :允许锁定的用户有写的权限
#被动模式端口范围:如果使用被动模式,需要在防火墙中开放被动模式端口。你可以在 vsftpd 配置中指定被动模式端口范围:
pasv_min_port=40000
pasv_max_port=50000
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帐号
touch /etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
team1
team2
ll -d /var/www/html/
drwxr-xrwx. 2 root root 4096 Oct 9 2018 /var/www/html/
vim /etc/pam.d/vsftpd
#注释掉以下这一行:
#auth required pam_shells.so
#重启vsftpd 服务使配置生效
systemctl restart vsftpd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 配置vsftpd,使用SSL证书加密数据传输
FTP与HTTP一样缺省状态都是基于明文传输,希望FTP服务器端与客户端传输保证安全,可以为FTP配置SSL
使用OpenSSL生成自签证书
openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem -days 3560
1
mkdir .sslkey
cp vsftpd.pem .sslkey/
chmod 400 .sslkey/vsftpd.pem
vi /etc/vsftpd/vsftpd.conf
#ssl
ssl_enable=YES
allow_anon_ssl=NO
force_local_logins_ssl=YES
force_local_data_ssl=YES
rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/.sslkey/vsftpd.pem
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
上次更新: 2024/09/06, 02:39:58