从图书馆借的一本中国铁道出版社的《Linux服务器搭建完全技术宝典》,从今天开始终于可以静下心来,慢慢的折腾了。服务器环境呢,是VIRPUS的768M内存的VPS,应该够我折腾了。今天记录的是FTP服务器管理:Vsftpd的安装和简介。

vsftpd简介:

vsFTPd是一款在Linux发行版中最受推崇的FTP服务器程序;特点是小巧轻快,安全易用。是目前在常用的FTP套件。目前在开源操作系统中常用的FTPD套件主要有ProFTPD、PureFTPd和wuftpd等;至于哪个FTP服务器套件更好,哪个是你最熟悉的,哪个就是最好的。最后提一下的是windows下的FTP套件为Serv-U,目前还没有经历去玩windows200类服务器,所以暂时不做讨论。

ftp 用户管理:

这里呢,主要说的在管理FTP服务器是对用户的管理的理解,在默认的情况下是根据/etc/passwd和/etc/group来进行对FTP用户的管理的。所以在使用之前呢,我们一定要对FTP用户管理有一个详细的了解(点此了解linux用户管理)。之前呢,我也花了很大的功夫去实践linux用户管理这些内容。所以呢,在学习这个之前,一定要对linux用户管理掌握。

关于匿名ftp 用户和用户组的理解:

在互联网中,有很大一部分FTP服务器是匿名的,用于提供文件复制服务。用户不需要在该服务器登记注册,甚至不需要得到FTP服务器的授权。这就不同于www,要求先登录服务器,再进行文件传输,这对于很多公开提供软件下载的服务器来说十分不便。匿名用户访问服务器就是在这样的环境下诞生的,通过使用一个公用的用户名Anonymous,密码不限的管理策略(一般使用用户邮箱作为密码即可),让任何用户都可以很方便的从这些服务器下载软件。

匿名文件传输用户以匿名身份于远程主机建立起连接,并被允许从远程主机上复制文件。所以呢,匿名FTP一直是Internet上信息资源获取的最主要方式。只要知道特定信息资源的主机地址,就可以使用匿名用户登录获取所需的信息资料。

这里我举一个例子:当你在浏览器输入如下地址访问时:

  1. ftp://mirrors.kernel.org   
  2. 或   
  3. ftp://ftp:ftp@mirrors.kernel.org  

我们会发现上面的两行最终都能访问,而且显示的结果也完全一样,最终都跳到 ftp://mirrors.kernel.org 地址;那么我们想访问这个FTP时,是不是有用户和密码呢?是的,而且也是必须要存在的,只是在服务器端允许匿名访问,而匿名访问的用户名和密码都是ftp,只是因为我们匿名访问,没有感觉到他有用户名和密码罢了。第二个地址就是以ftp用户,密码也是ftp来访问ftp://mirrors.kernel.org;大家可以使用FTP工具来试一下:其中主机地址填写mirrors.kernel.org,用户名和密码均为ftp,依然可以进行访问。

这就是因为在ftp服务器中,匿名用户的用户名和密码都是ftp,并且这个用户你可以在/etc/passwd文件中找到类似下面的一行:

  1. ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin  

在这里在啰嗦的解释一下这行表示的含义:

在ftp用户这行中,我们看到七个字段,每个字段写字段之间用:号分割;

  • ftp 是用户名
  • x 是密码字段,是隐藏的;
  • 14 是用户的UID字段,可以自己来设定,不要和其它用户的UID相同,否则会造成系统安全问题;
  • 50 用用户组的GID,可以自己设定,不要和其它用户组共用FTP的GID,否则会造成系统全全问题;
  • FTP User 是用户说明字段;
  • /var/ftp 是ftp用户的家目录,可以自己来定义;
  • /sbin/nologin 这是用户登录SHELL ,这个也是可以定义的,/sbin/nologin 表示不能登录系统;系统虚拟帐号(也被称为伪用户)一般都是这么设置。比如我们把ftp用户的/sbin/nologin 改为 /bin/bash ,这样ftp用户通过本地或者远程工具ssh或telnet以真实用户身份登录到系统。这样做对系统来说是不安全的;如果您认为一个用户没有太大的必要登 录到系统,就可以只给他FTP帐号的权限,也就是说只给他FTP的权限,而不要把他的SHELL设置成 /bin/bash 等;

关于对ftp用户组也会在/etc/group文件中有类似一条:

  1. ftp:x:50:  

上面这行表示用户组ftp,x是密码段,50是GID;我们对照在/etc/passwd中的ftp那行得知ftp用户是属于ftp用户组的,因为ftp用户那行中的GID和ftp用户组的GID是相同的;

匿名ftp 用户和ftp用户组是否可以删除

在一般情况下是不能把/etc/passwd和/etc/group 中有把ftp用户和用户组的行删除的,因为FTP服务器是需要他们来对FTP用户实现管理,在默认的情况下。

虽然不能删除,但对/etc/passwd及/etc/group中的ftp用户及ftp用户组的一些相关的东西是能修改的;比如我们可以把ftp 用户的家目录改掉,也可以把ftp用户的UID改掉 … … 前提是你对用户管理有所了解,系统用户管理是一切应用基础之一,可能初学Linux的朋友并不了解用户管理的重要性,但慢慢您就会发现这个道理。

vsFTPd的安装

在最新的各大发行版中的安装盘中都有vsFTPd的软件包,你可以用相应发行版提供的软件包管理工具就能安装上;当然您可以到各大发行版的FTP镜像中找到 vsftpd的软件包;当然也能用软件包的管理工具在线安装;vsftpd的软件包本来不大,花不了多长时间,两分钟差不多就够了。这里,我采用发行版提供的软件来安装,centos采用yum来安全,debian类的可以采用apt-get,还可以使用rpm包来进行安装。

如果你用的是Fedora 或Redhat 系统,可以用下面的命令在线安装;

  1. [root@localhost ~]# yum install vsftpd

如果是debian 类系统,比如ubuntu可以用apt 来在线安装;

  1. [root@localhost ~]# apt-get install vsftpd  

如果是RPM的系统,也可以找到vsftpd-xxxx.rpm 的包来通过rpm命令来安装

  1. [root@localhost ~]# rpm -ivh vsftpd*.rpm   

如果你想用源码来编辑安装。我们可以到网上去下载一下vsftpd的源码包,比如是 vsftpd-2.0.3.tar.gz ;

  1. [root@localhost ~]# tar zxvf vsftpd-2.0.3.tar.gz   
  2. [root@localhost ~]# cd vsftpd-2.0.3  
  3. [root@localhost ~]# make ;make install   
  4. [root@localhost ~]# cp vsftpd.conf /etc  

然后修改/etc/vsftpd.conf ,在配置文件的最后一行加入下面一行;

  1. listen=yes  

源码包安装的方法,如果您的系统是RPM包管理的系统,可以删除/etc/xinetd.d/vsftpd 这个文件;然后启动xinetd 服务器;

  1. [root@localhost ~]# /etc/init.d/xinetd restart   
  2. 停止 xinetd:                                              [  确定  ]   
  3. 启动 xinetd:                                              [  确定  ]

vsFTPd运行有两种模式,在RPM包管理的系统,大多是由Fedora/Redhat 开发而来,对于这样的系统有xinted服务器一说;对于非RPM包管理的系统,一般没有xinted这一说。为了保证本文档的统一,我们都不要用 xinetd模式,而用initd运行模式来启动和管理服务器,也就是独立运行模式

Linux服务器搭建系列之-FTP服务器管理(1)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.