linux vsftp服务搭建

344 阅读2分钟

本文记录内部vsftp服务环境搭建过程

1,关闭SELinux,

对于pasv模式ftp,端口受SElinux管理,可能报425 Failed to establish connection.错误。

setenforce 0

 cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled

2, 新建操作系统用户

方便权限控制和对ftp虚拟用户文件进行统一管理

useradd -d /home/vsftp -s /bin/false vsftpd

chmod -R 755 /home/vsftp

3, 建立虚拟用户文件

vsftp通过parm对虚拟用户、OS用户进行认证。

3.1 编辑虚拟用户账户

比如内容如下 cat /etc/vsftpd/vusers.txt

zhannianke
password

3.2 建立pam认证识别的加密库

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

4, 为vsftpd配置pam服务

修改/etc/pam.d/vsftpd. 比如 cat /etc/pam.d/vsftpd

 cat /etc/pam.d/vsftpd
#%PAM-1.0
auth       required     pam_userdb.so   db=/etc/vsftpd/vusers
account       required  pam_userdb.so   db=/etc/vsftpd/vusers
session    optional     pam_keyinit.so    force revoke
auth       optional     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

5, 修改vsftpd配置文件/etc/vsftpd.conf

#

#打开虚拟用户管理配置

pam_service_name=vsftpd  ###与前述pam配置文件对应
guest_enable=yes
guest_username=vsftpd    ####对应的OS用户

user_config_dir=/etc/vsftpd/vusers.d  #####指定虚拟用户配置文件路径

local_enable=yes

#

#启用可写权限

write_enable=YES

allow_writeable_chroot=yes  #避免错误500 OOPS: vsftpd: refusing to run with writable root inside chroot()
virtual_use_local_privs=YES #避免文件权限错误

#

#启用passive模式

pasv_enable=yes
pasv_min_port=10000
pasv_max_port=12000

6,编写虚拟用户配置文件

在上述user_config_dir指定目录下,按照第3步骤的vusers.txt中,每个用户新建一个对应配置文件。比如:

cat /etc/vsftpd/vusers.d/zhannianke
local_root=/home/vsftpd/zhannianke
virtual_use_local_privs=YES
guest_username=vsftpd
write_enable=YES

7,启动vsftpd服务

systemctl restart vsftpd

常见问题分析:

1,用户登录认证信息分析查看文件 /var/log/secure

2, 对于文件传输记录可以在vsftpd.conf中打开文件传输日志