CentOS 6.5 搭建FTP服务器(vsftpd)
安装与配置
1、安装 vsftpd
使用yum
命令安装 vsftpd:
```bash
yum y install vsftpd
```
设置开机启动:
```bash
chkconfig vsftpd on
```
查看服务状态:
```bash
service vsftpd status
```
2、创建用户
创建用于FTP服务的系统用户,并设定其目录:
```bash
useradd ftpuser d /home/ftpuser s /sbin/nologin
```
为新用户设置密码:
```bash
passwd ftpuser
```
将用户目录权限转移给用户:
```bash
chown R ftpuser:ftpuser /home/ftpuser
```
3、配置防火墙规则
允许FTP服务的端口通过防火墙:
```bash
iptables A INPUT m state state NEW m tcp p tcp dport 21 j ACCEPT
service iptables save
service iptables restart
```
4、修改 vsftpd 配置文件
编辑配置文件/etc/vsftpd/vsftpd.conf
:
```bash
vim /etc/vsftpd/vsftpd.conf
```
常用配置参数包括:
```plaintext
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
```
保存后重启 vsftpd 服务:
```bash
service vsftpd restart
```
虚拟用户配置
1、安装 db4 包
用于支持文件数据库:
```bash
yum install db4
```
2、创建虚拟用户文本文件
建立虚拟用户名单文件virtualusers.txt
,格式为用户名和密码交替排列:
```plaintext
user1
password1
user2
password2
```
生成数据库文件:
```bash
db_load T t hash f virtualusers.txt virtualusers.db
```
删除文本文件以保安全:
```bash
rm rf virtualusers.txt
```
3、配置 PAM 文件
编辑/etc/pam.d/vsftpd
,添加以下内容:
```plaintext
auth required pam_userdb.so db=/etc/vsftpd/virtualusers
account required pam_userdb.so db=/etc/vsftpd/virtualusers
```
4、创建虚拟账户对应系统用户
禁止登录系统:
```bash
useradd ftpvip s /sbin/nologin
```
在/etc/vsftpd/vuser_config
目录下创建虚拟账号的主目录:
```bash
mkdir /etc/vsftpd/vuser_config
touch /etc/vsftpd/vuser_config/user
touch /etc/vsftpd/vuser_config/vip
```
配置虚拟账号文件,例如user
文件中:
```plaintext
guest_enable=yes
guest_username=ftpvip
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_max_rate=100000
```
5、重启 vsftpd 服务
```bash
service vsftpd restart
```
常见问题及解决方法
1、SELinux 配置问题
如果遇到 SELinux 导致的无法访问问题,可以暂时关闭 SELinux:
```bash
setenforce 0
```
或配置 SELinux 允许 FTP daemon 完全访问:
```bash
setsebool P allow_ftpd_full_access 1
```
2、防火墙配置问题
确保防火墙规则已正确配置并保存,否则可能导致无法连接。
FAQs(相关问答)
1、为什么无法连接到FTP服务器?
解答:首先检查防火墙规则是否允许FTP服务的端口(默认是21),确保vsftpd服务已启动并正确配置,如果仍然无法连接,检查SELinux设置是否允许FTP访问。
2、如何限制FTP用户的传输速率?
解答:在vsftpd的配置文件中,可以通过设置anon_max_rate
参数来限制匿名用户的最大传输速率,
```plaintext
anon_max_rate=100000 # 限制为100KB/s
```
对于本地用户,可以使用local_max_rate
参数进行类似设置。