根据提供的文件信息,我们可以详细解析如何在 CentOS 6.3 中配置 vsftpd(Very Secure FTP Daemon)服务。以下步骤将逐步指导您完成整个过程。
### 安装vsftpd
首先确认系统是否已安装 vsftpd。可以使用 `rpm -q vsftpd` 命令检查。如果没有安装,则通过 yum 软件包管理器进行安装:
```
yum install vsftpd
```
### 配置防火墙
为了使 FTP 服务能够正常工作,需要确保系统防火墙允许通过 FTP 端口 (21)。禁用防火墙或配置其规则来开放 FTP 端口。
```bash
service iptables stop
```
编辑 `/etc/sysconfig/iptables` 文件,在其中添加以下规则以允许 FTP 流量通过:
```bash
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
```
如果您还需要支持被动模式 (passive mode),则需要额外打开一个端口范围,例如 30000 到 30100:
```bash
-A INPUT -m tcp -p tcp --dport 30000:30100 -j ACCEPT
```
重启防火墙以应用更改:
```bash
service iptables restart
```
### 配置 vsftpd
接下来,编辑 vsftpd 的配置文件 `/etc/vsftpd/vsftpd.conf`,使其符合您的需求。首先备份原始文件以防万一:
```bash
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
```
然后使用文本编辑器编辑配置文件。下面是一些关键设置的解释:
1. **禁止匿名登录**:默认情况下,vsftpd 允许匿名登录。但通常我们会关闭此功能以增加安全性。
```ini
anonymous_enable=NO
```
2. **启用被动模式**:被动模式是 FTP 的一种连接方式,可以避免某些网络环境下的问题。
```ini
pasv_enable=YES
pasv_max_port=30100
pasv_min_port=30000
```
3. **限制用户目录**:可以通过设置 chroot_list 来限制用户的活动范围。
```ini
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
```
创建 chroot_list 文件,并将需要限制的用户名写入其中。
4. **创建用户**:为 FTP 服务器创建专用账户,并设置其家目录及登录 shell。
```bash
adduser -d /tmp/test -g ftp -s /sbin/nologin test
```
5. **密码设置**:为新创建的用户设置密码。
```bash
passwd test
```
6. **权限调整**:确保 FTP 用户对文件和目录有足够的访问权限。
```bash
chmod -R 777 /var/www
chgrp -R ftp /var/www
```
### 启动 vsftpd 服务
启动 vsftpd 服务并将其设置为开机自启。
```bash
service vsftpd start
chkconfig vsftpd on
```
### 配置其他设置
1. **FTP 用户黑名单**:vsftpd 提供了两种黑名单机制:`vsftpd.ftpusers` 和 `vsftpd.user_list`。
- `vsftpd.ftpusers`: 存放被禁止登录 FTP 的用户名。
- `vsftpd.user_list`: 存放被允许登录 FTP 的用户名。默认情况下所有用户都被允许。
```ini
userlist_enable=YES
```
2. **本地用户设置**:控制本地用户的行为。
- **写权限**:
```ini
write_enable=YES
local_umask=022
```
- **匿名上传和创建目录**:
```ini
anon_upload_enable=YES
anon_mkdir_write_enable=YES
```
- **改变文件所有者**:当匿名用户上传文件时,自动将其所有权更改为指定用户。
```ini
chown_uploads=YES
chown_username=whoever
```
- **限制用户活动目录**:使用 chroot 局限用户在其家目录内操作。
```ini
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
```
3. **安全设置**:增强 vsftpd 的安全性。
- **非特权用户**:用于运行 vsftpd 进程的非特权用户。
```ini
nopriv_user=ftpsecure
```
- **ASCII 模式上传**:启用 ASCII 模式上传支持。
```ini
ascii_upload_enable=YES
```
- **异步终止会话**:允许客户端中断上传/下载操作而不会阻塞 vsftpd 进程。
```ini
async_abor_enable=YES
```
以上就是 CentOS 6.3 中配置 vsftpd FTP 服务的详细步骤。通过这些设置,您可以建立一个既安全又稳定的 FTP 服务器。请注意,根据实际应用场景的不同,可能还需要对其他设置进行调整以满足特定的需求。