晓夏

YoungCheung

Zhang Sir's technical way

Ubuntu18.04 安装Vsftpd服务

浏览量:1071

一、Vsftpd安装

   在配置vsftpd之前,我们先安装vsftpd,vsftpd的安装比较简单。我们再次直接使用apt-get进行安装,如下:

sudo apt-get -y install vsftpd

二、Vsftpd配置

2.1 用户配置

sudo useradd -m -s /bin/bash test1

注意:创建的用户test1现在是无法登录到系统的,因为没有给该用户设置密码。在此,我们也无需test1登录到系统,这样相对来说比较安全。

有关用户相关配置结束后,我们开始设置登录vsftp的用户与密码文件login.txt。如下:

sudo mkdir -p /etc/vsftpd
sudo vim /etc/vsftpd/login.txt

test1
123456

login.txt为登录vsftpd的用户与密码文件。

login.txt设置完毕后,我们要使用db_load进行加密。而db_load需要db-util这个软件。所以需要我们现在安装db-util,如下:

sudo apt-get install db-util -y

db-util安装完毕后,现在开始使用db_load对loginx.txt进行加密。如下:

sudo db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db

2.2 PAM 验证配置

vsftpd的PAM验证,在此我没有使用vsftpd安装时所生成的/etc/pam.d/vsftpd文件。

因为经过我多次的测试,发现如果使用该文件进行验证的话,无法验证通过。不知道为什么,猜想很有可能是vsftpd的一个BUG。

创建验证文件,如下:

sudo vim /etc/pam.d/vsftpd.virtual

auth required pam_userdb.so db=/etc/vsftpd/login
account required pam_userdb.so db=/etc/vsftpd/login

2.3 vsftpd权限配置

# grep -vE "^#|^$" /etc/vsftpd.conf
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=NO
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
guest_enable=YES
pam_service_name=vsftpd.virtual
user_config_dir=/etc/vsftpd/vu
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000


2.4 虚拟用户配置

sudo mkdir /etc/vsftpd/vu
sudo vim /etc/vsftpd/vu/test1

guest_username=test1
local_root=/www/
virtual_use_local_privs=YES
anon_umask=133

2.5 启动vsftpd

sudo systemctl restart vsftpd



神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。