yum安装vsftpd及配置

==作者:YB-Chi==

[toc]

安装

1
2
3
4
5
6
7
8
#  检查是否安装
rpm -q vsftpd
vsftpd -v
# 安装vsftpd
yum -y install vsftpd
# 使用最安全的虚拟用户,需要安装db4-utils
rpm -ivh libdb4-4.8.30-13.el7.x86_64.rpm
rpm -ivh libdb4-utils-4.8.30-13.el7.x86_64.rpm

调试

我写了脚本自动执行,不再阐述操作流程,看脚本即可

被动模式

vim vsftp_auto_conf.sh

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#! /bin/bash
# 指定虚拟用户文件
cat >>/etc/vsftpd/vuser.list<<EOF
admin
admin123
EOF

# 使用db_load命令用哈希算法将原始的明文信息文件转换成数据库文件
db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db
rm -f /etc/vsftpd/vuser.list

# 创建用户映射
useradd -d /var/ftproot -s /sbin/nologin virtual
ls -ld /var/ftproot/
chmod -Rf 755 /var/ftproot/
cat >>/etc/pam.d/vsftpd.vu<<EOF
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
EOF

# 创建数据目录
mkdir -p /data
mkdir -p /home/data
chown -R virtual:virtual /data
chown -R virtual:virtual /home/data
ln -s /home/data /data

mkdir /etc/vsftpd/vusers_dir/
cat >>/etc/vsftpd/vusers_dir/admin<<EOF
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF

#修改vsftp配置文件
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
cat >>/etc/vsftpd/vsftpd.conf<<EOF
# 允许匿名访问
anonymous_enable=NO
# 允许本地登陆
local_enable=YES
# 使用chroot将用户限制在其主目录中,增强安全性。通过chroot_list可以指定一些用户不被chroot
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
# 设置用户上传文件时的默认umask,确保文件和目录的权限合适。
local_umask=022
local_root=/data
# 允许匿名用户上传文件(须将全局的write_enable=YES,默认YES)
anon_upload_enable=YES
# 允许匿名用户创建目录
anon_mkdir_write_enable=YES
# 激活目录消息,向远程用户发送消息,进入某个目录
dirmessage_enable=YES
# 确保RORT传输连接来自端口 20
connect_from_port_20=YES
# 日志文件使用标准ftpd xferlog格式的日志文件 ,默认位置 /var/log/xferlog
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
# 限制并发连接数
max_clients=200
# 限制单个ip并发数
max_per_ip=40
# 启用 listen 指令,vsftp 以独立模式运行侦听ipv4 套接字,该指令不能同时使用 with listen_inv6 指令
listen=NO
# 监听ipv6
listen_ipv6=YES
# vsftpd 虚拟用户使用PAM认证方式
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vusers_dir
userlist_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
tcp_wrappers=YES
# 启用任何形式的ftp 写入命令
write_enable=YES
# 修改服务端口
listen_port=21
# 开启被动模式
pasv_enable=YES
# 指定被动模式的端口范围。
pasv_min_port=1050
pasv_max_port=1060
pasv_promiscuous=YES
EOF

# 设置 SELinux 域允许策略
setsebool -P ftpd_full_access=on

# 白名单及重启服务
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=1050-1060/tcp
firewall-cmd --reload
systemctl restart firewalld.service
systemctl restart vsftpd.service
systemctl enable vsftpd.service
# 安装客户端
yum -y install ftp
主动模式
1
2
3
4
5
6
7
# 修改配置
pasv_enable=NO
port_enable=YES
# 给客户端增加vsftpd服务器的白名单
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<IP地址>" accept'
firewall-cmd --reload
systemctl restart firewalld.service
文章作者: CYBSKY
文章链接: https://cybsky.top/2023/03/17/cyb-mds/linux/yum安装vsftpd及配置/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CYBSKY