一、基本安装
1.运行以下命令安装 vsftpd。
yum install -y vsftpd
2.运行以下命令打开及查看etc/vsftpd
cd /etc/vsftpd
说明:
- /etc/vsftpd/vsftpd.conf 是核心配置文件。
- /etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。
- /etc/vsftpd/user_list 是白名单文件,是允许访问 FTP 服务器的用户列表。
- /etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的一些变量和设置
备注:使用命令 rpm -ql vsftpd 可列出vsftpd中包含的文件
3.运行以下命令设置开机自启动。
systemctl enable vsftpd
4.运行以下命令启动 FTP 服务。
systemctl start vsftpd
5.运行以下命令查看 FTP 服务端口。
netstat -antup | grep ftp
6.配置本地用户登录
本地用户登录就是指用户使用 Linux 操作系统中的用户账号和密码登录 FTP 服务器。
vsftpd 安装后默只支持匿名 FTP 登录,用户如果试图使用 Linux 操作系统中的账号登录服务器,将会被 vsftpd 拒绝,但可以在 vsftpd 里配置用户账号和密码登录。具体步骤如下:
a.运行以下命令创建 ftptest 用户。
useradd ftptest
b.运行以下命令修改 ftptest 用户密码。
passwd ftptest
7.禁止匿名使用
vim /etc/vsftpd/vsftpd.conf
修改如下配置
8.配置远程连接
完成vsftpd安装后发现无法远程连接,仍需要完成以下配置。
原因分析:
FTP连接方式分为:主动模式和被动模式。默认为被动模式。
如果为被动模式,服务器端必须监听至少一个额外的被动模式端口。所以,若只开通20和21端口是不够的,需要另外配置入站端口。
以下以阿里云服务器为例:
在阿里云安全组中,开启50800/50899,20/21 端口 ,也可自定义(后面配置需要用到),仅做参考。
备注参考信息:https://blog.csdn.net/binsoft/article/details/44595677
添加配置信息 修改配置文件 vim /etc/vsftpd/vsftpd.conf
在文件末尾添加:
pasv_enable=YESpasv_min_port=50800pasv_max_port=50899
解释:
- 50800/50899 为上面安全组添加的端口号
- pasv_enable=YES|NO
- YES,允许数据传输时使用PASV模式。
- NO,不允许使用PASV模式。默认值为YES。
- pasv_min_port=port number
- pasv_max_port=port number
- 设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高。
完成以上配置,基本可以实现远程连接FTP。
9.配置 vsftpd 限制 FTP 账户访问其它目录
使用 vsftpd 搭建 FTP 服务,可以配置用户登录后,限制访问其它的目录,只能进它的主目录。 配置方法如下:
9.1 打开 vsftp 的配置文件
找到 chroot Chroot_local_user ,将注释打开
chroot_local_user=yeschroot_list_enable=yes chroot_list_file=/etc/vsftpd/chroot_list
- 设置所有的本地用户都执行
chroot chroot_local_user=yes
(本地所有帐户都只能在自家目录) chroot_list_file
需要自己创建- 若不想限制个别用户,将用户名添加到vsftpd.chroot_list文件中,每个用户名一行。
9.2 在文件末尾添加
allow_writeable_chroot=YES
对vsftpd有用,否则,因home目录权限为root权限而无法登录
9.3 为 /home/ftptest 添加权限
cd /homechmod 777 ftptest
10. 修改默认端口
10.0 在阿里云安全组添加 6709 端口
10.1 编辑 /etc/vsftpd/vsftpd.conf 文件,末尾添加:
listen_port=6709
10.2 编辑/etc/services 文件,将其中的
ftp 21/tcp 改为 ftp 6709/tcpftp 21/udp 改为 ftp 6709/udp
10.3 重新启动vsftpd 服务
systemctl restart vsftpd
10.4 查看启动状态
netstat -tnulp | grep vsftpd
可以查看到现在系统现监听的vsftpd 的端口为6709
注意
启动的时候要检查文件 /etc/vsftpd/vsftpd.conf
是否有空格,如果有空格,就会报错
为 vsftpd 启动 vsftpd:500 OOPS: bad bool value in config file for: pasv_enable
参考文章
- https://cloud.tencent.com/developer/article/2105518
- ftp 黑名单,白名单
- 配置 chroot_list 相关说明
来源地址:https://blog.csdn.net/qq_38486203/article/details/129886060