自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

配置FTP服務(wù)器(MySQL+Proftpd)

運(yùn)維 系統(tǒng)運(yùn)維
用MySQL和Proftpd配置FTP服務(wù)器:FTP是Internet的一項(xiàng)互聯(lián)網(wǎng)協(xié)議。傳統(tǒng)的FTP服務(wù)中的帳號用的是服務(wù)器中的系統(tǒng)用戶,然而這樣就為安全留下了隱患。我們可以用MySQL進(jìn)行用戶認(rèn)證,來避免這種隱患。本文講述的就是如何利用MySQL和Proftpd配置FTP服務(wù)器。

  用MySQL+Proftpd配置FTP服務(wù)器。FTP(File Transfer Protocol)是internet中的一項(xiàng)常用而且重要的互聯(lián)網(wǎng)協(xié)議,廣泛應(yīng)用于internet中,然而傳統(tǒng)的FTP服務(wù)中的帳號都是用服務(wù)器中的系統(tǒng)用戶,這樣也為也會(huì)系統(tǒng)安全留下了隱患,用MySQL進(jìn)行用戶認(rèn)證,很好地避免這種隱患。它利用數(shù)據(jù)庫來提供用戶及其認(rèn)證,把FTP的帳號映射于系統(tǒng)用戶,從而避免了使用系統(tǒng)用戶。這樣可以達(dá)到比較安全的目的。

  用MySQL+Proftpd配置FTP服務(wù)器,需要有中間包mod_sql,本文所講的,假設(shè)你的服務(wù)器中已經(jīng)安裝好了MySQL,具體過程:

  一、獲起必須的安裝包(mod_sql,proftpd)。

  Proftpd的安裝包可以通過http://www.proftpd.net 獲得,注意要支持MySQL認(rèn)證最低的版本為1.2.5。

  Mod_sql安裝包可以通過http://www.lastditcheffort.org/~aah/proftpd/mod_sql/ 獲得。

  二、包的安裝

  解開安裝包:把proftpd-1.2.8.tar.gz 拷貝到/usr/local/src的目錄下,用命令:

  tar -gzvf proftpd-1.2.8.tar.gz

  解開,這時(shí)產(chǎn)生了一個(gè)proftpd-1.2.8 的目錄。然后進(jìn)入該目錄中的contrib目錄:

  cd proftpd-1.2.8/contrib/

  把中間包mod_sql拷貝到該目錄中,再解開:

  tar -gzvf mod_sql-4.0.8.tar.gz

  配置使Proftpd支持MySQL認(rèn)證:

  ./configure -with-modules=mod_sql:mod_sql_mysql -with-includes=/usr/includes/mysql with-libraries=/usr/lib/mysql

  注意:-with-includes選項(xiàng)是指MySQL的頭文件所在的目錄;-with-libraries選項(xiàng)是指MySQL的庫文件所在的目錄。對于不同的環(huán)境可能會(huì)是不同的目錄。

  進(jìn)行編譯:

  1.   make  
  2.  

  安裝:

  1.   make install  
  2.  

  安裝完之后,可以按下列步驟進(jìn)行測試,Proftpd是否能正常工作:

  1.   sh sample-configurations/PFTEST.install  
  2.  

  測試的所需要的臨時(shí)文件被放置在/tmp/PFTEST目錄中,運(yùn)行命令:

  1.   ./proftpd -n -d 5 -c /tmp/PFTEST/PFTEST.conf  
  2.  

  如果能正常運(yùn)行,你可以發(fā)現(xiàn)有很多的信息而且最后一行會(huì)出現(xiàn):

  1.   ProFTPD 1.2.8 (built ***) standalone mode STARTUP  
  2.  

  說明服務(wù)啟動(dòng)了,它用的端口是2021,你可以用用戶proftpd與密碼 proftpd進(jìn)行登錄測試。如果正常,你可以做下列準(zhǔn)備;否則要檢查安裝是否正確。

