CentOS vsftpd 安装指南
在 CentOS 系统中,vsftpd(Very Secure FTP Daemon)是一款小巧轻快且安全易用的 FTP 服务器程序,本文将详细介绍如何在 CentOS 系统上安装和配置 vsftpd,包括安装步骤、配置防火墙、添加用户、设置目录权限以及配置文件的详细解释。
一、vsftpd简介
vsftpd 是“Very Secure FTP Daemon”的缩写,是一款在Linux发行版中广泛使用的FTP服务器软件,它以安全性高和轻量级著称,适用于各种FTP服务场景。
二、安装步骤
1. 检查是否已安装
在安装之前,可以先检查系统中是否已经安装了 vsftpd,使用以下命令:
rpm qa | grep vsftpd
如果未安装,则继续下一步。
2. 安装 vsftpd
以 root 用户或具有 sudo 权限的用户身份执行以下命令来安装 vsftpd:
yum install y vsftpd
安装完成后,可以查看安装版本以确认安装成功:
vsftpd v
3. 启动并设置开机自启动
启动 vsftpd 服务:
systemctl start vsftpd
设置开机自启动:
systemctl enable vsftpd
4. 检查服务状态
确保服务正常运行:
systemctl status vsftpd
输出示例如下:
● vsftpd.service Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Mon 20200330 15:16:51 EDT; 10s ago Docs: man:vsftpd(8) Main PID: 2880 (vsftpd) CGroup: /system.slice/vsftpd.service └─2880 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
三、配置防火墙
为了允许外部访问 FTP 服务,需要配置防火墙,默认情况下,CentOS 使用 firewalld 管理防火墙。
1. 永久关闭 firewalld
如果不希望每次重启后都手动关闭 firewalld,可以永久关闭:
systemctl stop firewalld systemctl disable firewalld
2. 使用 Iptables 配置防火墙
编辑/etc/sysconfig/iPTAbles
文件,在 REJECT 行之前添加以下代码:
A RHFirewall1INPUT m state state NEW m tcp p tcp dport 21 j ACCEPT
保存并关闭文件,然后重启 iptables:
service iptables restart
或者,使用以下命令立即生效:
iptables F iptables A INPUT p tcp dport 21 j ACCEPT
四、配置 vsftpd
vsftpd 的配置文件位于/etc/vsftpd/vsftpd.conf
,可以使用文本编辑器打开该文件进行配置:
vi /etc/vsftpd/vsftpd.conf
1. 基本配置
以下是一些常见的配置选项及其解释:
禁止匿名登录 anonymous_enable=NO 允许本地用户登录 local_enable=YES 允许上传文件 write_enable=YES 锁定用户在其主目录 chroot_local_user=YES 指定 chroot() 列表文件位置 chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list 启用被动模式 pasv_enable=YES 设置被动模式端口范围 pasv_min_port=30000 pasv_max_port=31000 指定被动模式 IP 地址(公网 IP) pasv_address=<你的服务器IP>
2. 添加例外用户名单
创建/etc/vsftpd/chroot_list
文件,并添加例外用户,添加用户peter
和john
:
peter john
每个用户占一行,无空格,保存并关闭文件。
3. 重启 vsftpd 服务
修改配置文件后,重启 vsftpd 服务使配置生效:
systemctl restart vsftpd
五、验证连接
使用 FTP 客户端(如 FileZilla)连接到服务器,输入服务器 IP 地址、用户名和密码进行测试,如果配置正确,应能成功连接并访问指定的目录。
六、常见问题及解答(FAQs)
Q1:如何更改 FTP 服务的监听端口?
A1:在/etc/vsftpd/vsftpd.conf
文件中,找到并修改listen
参数,将监听端口改为 2222:
listen=YES listen_ipv6=NO listen_port=2222
然后重启 vsftpd 服务:
systemctl restart vsftpd
确保防火墙开放新的端口:
firewallcmd permanent addport=2222/tcp firewallcmd reload
或者配置 iptables:
iptables A INPUT p tcp dport 2222 j ACCEPT service iptables restart
Q2:如何限制特定用户只能访问其主目录?
A2:通过配置chroot_local_user
和chroot_list
来实现,设置chroot_local_user=YES
,然后在/etc/vsftpd/chroot_list
中列出例外用户,若只允许用户peter
访问其他目录,而其他用户只能访问其主目录,可以如下配置:
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list /etc/vsftpd/chroot_list 内容: peter
这样,除了peter
之外的用户都会被限制在自己的主目录内。