FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
小公司用的多,大企业不用FTP,因为有一定的安全隐患。
1.使用vsftpd搭建FTP服务。
CentOS上vsftpd是自带的,但是并没有安装,我们只需要用yum 安装一下就好了。
[root@localhost ~]# yum install -y vsftpd
[root@localhost ~]# yum install -y db4-utils //用来生成密码库文件
同时在安装一个 db4-utils 的包用来生成密码库文件。
2.建立账号
vsftpd默认可以支持使用系统账号体系登录,但是不够安全,所以我们使用虚拟账号体系登录。
首先建立与虚拟账号相关联的系统账号。
[root@localhost ~]# useradd -s /sbin/nologin virftp
接着建立与虚拟账户相关的库文件。
[root@localhost ~]# vim /etc/vsftpd/vsftpd_login //内容如下
test1
123456
test2
123456
注:奇数行为用户名,偶数行为密码,多个用户就写多行
然后更改该文件的权限。
[root@localhost ~]# chmod 600 /etc/vsftpd/vsftpd_login
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db //vstpd使用的密码文件不是明文的,需要生成对应的库文件。
最后创建与虚拟账号相关的目录以及配置文件
[root@localhost ~]# mkdir /etc/vsftpd/vsftpd_user_conf
[root@localhost ~]# cd /etc/vsftpd/vsftpd_user_conf
3.创建和用户对应的配置文件
用户的配置文件是单独存在的,每一个用户都有一个自己的配置问价,文件名和用户名一致,
[root@localhost vsftpd_user_conf]# vim test1 //内容如下
local_root=/home/virftp/test1 //账号的家目录
anonymous_enable=NO //用来限制是否允许匿名账号登陆NO,表示不允许
write_enable=YES //表示可写
local_umask=022 //指定umask的值
anon_upload_enable=NO //表示是否允许匿名帐号上传文件
anon_mkdir_write_enable=NO //表示是否允许匿名帐号可写
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
以上有标注的为关键配置,其他参数不用关心。
创建test2账号的步骤和test1一样。
[root@localhost vsftpd_user_conf]# mkdir /home/virftp/test1 //创建家目录
[root@localhost vsftpd_user_conf]# touch /home/virftp/yjlinux.txt
[root@localhost vsftpd_user_conf]# chown -R virftp.virftp /home/virft //更改文件所有者,所属组
[root@localhost vsftpd_user_conf]# vim /etc/pam.d/vsftpd //在文件最开头添加两行
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.s0 db=/etc/vsftpd/vsftpd_login
4.修改全局配置文件 /etc/vsftpd/vsftpd.conf
[root@localhost vsftpd_user_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 //编辑完后启动服务
systemctl start vsftpd //启动vsftpd服务
[root@localhost vsftpd_user_conf]# ps aux | grep vsftp //测试
[root@localhost vsftpd_user_conf]# yum install -y lftp //安装lftp客户端软件
[root@localhost vsftpd_user_conf]# lftp test1@127.0.0.1
[root@localhost vsftpd_user_conf]# lftp test1@127.0.0.1
口令:
lftp test1@127.0.0.1:~> ls
lftp test1@127.0.0.1:/> //这里应该有一个文件。