ProFTPD 1.2.9 + MySQL + Quota

2006
11.10

原文地址:http://www.5ilinux.com/blog/archives/000082.html
轉載請注明出處和署名,並請保持一致
proftp學習筆記(一)
這幾天,公司終於放假了,終於可以安下心來好好學些proftp+mysql+quota。

安裝proftp之前,必須先做一個工作,假如你的mysql是自己編譯的,那就必須先修改/etc/ld.so.conf,否則後面運行

proftp會報錯。
vi /etc/ld.so.conf
添加下麵一行:
代碼:
/usr/local/mysql/lib/mysql

 

注意大家如果mysql的安裝路徑於我不一樣,則填寫相應的路徑,有關mysql的編譯安裝請參考《Linux+Apache+Mysql+PHP典型配置》。

1。下載相關軟體

代碼:
wget ftp://ftp.proftpd.org/distrib/sourc…pd-1.2.9.tar.gz
下載proftp的最新版本1.2.9
代碼:
wget http://www.castaglia.org/proftpd/mo…b-1.2.11.tar.gz


這是配合proftp的磁片限額的模組
2。解壓編譯
代碼:
tar zvxf proftpd-1.2.9.tar.gz

tar zvxf proftpd-mod-quotatab-1.2.11.tar.gz

cp mod_quotatab/*.c proftpd-1.2.9/contrib/

cp mod_quotatab/*.h proftpd-1.2.9/contrib/

 

vi proftpd-1.2.9/contrib/mod_sql_mysql.c
找到#include 這一行,將mysql.h改成你的系統中此檔所在的路徑,如/usr/local/mysql/include/mysql/mysql.h
編譯:

代碼:
./configure
–prefix=/usr/local/proftpd
–with-modules=mod_sql:mod_sql_mysql:mod_quotatab
:mod_quotatab_sql
–with-includes=/usr/local/mysql/include/mysql
–with-libraries=/usr/local/mysql/lib/mysql
make
make install

 

ok, 現在我們可以來啟動proftp了,只要

代碼:
/usr/local/proftpd/sbin/proftpd
用你的ftp用戶端試驗以下,應該可以正常登陸,包括匿名和linux用戶名可以。

其實默認的proftp滿足日常的伺服器管理用還是綽綽有餘的,有個地方還是要修改一下,就是默認proftp的配置檔不支援ftp續傳,所以我們只要

代碼:
vi /usr/local/proftpd/etc/proftpd.conf
添加以下兩行

代碼:
AllowRetrieveRestart on
AllowStoreRestart on

 

重新啟動以下proftp,就可以正常續傳檔了。

創建proftpd腳本

只要在proftp的源代碼目錄

代碼:
cp proftpd-1.2.9/contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd

 

記得修改proftpd檔,一般要修改proftpd的實際路徑

代碼:
chmod 755 /etc/rc.d/init.d/proftpd
ok

以後就可以用這個教本來啟動,停止,重啟proftp

呵呵,今天就講這些,明天講些proftp的一些基礎配置:)

=======================================================

原文地址:http://www.5ilinux.com/blog/archives/000085.html
轉載請注明出處和署名,並請保持一致

proftp學習筆記(二)
上次我們講了proftp的基本安裝,由於我們後面有關於mysql和quota的設置,所以編譯的時候把相應的模組都編譯進去了,如果你不需要mysql和磁片限額的弁遄A完全可以不需要這麼編譯。

這裏要講一個非常實用的命令,

代碼:
/usr/local/proftpd/sbin/ftpshut
這個命令還是比較實用的,因為你可能需要不斷的調整你的伺服器,而這個命令就非常靈活,可以在不停止proftpd進程的前提下,定時停止ftp連接,這裏將會詳細說它是怎麼使用的。
代碼:
ftpshut [ -l min ] [ -d min ] time [ warning-message ... ]

 
-l min: 在ftp關閉服務之前的幾分鐘內,嘗試建立新的ftp連接均不被接受
-d min: 在ftp關閉服務之前的幾分鐘內,已經建立的ftp連接將被中止
time: 在多少時間後,伺服器將關閉ftp服務,格式有兩種
+number 經過number分鐘後關閉
MMHH 在今天MM:HH伺服器將關閉

注意,這裏我們用這個命令是把ftp服務給停了,但實際的proftpd進程還沒停止,所以一般調試ftp會使用到這個命令。

舉例:
再經過30分鐘後,FTP服務將關閉,在這之前的20分鐘不可接受任何新的ftp連接,已經建立的在服務關閉前10分鐘強制斷線,並在用戶端顯示“FTP Server Will shutdown at time”
代碼:
ftpshut -l 20 -d 10 +30 "FTP Server Will shutdown at time"

 

其實ftpshut就是產生/etc/shutmsg ,你只要刪除這個檔ftp又可以重新服務,或者
直接
代碼:
ftpshut -R

 

好了,開始講一些proftpd的基本配置吧,其實大家如果熟悉apache的配置的話,你會發現proftpd的設置基本都是類似的,它的配置基本格式是

代碼:
#全局設置
設置專案1 參數1
設置專案2 參數2

#某個目錄的設置



#關於匿名用戶的設置



限制動作>

 

 
我們用到的比較多的可能是Limit的使用,Limit大致有以下動作,基本能覆誑〞熙可權了,大家靈活使用就是了。

代碼:
CMD:Change Working Directory 改變目錄
MKD:MaKe Directory 建立目錄的野i權
RNFR: ReName FRom 更改目錄名的野i權
DELE:DELEte 刪除檔的野i權
RMD:ReMove Directory 刪除目錄的野i權
RETR:RETRieve 從服務端下載到用戶端的野i權
STOR:STORe 從用戶端上傳到服務端的野i權
READ:可讀的野i權,不包括列目錄的野i權,相當於RETR,STAT等
WRITE:寫檔或者目錄的野i權,包括MKD和RMD
DIRS:是否允釵C目錄,相當於LIST,NLST等野i權,還是比較實用的
ALL:所有權限
LOGIN:是否允陬n陸的野i權

 
針對上面這個Limit所應用的物件,又包括以下範圍
代碼:
AllowUser 針對某個用戶允釭?/span>Limit
DenyUser 針對某個用戶禁止的Limit
AllowGroup 針對某個用戶組允釭?/span>Limit
DenyGroup 針對某個用戶組禁止的Limit
AllowAll 針對所有用戶組允釭?/span>Limit
DenyAll 針對所有用戶禁止的Limit

 
關於限制速率的參數為:
代碼:
TransferRate STOR|RETR 速度(Kbytes/s) user 使用者

 

下面我們以例子來解說proftp的配置,這樣大家可能更加容易理解。

1。ftp伺服器支援中斷點續傳,且最大支持同時10人線上,每個ip只允酗@個連接;
2。允?/span>ftpusers用戶組只能訪問自己的目錄,而不能訪問上級或者其他目錄;
3。用戶登陸伺服器時不顯示ftp伺服器版本資訊,以增加安全性;
4。建立一個kaoyan的ftp帳戶,屬於ftpusers組,kaoyan用戶只允酗U載,沒有可寫的野i權。下載速率限制在50Kbytes/s。
5。建立一個upload用戶,也屬於ftpusers組,同kaoyan用戶的宿主目錄一樣,允?/span>upload用戶上傳檔和創建目錄的野i權,但不允酗U載,並且不允釦R除目錄和檔的野i權,上傳的速率控制在100Kbytes/s

先是前期的用戶和組添加以及目錄的野i權設置

代碼:
group add ftpusers
useradd -d /home/kaoyan -g ftpusers -s /bin/fales kaoyan
useradd -d /home/kaoyan -g ftpusers -s /bin/fales upload
chown -R kaoyan:upload /home/kaoyan
chmod -R 775 /home/kaoyan

 

如果你只想ftpusers組的用戶訪問,可以設置成770都行。
設置/usr/local/proftpd/etc/proftpd.conf

注意#表示注釋,對設置沒影響,可以不寫

代碼:
ServerName "Frank’s FTP Server"
ServerType standalone
DefaultServer on
Port 21
Umask 022
MaxInstances 30 #最多有30個proftpd的PID
User nobody
Group nobody
TimeoutStalle

Your Reply