vsftpd源码包服务器的搭建

 

实现环境:VMworkstation10

实现版本:CentOS 5.3版本  

 

新版源码包的下载
我们使用源码安装的一大原因就是想使用他们的最新功能,而我们关盘内置的安装包往往不尽如人意,如图:

 

184053534.jpg

而我们最新下载的源码包为

 

184259370.jpg

当我们进入源码包所在的路径后就可以进行相关的解压缩工作了

 

184526958.jpg

 

而奇怪的是vsftpd这样一款服务的源代码并没有像apache那样提供./configure那样的工具,所以

在源码包的编译安装中,我们一般在源码包解压之后,一般在源码包内置的各种文件中包含了两种较为全面的介绍和使用说之类的文件,他们分别是README文件和INSTALL文件,进入解压缩指定路径之后就可以看到他们的存在:

185603961.jpg

 


打开之后他的安装文件会发现,我们要先进入解压后路径中,并建立一个builddesf.h的头文件,

 

185706245.jpg

在这里我们需要对里边的一些选项进行修改,以完成下面的安装,如图:

 

191248284.jpg

然后我们要建一个名为nobody的用户,这个主要用于匿名用户的登录,一般这个用户会已经存在,但为了保证我们ftp还是可以手动再执行一下(因为ftp服务器本身会默认一些匿名用会登录,而这个用户有一共同的登录名anonymous ),

190347727.jpg

 

190545868.jpg

接着执行以下命令mkdir /var/ftp  并用 -d参数来之指定家目录
 useradd -d /var/ftp ftp

191607530.jpg

 

191808878.jpg

 

即使ftp用户以前存在,我们也可以执行下面的两步,把owner和组都改为root,既更改他们的所有者和所有组的相关权限,把其他用户组的写入权限去掉
执行chown root.root /var/ftp

192235355.jpg


 chmod og-w /var/ftp

192318764.jpg


然后在相关目录下执行make install
你或许会看到许多明显的信息显示,提示我们要进行如下操作

192439148.jpg

 

cp vsftpd /usr/local/sbin/vsftpd
cp vsftpd.conf.5 /usr/local/man/man5
cp vsftpd.8 /usr/local/man/man8
这些是进行相关文件的复制转移

192534631.jpg

 

192856699.jpg

 

192947875.jpg

 

 

因为make install命令不会去复制用户的sample config file,所以这些样本文件需要去再手动复制一下
执行cp vsftpd.conf /etc

193141396.jpg

然后我们按照相关提示,编辑/etc/vsftpd.conf

193303174.jpg

并在最后一行添加如下内容:

193436212.jpg

 


之后我们就可以进入相关的目录/usr/local/sbin/(刚才复制二进制vsftpd的地方)去执行以下这个服务:如图所示

 

193555788.jpg


然后我们用相关的网络服务查看指令可以看到ftp的21段口应经处于打开和监听状态

 

193719898.jpg


我们输入ftp后回车发现登录指令也是应经有的

匿名登录指令也是有的

193901541.jpg

 

 ftp服务器也是可以连接提供服务的的如图:

195602401.jpg

而我们的本地主机确实默认登录不上去的:

195808792.jpg

 


匿名登录我们会发现我们的ftp是对匿名都开放的,

201820128.jpg

202234942.jpg

这是因为ftp的默认配置文件中是不支持本地主机登录的,

202643804.jpg

而我们可以看到匿名是开启的,而本地是禁止的,我们要做的就是将文件改为如下图所示的内容:

 

202740940.jpg

这种匿名很显然是很不安全的,也不便于我们的管理,那么接下来,我们会看到安装信息中有关PAM的信息,

200143148.jpg

这是一种关于实现身份验证的一种接口文件,将系统提供的服务和该服务的认证方式分开,这种灵活的验证方式我们也可以在安装ftp是采用,该功能的实现在需要在/etc/pam.d有这样的配置文件,所以我们就需要从源码包解压出的路径(RedHat/vsftpd.pam)中找到这样的文并拷贝过去

 

200328256.jpg

 

201306447.jpg

 

 

然后我们新建一个用户,并用他试着实现本地身份验证

203033726.jpg

 

 然后,我们看到可以登录,没有问题:

 

203402852.jpg

为了我们以后的运行查看的方便,和适应我们操作的方便,我们可以到/etc/init.d/去编写相关的控制脚本,以方便完成我们的service (start,stop, restart,status)操作

203901159.jpg 脚本的内容如下:

203953292.jpg

 

 

 

204017793.jpg

 

 

然后为它加入可执行权限:205005615.jpg

 

之后我们执行相关命令,并且可以看到如下结果,表示安装完成。205227652.jpg