FTP服务搭建

一、FTP的用户类型

1、匿名用户:用户名为ftp 或 anonymous,提供任意密码(包括空密码)都可以通过服务器验证。一般用于公共文件的下载,如提供一些免费的软件,学习资料下载的站点。 
2、本地用户:直接使用本地系统用户账号进行验证 
3、虚拟用户:统统以分独立的用户数据库文件进行登录验证,将FTP账号与Linux系统账户的关联性降至最低,为系统提供更好的安全性

 

二、实例搭建

1、搭建匿名用户访问的FTP服务 
前期准备: 
(1)安装FTP服务软件 
yum -y install vsftpd vsftpd 为ftp服务的软件 
ftp的共享目录 /var/ftp/pub 
(2)更改共享目录pub的属主为ftp,系统默认就有ftp这个用户。 
chown ftp /var/ftp/pub 
image_1crejslcbike1v151k6m11ah1rlf9.png-17.7kB 
(3)开放匿名用户的配置文件并启动vsftp服务,ftp的配置文件路径 /etc/vsftpd/vsftpd.conf 
(4)cd /etc/vsftpd 
(5)备份配置文件---》cp vsftpd.conf{,.bak} 
(6)打开配置文件 vim vsftpd.conf 
(7)配置FTP 
微信图片_20181104140052.png-50.3kB

2、开启ftp服务 
/etc/init.d/vsftpd start 
image_1cremmmp6jntgkm1v4s12u61fo056.png-15kB
3、检查ftp端口,确认是否已开启 
netstat -antup | grep vsftpd 
4、关闭防火墙 service iptables stop 或 setenforce 0(关闭虚拟机的防火墙) 
以上服务端配置完毕 
4、客户端装ftp 
yum -y install ftp 
5、登录服务端的ftp 
ftp 服务端ip地址 
6、填写ftp,因为是匿名用户 
7、填写密码 因为没有密码,所以直接回车即可 
image_1cren0av7v29oeo10rf1rks16cu5j.png-24.2kB 
注1:你在哪个目录下进入的ftp就会在当前目录下操作上传或下载。 
注2:进入后help查看ftp里面的使用命令。在ftp里get代表下载,你当前在哪个目录登陆ftp就下载到哪个目录,在ftp里put代表上传命令,也只能上传客户端当前目录里的文件,不能是绝对路径上传


2、搭建本地用户验证FTP服务 
【2.1】创建本地用户 
useradd 用户1 useradd 用户2 
echo “密码”| passwd --stdin 用户1 &> /dev/null 
echo “密码”| passwd --stdin 用户2 &> /dev/null 
【2.2】备份ftp配置文件 
因为做匿名用户的时候已经备份过了,所有我们把原文件改个名即可,主要区分下是本地用户要用的配置文件 
mv vsftpd.conf vsftpd.conf.anon 
cp vsftpd.conf.bak vsftpd.conf 
【2.3】打开配置文件 vim vsftpd.conf 
1、关闭匿名用户 
image_1crenge2i1tp813rimb9i4k1kv7t.png-13.9kB 
2、 开启本地用户的家目录锁定,每个用户的共享文件在每个用户的家目录里面,也就是用户家目录下的用户目录 
image_1crenf73a6u51l7t671ugq1mef7g.png-35.6kB

【2.4】重启ftp服务 
/etc/init.d/vsftp reload 
【2.5】本地用户测试 
客户端操作: ftp ftp服务器ip 
进入后输入本地用户名及密码 
image_1creo610p1251ebn10ls1hudkjq8a.png-9kB

image_1creo7qut58h1gkdsmf93o16p68n.png-43.2kB

【2.6】ftpusers 与 user_list 用户列表的使用,他们在/etc/vsftpd下 
【2.6.1】ftpusers文件:FTP服务器的黑名单,优先级高于user_list 
【2.6.2】user_list文件:此用户列表默认情况下也是黑名单,即在此用户列表中的用户不可访问FTP服务器 
但可以通过vsftpd.conf主配置文件的修改将此名单改为白名单,且仅此名单中的用户可以访问 
注:直接将想加入的黑名单用户名直接写进文件即可


3、搭建虚拟用户验证的FTP

【3.1】备份ftp配置文件 
mv vsftpd.conf vsftpd.conf.local 
cp vsftpd.conf.bak vsftpd.conf 
【3.2】创建虚拟账号文件 
vim ./vusers.list 创建 写:zhangsan 123 lisi 123 wangwu 456 
微信图片_20181104151531.png-5.8kB

【3.3】使用db_load生成数据库加密文件,没有的话安装以下 
db_load -T -t hash -f vusers.list vusers.db 
参数说明:-T 允许非Berkeley的程序使用该数据库 
-t 指定算法(hash:哈希,散列) 
-f 指定源文件 
注:生成的数据库文件必须为.db格式 
【3.4】给vusers.db 600权限 
chmod 600 vusers.db 
【3.5】添加虚拟映射账号并指定家目录位置为/vat/ftproot/,为FTP根目录修改权限 
useradd -d /var/ftproot/ -s /sbin/nologin virtual 
mkdir -p /var/ftproot/ 
chmod 755 /var/ftproot/ 
【3.6】增加PAM认证 
vim /etc/pam.d/vsftpd.vu 
image_1crepl4051ak814pjo6k1esn1vs4bg.png-15.1kB

写:auth  required  pam_userdb.so  db=/etc/vsftpd/vusers
    account  required  pam_userdb.so  db=/etc/vsftpd/vusers

【3.7】修改vsftpd.conf配置文件 
vim vsftpd.conf 
image_1cres6blimfn12342tnvkmqtcct.png-58.4kB

image_1cres7q9q17ajnv017c71umf1k5mdq.png-15.4kB

【3.8】重启服务 
/etc/init.d/vsftpd reload

【3.9】客户端测试 
用刚设置的虚拟账号登录ftp服务器 
image_1cresaefvh9q1nf88p913la696e7.png-42.8kB

【3.10】实现每个虚拟用户不同根目录、不同权限的管控 
【3.10.1】创建用户控制目录,并创建虚拟所对应的同名配置文件 
进入vsftpd目录创建 
1、mkdir ./vusers.dir 
2、cd vusers.dir 
3、touch zhangsan lisi wangwu 
【3.11】修改虚拟用户的配置文件 
vim wangwu 
写:anon_upload_enable=YES 表示允许匿名上传 
anon_mkdir_write_enable=YES 表示允许匿名创建目录 
anon_other_write_enable=YES 表示允许匿名用户有写权限 
anon_max_rate=1 设置上传下载速度为1字节 
local_root=/var/wangwu 单独给虚拟用户设置自己的目录 
【3.12】创建虚拟用户设置自己的目录 
mkdir -p /var/wangwu 
【3.13】更换虚拟账号文件的属主 
chown virtual /var/wangwu 
【3.14】修改ftp配置文件,告诉他对虚拟账号的设置 
vim vsftpd.conf 
image_1creslrki1g461o331tve83d8cek.png-23.1kB 
告诉ftp虚拟账号的配置文件所在位置 
【3.15】重启服务 
/etc/init.d/vsftpd reload

posted @ 2018-11-04 16:49  mendermi  阅读(334)  评论(0编辑  收藏  举报