FTP服务

ftp服务的搭建:

[root@tiandong63 ~]# yum install vsftpd -y     安装

[root@tiandong63 ~]# chkconfig vsftpd on     开机自启动

[root@tiandong63 ~]# /etc/init.d/vsftpd start   启动
Starting vsftpd for vsftpd: [ OK ]

[root@tiandong63 ~]# netstat -tlunp|grep vsftpd  查看开放的端口
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1606/vsftpd

[root@tiandong63 ~]# ll -d /var/ftp/pub/        默认共享的文件
drwxr-xr-x 2 root root 4096 Mar 22 2017 /var/ftp/pub/

[root@tiandong65 ~]# yum install lftp -t   在Linux客户端上查看分享的文件

[root@tiandong65 ~]# lftp 192.168.1.63         
lftp 192.168.1.63:~> ls
drwxr-xr-x 2 0 0 4096 Mar 22 2017 pub

在Windows系统上看分享的目录:

例子:公司技术部准备搭建一台FTP服务器,允许所有员工上传和下载文件,并允许创建用户自己的目录

此时在共享的目录下建立新的目录:(权限拒绝)

修改配置文件:

192.168.1.63:

/etc/vsftpd/vsftpd.cong

12 anonymous_enable=YES   匿名用户传输

27 anon_upload_enable=YES  匿名用户上传

31 anon_mkdir_write_enable=YES  匿名用户创建文件

此时在Windows上面穿件文件

依然是权限拒绝

权限拒绝有两方面一个是服务本身权限拒绝,一个是目录权限不足,此时服务本身有读写权限,所以看一下目录权限

[root@tiandong63 vsftpd]# cat /etc/passwd|grep ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
ftp是ftp用户,查看一下共享目录权限。

[root@tiandong63 vsftpd]# ll -d /var/ftp/pub/
drwxr-xr-x 2 root root 4096 Mar 22  2017 /var/ftp/pub/

修改一下共享目录权限

[root@tiandong63 vsftpd]# chown -R ftp.ftp /var/ftp/pub
[root@tiandong63 vsftpd]# ll -d /var/ftp/pub/
drwxr-xr-x 2 ftp ftp 4096 Mar 22  2017 /var/ftp/pub/

[root@tiandong63 vsftpd]# /etc/init.d/vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]

此时在来创建:(此时可以创建目录了,但是不能给文件名称)

此时在来修改配置文件:

配置文件增加一行,重启服务在来看

 32 anon_other_write_enable=yes       配置文件加了这行后匿名用户权限特别大,因此不建议加
[root@tiandong63 vsftpd]# /etc/init.d/vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]

此时也同步更新的到了服务器端

例2:

公司内部现在有一台FTP 和WEB 服务器,FTP 的功能主要用于维护公司的网站内容,包括上传文

件、创建目录、更新网页等等。公司现有两个部门负责维护任务,他们分别适用team1 和team2

帐号进行管理。先要求仅允许team1 和team2 帐号登录FTP 服务器,但不能登录本地系统,并将

这两个帐号的根目录限制为/var/www/html,不能进入该目录以外的任何目录。

ftp 和www web服务器相结合。

www web服务器根目录:  /var/www/html

只允许:team1和team2两用户 可以上传。 vsftp禁止匿名。

分析:

将FTP 和WEB 服务器做在一起是企业经常采用的方法,这样方便实现对网站的维护,为了增强安

全性,首先需要使用仅允许本地用户访问,并禁止匿名用户登录。其次使用chroot 功能将team1

和team2 锁定在/var/www/html 目录下。如果需要删除文件则还需要注意本地权限

(1)建立维护网站内容的ftp 帐号team1 和team2 并禁止本地登录,然后设置其密码

[root@tiandong63 ~]# useradd -s /sbin/nologin team1
[root@tiandong63 ~]# useradd -s /sbin/nologin team2
[root@tiandong63 ~]# echo 123456 |passwd --stdin team1
Changing password for user team1.
passwd: all authentication tokens updated successfully.
[root@tiandong63 ~]# echo 123456 |passwd --stdin team2
Changing password for user team2.
passwd: all authentication tokens updated successfully.

(2)修改ftp主配置文件

[root@tiandong63 ~]# vim /etc/vsftpd/vsftpd.conf

12 anonymous_enable=NO   #禁止匿名用户登录

15 local_enable=YES        #允许本地用户登录

97 local_root=/var/www/html  #设置本地用户的根目录为/var/www/html

98 chroot_list_enable=YES    #激活chroot功能

100 chroot_list_file=/etc/vsftpd/chroot_list #设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名

 

[root@tiandong63 vsftpd]# /etc/init.d/vsftpd restart

(3)建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帐号

[root@tiandong63 ~]# touch /etc/vsftpd/chroot_list

[root@tiandong63 ~]# vim /etc/vsftpd/chroot_list

1 team1

2 team2

[root@tiandong63 ~]# mkdir -p /var/www/html

[root@tiandong63 ~]# chmod o+w -R /var/www/html

在共享目录下面写入测试数据

[root@tiandong63 ~]# mkdir /var/www/html/webdata

此时在Windows上面查看:

在Linux上查看:

[root@tiandong65 ~]# lftp 192.168.1.63 -u team1,123456
lftp team1@192.168.1.63:~> ls
drwxr-xr-x 2 0 0 4096 Mar 22 11:08 webdata
lftp team1@192.168.1.63:/>

例3: ftp虚拟帐号:

企业环境