#p#

  三、為FTP服務(wù)建立相應(yīng)的數(shù)據(jù)庫及其表

  1、你可以為此服務(wù)建立專門的數(shù)據(jù)庫,也可以放在其它的數(shù)據(jù)庫中。在此我專門建立一個(gè)專門的數(shù)據(jù)庫FTP:

  create database FTP;

  2、然后在這個(gè)數(shù)據(jù)庫中建立一個(gè)用戶表FTPUSERS,這個(gè)表是必須的:

  use FTP;

  1.   create table FTPUSERS (  
  2.  
  3.   userid TEXT NOT NULL,  
  4.  
  5.   passwd TEXT NOT NULL,  
  6.  
  7.   uid INT NOT NULL,  
  8.  
  9.   gid INT NOT NULL,  
  10.  
  11.   home TEXT,  
  12.  
  13.   shell TEXT  
  14.  
  15.   );  
  16.  

  此表格是為了用戶認(rèn)證所需要的,其中userid、passwd是必不可少的,userid是用做FTP服務(wù)的用戶名;passwd是指此用戶的密碼;uid是系統(tǒng)用戶的ID,也就是所映射的系統(tǒng)用戶;gid是所屬系統(tǒng)組的ID;home是該用戶所在的HOME目錄;shell可以為該用戶指定相應(yīng)的shell。當(dāng)然你可以建立更多的字段,例如:用來記錄用戶登錄次數(shù)的count,或者是日期的date,如果你對配置熟悉了之后,你可以根據(jù)自己的喜歡添加更多的功能。在此就不多講。

  3、如果你想需要所有的功能,你還可以添加另外一個(gè)需要的表:FTPGRPS,也就是確定組的表格,當(dāng)然也可以不用,這里講一個(gè)它的格式:

  1.   create table FTPGRPS (  
  2.  
  3.   grpname TEXT NOT NULL,  
  4.  
  5.   gid SMALLINT NOT NULL,  
  6.  
  7.   members TEXT NOT NULL,  
  8.  
  9.   );  
  10.  

  其中g(shù)rpname是組的名稱,gid是系統(tǒng)組的ID,members是組的成員。注意:多成員,他們之間要用逗號隔開,不能使用空格。

  4、為空表格插入記錄:

 

  1.   INSERT INTO FTPUSERS (userid, passwd, uid, gid, home, shell)  
  2.  
  3.   VALUES ('user1''999999''1000''1000''/home/ftp/user1'"");  
  4.  

  按此格式你可以插入這每一個(gè)用戶添加一個(gè)記錄。

  如果你要想應(yīng)用到更多的功能,且建立了組的表格,你也要為此添加記錄,不過一定要注意在members的字段多個(gè)成員一定要用逗號隔開。

#p#

  四、為FTP用戶建立相應(yīng)的系統(tǒng)用戶

  在本例中,只整個(gè)FTP服務(wù)只提供一個(gè)有效的系統(tǒng)用戶FTPUSR和組FTPGRP,當(dāng)然你也可以設(shè)置多個(gè)系統(tǒng)用戶。但出于安全的考慮,我只設(shè)一個(gè),用他來啟動(dòng)FTP daemon,并把所有的FTP用戶映射過這個(gè)用戶。

  先建立FTPGRP組:

  groupadd -g 1000 -r FTPGRP

  建立FTPUSR用戶:

  adduser -u 1000 -g 1000 -d /home/FTP -s /bin/bash -r FTPUSR

  為FTPUSR建立HOME,把所有的FTP user 活動(dòng)空間全放在此目錄下:

  mkdir /home/FTP

  chown FTPUSR /home/FTP

  chgrp FTPGRP /home/FTP

