前言
公司需要搭建一台 FTP 服务器,用于提供一些文件给别的公司获取。
一、FTP 服务安装
1.安装 vsftpd 软件
yum install vsftpd -y
2.启动 vsftpd 服务
service vsftpd start
3.查看服务进程和端口号
# 查看服务进程
ps aux | grep vsftpd
# 查看端口号
netstat -anplut | grep vsftpd
4.安装客户端工具 ftp 和 lftp
yum install ftp lftp -y
二、关闭相关服务
1.关闭防火墙
#查看防火墙的状态
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld
2.关闭setenforce
#先查看一下setenforce 的状态,如果状态是 disabled 或者是 Permissive 可以不用设置
getenforce
#设置 setenforce 的状态
setenforce 0
#再查看一下setenforce 的状态,如果是Permissive 说明设置ok
getenforce
三、FTP 功能
1.修改 ftp 的配置文件
在 /etc/vsftpd 下面 有个vsftpd.conf
如果让普通用户可以随便切换目录的话及其不安全,所以一般可以修改配置文件将用户限制在自己的家目录
在 vsftpd.conf 配置文件里面修改以下配置chroot_list 文件默认不存在,需要在 /etc/vsftpd/下新建
cd /etc/vsftpd
vi vsftpd.conf
#是否允许匿名用户ftp登录,YES代表允许,NO不允许
anonymous_enable=YES
#对本地用户限制在自己的家目录里
chroot_local_user=YES
#启用限制名单
chroot_list_enable=YES
(default follows)
# 具体的名单路径,这个名单的用户不受限制,可以随意切换目录
chroot_list_file=/etc/vsftpd/chroot_list
#这个目录没有,需要自己新建。
touch /etc/vsftpd/chroot_list
#开启
service vsftpd start
#关闭
service vsftpd stop
#设置为开机启动
chkconfig vsftpd on
#重启
service vsftpd restart
2.创建 ftp 用户
useradd ftpuser
echo ftpuser|passwd ftpuser --stdin
3.测试 ftp 服务
lftp -u ftpuser,ftpuser 192.168.0.182
会出现提示信息:500 oops:chroot,从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。 所以如果我们开启了限制用户在家目录的话,如果用户对家目录还有写权限的话就会报错
解决方案:
方案1:去除用户的写权限
cd /home
chmod -w ftpuser
去除写的权利以后 ftpuser 用户就可以正常登陆,并且被限制在了家目录, 如果想让 ftpuser 用户正常切换路径可以将 ftpuser 恢复写的权限以后添加到chroot_list 文件里面
方案2:修改 vsftpd.conf 配置文件,增加写权限
allow_writeable_chroot=YES
四、问题
1.ls' at 0 重新连接前延时 或者 ls' at 0 [Delaying before reconnect
vi /etc/vsftpd/vsftpd.conf
#修改匿名模式
anonymous_enable=NO
:wq
#重启vsftpd 服务
service vsftpd restart
#测试
ftp 127.0.0.1
#或者
lftp -u ftpuser,ftpuser 127.0.0.1
五、参考文章
https://blog.csdn.net/qq_48391148/article/details/124081167
lftp连接异常情况分析过程_世界上最努力的男人-贝吉塔的博客-CSDN博客_delaying before reconnect