1.安装FTP
# 查看ftp 是否安装 rpm -qa | grep vftpd # 安装vsftp yum install -y vsftpd # 设置ftp 开机启动 systemctl enable vsftpd # 启动|停止|重启 ftp systemctl [start|stop|restart] vsftpd # 查看状态 systemctl status vsftpd
2.配置FTP
# 编辑ftp配置文件 vim /etc/vsftpd/vsftpd.conf
# 显示行号
:set number
# 禁止匿名登录 anonymous_enables=NO # 是否以ASCII方式传输数据。默认情况下,服务器会忽略ASCII方式的请求。 # 启用此选项将允许服务器以ASCII方式传输数据 # 不过,这样可能会导致由"SIZE /big/file"方式引起的DoS攻击 ascii_upload_enable=YES ascii_download_enable=YES # 将用户限制在主目录 chroot_local_user=YES #添加下列内容到vsftpd.conf末尾 use_localtime=YES listen_port=21 idle_session_timeout=300 guest_enable=YES guest_username=ftp user_config_dir=/etc/vsftpd/vconf data_connection_timeout=1 virtual_use_local_privs=YES pasv_min_port=40000 pasv_max_port=40010 accept_timeout=5 connect_timeout=1 allow_writeable_chroot=YES
3.建立用户文件
#创建编辑用户文件 vim /etc/vsftpd/virtusers #第一行为用户名,第二行为密码。不能使用root作为用户名 user 123456
4.生成用户数据文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
#设定PAM验证文件,并指定对虚拟用户数据库文件进行读取 chmod 600 /etc/vsftpd/virtusers.db
5.修改 /etc/pam.d/vsftpd 文件
# 修改前先备份 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak vi /etc/pam.d/vsftpd #先将配置文件中原有的 auth 及 account 的所有配置行均注释掉 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers # 如果系统为32位,上面改为lib
6.生成主目录,修改权限
mkdir -r /home/vsftpd/
chmod -R 777 /home/vsftpd
7.建立虚拟用户个人配置文件
cd /etc/vsftpd/vconf #这里建立虚拟用户user配置文件 touch user #编辑user用户配置文件,内容如下,其他用户类似 vi user local_root=/home/vsftpd/user/ write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
#建立user用户根目录 mkdir -p /home/vsftpd/user/
8.关闭防火墙和selinux
#临时关闭防火墙 systemctl stop firewalld #禁止防火墙开机启动 systemctl disable firewalld #关闭selinux setenforce 0 #修改/etc/selinux/config (SELINUX=disabled) vi /etc/selinux/config
重启vsftp服务,如果无法正常读写文件,检查目录权限。