一、vsftpd安装
- yum安装
安装依赖:yum install -y pam pam-devel db4 db4-devel db4-uitls db4-tcl
安装vsftpd:yum install -y vsftpd
- rpm安装
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
注:需要关闭selinux。
二、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 //最大端口号 #anon_root=/ftp/ //匿名用户目录
创建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 //最大端口号
max_client=100 //最大连接数 max_per_ip=3 //同一IP最大连接数
虚拟用户
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 //用户配置文件目录
2. 在/etc/vsftpd下创建chroot_list文件<br />
`vi /etc/vsftpd/chroot_list`<br />
写入:`vsftpd`
2. 创建虚拟用户名单文件<br />
`vi /etc/vsftpd/vuser.txt`<br />
如下(奇数行帐号,偶数行密码):
aaa 111111 bbb 222222
4. 生成虚拟用户数据文件<br />
`db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db`
4. 配置PAM验证文件<br />
`vi /etc/pam.d/vsftpd`<br />
注释掉原文件内容,然后输入以下内容:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
6. 虚拟用户配置<br />
创建虚拟用户目录:`mkdir /ftp/aaa`<br />
更改虚拟用户目录权限:
chown vsftpd.vsftpd /ftp/aaa chmod 700 /ftp/aaa
6. 编辑虚拟用户配置文件,这里以用户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