安装vsftpd服务
在CentOS上,可以使用yum
命令来安装vsftpd服务,打开终端并输入以下命令以检查是否已经安装了vsftpd:
rpm qa | grep vsftpd
如果没有输出结果,则表示未安装vsftpd,可以使用以下命令进行安装:
sudo yum install vsftpd
启动与配置vsftpd服务
1、启动vsftpd服务:使用以下命令启动vsftpd服务:
sudo systemctl start vsftpd
如果启动成功,将会显示类似以下内容的信息:
Job for vsftpd.service started.
2、设置开机自启动:为了确保vsftpd服务在系统重启时自动启动,可以使用以下命令:
sudo systemctl enable vsftpd
3、配置文件路径:vsftpd的配置文件位于/etc/vsftpd/vsftpd.conf
,使用文本编辑器(如vi或nano)打开该文件:
sudo vi /etc/vsftpd/vsftpd.conf
配置vsftpd.conf文件
在vsftpd.conf文件中,可以进行以下配置:
1、禁止匿名访问:将anonymous_enable
设置为NO
:
anonymous_enable=NO
2、允许本地用户登录FTP:将local_enable
设置为YES
:
local_enable=YES
3、配置用户拦截机制:启用userlist_file
文件并设置为白名单:
userlist_enable=YES userlist_deny=NO
4、其他常用配置:
write_enable=YES
:允许用户上传文件。
chroot_local_user=YES
:限制用户的根目录为其个人目录。
listen=YES
:启用监听模式。
保存并关闭文件后,重启vsftpd服务使配置生效:
sudo systemctl restart vsftpd
创建FTP用户并配置权限
1、创建FTP用户:使用以下命令创建一个FTP用户,例如sww
:
sudo useradd d /ftp_data g ftp s /sbin/nologin sww sudo passwd sww
/ftp_data
是用户的主目录,ftp
是用户组,/sbin/nologin
禁止该用户通过SSH登录。
2、修改用户密码:为新创建的用户设置密码:
sudo passwd sww
根据提示输入并确认密码。
3、配置用户列表:编辑/etc/vsftpd/user_list
文件,添加允许访问的用户:
sudo vi /etc/vsftpd/user_list
在该文件中添加用户名sww
。
配置防火墙和SELinux
1、配置防火墙:CentOS默认使用firewalld
作为防火墙,需要开放FTP服务使用的端口(默认端口为21):
sudo firewallcmd permanent addservice=ftp sudo firewallcmd reload
2、配置SELinux:如果SELinux处于启用状态,需要设置允许FTP完全访问:
sudo setsebool P ftp_home_dir on sudo setsebool P allow_ftpd_full_access on
然后重启vsftpd服务:
sudo systemctl restart vsftpd
测试FTP连接
完成以上步骤后,可以使用FTP客户端(如FileZilla)连接到FTP服务器,输入服务器的IP地址或域名,以及之前创建的用户名和密码进行登录,如果一切配置正确,应该能够成功连接并进行文件传输。
常见问题及解决方法
1、ECONNREFUSED错误:检查防火墙设置是否正确,确保FTP端口(默认21)已开放,如果问题依然存在,尝试更改FTP客户端的协议为SFTP。
2、530 Login incorrect错误:检查/etc/pam.d/vsftpd
文件中的配置,注释掉auth required pam_shells.so
行,并添加auth required pam_nologin.so
。
相关问答FAQs
Q1: 如何更改FTP服务器的根目录?
A1: 可以通过修改vsftpd.conf文件中的anon_root
参数来更改匿名用户的根目录,或者通过chroot_local_user=YES
和chroot_list_enable=YES
以及chroot_list_file
来限制本地用户的根目录。
Q2: 如何更改FTP服务器的监听端口数?
A2: 可以在vsftpd.conf文件中设置listen_port
参数来指定FTP服务器监听的端口号,如果需要更改被动模式的端口范围,可以设置pasv_min_port
和pasv_max_port
参数,需要在防火墙中开放相应的端口范围。