实现FTP服务器的方式有多种,vsftpd是最常用的实现方式。
1、检查是否已经安装了vsftp
首先查看系统中是否成功安装了vsftpd,执行下面命令(有内容则安装了ftp)
rpm -qa | grep vsftpd
2、开始安装
yum -y install vsftpd
3、配置ftp
vi /etc/vsftpd/vsftpd.conf
#禁用匿名访问
anonymous_enable=NO
#允许本地用户访问
local_enable=YES
#限制用户只能访问其主目录
chroot_local_user=YES
#用户在指定目录中允许写操作
allow_writeable_chroot=YES
完整配置如下:
#禁用匿名访问
anonymous_enable=NO
#允许本地用户访问
local_enable=YES
#允许写入
write_enable=YES
#权限掩码,若没有文件掩码文件的默认权限为666,文件夹的默认权限为777。比如umask是022,你创建一个文件本来是666 就要 -022 = 644
local_umask=022
#进入每个目录是否显示欢迎信息
dirmessage_enable=YES
#上传/下载文件时记录日志
xferlog_enable=YES
#主动模式(PORT)有效,是否使用20端口传输数据
connect_from_port_20=YES
#使用标准文件日志
xferlog_std_format=YES
#限制用户只能访问其主目录
chroot_local_user=YES
#开启ipv4监听,与listen_ipv6不能同时开启
listen=NO
#同时监听IPv4和IPv6的FTP请求
listen_ipv6=YES
#使用pam模块控制,文件位置/etc/pam.d/vsftpd
pam_service_name=vsftpd
#控制用户访问,/etc/vsftpd/user_list是一个黑名单,所有出现在名单中的用户都会被拒绝登入
userlist_enable=YES
#控制主机访问,检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。
tcp_wrappers=YES
#拥有写权限
allow_writeable_chroot=YES
默认被动模式
PORT主动模式:pasv_enable=NO
PASV被动模式:pasv_enable=YES
4、创建ftp用户
创建用户,限制ssh登录或者telnet,只允许使用ftp登录
useradd -s /sbin/nologin ftpuser
passwd ftpuser
530 Login incorrect.:
注释 vi /etc/pam.d/vsftpd 文件里的这一行,#auth required pam_shells.so
这个语句的意思是只有包含shell的用户才能登录,但是我们创建的用户是nologin不允许登陆的。
#auth required pam_shells.so
5、防火墙设置
#开放ftp服务
firewall-cmd --add-service=ftp --permanent
#重新加载
firewall-cmd --reload
6、启动ftp并设置开机启动
启动vsftpd服务并设置开机自启动
# 启动
systemctl start vsftpd
# 重启
systemctl restart vsftpd
# 停止
systemctl stop vsftpd
# 开机启动
systemctl enable vsftpd
7、登录测试
#安装ftp客户端
yum install -y ftp
#登录
ftp 192.168.111.201 21
#ftp用户名
ftpuser
#ftp密码
123456