教您在FreeBSD操作系统上架设FTP服务器(方法二)

网络整理 - 08-08

  FreeBSD是一款高性能、高可靠性的UNIX操作系统,它继承了BSD系统的纯净性和高性能,其软件包装和发布也比Linux系统更加严谨,同时也具有更佳的安全性,正是因为这些特性使得FreeBSD操作系统在服务器环境中有比较广泛的应用。今天我就给大家介绍一下如何在FreeBSD平台下架设常用的FTP服务器,希望能够对大家有所帮助。

  第一步:下载FTP服务源代码包  

  proftpd-1.2.7.tar.gz下载地址:

  ftp://ftp.servus.at/ProFTPD/distrib/source/proftpd-1.2.7.tar.gz

  proftpd-mod-quotatab-1.2.4.tar.gz下载地址:

  

  第二步:解压缩源代码包

  命令格式为:

  # cd /home/ylf/app              # “/home/ylf/app”为FTP上传目录

  # tar zxvf proftpd-1.2.7.tar.gz

  # tar zxvf proftpd-mod-quotatab-1.2.4.tar.gz

  然后进入“mod-quotatab”目录,把“mod_quotatab”中的文件拷贝到“proftpd”的“modules” 目录下,命令格式为:

  # cd mod_quotatab

  # cp * ../proftpd-1.2.7/modules

  第三步:修改位于proftpd-1.2.7/contrib 目录下的“mod_sql_mysql.c”文件

  命令格式为:

  # cd /home/ylf/app/proftpd-1.2.7/contrib.

  # vi mod_sql_mysql.c

  在此文件中找到“#include ”字段,然后将其改为自己的实际路径,比如:

  #include   

  第四步:编译安装proftpd

  命令格式为:

  # cd /home/ylf/app/proftpd-1.2.7

  #./configure--prefix=/usr/local/proftpd

  --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql

  --with-includes=/usr/local/include/mysql

  --with-libraries=/usr/local/lib/mysql

  # make

  # make install

  第五步:进入配置文件所在目录,备份原有配置文件

  命令格式为:

  # cd /usr/local/proftpd/etc        #进入配置文件所在目录

  # mv proftpd.conf proftpd.conf.bak     #备份原有配置文件

  第六步:编辑新的配置文件“proftpd.conf”

  以下列举一些主要应配置的地方:

  # Port 21 is the standard FTP port.    #配置FTP服务端口号

  MaxClientsPerHost 3            #设置每台主机最多并发连接数

  DefaultRoot ~ ftpusers

  DefaultRoot ~ FTPGRP            #将用户限制在自己的主目录下

  QuotaDirectoryTally on           #启用磁盘限额

  

  User ftp

  Group ftpusers               #设置匿名用户目录为“/ftp”

  SQLConnectInfo FTP@localhost root 123456  #设置数据库联接信息。FTP为数据库名,localhost为主机名,root为连接数据库的用户名,123456为密码。


  第七步:为ftp用户建立相应的数据库和表

  1. 进入mysql数据库命令状态并建立数据库FTP:

  # mysql –p

  CREATE DATABASE FTP;

  2.接着在这个数据库中建立一个用户表FTPUSERS,命令格式为:

  use FTP;

  create table FTPUSERS (

  userid TEXT NOT NULL,

  passwd TEXT NOT NULL,

  uid INT NOT NULL,

  gid INT NOT NULL,

  homedir TEXT,

  shell TEXT);

  关于此用户表的说明:此表格是为用户认证准备的,因此必不可少。其中“userid”是用做FTP服务的用户名;“passwd”是指此用户的密码;这两个字段是必不可少的。另外“uid”是系统用户的ID,也就是所映射的系统用户;“gid”是所属系统组的ID;“homedir”是该用户所在的HOME目录;“shell”是为该用户指定相应的shell。当然也可以建立更多的字段,例如:用来记录用户登录次数的count,或者是日期的date等等,这里就不一一详述了,我们只了解主要部分。

  第八步:为FTP用户建立相应的系统用户

  本例是将整个FTP服务只提供一个有效的系统用户FTPUSR和组FTPGRP。

  # pw groupadd FTPGRP -g 2001    # 建立FTPGRP组

  # pw adduser FTPUSR -u 2001 -g 2001 -d /home/FTP -s /sbin/nologin # 建立FTPUSR用户

  # mkdir /home/FTP

  # chown FTPUSR /home/FTP

  # chgrp FTPGRP /home/FTP      # 为FTPUSR用户建立HOME目录,并把所有的FTP user活动空间全放在此目录下。

  第九步:添加测试用户(本例为“tryuser”)

  use FTP

  INSERT INTO FTPUSERS (userid, passwd, uid, gid, homedir, shell)

  valueS (‘tryuser'', ‘999999'', ‘2001'', ‘2001'', ‘/home/FTP/user1'', ‘'' );

  第十步:对此测试用户设置磁盘限额

  INSERT INTO ‘quotalimits’( ‘name'', ‘quota_type'', ‘per_session'', ‘limit_type'', ‘bytes_in_avail'', ‘bytes_out_avail'', ‘bytes_xfer_avail'', ‘files_in_avail'', ‘files_out_avail'',‘files_xfer_avail'')

  VALUES (‘tryuser '', ‘user'', ‘false'', ‘soft'', ‘20240000'', ‘0'', ‘4048000'', ‘1000'', ‘0'', ‘20'');

  解释:对此测试用户给予20M空间,最多能上传1000个文件到服务器上,文件传输流量为40M,只能传输20个文件。

  第十一步:设置匿名登录,最终完成配置

  对于匿名登录用户,建议单独为其划分硬盘分区,所有的匿名用户文件都放在这个单独的分区里。

  1. 添加匿名系统用户组users1和匿名用户ftp1。

  # pw groupadd users1

  # pw useradd ftp1 -g users1 -d /ftp -s /sbin/nologin   # “/ftp”为匿名用户所在分区

  2. 在“/ftp”分区下建立匿名用户目录并设置相应权限。

  # mkdir /ftp/incoming

  # mkdir /ftp/pub

  # mkdir /ftp/bin

  # mkdir /ftp/etc

  # chown ftp1 /ftp/incoming

  # chgrp users1 /ftp/incoming

  3.测试此匿名用户。

  在浏览器地址栏输入配置好的ftp服务器地址,如果能够正常显示刚才建立的几个目录,而且进入incoming目录可以在里面新建文件夹或文件,即表示匿名用户“ftp1”建立成功。OK,至此,FTP服务的配置过程也圆满结束。