#p#

  五、設(shè)置配置文件

  Proftpd的配置文件proftpd.conf在/usr/local/etc/目錄下,針對不用的認(rèn)證可以使用不同的配置文件。使用MySQL認(rèn)證,可以把sample-configurations/mod_sql.conf拷貝到/usr/local/etc下面并將其改名為proftpd.conf

  修改proftpd.conf文件,具體內(nèi)容如下:

  #設(shè)置FTP服務(wù)器的名稱:

  ServerName"My FTP Server"

  #設(shè)置FTP服務(wù)器的類型:

  ServerType standalone

  DefaultServer on

  #設(shè)置根,可以限制用戶在某個(gè)地方活動(dòng),增強(qiáng)服務(wù)器的安全性。

  DefaultRoot ~

  #設(shè)置FTP服務(wù)端口號,標(biāo)準(zhǔn)的FTP服務(wù)端口是21。

  Port 21

  #設(shè)置新建文件或目錄時(shí),設(shè)置權(quán)限的掩碼:

  Umask 022

  #設(shè)置系統(tǒng)日志文件:

  SystemLog /var/log/ftp.syslog

  #設(shè)置記錄文件傳輸?shù)娜罩疚募?/p>

  TransferLog /var/log/ftp.transferlog

  #設(shè)置最大的嘗試登錄的次數(shù),如果超過自動(dòng)斷開連接:

  MaxLoginAttempts 3

  #設(shè)置MySQL認(rèn)證:

  #數(shù)據(jù)庫聯(lián)接的信息,DatabaseName是數(shù)據(jù)庫名, HostName是主機(jī)名,

  #Port是端口號,UserName是連接數(shù)據(jù)庫的用戶名,Password是密碼。

  SQLConnectInfo DatabaseName@HostName:Port UserName Password

  #例如SQLConnectInfo proftpd@localhost root 123456

  #數(shù)據(jù)庫認(rèn)證的類型:

  SQLAuthTypes Backend Plaintext

  #指定用來做用戶認(rèn)證的表的有關(guān)信息。

  SQLUserInfo FTPUSERS userid passwd uid gid home shell

  #設(shè)置如果shell為空時(shí)允許用戶登錄:

  RequireValidShell off

  #數(shù)據(jù)庫的鑒別,這里是用于用戶的方式:

  SQLAuthenticate users

  #如果home目錄不存在,則系統(tǒng)會(huì)為根據(jù)它的home項(xiàng)新建一個(gè)目錄:

  SQLHomedirOnDemand on

  #防止DoS攻擊,設(shè)置最大的了進(jìn)程:

  MaxInstances 30

  #設(shè)置正常服務(wù)的系統(tǒng)用戶與組:

  User FTPUSR

  Group FTPGRP

  #設(shè)置用戶登錄時(shí)顯示的信息及進(jìn)入各個(gè)子目錄中的信息:

  DisplayLogin welcome.msg

  DisplayFirst Chdir.message

  #設(shè)置最大的登錄數(shù):

  MaxClients 10

  #支持?jǐn)帱c(diǎn)續(xù)傳:

  AllowRetrieveRestart on

#p#

  六、測試

  完成了文件的配置,你可以啟動(dòng)Proftpd服務(wù)了,用來測試是否成功:

  /usr/local/sbin/proftpd -n

  這里你可以發(fā)現(xiàn)服務(wù)已經(jīng)啟動(dòng)了,你可以在其它的地方進(jìn)行登錄,如果按上述的配置你就可以使用FTP服務(wù)了,不過我在測試的時(shí)候真的花了不少的時(shí)間。如果沒成功沒關(guān)系,仔細(xì)檢查一下自己在那個(gè)地方出現(xiàn)問題。如果在前面的測試成功了,則在配置文件中出現(xiàn)的問題可能會(huì)比較大,當(dāng)然數(shù)據(jù)庫中的FTPUSERS表的內(nèi)容不能出現(xiàn)錯(cuò)誤。

  七、腳本的編寫

  一切都成功了,下面就寫一個(gè)腳本來啟到FTP服務(wù)。

  如果你使用的服務(wù)器的類型是"ServerType inetd", 如果用的是inetd服務(wù),需要修改/etc/inetd.conf文件,增加一行:

  ftp streamtcpnowaitroot/usr/local/sbin/proftpd proftpd

  如果是用xinetd服務(wù),則需要在/etc/xinetd.d/的目錄下增加一個(gè)文件:proftpd

  具體的內(nèi)容如下:

 

  1.   service ftp  
  2.  
  3.   {  
  4.  
  5.   flags=REUSE 
  6.  
  7.   socket_type=stream 
  8.  
  9.   instances=30 
  10.  
  11.   wait=no 
  12.  
  13.   user=root 
  14.  
  15.   server=/usr/local/sbin/proftpd  
  16.  
  17.   log_on_success=HOST PID  
  18.  
  19.   log_on_failure=HOST RECORD  
  20.  
  21.   }  
  22.  

  如果選用的"ServerType standalone",則需在在/etc/rc.d/init.d/目錄下面增加一個(gè)proftpd 腳本,具體內(nèi)容如下:

  1.   #!/bin/bash  
  2.  
  3.   #  
  4.  
  5.   # Startup script for the proftpd FTP server  
  6.  
  7.   . /etc/rc.d/init.d/functions  
  8.  
  9.   proftpd=/usr/local/sbin/proftpd  
  10.  
  11.   prog=proftpd 
  12.  
  13.   RETVAL=0 
  14.  
  15.   start() {  
  16.  
  17.   echo -n $"Starting $prog:"  
  18.  
  19.   daemon $proftpd  
  20.  
  21.   RETVAL=$?  
  22.  
  23.   echo  
  24.  
  25.   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd  
  26.  
  27.   return $RETVAL  
  28.  
  29.   }  
  30.  
  31.   stop() {  
  32.  
  33.   echo -n $"Stopping $prog:"  
  34.  
  35.   killproc proftpd  
  36.  
  37.   RETVAL=$?  
  38.  
  39.   echo  
  40.  
  41.   [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd  
  42.  
  43.   return $RETVAL  
  44.  
  45.   }  
  46.  
  47.   # See how we were called  
  48.  
  49.   case "$1" in  
  50.  
  51.   start)  
  52.  
  53.   start  
  54.  
  55.   ;;  
  56.  
  57.   stop)  
  58.  
  59.   stop  
  60.  
  61.   ;;  
  62.  
  63.   status)  
  64.  
  65.   status $proftpd  
  66.  
  67.   RETVAL=$?  
  68.  
  69.   ;;  
  70.  
  71.   restart)  
  72.  
  73.   stop  
  74.  
  75.   start  
  76.  
  77.   ;;  
  78.  
  79.   *)  
  80.  
  81.   echo $"Usage: $prog {start|stop|status|restart}"  
  82.  
  83.   exit 1  
  84.  
  85.   esac  
  86.  
  87.   exit $RETVAL  
  88.  

