HCRM博客

如何在CentOS 7上安装和配置vsftpd?

CentOS 7 vsftpd 配置详解

一、vsftpd

vsftpd(Very Secure FTP Daemon)是一款在Linux系统上广泛使用的FTP服务器软件,以其安全性和高效性著称,它支持多种认证方式,包括匿名访问、本地用户认证和虚拟用户认证,本文将详细介绍如何在CentOS 7上安装与配置vsftpd。

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

二、vsftpd 安装与基本配置

1. 安装 vsftpd

需要确保系统软件仓库中包含vsftpd,如果系统中尚未安装该软件,可以使用以下命令进行安装:

yum install y vsftpd

2. 启动与设置开机自启

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

systemctl start vsftpd
systemctl enable vsftpd

3. 防火墙配置

为了允许FTP客户端连接,需要配置防火墙,CentOS 7使用firewalld作为默认的防火墙管理工具,添加FTP服务到防火墙规则中:

如何在CentOS 7上安装和配置vsftpd?-图2
(图片来源网络,侵权删除)
firewallcmd permanent addservice=ftp
firewallcmd reload

三、vsftpd 配置详解

vsftpd的主要配置文件为/etc/vsftpd/vsftpd.conf,以下是一些关键配置项及其说明。

1. 匿名用户配置

anonymous_enable=YES:启用匿名访问。

anon_upload_enable=YES:允许匿名用户上传文件。

anon_mkdir_write_enable=YES:允许匿名用户创建目录。

anon_other_write_enable=YES:允许匿名用户进行其他写操作。

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

anon_root=/var/ftp/pub:指定匿名用户登录后的根目录。

2. 本地用户配置

local_enable=YES:启用本地用户访问。

write_enable=YES:启用本地用户写权限。

local_umask=022:设置本地用户新建文件的默认权限。

chroot_local_user=YES:将本地用户禁锢在其家目录下,不允许访问上级目录。

3. 被动模式配置

pasv_enable=YES:启用被动模式。

pasv_min_port=10000:设置被动模式最小端口。

pasv_max_port=10100:设置被动模式最大端口。

4. 日志与安全配置

xferlog_enable=YES:启用传输日志。

xferlog_std_format=YES:使用标准传输日志格式。

connect_from_port_20=YES:允许从数据端口20建立连接。

listen=NO:禁用独立IPv4监听。

listen_ipv6=YES:启用IPv6监听。

四、创建用户与目录

1. 创建FTP专用用户

为了安全起见,建议创建一个FTP专用用户:

useradd s /sbin/nologin ftpuser

为该用户设置密码:

passwd ftpuser

2. 创建用户目录并设置权限

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

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

3. 配置用户映射

编辑/etc/vsftpd/vsftpd.conf文件,添加以下内容以将FTP用户映射到系统用户:

local_root=/home/ftpuser/ftp
user_config_dir=/etc/vsftpd/user_conf

然后在/etc/vsftpd/user_conf目录下创建用户配置文件,如ftpuser如下:

anon_world_readable_only=NO
local_root=/home/ftpuser/ftp

五、测试与验证

完成上述配置后,重启vsftpd服务:

systemctl restart vsftpd

然后可以使用FTP客户端(如FileZilla)连接到FTP服务器进行测试。

六、常见问题FAQs

Q1: 如何更改FTP服务的默认端口?

A1: 可以在/etc/vsftpd/vsftpd.conf文件中添加或修改listenlisten_ipv6指令来指定新的端口号。

listen=YES
listen_port=2121
listen_ipv6=YES

之后重启vsftpd服务使配置生效。

Q2: 如何实现虚拟用户认证?

A2: 虚拟用户认证可以通过创建特定的用户数据库来实现,首先生成一个包含用户名和密码的文本文件,然后使用db_load命令将其转换为Berkeley DB格式的数据库文件,最后在vsftpd配置文件中引用该数据库文件即可,具体步骤如下:

创建用户信息文件 /etc/vsftpd/chall.txt
echo "username1" >> /etc/vsftpd/chall.txt
echo "password1" >> /etc/vsftpd/chall.txt
生成数据库文件
db_load T t hash f /etc/vsftpd/chall.txt /etc/vsftpd/chall.db
修改配置文件 /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/18733.html

分享:
扫描分享到社交APP
上一篇
下一篇