vsftpd(Very Secure FTP Daemon)是一个安全、快速、稳定的FTP服务器,广泛应用于各种Linux发行版中。本文将介绍在Linux中安装和配置vsftpd的步骤。
安装
在大多数Linux发行版中,vsftpd是默认安装的。如果您的系统没有安装vsftpd,请使用以下命令安装:
-
CentOS/RHEL
sudo yum install vsftpd
配置
安装完成后
配置文件在 /etc/vsftpd/vsftpd.conf
安装完成后,我们需要配置访问方式。有三种模式可供选择:匿名访问、本地账号访问和虚拟账号访问。根据自己的需求选择相应的模式,下面将依次介绍这三种模式的配置方法。
方式一: 匿名访问
要启用匿名访问,编辑vsftpd配置文件。使用以下命令打开配置文件:
sudo vi /etc/vsftpd/vsftpd.conf
找到以下行并将其更改为“YES”:
anonymous_enable=YES
保存并关闭文件。
相反,如果你想关闭匿名访问,将其改为“NO”即可
anonymous_enable=NO
方式二:本地账号访问
通过 Linux 的用户名和密码链接FTP,这种方式的配置比较简单。
首先,我们创建一个名为 ftpuser 的用户,用于登录 FTP:
sudo adduser ftpuser
按照提示输入新用户的密码。
允许FTP用户访问
要允许FTP用户访问,请将以下行添加到vsftpd.conf文件的底部:
local_enable=YES
write_enable=YES
重启vsftpd服务
要使所有更改生效,请重启vsftpd服务:
-
CentOS/RHEL
sudo systemctl restart vsftpd
设置防火墙
开放21和20端口(云服务器控制台和服务器防火墙都需要设置,具体可查询其他资料)
可以通过以下方法暂时关闭防火墙
# iptables
service iptables stop
# firewalld
service firewalld stop
# 如果没有安装防火墙可直接跳过
现在你可以在客户端用账号ftpuser登录ftp了,登录后可以读写当前用户的目录/home/ftpuser。
如果你想修改登录的目录,可以通过配置项local_root进行控制。
local_root=/home/username
请注意
- 不是所有本地用户都可以登录 FTP。在 /etc/vsftpd 文件夹下有一个 ftpuser 文件,其中的用户名无法登录 FTP。
白名单与黑名单
通过上述步骤,其实已经实现了ftp的链接,如果你想限制部分账户可以登录ftp或者部分账号无法登录ftp,可以通过配置项 userlist_enable 和 userlist_deny 来实现
-
黑名单模式,在user_list文件中用户无法登录ftp
#是否启用黑名单/ 白名单 userlist_enable=YES
#黑名单模式 userlist_deny=YES -
白名单模式,只有在user_list文件中用户才能登录ftp
#是否启用黑名单/ 白名单 userlist_enable=YES
#白名单模式 userlist_deny=NO
方式三:虚拟账号访问
如果你需要分配较多的ftp账号,每一个ftp账号都需要创建一个linux用户,很显然,这并不是那么安全,这时候你可能需要用到虚拟账号
安装工具,运行命令
yum install db4 db4-utils -y
编写账号密码文件
vi /etc/vsftpd/vuser_passwd.txt
在文件中写入用户名和密码,切记奇数行为用户名,偶数行为密码
user1
passwd1
user2
passwd2
退出并保存
运行命令:
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
运行命令:
vi /etc/pam.d/vsftpd
注释掉所有内容,并填写以下内容
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
保存并退出
创建用户相关配置文件夹
mkdir /etc/vsftpd/vuser_conf
cd /etc/vsftpd/vuser_conf
vi user1
# 文件名和vuser_passwd.text 文件中填写的一致,每一个用户一个文件
复制并粘贴以下内容
# /var/www 按照实际情况修改
local_root=/var/www
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
最后我们还需要在vsftpd.conf 文件追加以下配置
# 开启虚拟用户访问
guest_enable=YES
#ftp用户名为centos 自带的用户,虚拟账号都会映射到这个账号
guest_username=ftp
# 用于存放用户配置的目录
user_config_dir=/etc/vsftpd/vuser_conf
请注意,虚拟账号 user1、user2 同样也受用户白名单和黑名单的控制,如果你开启了白名单,不要忘记将虚拟账号加入白名单,或者可以通过 userlist_enable=NO 直接关闭黑白名单。
sudo systemctl restart vsftpd
结论
到这里vsftpd 基础的配置就结束了。
最后再送你一份自动安装脚本,一键安装