当前位置:操作系统 > Unix/Linux >>

FreeBSD平台下FTP服务架设全程指南

在前一篇文章里(请点击此处),我们已经掌握了在FreeBSD平台下配置Internet接入及Web服务的过程,因此如何配置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下载地址:http://www.castaglia.org/proftpd/

  第二步:解压缩源代码包。命令格式为:

  # 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 <mysql/mysql.h>”字段,然后将其改为自己的实际路径,比如:

  #include </usr/local/include/mysql/mysql.h>

  第四步:编译安装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

  #启用磁盘限额

  <Anonymous /ftp>

  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服务的配置过程也圆满结束。如果大家在理解过程中有什么困难,可以参阅相关资料或给我们留言交流。

  

上一个:应用程序从UNIX移植到Linux技巧和要点
下一个:高手晋级之网络过载攻击完全解析

更多Unix/Linux疑问解答:
路由原理介绍
子网掩码快速算法
改变网络接口的速度和协商方式的工具miitool和ethtool
Loopback口的作用汇总
OSPF的童话
增强的ACL修改功能
三层交换机和路由器的比较
用三层交换机组建校园网
4到7层交换识别内容
SPARC中如何安装Linux系统(2)
SPARC中如何安装Linux系统(1)
用Swatch做Linux日志分析
实战多种Linux操作系统共存
浅析Linux系统帐户的管理和审计
Linux2.6对新型CPU的支持(2)
电脑通通透
玩转网络
IE/注册表
DOS/Win9x
Windows Xp
Windows 2000
Windows 2003
Windows Vista
Windows 2008
Windows7
Unix/Linux
苹果机Mac OS
windows8
安卓/Android
Windows10
如果你遇到操作系统难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,