一 使用vsftpd搭建FTP服务
CentOS或者Red Hat Linux 上有自带的FTP软件vsftpd,默认并没有安装,需要用yum安装,安装后不用配置,启动后便可以使用
二 安装vsftpd
使用yum工具安装vsftpd包
# yum install -y vsftpd db4-utils
三 建立账号
vsftpd默认可以支持使用系统账号体系登录,但那样不太安全,所以建议使用虚拟账号体系登录
首先建立与虚拟机账号相关联的系统账号:
# useradd virftp -s /sbin/nologin
接着建立与虚拟账户相关的文件:
# vim /etc/vsftpd/vsftpd_login //内容如下:
test1
123456
test2
abcdef
(该文件的奇数行为用户名,偶数行为上一行的用户密码)
然后更改该文件的权限,提升安全级别:
#chmod 600 /etc/vsftpd/vsftpd_login
vsftpd使用的密码文件不是明文的,需要生产对应的库文件,如下:
# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
最后建立与虚拟账号相关的目录以及配置文件:
# mkdir /etc/vsftpd/vsftpd_user_conf
# cd /etc/vsftpd/vsftpd_user_conf
四 创建和用户对应的配置文件
用户的配置文件是单独存在的,每一个用户都有一个自己的配置文件,文件名和用户名一致,如下:
# vim test1 //如下:
local_root=/home/virftp/test1
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_uoload_enable=NO
anon_mkdir_write_enable=NO
idle_connection_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
该配置文件内容可在https://coding.net/u/aminglinux/p/aminglinux-book/git/tree/master/D18Z获取。其中,local_root为test1账号的家目录,anonymous_enable用来限制是否允许匿名账号登录(若为NO,表示不允许匿名账号登录),write_enable=YES表示可写,local_umask值,anon_upload_enable表示是否允许匿名账号上传文件,anon_mkdir_write_enable表示是否允许匿名账号可写。以上为关键配置参数,其他参数暂时不用关心。
创建test2账号的步骤和test1一样:
# mkdir /home/virftp/test1
# touch /home/virftp/test1/aminglinux.txt
# chown -R virftp:virftp /home/virftp
# vim /etc/pam.d/vsftpd //在最开头添加两行
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd-login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
CentOS 7为64位系统,所以库文件路径为、lib64/security/pam_userdb.so(32位系统的库文件路径为/lib/security/pam_userdb.so)
五 修改全局配置文件/etc/vsftpd/vsftpd.conf
修改用户的配置文件后还不可用,还需要修改vsftpd的一些全局配置文件
首先编辑vsftpd.conf文件:
# vim 、etc/vsftpd/vsftpd.conf
修改如下内容:
将anonymous_enable=YES改为anonymous_enable=NO;
将#anon_upload_enable=YES改为anon_upload_enable=NO;
将#anon_mkdir_write_enable=YES改为anon_mkdir_write_enable=NO.
再增加如下内容:
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
该部分内容可以在https://coding.net/u/aminglinux/p/aminglinux-book/git/tree/master/D18Z获取,然后启动vsftpd服务,执行如下命令:
# systemctl start vsftpd
# ps aux |grep vsftp //查看进程是否存在
# yum install lftp //安装lftp客户端软件
# lftp test1@127.0.0.1