HCRM博客

如何在CentOS 7上成功安装和配置vsftpd服务?

CentOS 7上配置vsftpd服务器是一个相对简单但需要细致操作的过程,以下是详细的步骤和注意事项:

CentOS 7 vsftpd配置指南

如何在CentOS 7上成功安装和配置vsftpd服务?-图1
(图片来源网络,侵权删除)

1、安装vsftpd

安装软件包:确保系统更新到最新状态并安装vsftpd软件包,使用以下命令进行安装:

     sudo yum install y vsftpd

启动服务:安装完成后,启动vsftpd服务并设置为开机自启:

     sudo systemctl start vsftpd
     sudo systemctl enable vsftpd

2、配置vsftpd

备份原始配置文件(可选):在进行任何更改之前,建议先备份原始的vsftpd配置文件:

     sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

编辑配置文件:使用文本编辑器打开vsftpd的配置文件并进行必要的修改:

如何在CentOS 7上成功安装和配置vsftpd服务?-图2
(图片来源网络,侵权删除)
     sudo vi /etc/vsftpd/vsftpd.conf

关键配置项

参数 说明
anonymous_enable=NO 禁用匿名登录
local_enable=YES 允许本地用户登录
write_enable=YES 允许FTP写入操作
local_umask=022 设置文件的默认umask值
dirmessage_enable=YES 启用目录消息
xferlog_enable=YES 启用传输日志
connect_from_port_20=YES 使用端口20进行数据连接
xferlog_std_format=YES 使用标准传输日志格式
chroot_local_user=YES 将用户限制在其主目录内
allow_writeable_chroot=YES 允许在chroot环境中写入
listen=YES 监听IPv4地址
listen_ipv6=NO 禁用IPv6监听
pam_service_name=vsftpd 设置PAM服务名称
userlist_enable=YES 启用用户列表
tcp_wrappers=YES 启用TCP包装器
userlist_deny=NO 不拒绝用户列表中的用户
userlist_file=/etc/vsftpd/user_list 指定用户列表文件
pasv_enable=YES 启用被动模式(仅被动模式)
pasv_min_port=30010 设置被动模式的最小端口号(仅被动模式)
pasv_max_port=30015 设置被动模式的最大端口号(仅被动模式)
pasv_address={公网IP} 设置被动模式下的服务器公网IP(仅被动模式)

3、创建FTP用户和目录

添加FTP用户:创建一个新用户作为FTP账户:

     sudo adduser ftpuser
     sudo passwd ftpuser

设置目录权限:为FTP用户创建目录并设置适当的权限:

     sudo mkdir p /home/ftpuser/ftp
     sudo chown R ftpuser:ftpuser /home/ftpuser/ftp
     sudo chmod 755 /home/ftpuser/ftp

4、开放防火墙端口

使用firewalld:如果使用的是firewalld,执行以下命令开放相关端口:

如何在CentOS 7上成功安装和配置vsftpd服务?-图3
(图片来源网络,侵权删除)
     sudo firewallcmd permanent addport=21/tcp
     sudo firewallcmd permanent addservice=ftp
     sudo firewallcmd reload

使用iptables:如果使用的是iptables,执行以下命令:

     sudo iptables A INPUT p tcp dport 20 j ACCEPT
     sudo iptables A INPUT p tcp dport 21 j ACCEPT

5、问题排查

检查SELinux状态:确保SELinux设置允许FTP服务的完全访问权限:

     sudo setsebool P ftpd_full_access on
     sudo setsebool P tftp_home_dir on

查看FTP服务状态:确认FTP服务正在运行并且没有错误:

     sudo systemctl status vsftpd

日志检查:如果遇到连接问题,可以检查vsftpd的日志:

     sudo journalctl u vsftpd f

FAQs(常见问题解答)

1、为什么无法通过SSH登录FTP用户?

原因:可能由于配置了/sbin/nologin作为FTP用户的Shell,导致该用户无法通过SSH登录。

解决方法:可以将/sbin/nologin添加到/etc/shells文件中,或者注释掉/etc/pam.d/vsftpd文件中的相关行:

     #auth    required        pam_shells.so

重启服务:修改后,重启vsftpd服务使更改生效:

     sudo systemctl restart vsftpd

2、为什么FTP用户被拒绝登录?

原因:可能是由于用户未被列入/etc/vsftpd/user_list文件,或被列入了/etc/vsftpd/ftpusers文件中。

解决方法:确保FTP用户被正确添加到/etc/vsftpd/user_list文件中,并未被列入/etc/vsftpd/ftpusers文件中,然后重启vsftpd服务:

     sudo systemctl restart vsftpd
分享:
扫描分享到社交APP
上一篇
下一篇