Loading

vsftp配置详解

一、安装

# 1.安装软件
    $ sudo apt-get install vsftpd
# 2.修改 /etc/shells,避免报错 530 login incorrect
    $ vi /etc/shells
    增加 /usr/sbin/nologin
# 3.增加ftp账户(如果使用系统账号也可不添加)
    $ sudo useradd -d /home/ftp -g ftp -s /usr/sbin/nologin ftpname
    指定/home/ftp为ftp文件目录,创建ftpname用户创建ftp用户组。
# 4.设置ftpname密码
    $ sudo passwd ftpname

二、vsftp配置文件

$ sudo vi /etc/vsftpd.conf 重点配置标注下

listen=YES
listen_ipv6=YES
anonymous_enable=NO   # 禁用匿名账号登陆
local_enable=YES   # 允许本地账号登陆
write_enable=YES   # 允许ftp的写操作
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
ftpd_banner=Welcome to FTP service.

# 允许写入跟路径,这条不加容易出现 500 OOPS: vsftpd: refusing to run with writable root inside chroot () 报错
allow_writeable_chroot=YES

# 这三条设置用户限定在ftp文件目录,不能跨出该目录外,但在/etc/vsftpd.chroot_list文件中列出的用户除外。
chroot_local_user=YES   # 所有用户被限制在ftp目录内,不能跨出该目录,除非有例外情况;
chroot_list_enable=YES   # 这里就是例外情况
chroot_list_file=/etc/vsftpd.chroot_list   # 跨目录例外情况 白名单

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

local_root=/home/ftp   # 设置ftp文件主目录(登陆ftp后显示的目录)

# 在 vsftpd.user_list 里的用户允许登陆ftp,注意同时注释掉在 ftpuser黑名单 里面的用户
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list   # 允许ftp登陆账号 白名单

三、用户黑白名单实现

1. ftpuser黑名单

/etc/ftpusers 是一个黑名单配置,禁止访问ftp的用户,不受任何配置项影响,安装ftp后默认会把系统默认用户都存放在这里。

2. userlist_enable/userlist_deny/vsftpd.user_list共同控制

vsftpd.user_list 为白名单还是黑名单受 userlist_enable、userlist_deny 配置控制,一般情况下设置为白名单(即下面第一种配置)。

  • (1) userlist_enable=YES,userlist_deny=NO
    此时 vsftpd.user_list 为白名单,在此列表的用户可以访问ftp,其他用户不能。
  • (2) userlist_enable=YES,userlist_deny=YES
    此时 vsftpd.user_list 为黑名单,在此列表的用户不能访问ftp,其他用户可以。
  • (3) userlist_enable=NO,userlist_deny=YESNO
    所有用户被允许登陆,此时 userlist_deny 和 userlist_file 配置失效。
posted @ 2019-02-04 15:53  素时听风  阅读(2434)  评论(0编辑  收藏  举报