在Linux上,FTP服务器通常使用vsftpd(Very Secure FTP Daemon)或ProFTPD等软件进行配置和管理。用户认证是FTP服务器安全的重要组成部分。以下是如何在Linux上使用vsftpd进行用户认证的步骤:
首先,确保你的Linux系统上已经安装了vsftpd。你可以使用包管理器来安装它。
sudo apt update
sudo apt install vsftpd
sudo yum install vsftpd
编辑vsftpd的配置文件 /etc/vsftpd/vsftpd.conf
。
sudo nano /etc/vsftpd/vsftpd.conf
确保以下配置项被正确设置:
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
PAM允许vsftpd使用系统用户进行认证。
编辑 /etc/pam.d/vsftpd
文件:
sudo nano /etc/pam.d/vsftpd
确保以下行存在并且没有被注释掉:
auth required pam_unix.so
account required pam_unix.so
创建一个新的系统用户,该用户将用于FTP认证。
sudo adduser ftpuser
sudo passwd ftpuser
按照提示设置密码。
确保FTP用户的家目录权限正确,以便他们可以访问和写入文件。
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
应用配置更改并重启vsftpd服务。
sudo systemctl restart vsftpd
sudo systemctl restart vsftpd
使用FTP客户端连接到你的服务器,验证用户认证是否正常工作。
ftp your_server_ip
输入用户名 ftpuser
和密码进行登录。
确保防火墙允许FTP流量。
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp # FTPS
sudo ufw enable
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-service=ftps
sudo firewall-cmd --reload
通过以上步骤,你应该能够在Linux上成功配置vsftpd进行用户认证。