一、vsftpd安装
- yum安装
安装依赖:yum install -y pam pam-devel db4 de4-devel db4-uitls db4-tcl
安装vsftpd:yum install -y vsftpd
- rpm安装
注:需要关闭selinux。rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm //安装vsftpd rpm -ivh pam-1.1.8-18.el7.x86_64.rpm pam-devel-1.1.8-18.el7.x86_64.rpm //安装PAM
二、vsftpd配置
vsftpd配置文件:/etc/vsftpd/vsftpd.conf
1.本地用户方式
- 配置vsftpd.conf
anonymous_enable=NO //禁止匿名用户登录 anon_upload_enable=NO //禁止匿名用户上传 anon_mkdir_write_enable=NO //禁止匿名用户创建目录 pasv_enable=YES //开启被动模式 pasv_min_port=3000 //最小端口号 pasv_max_port=4000 //最大端口号
- 创建ftp用户
创建ftp目录:mkdir /ftp
创建用户:useradd -d /ftp/user1 -g ftp -s /sbin/nologin user1
重启vsftp:systemctl restart vsftpd
开机启动vsftp:systemctl enable vsftpd
注:需开启对应防火墙端口。
2.虚拟用户方式
- 配置vsftpd.conf
创建宿主用户:useradd -d /ftp/ -g ftp -s /sbin/nologin vsftpd
更改目录权限:chmod 700 /ftp
创建虚拟用户配置文件目录:mkdir /etc/vsftpd/vconf
anonymous_enable=NO //禁止匿名用户登录 anon_upload_enable=NO //禁止匿名用户上传 anon_mkdir_write_enable=NO //禁止匿名用户创建目录 write_enable=YES //允许写操作 local_umask=022 //上传文件后掩码 chroot_local_user=YES //锁定用户在主目录 chroot_list_enable=NO //禁止用户登出自己的目录 chroot_list_file=/etc/vsftpd/chroot_list //设定宿主用户文件 async_abor_enable=YES //开启异步传输 userlist_enable=YES //设定userlist_file中的用户不能使用ftp tcp_wrappers=YES //设定支持TCP Wrappers #主动模式 port_enable=YES //开启主动模式 connect_from_port_20=YES //主动模式连接使用20端口 ftp_data_port=20 //自定义ftp数据传输端口(可选) #被动模式 pasv_enable=YES //开启被动模式 port_promiscuous=YES //禁用端口安全检查 pasv_address=192.168.10.10 //被动模式地址 #pasv_min_port=3000 //最小端口号 #pasv_max_port=4000 //最大端口号 #虚拟用户 guest_enable=YES //开启虚拟用户 guest_username=vsftpd //虚拟用户使用的宿主用户 pam_service_name=vsftpd //开启pam virtual_use_local_privs=NO //不使用宿主账户相同权限 allow_writeable_chroot=YES //允许用户目录可写 user_config_dir=/etc/vsftpd/vconf //用户配置文件目录
- 在/etc/vsftpd下创建chroot_list文件
vi /etc/vsftpd/chroot_list
写入:vsftpd
- 创建虚拟用户名单文件
vi /etc/vsftpd/vuser.txt
如下(奇数行帐号,偶数行密码):aaa 111111 bbb 222222
- 生成虚拟用户数据文件
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
- 配置PAM验证文件
vi /etc/pam.d/vsftpd
注释掉原文件内容,然后输入以下内容:auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
- 虚拟用户配置
创建虚拟用户目录:mkdir /ftp/aaa
更改虚拟用户目录权限:
编辑虚拟用户配置文件,这里以用户aaa为例:chown vsftpd.vsftpd /ftp/aaa chmod 700 /ftp/aaa
local_root=/home/ftp/aaa //设定用户主目录 anon_world_readable_only=NO //允许下载 anon_upload_enable=YES //允许上传 anon_mkdir_write_enable=YES //允许创建目录 anon_other_write_enable=YES //允许删除和重命名 anon_umask=022 //文件目录掩码
- 启动vsftpd
systemctl start vsftpd