#p#

  八、總結(jié)

  終于完成了所有的步驟,Proftp+MySQL用起來感覺不錯(cuò)的,而且通過數(shù)據(jù)庫可以做到很多的功能。例如:用來記錄用戶的登錄的次數(shù),設(shè)置起來也不怎么復(fù)雜,只需要在FTPUSERS表中添加field count,就可以輕松實(shí)現(xiàn)。不過以上的步驟只是一個(gè)基本的功能,要擴(kuò)展其它的功能可以參考,安裝包中自帶的說明文件。大家學(xué)會(huì)如何利用MySQL和Proftpd配置FTP服務(wù)器了么?

【編輯推薦】

  1. Linux下Proftpd搭建FTP服務(wù)器的高級設(shè)置
  2. ProFTPD 下的五大問題
  3. Linux ProFTPd服務(wù)器配置(全)
  4. ProFTPD的配置文件proftpd.conf
  5. ProFTPD的啟動(dòng)與測試
  6. 手把手教你 配置ProFTPD服務(wù)器
  7. 用Proftpd構(gòu)建Ttp服務(wù)器
  8. 在圖形界面下控制ProFTPD
責(zé)任編輯:zhaolei 來源: CSDN
相關(guān)推薦

2011-02-23 09:01:37

2011-03-07 17:04:02

ProftpdFTP

2011-02-23 10:18:51

CentosProFTPD

2011-02-25 16:14:09

proftpdftp

2011-02-22 09:06:57

2011-03-08 15:47:57

Proftpdmysqlquota

2011-02-25 15:38:58

2011-02-23 12:18:28

DebianProFTPd服務(wù)器

2011-02-22 10:55:13

ProFTPd服務(wù)器配置

2011-02-24 13:33:35

ProFTPDFTP

2011-02-25 16:34:01

LinuxProftpdFTP

2011-02-25 16:26:17

2011-02-22 17:42:26

2011-03-04 10:03:44

VSFTPD虛擬服務(wù)器

2010-07-01 13:09:46

FTP服務(wù)器

2011-02-22 15:09:32

ProFTPD服務(wù)器

2011-02-25 10:58:01

PROFTPD命令

2015-08-04 13:29:06

Fedoralinux

2010-03-24 15:53:09

2011-01-20 10:03:10

FTP服務(wù)器高級配置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號