centos安装使用vsftpd服务器

1 安装

现查看一下系统版本,确定适用的vsftpd版本

$ cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)

下载rpm包,然后安装

$ sudo su -
# rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm

默认安装位置

# which vsftpd
/usr/sbin/vsftpd

# vsftpd -v
vsftpd: version 3.0.2

2 配置vsftpd

由于采用虚拟用户登录ftp server,先配置虚拟用户
/etc/vsftpd目录下创建一个vusers文件,记录ftp的虚拟用户名和密码,单行是用户名,双行是密码。文件名可以任意指定。我在文件中创建了一个虚拟用户ftptest,密码是ftptest123,如下所示:

# vim /etc/vsftpd/vusers
ftptest
ftptest123

然后使用db_load命令生成相应的认证数据文件,同样数据文件的名字可以任意指定,我这里把文件名命名为vusers.db

# db_load -T -t hash -f /etc/vsftpd/vusers  /etc/vsftpd/vusers.db

然后配置一个vsftpd的pam文件,因为ftp虚拟用户的权限认证是委托给pam模块进行认证的,这个文件指定pam使用上面生成的vusers.db数据库进行权限认证

# vim /etc/pam.d/vsftpd

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

上面pam_userdb.so是pam具体执行认证的模块,db指定我们上面生成的vusers.db文件,注意,由于pam会自动在db文件后面添加.db后缀,所以需要填写.db后缀

编辑vsftpd.conf配置文件

# vim /etc/vsftpd/vsftpd.conf

##########  全局配置  ##########
listen=YES
connect_from_port_20=YES
#pasv 传输方式端口上下限
pasv_min_port=61000
pasv_max_port=62000

write_enable=YES
local_umask=022
dirmessage_enable=NO

userlist_enable=YES
tcp_wrappers=YES



#设置禁止用户跳出主目录
chroot_local_user=NO
#设置允许特殊用户跳出主目录
chroot_list_enable=YES
#设置特殊用户配置文件
chroot_list_file=/etc/vsftpd/chroot_list

##########  日志   ##########
xferlog_enable=YES
xferlog_std_format=YES
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
log_ftp_protocol=YES

##########  匿名用户配置  ##########
#禁止匿名用户访问
anonymous_enable=NO
#指定匿名用户访问根目录
anon_root=/home/ftp/ftptest
#匿名用户允许上传文件
anon_upload_enable=NO
#匿名用户不允许创建文件夹
anon_mkdir_write_enable=NO
#匿名用户不允许删除/更名文件/文件夹
anon_other_write_enable=NO
#匿名用户代理系统用户
ftp_username=ftp

##########  虚拟用户配置  ##########
# 设置运行本地用户登录
local_enable=YES
# 开启虚拟用户登录
guest_enable=YES

#指定pam 服务名称, 和/etc/pam.d 目录下的文件vsftpd 保持一致
pam_service_name=vsftpd
# 设置虚拟用户代理系统用户名
guest_username=ftp
# 设置默认登录路径
local_root=/home/ftp/ftptest
# 设置具体用户配置文件目录
user_config_dir=/etc/vsftpd/vusers_conf

还可以为每个虚拟用户设定单独的配置文件,该文件中的配置会覆盖/etc/vsftpd/vsftpd.conf文件中的配置

# 虚拟用户的配置文件统一放在vusers_conf目录下
# mkdir -p /etc/vsftpd/vusers_conf

# 为虚拟用户ftptest创建一个配置文件,文件名就是虚拟用户的名字
# vim /etc/vsftpd/vusers_conf/ftptest

# 设定根目录
local_root=/home/ftp/ftptest

# 设定权限,不拥有和代理系统用于同样的权限
virtual_use_local_privs=YES

# 允许上传文件
write_enable=YES

3 启动

编辑vsftpd.service文件

# cat /usr/lib/systemd/system/vsftpd.service
[Unit]
Description=Vsftpd ftp daemon
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动

# systemctl daemon-reload
# systemctl enable etcd.service
# systemctl start etcd.service

验证正常启动

# lsof -i :21
COMMAND   PID USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
vsftpd  23431 root    4u  IPv4 2474859639      0t0  TCP *:ftp (LISTEN)

你可能感兴趣的:(centos安装使用vsftpd服务器)