歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix教程 >> FreeBSD平台下FTP服務架設全程指南

FreeBSD平台下FTP服務架設全程指南

日期:2017/2/27 17:42:39   编辑:Unix教程
FreeBSD
  在前一篇文章裡(請點擊此處),我們已經掌握了在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服務的配置過程也圓滿結束。如果大家在理解過程中有什麼困難,可以參閱相關資料或給我們留言交流。
Copyright © Linux教程網 All Rights Reserved