这篇文章的主要目的是在Linux上搭建ftp服务器以及介绍ftp服务器的一些常见配置。
在介绍如何搭建以前先来说一下什么是ftp服务器,ftp是相当古老的传输协议之一,它主要的功能就是在服务器和客户端之间进行档案的传输;这个古老的协议使用的明码传输,且有过很多的不安全历史。
ftp可以利用系统syslogd来进行数据的记录,而记录的数据包括用户曾经下达过的命令与用户传输的数据,所以我们可以很轻松的在/var/log里面找到各项登陆信息。为了避免用户在你的linux系统中随意浏览,我们要限制工作范围,将用户的活动目录设置在自己的家目录中。这种环境称为chroot,改变根目录的意识。
ftp协议是通过TCP协议封装的,在建立连接的过程中会经过三次握手,但是ftp建立的是两个通道,分别是命令信道(默认使用的端口是21,主要的作用是命令的下达)和数据流通道(默认使用的端口是20,只有有数据要传输时才会建立连接);
接下来就来说一下如何设定vsftpd服务器:
vsftpd所需要的软件也只有一个那就是vsftpd,如果没有安装的话,也可以先进行安装,
vsftpd的主要档案也是非常少的,下面就是vsftpd的一些主要档案:
1)/etc/vsftpd/vsftpd.conf
这个是vsftpd的配置文件,设置的方式主要是采用“参数=设定值”,具体的可以通过man 5 vsftpd.conf来查询;
2)/etc/pam.d/vsftpd
这个是vsftpd使用PAM模块时的相关配置文件,主要用来作为身份认证之用,还有一些用户身份的低抵挡功能;如下图,file后面接的档案是限制使用者无法使用vsftpd之意;
3)/etc/vsftpd/ftpusers
与上一个档案有关系,也就是PAM所指定的那个无法登入的用户配置文件。
4)/etc/vsftpd/user_list
这个档案是否能够生效与 vsftpd.conf 内的两个参数有关,分别是『 userlist_enable, userlist_deny 』。 如果说 /etc/vsftpd/ftpusers 是 PAM 模块的抵挡设定项目,那么这个 /etc/vsftpd/user_list 则是 vsftpd 自定义的抵挡项目。事实上这个档案与 /etc/vsftpd/ftpusers 几乎一模一样, 在预设的情况下,你可以将不希望可登入 vsftpd 的账号写入这里。不过这个档案的功能会依据 vsftpd.conf 配置文件内的 userlist_deny={YES/NO} 而不同,这得要特别留意喔!
5)/etc/vsftpd/chroot_list
这个档案预设是不存在的,必须手动建立,这个档案的主要功能时可以将某些账号的使用者chroot在他们的家目录下,但是这个档案要生效与vsftpd.conf内的chroot_list_enable,chroot_list_file两个参数有关,如果你想要讲某些实体用户限制在他们的家目录下而不许到其他的目录去,可以设置这个目录。
6)/etc/sbin/vsftpd vsftpd的主要执行档
7)/var/ftp 预设的匿名者登陆的根目录。
启动vsftpd服务器: