细说ftp服务器的搭建部署及权限管理

来源:互联网 发布:cf for mac版 编辑:程序博客网 时间:2024/05/21 07:09

摘要:

      FTP File TransferProtocol(文件传输协议)的英文简称,中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"Download)和"上传"Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。FTP是文件传输协议的英文缩写,用来上传、下载、覆盖、删除服务器上的文件。FileZilla软件就是采用FTP的原理。

实验目的:

       在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用,禁用匿名。第一个小组使用ftp1账号,工作目录在:/var/ftp/ftp1;第二个小组使用ftp2账号,工作目录在:/var/ftp/ftp2ftp1允许的登录,可以离开自己的工作目录并且可以访问其他用户的文件;ftp2不允许登录。

一、安装vsftpd

[root@rac1 ~]# yum install -y vsftpd
[root@rac1 ~]# rpm -qa | grep vsftpd
vsftpd-2.2.2-11.el6_4.1.x86_64

二、设置启动级别

[root@rac1 ~]#service vsftpd start
[root@rac1 ~]#chkconfig --level 35 vsftpd on
[root@rac1 ~]#chkconfig vsftpd --list

三、创建用户并修改密码

[root@rac1 ~]# mkdir /var/ftp/ftp1
[root@rac1 ~]# mkdir /var/ftp/ftp2
[root@rac1 ~]# chown -R ftp1:ftp1 /var/ftp/ftp1
[root@rac1 ~]# chown -R ftp2:ftp2 /var/ftp/ftp2
[root@rac1 ~]# adduser ftp1 -s /sbin/nologin -d /var/ftp/ftp1
[root@rac1 ~]# adduser ftp2 -s /sbin/nologin -d /var/ftp/ftp2    (/sbin/nologin表示用户不允许登录,通过ftp可以连接)

四、vsftpd配置

[root@rac1 ~]# vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES    #设置只能访问自己的目录
chroot_list_enable=YES   #启用chroot_list
chroot_list_file=/etc/vsftpd/chroot_list  #chroot_list指定哪些用户可以访问工作目录之外文件

anonymous_enable=NO    #禁止匿名用户登录
userlist_enable=YES    #允许本地用户登录
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list    #user_list指定哪些用户可以登陆ftp服务器

五、检查配置情况(粗体为修改部分)

[root@rac1 ~]# cat /etc/vsftpd/vsftpd.conf |grep -v '#'
[root@rac1 ~]# grep -v '#' /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

六、添加不允许登陆的用户,一行一个用户名

[root@rac1 ~]# vi /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

七、添加允许登陆的用户,一行一行用户名;

在这里,添加允许登录的用户,如题所说的,我们允许ftp1用户登录,那么我们就添加ftp1用户就可以了

[root@rac1 ~]# vi /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
ftp1

八、添加可以切换到工作目录之外的用户:默认情况下,如果我们不指定此列表,那么每个用户互相不能访问其他用户的文件夹,只能限制在自己的工作目录。我们希望ftp1用户可以访问到其他用户的工作目录,那么在这里添加ftp1用户

[root@rac1 ~]# vim /etc/vsftpd/chroot_list
ftp1

两种方式的具体表现区别为:

1、如果我们没有添加的话,通过pwd命令,显示为:
ftp> pwd
257 "/"
2、如果添加了的话,显示为以下形式,如果是这个情况,那么就可以cd到上层目录,然后访问其他目录了。
ftp> pwd
257 "/var/ftp/ftp1"

九、关闭防火墙

[root@rac1 ~]# service iptables stop
[root@rac1 ~]# chkconfig iptables off

十、禁用SELinux

[root@rac1 ~]# vi /etc/selinux/config
SELINUX=disabled

[root@rac1 ~]# getenforce
Disabled

十一、以下提供三种Windows访问ftp服务器方式

方式一、Windows客户端通过添加“映射网络驱动器”:步骤如下

计算机->映射网络驱动器->连接到可用于存储文档和图片的网站->下一步->选择自定义网络位置->输入:ftp://192.168.56.101,下一步->输入用户名ftp1->键入网络位置的名称(默认)->完成->输入ftp1的密码即可;

方式二、Windows客户端通过cmd访问;

方式三、添加FTP站点;

十二、对于Linux客户端,需要安装ftp

[root@rac1 ~]# yum install -y ftp

[root@racdg ~]# ftp 192.168.56.101
Connected to 192.168.56.101 (192.168.56.101).
220 (vsFTPd 2.2.2)
Name (192.168.56.101:root): ftp1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,56,101,38,48).
150 Here comes the directory listing.
drwxr-xr-x    2 501      501          4096 Jun 08 01:34 11
drwxr-xr-x    2 501      501          4096 Jun 09 00:00 22
-rw-r--r--    1 501      501            11 Jun 08 00:44 aa.txt
226 Directory send OK.
ftp> pwd
257 "/var/ftp/ftp1"


Windows和Linux客户端的命令一样。


注意事项:

1、通过put和get命令,我们只能上传和下载单个文件,并不能操作整个文件夹,因此,对于文件夹的操作,我们可以先压缩,再上传和下载,下载路径为客户端当前目录,所以在登陆ftp服务器之前,先切换到合适路径。更多命令请使用help查看。
2、无论是在ftp工具还是映射网络驱动器,只能新建文件夹,而不能新建文件,但是可以文件和文件夹进行复制和粘贴操作;
3、上传所有以.txt结尾的文件:ftp> mput *.txt
   下载所有以.txt结尾的文件:ftp> mget *.txt
4、对于映射网络驱动器,不能直接双击打开文本文件,一般需要下载到本地进行相关操作;
5、请确保防火墙关闭;