Linux搭建FTP服务器

2021-10-09 10:20:56 浏览数 (1)

系统版本:CentOS 8.2

FTP服务端及客户端安装

代码语言:javascript复制
dnf install vsftpd lftp

启动FTP服务并开机自启动

代码语言:javascript复制
systemctl enable vsftpd --now

FTP配置文件在/etc/vsftpd/下

注:ftpusers和user_list两个文件可理解为vsftp的黑名单,可在vsftpd.conf中开启userlist_deny参数即可生效,无论如何,我们创建的ftp用户不在这两个文件中即可保证可以正常使用。

创建ftp用户

代码语言:javascript复制
useradd -s /sbin/nologin/ ftpuser
passwd ftpuser

修改ftp默认共享目录

ftp默认共享目录为:/var/ftp/pub

试验修改为/var/ftp/ftppub目录

  1. 创建ftppub目录

mkdir /var/ftp/ftppub

  1. 修改文件夹属主为ftpuser

chown -R ftpuser:ftpuser /var/ftp/ftppub

编辑vsftpd配置文件

  1. 修改以下配置参数,设置匿名用户和本地用户的登录权限,设置指定例外用户列表文件的路径,并开启监听 IPv4 sockets
代码语言:javascript复制
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
  1. 在行首添加 #,注释 listen_ipv6=YES 配置参数,关闭监听 IPv6 sockets。
代码语言:javascript复制
#listen_ipv6=YES
  1. 添加以下配置参数,开启被动模式,设置本地用户登录后所在目录,以及云服务器建立数据传输可使用的端口范围值。
代码语言:javascript复制
local_root=/var/ftp/ftppub
allow_writeable_chroot=YES      #NO为只读
pasv_enable=YES									#开启被动模式
pasv_address=xxx.xx.xxx.xx 			#修改为云服务器公网 IP
pasv_min_port=40000
pasv_max_port=45000
  1. 保存退出
  2. 执行以下命令,创建并编辑 chroot_list 文件。
代码语言:javascript复制
vim /etc/vsftpd/chroot_list 

注:将ftp用户名填入此文件后用户即可随意切换目录,删除即会被锁定在自己规定的目录中(用户名填写一行一个)

  1. 重启vsftpd服务
  2. 放通安全组规则

需要放通20、21、还有配置文件中指定的端口范围即可

常见问题:

  1. 点击登录后无限重新弹出此界面,可能是因为客户端没有安装pam安全认证模块导致。

打开/etc/pam.d/vsftpd注释掉下图中两行后重启vsftpd服务即可解决。

0 人点赞