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服務的配置過程也圓滿結束。如果大家在理解過程中有什麼困難,可以參閱相關資料或給我們留言交流。