vsftpd源码包服务器的搭建
实现环境:VMworkstation10
实现版本:CentOS 5.3版本
新版源码包的下载
我们使用源码安装的一大原因就是想使用他们的最新功能,而我们关盘内置的安装包往往不尽如人意,如图:
而我们最新下载的源码包为
当我们进入源码包所在的路径后就可以进行相关的解压缩工作了
而奇怪的是vsftpd这样一款服务的源代码并没有像apache那样提供./configure那样的工具,所以
在源码包的编译安装中,我们一般在源码包解压之后,一般在源码包内置的各种文件中包含了两种较为全面的介绍和使用说之类的文件,他们分别是README文件和INSTALL文件,进入解压缩指定路径之后就可以看到他们的存在:
打开之后他的安装文件会发现,我们要先进入解压后路径中,并建立一个builddesf.h的头文件,
在这里我们需要对里边的一些选项进行修改,以完成下面的安装,如图:
然后我们要建一个名为nobody的用户,这个主要用于匿名用户的登录,一般这个用户会已经存在,但为了保证我们ftp还是可以手动再执行一下(因为ftp服务器本身会默认一些匿名用会登录,而这个用户有一共同的登录名anonymous ),
接着执行以下命令mkdir /var/ftp 并用 -d参数来之指定家目录
useradd -d /var/ftp ftp
即使ftp用户以前存在,我们也可以执行下面的两步,把owner和组都改为root,既更改他们的所有者和所有组的相关权限,把其他用户组的写入权限去掉
执行chown root.root /var/ftp
chmod og-w /var/ftp
然后在相关目录下执行make install
你或许会看到许多明显的信息显示,提示我们要进行如下操作
cp vsftpd /usr/local/sbin/vsftpd
cp vsftpd.conf.5 /usr/local/man/man5
cp vsftpd.8 /usr/local/man/man8
这些是进行相关文件的复制转移
因为make install命令不会去复制用户的sample config file,所以这些样本文件需要去再手动复制一下
执行cp vsftpd.conf /etc
然后我们按照相关提示,编辑/etc/vsftpd.conf
并在最后一行添加如下内容:
之后我们就可以进入相关的目录/usr/local/sbin/(刚才复制二进制vsftpd的地方)去执行以下这个服务:如图所示
然后我们用相关的网络服务查看指令可以看到ftp的21段口应经处于打开和监听状态
我们输入ftp后回车发现登录指令也是应经有的
匿名登录指令也是有的
ftp服务器也是可以连接提供服务的的如图:
而我们的本地主机确实默认登录不上去的:
匿名登录我们会发现我们的ftp是对匿名都开放的,
这是因为ftp的默认配置文件中是不支持本地主机登录的,
而我们可以看到匿名是开启的,而本地是禁止的,我们要做的就是将文件改为如下图所示的内容:
这种匿名很显然是很不安全的,也不便于我们的管理,那么接下来,我们会看到安装信息中有关PAM的信息,
这是一种关于实现身份验证的一种接口文件,将系统提供的服务和该服务的认证方式分开,这种灵活的验证方式我们也可以在安装ftp是采用,该功能的实现在需要在/etc/pam.d有这样的配置文件,所以我们就需要从源码包解压出的路径(RedHat/vsftpd.pam)中找到这样的文并拷贝过去
然后我们新建一个用户,并用他试着实现本地身份验证
然后,我们看到可以登录,没有问题:
为了我们以后的运行查看的方便,和适应我们操作的方便,我们可以到/etc/init.d/去编写相关的控制脚本,以方便完成我们的service (start,stop, restart,status)操作
脚本的内容如下:
然后为它加入可执行权限:
之后我们执行相关命令,并且可以看到如下结果,表示安装完成。