搭建匿名访问的FTP服务

1,安装FTP服务软件

 
  1. [root@localhost ~]# mount /dev/sr0 /media/cdrom/
  2. mount: block device /dev/sr0 is write-protected, mounting read-only
  3. [root@localhost ~]# yum -y install vsftpd //ftp服务软件包

2,准备匿名FTP访问目录 
FTP其实就是在server端创建一个共享目录,client端连过来就可以从这个目录下载或上传数据

 
  1. [root@localhost ~]# cd /var/ftp/ //yum安装的FTP默认就有ftp目录,没有的话需要创建
  2. [root@localhost ftp]# ls
  3. pub //FTP下的pub目录就是共享目录
  4. [root@localhost ftp]# ll
  5. total 4
  6. drwxr-xr-x. 2 root root 4096 Mar 1 2013 pub //因为需要程序用户往里写数据,所以必须把属主改成ftp这个程序用户
  7. [root@localhost ftp]# id ftp
  8. uid=14(ftp) gid=50(ftp) groups=50(ftp) //ftp这个程序用户默认有
  9. [root@localhost ftp]# chown ftp pub/ // 改目录的属主

3,开放匿名用户配置并启动vsftpd服务 
image_1crce9vm926r1ro1gab1kfq1ref9.png-27.6kB
打开配置文件 
image_1crceufnq18lu1h81gfl17b5t6213.png-37.4kB

image_1crcfdb2i15qp1idu4tlba61ovd2g.png-32.2kB 
匿名配置文件就好了,开启服务

 
  1. [root@localhost vsftpd]# /etc/init.d/vsftpd start
  2. Starting vsftpd for vsftpd: [ OK ]
  3. [root@localhost vsftpd]# ss -antup | grep vsftpd //开启服务需要过滤一下端口,有的时候显示开了,其实没开
  4. tcp LISTEN 0 32 *:21 *:* users:(("vsftpd",1081,3))

image_1crcfoqln198f12vq1ta21mqbhh03t.png-21kB

image_1crcfrvuopfq121q107q1r751kie4a.png-7.2kB

image_1crcg3vabcb41auh1r41d1t8ht4n.png-52.6kB

image_1crcg8vruqpe5h0npt182c1gmq5k.png-21.9kB

image_1crcg9pcp17q21lhv1eqg15qgnil61.png-6.3kB

ftp的命令和Linux里的命令不一样需要自己看用help命令看

 

搭建本地用户验证的 FTP 服务

image_1crcgmpo0162ft5s1elecaf1vad6u.png-18.6kB

image_1crcgqls711f2ppr1q4s1verv467b.png-10.3kB

image_1crch1f4b88p50ua3dciv1afg7o.png-23.9kB

image_1crch3kdp1q0o1bhl1nod1mvg197a8l.png-10.9kB

image_1crch6mr2gdfh46rgj1lrh1na49i.png-23.8kB

image_1cre5hhlc5n7a6u140vskf1gc59.png-10.4kB

image_1cre5ktprlsl148q1kth1ij6n3vm.png-35.4kB 
服务器端关闭Linux的selinux防火墙配 
setenforce 0 表示关闭selinux防火墙

 

匿名用户的FTP

image_1cre632fk1ieu1mld1gid1hpv34613.png-18.2kB
1,建立虚拟用户账号数据库 
vsftpd 服务使用 Berkeley DB 格式的数据库文件来存放虚拟用户账号,使用 db_load 工具生成数据库文件。(若未安装,安装包在安装光盘 1 中,软件名为 db4-utils) 
image_1cre681sv7c41p5the2h2919ns1g.png-6kB

image_1cre6hmbteaqhfa5iin751l7n2a.png-17.1kB

image_1cre6k6r81in5jonvdjk8p5u137.png-8.2kB

image_1cre99olcfe7d771ti0193q14ko3k.png-17.3kB

注:db_load 命令 
-T:允许非 Berkeley 的程序使用该数据库 
-t:指定算法 (hash:哈希,散列) 
-f:指定源文件 
注意:生成的数据库文件必须为“.db”格式 
image_1cre9hpc4hfr1p3srnmc4fn3741.png-18.3kB

2,添加虚拟映射账号,为FTP根目录修改权限

 
  1. [root@localhost vsftpd]# useradd -d /var/ftproot/ -s /sbin/nologin virtual //这是映射账号,所有虚拟账号链接过来都会成为这个账号,指定家目录
  2. [root@localhost vsftpd]# ll -d /var/ftproot/
  3. drwx------. 2 virtual virtual 4096 Nov 4 18:47 /var/ftproot/
  4. [root@localhost vsftpd]# chmod 755 /var/ftproot/ // 把家目录的权限修改了
  5. [root@localhost vsftpd]# ll -d /var/ftproot/
  6. drwxr-xr-x. 2 virtual virtual 4096 Nov 4 18:47 /var/ftproot/
  7. [root@localhost vsftpd]#

3,添加PAM认证 
image_1creaeoic3po6f11a6uik11fig4r.png-8kB

image_1creadejn1dmg1itatu4135d9tn4e.png-6.8kB

4,修改vsftp.conf配置文件,重启服务

image_1creaiebndof1i89bbh18ut1orl58.png-13.2kB

image_1creau7r3edd13r5iq45lb151f95.png-17.4kB

image_1creavojue4u1kub1m9q1csu17d7a2.png-10.9kB

image_1creb1qo1viq1tohe3u1vgsbg0af.png-12.2kB

image_1creb6gic1au11opm1mn25su15gsas.png-31.7kB 
5,实现每个虚拟用户不同根目录、不同权限的管控 
(1)创建用户控制目录,并创建虚拟所对应的同名配置文件 
image_1crebf9u71qrcf8lfeb80813gbp.png-22.6kB 
修改 zhangsan 的配置文件,使其可以上传、建立目录、删除文件、重命名文件、最大传输速率 1 字节/秒、根目录为/var/zhangsan 

image_1crebtfhf16rb9bsbga13kr1uthd3.png-6.5kB

image_1crebvl13lti1geb1nqp1ifr1rtpdg.png-11.2kB

image_1crebp93or6f167n1a3vil71r0scm.png-8.3kB

image_1crec5ka11uvb1longct188g1raqdt.png-10.3kB 
修改 lisi 的配置文件,使其仅可以下载上传,不开放其他权限,不限制传输速率,根目录为/var/lisi 
image_1crecgiodl1r12ucdq21s6h1tbeea.png-9.3kB

image_1creckhra1kq2ahl8aj3q6tden.png-9.3kB 
image_1crecn8pd1ekg1ki7fi2j541lspf4.png-10.5kB 

wangwu 的配置文件不做修改,其权限为配置文件中的默认权限,根目录为/var/ftproot,仅可以下载,无法上传。

(2)修改 vsftpd.conf 主配置文件,重启服务 
image_1crecs2od1cvvn8j1a0th0h4sefh.png-7.9kB 
image_1crecvffarkgcds1p9iuso1qitfu.png-12.7kB

image_1cred0icl66o1gmf171k1kitgqsgb.png-11.2kB 
(3)客户端测试 
image_1cred32ng1al0guu32l179iemvgo.png-20.5kB

image_1cred4g11ql61b5eak91r2v1n7ih5.png-32kB


image_1cred6ger1hjh14t3vof8bu1uooii.png-33kB