- 安装FTP
为了能够快速在服务器上传和下载文件,我们需要安装FTP。
首先查看服务器是否已经安装了FTP:
rpm -q vsftpd
若提示package vsftpd is not installed,则为未安装,执行一下指令:
yum -y install vsftpd
- 配置FTP
(1)将vsftpd的配置文件/etc/vsftpd/vsftpd.conf备份:
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
配置文件最好备份一下,作为多种配置方式的模板。
(2)查看vsftpd.conf中的基本参数:
#禁止匿名用户登陆
anonymous_enable=NO
#允许本地用户(虚拟用户)访问
local_enable=YES
write_enable=YES
local_umask=022
#开启日志记录
xferlog_enable=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#开启主动模式(常用主动模式,但需要开启20端口)
connect_from_port_20=YES
pasv_enable=NO
#开启被动模式(与主动模式二选一)
#connect_from_port_20=NO
#pasv_enable=YES
#pasv_min_port=50000
#pasv_max_port=60000
#开启异步传输
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
#设置FTP banner
ftpd_banner=Welcome to blah FTP service.
#不允许用户登出主目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
#设定该Vsftpd服务工作在StandAlone模式下
listen=YES
#listen_ipv6=YES
#开启用户列表
userlist_enable=YES
userlist_deny=NO
#设定支持TCP wrapper
tcp_wrappers=YES
(3)系统用户登录FTP
在vsftpd.conf中添加系统用户设置:
#设定登录的系统用户
nopriv_user=ftpuser
在系统中添加新用户并设置密码:
useradd -d /data/yourftp ftpuser
echo ‘123456’ | passwd --stdin ftpuser
启动服务器,即可用客户端登录了:
systemctl start vsftpd
ftp 127.0.0.1
(4)虚拟用户登录FTP
在vsftpd.conf中添加虚拟用户设置:
#设置虚拟用户virtualhost
guest_enable=YES
guest_username=virtualhost
virtual_use_local_privs=YES
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/virtualconf
添加虚拟用户,可设为禁止登录:
useradd -d /data/yourftp virtualhost -s /sbin/nologin
创建vsftpd日志,更改权限:
touch /var/log/vsftpd.log
chown virtualhost.virtualhost /var/log/vsftpd.log
建立虚拟用户配置文件,与vsftpd.conf中的user_config_dir对应:
mkdir /etc/vsftpd/virtualconf
安装制作虚拟用户数据库文件的db4软件包:
yum install db4
编辑虚拟用户名单:
vim /etc/vsftpd/virtualusers
在其中设定虚拟用户的用户名和密码:
virtual
12345678
生成虚拟用户数据文件:
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
安装pam验证服务:
yum install pam
备份pam中的vsftpd配置文件,与vsftpd.conf中pam_service_name对应:
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
vim /etc/pam.d/vsftpd
如果是32位系统则改为:
#%PAM-1.0
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers
如果是64位系统则改为:
#%PAM-1.0
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
定制虚拟用户配置:
vim /etc/vsftpd/virtualconf/virtual
在其中可以定义虚拟用户的初始目录为网站根目录:
local_root=/usr/share/nginx/html
为网站根目录添加权限:
chown -R virtualhost :virtualhost /usr/share/nginx/
另外还可在/etc/vsftpd/chroot_list中添加上限制在主目录的名单。
重启vsftpd服务器:
systemctl restart vsftpd
此时便可以通过虚拟用户访问服务器目录了。