CentOS7配置VSFTP

1. 安装vsftpd

#安装vsftpd
yum install -y vsftpd
#设置开机启动
systemctl enable vsftpd.service
# 重启
systemctl restart vsftpd
# 查看vsftpd服务的状态
systemctl status vsftpd.service

2. 配置vsftpd.conf

# 备份配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
# 删除原文件
rm /etc/vsftpd/vsftpd.conf

# 新建vsftpd.conf
vi /etc/vsftpd/vsftpd.conf

# 以下内容
anonymous_enable=YES
anon_root=/ftp/
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES

#外地用户是否可以访问 注:如果为NO则所有虚拟用户都将不能访问。原因:虚拟用户访问在主机上其实是以外地用户访问的pam_service_name=vsftpd pam认证文件名 /etc/pam.d/vsftpd
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd/xfer.log
xferlog_std_format=YES
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd/vsftp.log

ftpd_banner=Welcome to FTP service.

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

listen=NO
listen_ipv6=YES
userlist_enable=YES
tcp_wrappers=NO

#config virtual user FTP
pam_service_name=vsftpd
use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=300
#启用虚拟用户功能
guest_enable=YES
guest_username=ftp
# 设置虚拟用户个人vsftp服务配置文件所在目录
user_config_dir=/etc/vsftpd/vconf
data_connection_timeout=1
# vsftpd用户没有方法修改文件的权限的权限(chmod加上这两行就可以了
virtual_use_local_privs=YES
chmod_enable=YES
#所有匿名上传的文件的所属用户将会被更改成chown_username
chown_uploads=YES
#匿名上传文件所属用户名
chown_username=ftp

pasv_enable=YES
pasv_min_port=10060
pasv_max_port=10070
accept_timeout=5
connect_timeout=1
allow_writeable_chroot=YES

# 解决登录速度慢的问题
reverse_lookup_enable=NO

3. 建立用户文件

cd /etc/vsftpd
touch chroot_list

如使用虚拟用户在登录过程中报530,则可分别尝试使用3.1或3.2

3.1 使用dbd数据库

#第一行用户名,第二行密码,不能使用root为用户名(奇数行用户名,偶数行密码,这里用户名是ftpuser,密码为123456)
vi /etc/vsftpd/virtusers
ftpuser
123456

# 执行生成dbd数据库过程
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
#设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
chmod 600 /etc/vsftpd/virtusers.db
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
#设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
chmod 600 /etc/vsftpd/virtusers.db

3.2 使用gdbm数据库

# 添加用户
gdbmtool /etc/vsftpd/virtusers.pag store username password
# 如添加ftpuser 密码 123456
gdbmtool /etc/vsftpd/virtusers.pag store ftpuser 123456

 4. 修改/etc/pam.d/vsftpd文件

# 修改前先备份
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak

# 将auth及account的所有配置行均注释掉(每行前面加 # )
vi /etc/pam.d/vsftpd

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
# 如果系统为32位,上面改为lib

5. 新建系统用户vsftpd,用户目录为/home/vsftpd

#用户登录终端设为/bin/false(即:使之不能登录系统)
useradd vsftpd -d /home/vsftpd -s /bin/false
chown -R vsftpd:vsftpd /home/vsftpd

6.建立虚拟用户个人配置文件

mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf

#这里建立ftpuser虚拟用户配合文件
touch ftpuser

#建立用户根目录
mkdir -p /home/vsftpd/ftpuser/
#更改用户目录权限
sudo chmod -R 777 /home/vsftpd/ftpuser

#编辑chris用户配置文件,内容如下,其他用户类似
vi ftpuser

local_root=/home/vsftpd/ftpuser/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

7. 防火墙设置

firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=10060-10070/tcp --permanent
firewall-cmd --reload

8. 重启vsftpd服务器

systemctl restart vsftpd

 

posted on 2023-08-18 11:51  骑着母猪去打猎  阅读(15)  评论(0编辑  收藏  举报