CENTOS安装FTP服务器
依据网上的一些相关配置,由于公司需要实现虚拟用户,故采用相对较为复杂的方法。
1.安装VSFTPD
yum install vsftpd -y
2.添加SELINUX,和开放防火墙端口
getsebool -a | grep ftp
setsebool -P ftp_full_access on
由于准备采用被动模式,故开放端口6069 和59980-59991
firewall-cmd --zone=public --add-port=6069/tcp --permanent
firewall-cmd --zone=public --add-port=59980-59991/tcp --permanent
3.修改配置文件
cd /etc/vsftpd
vi vsftpd.conf
listen_port=6069 监听端口
chroot_local_user=YES 将用户限制在为其配置的主目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
ascii_upload_enable=YES 允许ascii文件上传和下载
ascii_download_enable=YES
guest_enable=YES 设置启用虚拟用户功能
guest_username=ftpuser 制定宿主用户名
user_config_dir=/etc/vsftpd/vuser_conf 制定虚拟用户配置文件放置文件夹
allow_writeable_chroot=YES 允许写
anon_umask=022 虚拟用户UMASK值
pasv_enable=YES 被动端口启用
pasv_min_port=59980 连接端口范围
pasv_max_port=59991
anonymous_enable=NO 匿名就无法登录
注(以下为修改默认目录,非必须
-
local_root=/tmp/test
-
chroot_local_user=YES
-
anon_root=/tmp/test
)
4.创建宿主用户
cd /home
mkdir vsftpd
useradd -g root -M -d /home/vsftpd -s /sbin/nologin ftpuser (不建主目录,组ROOT,家目录,不许登录)
5.设置密码
passwd ftpuser
6. 修改文件夹权限
chown -R ftpuser:root /home/vsftpd 递归
7.创建虚拟用户文件
cd /etc/vsftpd
touch vuser_passwd
vi vuser_passwd
ftp_test
123456
8. 生成虚拟用户数据文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
chmod 600 /etc/vsftpd/vuser_passwd.db
9.编辑pam认证文件
vi /etc/pam.d/vsftpd
注释掉所有,添加下列
32位
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account
required pam_userdb.so db=/etc/vsftpd/vuser_passwd
64位
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
(查看系统位数 getconf LONG_BIT)
10.建立虚拟账户根目录
mkdir /home/vsftpd/ftp_test
修改权限
chmod 777 ftp_test
11.创建虚拟用户配置目录
mkdir /etc/vsftpd/vuser_conf
cd /etc/vsftpd/vsuer_conf
创建虚拟用户配置文件,文件名和用户相同
touch ftp_test
编辑文件
local_root=/home/vsftpd/ ftp_test
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
12.创建chroot_list
cd /etc/vsftpd
touch chroot_list
vi chroot_list
ftp_test
13.重启服务
systemctl restart vsftpd