1.安装
# yum install -y vsftpd
# mkdir /home/vsftpd
2.启动
# systemctl start vsftpd.service
3.查看端口是否启动成功
# ss -anp | grep 21
4.停止ftp,进行配置修改
# systemctl start vsftpd.service
1.ftp的配置文件/etc/vsftpd/vsftpd.conf
# vi /etc/vsftpd/vsftpd.conf
2.显示行号
#:set nu
3.#修改配置 13 行 不允许匿名访问(不登录默认访问某目录/var/ftp),要用户名和密码
# anonymous_enable=NO
4.#修改配置83行 允许ascii文件上传
# ascii_upload_enable=YES
5.#修改配置84行 允许ascii文件下载
# ascii_download_enable=YES
6.#修改配置87行
# ftpd_banner=Welcome to blah FTP service.
7.#修改配置101,102,104行 将用户限制在为其配置的主目录
# chroot_local_user=YES
# chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd/chroot_list
8.#添加下列内容到vsftpd.conf末尾
# use_localtime=YES
9.# 监听端口
# listen_port=20020
# idle_session_timeout=300
10.# 设置启用虚拟用户功能
# guest_enable=YES
11.# 制定宿主用户名(我们后续需要为我们的系统增加该用户)
# guest_username=ftpuser
12.# 制定虚拟用户配置文件放置文件夹(需要我们自己建立)
# user_config_dir=/etc/vsftpd/vuser_conf
13.# 允许写
# allow_writeable_chroot=YES
# data_connection_timeout=1
# virtual_use_local_privs=YES
# pasv_min_port=40000
# pasv_max_port=40010
# accept_timeout=5
# connect_timeout=1
#保存文件
# :wq!
1.# 新建一个ftpuser组
# groupadd ftpuser
2.# 新建一个ftpuser账号,并且该账号不需要登录服务器,设定家目录在 /home/vsftpd
# useradd -g ftpuser -M -d /home/vsftpd -s /sbin/nologin ftpuser
3.# 设置用户 ftpuser的密码
# passwd ftpuser
4.# 把 /home/vsftpd 的所有权给ftpuser.root
# chown -R ftpuser:ftpuser /home/vsftpd
5.# 在家目录下先创建一个文件夹,作为后续ftp账号的默认目录
# mkdir -p /home/vsftpd/jxpwuser
6.# 设置目录权限为755
# chmod 755 -R /home/vsftpd
1.# 进入/etc/vsftpd/目录
# cd /etc/vsftpd/
2.# 创建用户密码信息文件
# vi vuser_passwd
3.#编辑如下内容,创建虚拟账户信息,奇数行为用户名,偶数行为密码(自己根据需求设置)
# jxpwuser
# jxpwuser
4.# 保存退出
# :wq!
5.# 生成虚拟用户数据文件
# db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
6.# 将该目录的权限改成600
# chmod 600 /etc/vsftpd/vuser_passwd.db
1.# 查看系统位数
# getconf LONG_BIT
2.# 备份pam认证文件
# mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
3.# 新建pam认证文件
# vi /etc/pam.d/vsftpd
4.# 根据自己的操作系统选2行,不要全部都填写哟
注:db=/etc/vsftpd/vuser_passwd 中的vuser_passwd 是你生成的虚拟用户的db文件,这里不要加扩展名。
5.# 系统为32位:(根据自己需求设置)
# auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account
# required pam_userdb.so db=/etc/vsftpd/vuser_passwd
6.# 系统为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
1.#创建上述配置文件中配置的虚拟用户文件夹
# mkdir -p /etc/vsftpd/vuser_conf
2.#切换进入 /etc/vsftpd/vuser_conf
# cd /etc/vsftpd/vuser_conf
3.#创建虚拟用户配置文件,文件名称要与虚拟用户名称相同,这里我们配置两个虚拟用户就创建两个配置文件
# touch jxpwuser
4.#编辑jxpwuser
# vi jxpwuser
5.#写入以下内容
# local_root=/home/vsftpd/jxpwuser
# 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
6# 保存退出
# :wq!
1.# 进入目录/etc/vsftpd
# cd /etc/vsftpd
2.#创建使当前配置的虚拟用户允许访问的文件列表
# vi chroot_list
3.#写入虚拟用户名(根据自己需求填写)
# jxpwuser
1.# SELINUX不对vsftp不做任何限制
# setsebool -P ftpd_full_access on
注:以下为系统的两个防火墙,部署时需要确认是哪一个防火墙,使用对应命令即可
2.# 防火墙设置 IPtables 的设置方式:
# vi /etc/sysconfig/iptables
3.#编辑iptables文件,添加如下内容,开启21端口
# -A INPUT -m state --state NEW -m tcp -p tcp --dport 20020 -j ACCEPT
# -A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:40010 -j ACCEPT
4.#firewall 的设置方式,以下指令
# firewall-cmd --zone=public --add-service=ftp --permanent
# firewall-cmd --zone=public --add-port=20020/tcp --permanent
# firewall-cmd --zone=public --add-port=40000-40010/tcp --permanent
# firewall-cmd --reload
1.#启动
# systemctl start vsftpd.service
2.#重启
# systemctl restart vsftpd.service
3.#停止
# systemctl stop vsftpd.service
4.#查看状态
# systemctl status vsftpd.service
5.#设置开机启动
# systemctl enable vsftpd.service
1.#停止服务
# systemctl stop vsftpd.service
2.#编辑文件
# vi /etc/services
3.#找到ftp选项并将21修改成你设置的端口
# 21 is registered to ftp, but also used by fsp
# ftp 20020/tcp
# ftp 20020/udp fsp fspd
4.重启vsftp服务
# systemctl restart vsftpd.service
5.使用netstat -utlpn | grep vsftp命令查看设置的端口,确认是否成功
# netstat -utlpn | grep vsftp