CentOS7环境下vsftp配置
安装启动vsftpd
1 2
| yum -y install vsftpd systemctl enable vsftpd && systemctl start vsftpd
|
创建vsftpd使用的系统用户,主目录为/home/vsftpd,禁止ssh登录。
1
| 创建vsftpd使用的系统用户,主目录为/home/vsftpd,禁止ssh登录。
|
使用系统用户登录的vsftp.conf基础配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| cp /etc/vsftpd/vsftpd.conf{,.bak} # 备份配置文件
cat <<EOF > /etc/vsftpd/vsftpd.conf anonymous_enable=NO chroot_local_user=YES#被固定在家目录中 use_localtime=YES chroot_list_enable=YES#使chroot_list_file配置生效 chroot_list_file=/etc/vsftpd/ftpusers#ftpusers为登录黑名单 local_enable=YES allow_writeable_chroot=YES write_enable=YES#创建文件/上传文件/修改文件权限/删除文件 xferlog_enable=YES
pam_service_name=vsftpd EOF
|
修改/etc/pam.d/vsftpd
1 2 3 4 5
| cp /etc/pam.d/vsftpd{,.bak} cat>/etc/pam.d/vsftpd<<EOF auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers EOF
|
配置虚拟用户登录
安装vsftpd和db4
1 2 3 4 5
| yum install -y epel-release && \ yum install -y \ vsftpd \ db4-utils \ db4
|
创建vsftpd使用的系统用户,主目录为/home/vsftpd,禁止ssh登录。创建之后所有虚拟用户使用这个系统用户访问文件
1
| useradd vsftpd -d /home/vsftpd -s /bin/false
|
创建虚拟用户名和密码文件并增加一个用户和密码
1 2 3 4
| cat>>/etc/vsftpd/loginusers.conf<<EOF test test1 EOF
|
根据这个文件创建数据库文件
1
| db_load -T -t hash -f /etc/vsftpd/loginusers.conf /etc/vsftpd/loginusers.dbchmod 600 /etc/vsftpd/loginusers.db
|
设置pam文件,启用这个数据库文件
1 2
| cp /etc/pam.d/vsftpd{,.bak} cat>/etc/pam.d/vsftpd<<EOFauth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusersaccount sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusersEOF
|
创建虚拟用户配置文件m目录,如果ftp的用户单独设置权限则在这个目录里写同名的文件
1
| mkdir /etc/vsftpd/userconf
|
这里的文件名称必须与虚拟用户名一致
1 2 3
| cat>/etc/vsftpd/userconf/test<<EOF local_root=/home/vsftpd/test/write_enable=YES EOF
|
创建用户家目录
1
| mkdir /home/vsftpd/testchown vsftpd:vsftpd /home/vsftpd/test
|
最后备份+修改主配置文件
1
| cp /etc/vsftpd/vsftpd.conf{,.bak}vi /etc/vsftpd/vsftpd.conf
|
启动服务并设置为开机自启
1
| systemctl enable --now vsftpd
|
最后配置文件如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES ascii_upload_enable=YES ascii_download_enable=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES guest_enable=YES guest_username=vsftpd virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/userconf allow_writeable_chroot=YES anon_world_readable_only=NO reverse_lookup_enable=NO
|
附vsftp配置文件详解
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 103 104 105 106 107 108 109
|
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=whoever
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
dual_log_enable
syslog_enable
data_connection_timeout=120
nopriv_user=ftpsecure
async_abor_enable=YES
ascii_upload_enable=YES ascii_download_enable=YES
ftpd_banner=Welcome to blah FTP service.
deny_email_enable=YES
banned_email_file=/etc/vsftpd/banned_emails
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=YES
listen=YES
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES/NO
userlist_deny=YES/NO
tcp_wrappers=YES
|