FTP服务器之vsFTPd搭建

在使用XEN创建虚拟机的时候,需要通过网络安装centos,那时候就简单的几个命令开启了vsftpd服务,把安装文件拷贝到/var/ftp/下面就可以通过 ftp://ip地址/ 进行访问了,可是对具体的原理和配置修改并不是十分清楚,幸好有鸟哥提供的私房菜,让我美味地重新品尝了一番。

1.chroot:
为了避免使用者离开自己的家目录而进入到 Linux 系统的其他目录去,FTP 可以限制使用者仅能在自己的家目录当中活动喔!如此一来,由于使用者无法离开自己的家目录,而且登入 FTP 后,显示的『根目录』就是自己家目录的内容,这种环境称之为 change root ,简称 chroot ,改变根目录的意思啦!当一个恶意的使用者以 FTP 登入您的系统当中,如果没有 chroot 的环境下,他可以到 /etc, /usr/local, /home 等其他重要目录底下去察看档案资料,尤其是很重要的 /etc/ 底下的设定档,如 /etc/passwd 等等。如果您没有做好一些档案权限的管理与保护,那他就有办法取得系统的某些重要资讯,用来『入侵』您的系统呢!所以在 chroot 的环境下,当然就比较安全一些咯!


2.FTP 的运作流程与使用到的埠口:
  1. 用户端会随机取一个大于 1024 以上的埠口 (port AA) 来与 FTP 伺服器端的 port 21 达成连线,这个过程当然需要三向交握了!达成连线后用户端便可以透过这个连线来对 FTP 伺服器下达指令,包括查询档名、下载、上传等等指令都是利用这个通道来下达的;

  2. FTP 伺服器的 21 埠号主要用在命令的下达,但是当牵涉到资料流时,就不是使用这个连线了。用户端在需要资料的情况下,会告知伺服器端要用什么方式来连线,如果是主动式 (active) 连线时, 用户端会先随机启用一个埠口 (图一当中的 port BB) ,且透过命令通道告知 FTP 伺服器这两个资讯,并等待 FTP 伺服器的连线;

  3. FTP 伺服器由命令通道了解用户端的需求后,会主动的由 20 这个埠号向用户端的 port BB 连线,这个连线当然也会经过三向交握啦!此时 FTP 的用户端与伺服器端共会建立两条连线,分别用在命令的下达与资料的传递。 而预设 FTP 伺服器端使用的主动连线埠号就是 port 20 啰!
如此一来则成功的建立起『命令』与『资料传输』两个通道!FTP 会使用到的埠号主要有:
  • 命令通道的 ftp (预设为 port 21) 与
  • 资料传输的 ftp-data (预设为port 20)。
再强调一次,这两个埠口的工作是不一样的,而且,重要的是两者的连线方向是不一样的! 首先, port 21 主要接受来自用户端的主动连线,至于 port 20 则为 FTP 伺服器主动连线至用户端呢!


3.设定配置/etc/vsftpd/vsftpd.conf,严格来说,整个 vsftpd 的设定档就只有这个档案!这个档案的设定是以『参数=设定值』来设定的,注意, 等号两边不能有空白喔!至于详细的 vsftpd.conf 可以使用 『 man 5 vsftpd.conf 』来详查。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章