公司为了宣传最新的产品信息,计划搭建FTP 服务器,为客户提供相关文档的下载。对所有互

联网开放共享目录,允许下载产品信息,禁止上传。公司的合作单位能够使用FTP 服务器进行上

传和下载,但不可以删除数据。需要保证服务器的稳定性并做优化。

创建ftp虚拟帐号。允许客户使用ftp帐号下载文件。 但是,你们自己的合作伙伴帐号:vip可以上传一内部文件。

需求分析

根据企业的需求,对于不同用户进行不同的权限限制,FTP 服务器需要实现用户的审核。需考虑

到服务器的安全性,所以关闭实体用户登录,使用虚拟帐号验证机制,并对不同虚拟帐号设置不

同的权限。为了保证服务器的性能,还需要根据用户的等级,限制客户端的连接数及下载速度。

1、创建用户数据库

(1)创建用户文本文件

先建立用户文本文件vsftpd_virtualuser.txt,添加两个虚拟帐号,非会员帐号ftp及会员帐号

[root@tiandong63 ~]# vim /etc/vsftpd/vsftpd_virtualuser.txt

nonevip

123456

vip

123456

[root@tiandong63 ~]#  db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser.txt /etc/vsftpd/vsftpd_virtualuser.db

[root@tiandong63 ~]#  rm -rf /etc/vsftpd/vsftpd_virtualuser.txt

[root@tiandong63 ~]#  chmod 600 /etc/vsftpd/vsftpd_virtualuser.db

[root@tiandong63 ~]# vim /etc/pam.d/vsftpd

 

auth       required /lib64/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_virtualuser

account  required /lib64/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_virtualuser

[root@tiandong63 ~]# useradd -d /var/ftp/share ftpuser

[root@tiandong63 ~]#  useradd -d /var/ftp/vip ftpvip

[root@tiandong63 ~]#  chmod -R 500 /var/ftp/share/

[root@tiandong63 ~]#  chmod -R 700 /var/ftp/vip/

[root@tiandong63 ~]# vim /etc/vsftpd/vsftpd.conf

96 chroot_local_user=YES

117 pam_service_name=vsftpd

118 user_config_dir=/etc/vsftpd/vuserconfig

119 max_clients=300

120 max_per_ip=10

121 userlist_enable=YES

122 tcp_wrappers=YES

 

[root@tiandong63 ~]#

[root@tiandong63 ~]# grep vuserconfig /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/vuserconfig

[root@tiandong63 ~]# mkdir /etc/vsftpd/vuserconfig

[root@tiandong63 ~]#  touch /etc/vsftpd/vuserconfig/nonevip

[root@tiandong63 ~]#  touch /etc/vsftpd/vuserconfig/vip

[root@tiandong63 ~]#  vim /etc/vsftpd/vuserconfig/nonevip

1 guest_enable=yes

2 guest_username=ftpuser

3 anon_world_readable_only=no

4 anon_max_rate=50000

 

[root@tiandong63 ~]#  vim /etc/vsftpd/vuserconfig/vip

1 guest_enable=yes

  2 guest_username=ftpvip

  3 anon_world_readable_only=no

  4 write_enable=yes

  5 anon_mkdir_write_enable=yes

  6 anon_upload_enable=yes

  7 anon_max_rate=100000

 

[root@tiandong63 ~]# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [FAILED]

Starting vsftpd for vsftpd:                                [  OK  ]

[root@tiandong63 ~]# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [  OK  ]

Starting vsftpd for vsftpd:                                [  OK  ]

[root@tiandong63 ~]# cd /var/ftp/share/

[root@tiandong63 share]# ll -h
total 60M
-rw-r--r-- 1 root root 60M Jan 11 2014 GNS3-0.8.6-all-in-one.exe

[root@tiandong63 share]# cp -r /boot/grub/ ./

[root@tiandong63 share]# ll -h
total 60M
-rw-r--r-- 1 root root 60M Jan 11 2014 GNS3-0.8.6-all-in-one.exe
drwxr-xr-x 2 root root 4.0K Mar 22 19:38 grub

[root@tiandong63 ftp]# cd vip/

[root@tiandong63 ftp]# cd vip/
[root@tiandong63 vip]# pwd
/var/ftp/vip

[root@tiandong63 vip]# ll
total 0
[root@tiandong63 vip]# cp -r /boot/grub/ ./

[root@tiandong63 vip]# ll -h
total 60M
-rw-r--r-- 1 root root 60M Jan 11 2014 GNS3-0.8.6-all-in-one.exe
drwxr-xr-x 2 root root 4.0K Mar 22 19:40 grub

[root@tiandong63 ~]# cd /etc/vsftpd/

[root@tiandong63 vsftpd]# ll

total 32

-rw------- 1 root root   125 May 11  2016 ftpusers

-rw------- 1 root root   361 May 11  2016 user_list

-rw------- 1 root root  4668 Mar 19 21:28 vsftpd.conf

-rwxr--r-- 1 root root   338 May 11  2016 vsftpd_conf_migrate.sh

-rw------- 1 root root 12288 Mar 19 20:57 vsftpd_virtualuser.db

drwxr-xr-x 2 root root  4096 Mar 19 21:13 vuserconfig

[root@tiandong63 vsftpd]# cd vuserconfig/
[root@tiandong63 vuserconfig]# ll
total 8
-rw-r--r-- 1 root root 88 Mar 22 19:26 nonevip
-rw-r--r-- 1 root root 156 Mar 22 19:29 vip



原文地址:https://www.cnblogs.com/winter1519/p/8595846.html