在CentOS上安装vsftpd是一个相对简单的过程,但需要一定的步骤来确保安装和配置的正确性,以下是详细的安装和配置指南:
一、前提条件
1、系统环境:CentOS 7 64位
2、FTP版本:vsftpd 3.0.2(以yum安装的版本为准)
二、安装vsftpd
检查是否已安装
rpm qa | grep vsftpd
如果已经安装,建议先卸载再重新安装:
sudo yum remove y vsftpd
安装vsftpd
使用以下命令进行安装:
sudo yum install y vsftpd
设置开机自启动
sudo systemctl enable vsftpd.service
启动vsftpd服务
sudo systemctl start vsftpd.service
检查服务状态
sudo systemctl status vsftpd.service
三、配置vsftpd
为了确保数据安全,本文主要介绍被动模式下使用本地用户访问FTP服务器的配置方法。
创建FTP用户
创建一个用于FTP服务的Linux用户,用户名为ftpUser
:
sudo adduser ftpUser
注意:若提示用户已存在,则需要手动删除或选择其他用户名。
修改FTP用户密码
sudo passwd ftpUser
创建FTP目录并设置权限
sudo mkdir /var/ftp/ftpUser sudo touch /var/ftp/ftpUser/testfile.txt sudo chown R ftpUser:ftpUser /var/ftp/ftpUser
修改vsftpd配置文件
编辑vsftpd的配置文件:
sudo vim /etc/vsftpd/vsftpd.conf
按i进入编辑模式,按需修改配置文件内容:
禁止匿名登录:
anonymous_enable=NO
允许本地用户登录:
local_enable=YES
监听IPv4 sockets:
listen=YES
修改添加权限控制参数:
local_umask=022 file_open_mode=0777 anon_umask=0777
禁用IPv6:
listen_ipv6=NO
设置本地用户登录后所在目录:
local_root=/var/ftp/ftpUser
锁定用户在主目录:
chroot_local_user=YES
启用例外用户名单:
chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
开启被动模式:
pasv_enable=YES pasv_min_port=30051 pasv_max_port=30060 pasv_address=<FTP服务器公网IP地址>
5. 创建chroot_list文件并写入例外用户名单
sudo vim /etc/vsftpd/chroot_list
输入例外用户名单,如本次创建的用户ftpUser
:
ftpUser
保存并关闭文件。
重启vsftpd服务
sudo systemctl restart vsftpd.service
四、测试FTP服务
可以使用FTP客户端工具(如FileZilla)进行连接测试:
ftp <FTP服务器IP地址>
输入用户名ftpUser
和密码进行登录。
五、相关FAQs
Q1: 如果执行systemctl命令时提示错误信息Job for vsftpd.service failed because the control process exited with error code,该如何解决?
A1: 这个错误通常是由于网络环境不支持IPv6或者MAC地址不匹配导致的,可以按照以下步骤排查:
1、检查网络环境:如果不支持IPv6,请将listen_ipv6
设置为NO
,编辑/etc/vsftpd/vsftpd.conf
文件,找到并修改以下内容:
listen_ipv6=NO
2、检查MAC地址:运行ifconfig
查看MAC地址,并在/etc/sysconfig/networkscripts/ifcfgxxx
配置文件中新增或修改HWADDR
项为实际的MAC地址。
HWADDR=xx:xx:xx:xx:xx:xx
3、重启vsftpd服务:修改完成后,重启vsftpd服务。
sudo systemctl restart vsftpd.service
Q2: 如何更改FTP服务器的默认端口号以提高安全性?
A2: 可以通过修改vsftpd配置文件中的listen_port
选项来更改FTP服务器的默认端口号,将默认端口号改为1802:
1、编辑vsftpd配置文件:
sudo vim /etc/vsftpd/vsftpd.conf
2、添加或修改以下内容:
listen_port=1802
3、保存并关闭文件,然后重启vsftpd服务:
sudo systemctl restart vsftpd.service
4、确保防火墙放行新的端口号:
sudo firewallcmd zone=public addport=1802/tcp permanent sudo firewallcmd reload