vsftpd for centos
环境说明
1、操作系统:本次操作在CentOS 7.6环境下进行。
2、软件包:vsftpd版本为3.0.229.el7_9。
安装与配置
1、更新软件包(可选):
```bash
sudo yum update y
```
2、安装vsftpd:
```bash
sudo yum install vsftpd y
```
3、备份原始配置文件(可选):
```bash
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
```
4、编辑vsftpd配置文件:
```bash
sudo vi /etc/vsftpd/vsftpd.conf
```
5、关键配置项:
```text
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=/home/$USER
user_sub_token=$USER
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
pasv_min_port=30000
pasv_max_port=31000
pasv_address={{vsftpd服务器的公网IP}}
```
6、重启vsftpd服务:
```bash
sudo systemctl restart vsftpd
```
7、打开端口:
如果使用firewall:
```bash
sudo firewallcmd permanent addport=21/tcp
sudo firewallcmd permanent addservice=ftp
sudo firewallcmd reload
```
如果使用iptables:
```bash
sudo iptables A INPUT p tcp dport 20 j ACCEPT
sudo iptables A INPUT p tcp dport 21 j ACCEPT
```
8、创建FTP用户:
```bash
sudo adduser ftpuser
sudo passwd ftpuser
```
9、创建FTP目录并设置权限:
```bash
sudo mkdir p /home/ftpuser/ftp
sudo chown R ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod 755 /home/ftpuser/ftp
```
问题排查
1、FTP用户被拒绝登录:如果禁止了FTP用户通过SSH登录,可能会被拒绝登录,解决办法包括:开放FTP用户的SSH登录权限,将/sbin/nologin
添加到/etc/Shells
文件中,或修改PAM配置文件以允许FTP用户登录。
2、检查FTP用户是否被正确添加到/etc/vsftpd/user_list
文件中,且未列在/etc/vsftpd/ftpusers
文件中。
3、查看vsftpd日志:
```bash
sudo journalctl u vsftpd f
```
4、使用工具抓包分析。
相关问答FAQs
1、如何生成SSL/TLS证书以加密FTP传输?
解答:使用OpenSSL命令生成自签名证书,并将其路径添加到vsftpd配置文件中,具体步骤如下:
```bash
sudo openssl req x509 nodes days 3650 newkey rsa:2048 keyout /etc/vsftpd/vsftpd.pem out /etc/vsftpd/vsftpd.pem
```
然后编辑vsftpd配置文件,添加以下内容:
```text
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES
```
最后重启vsftpd服务。
2、如何在CentOS上启用被动模式并进行配置?
解答:在vsftpd配置文件中启用被动模式并指定端口范围,具体步骤如下:
```bash
sudo vi /etc/vsftpd/vsftpd.conf
```
添加或修改以下配置:
```text
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
```
保存文件并重启vsftpd服务,确保在防火墙中放行相应的端口范围。