成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

配置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ù)中的帳號(hào)用的是服務(wù)器中的系統(tǒng)用戶(hù),然而這樣就為安全留下了隱患。我們可以用MySQL進(jìn)行用戶(hù)認(rèn)證,來(lái)避免這種隱患。本文講述的就是如何利用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ù)中的帳號(hào)都是用服務(wù)器中的系統(tǒng)用戶(hù),這樣也為也會(huì)系統(tǒng)安全留下了隱患,用MySQL進(jìn)行用戶(hù)認(rèn)證,很好地避免這種隱患。它利用數(shù)據(jù)庫(kù)來(lái)提供用戶(hù)及其認(rèn)證,把FTP的帳號(hào)映射于系統(tǒng)用戶(hù),從而避免了使用系統(tǒng)用戶(hù)。這樣可以達(dá)到比較安全的目的。

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

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

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

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

  二、包的安裝

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

  tar -gzvf proftpd-1.2.8.tar.gz

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

  cd proftpd-1.2.8/contrib/

  把中間包mod_sql拷貝到該目錄中,再解開(kāi):

  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的庫(kù)文件所在的目錄。對(duì)于不同的環(huán)境可能會(huì)是不同的目錄。

  進(jìn)行編譯:

  1.   make  
  2.  

  安裝:

  1.   make install  
  2.  

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

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

  測(cè)試的所需要的臨時(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.  

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

#p#

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

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

  create database FTP;

  2、然后在這個(gè)數(shù)據(jù)庫(kù)中建立一個(gè)用戶(hù)表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.  

  此表格是為了用戶(hù)認(rèn)證所需要的,其中userid、passwd是必不可少的,userid是用做FTP服務(wù)的用戶(hù)名;passwd是指此用戶(hù)的密碼;uid是系統(tǒng)用戶(hù)的ID,也就是所映射的系統(tǒng)用戶(hù);gid是所屬系統(tǒng)組的ID;home是該用戶(hù)所在的HOME目錄;shell可以為該用戶(hù)指定相應(yīng)的shell。當(dāng)然你可以建立更多的字段,例如:用來(lái)記錄用戶(hù)登錄次數(shù)的count,或者是日期的date,如果你對(duì)配置熟悉了之后,你可以根據(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是組的名稱(chēng),gid是系統(tǒng)組的ID,members是組的成員。注意:多成員,他們之間要用逗號(hào)隔開(kāi),不能使用空格。

  4、為空表格插入記錄:

 

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

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

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

#p#

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

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

  先建立FTPGRP組:

  groupadd -g 1000 -r FTPGRP

  建立FTPUSR用戶(hù):

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

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

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

  ServerName"My FTP Server"

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

  ServerType standalone

  DefaultServer on

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

  DefaultRoot ~

  #設(shè)置FTP服務(wù)端口號(hào),標(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ù),如果超過(guò)自動(dòng)斷開(kāi)連接:

  MaxLoginAttempts 3

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

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

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

  SQLConnectInfo DatabaseName@HostName:Port UserName Password

  #例如SQLConnectInfo proftpd@localhost root 123456

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

  SQLAuthTypes Backend Plaintext

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

  SQLUserInfo FTPUSERS userid passwd uid gid home shell

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

  RequireValidShell off

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

  SQLAuthenticate users

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

  SQLHomedirOnDemand on

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

  MaxInstances 30

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

  User FTPUSR

  Group FTPGRP

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

  DisplayLogin welcome.msg

  DisplayFirst Chdir.message

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

  MaxClients 10

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

  AllowRetrieveRestart on

#p#

  六、測(cè)試

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

  /usr/local/sbin/proftpd -n

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

  七、腳本的編寫(xiě)

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

  如果你使用的服務(wù)器的類(lèi)型是"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用起來(lái)感覺(jué)不錯(cuò)的,而且通過(guò)數(shù)據(jù)庫(kù)可以做到很多的功能。例如:用來(lái)記錄用戶(hù)的登錄的次數(shù),設(shè)置起來(lái)也不怎么復(fù)雜,只需要在FTPUSERS表中添加field count,就可以輕松實(shí)現(xiàn)。不過(guò)以上的步驟只是一個(gè)基本的功能,要擴(kuò)展其它的功能可以參考,安裝包中自帶的說(shuō)明文件。大家學(xué)會(huì)如何利用MySQL和Proftpd配置FTP服務(wù)器了么?

【編輯推薦】

  1. Linux下Proftpd搭建FTP服務(wù)器的高級(jí)設(shè)置
  2. ProFTPD 下的五大問(wèn)題
  3. Linux ProFTPd服務(wù)器配置(全)
  4. ProFTPD的配置文件proftpd.conf
  5. ProFTPD的啟動(dòng)與測(cè)試
  6. 手把手教你 配置ProFTPD服務(wù)器
  7. 用Proftpd構(gòu)建Ttp服務(wù)器
  8. 在圖形界面下控制ProFTPD
責(zé)任編輯:zhaolei 來(lái)源: 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:26:17

2011-02-25 16:34:01

LinuxProftpdFTP

2011-02-22 17:42:26

2011-02-22 15:09:32

ProFTPD服務(wù)器

2011-02-25 10:58:01

PROFTPD命令

2015-08-04 13:29:06

Fedoralinux

2011-03-04 10:03:44

VSFTPD虛擬服務(wù)器

2010-07-01 13:09:46

FTP服務(wù)器

2011-03-03 09:26:59

ProFTPD服務(wù)器管理

2011-02-24 14:14:22

PROFTPD命令
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 丁香久久 | 国产精品一区一区 | 九九精品在线 | 在线午夜 | 久久亚洲欧美日韩精品专区 | 谁有毛片| aaa精品 | 色接久久 | 999久久久精品 | 亚洲精品一区二区三区四区高清 | 99免费精品视频 | www国产成人免费观看视频,深夜成人网 | 精品福利视频一区二区三区 | 黑人精品欧美一区二区蜜桃 | 一二三四在线视频观看社区 | 午夜精品视频 | 精品福利在线 | 精品国产乱码久久久久久蜜臀 | 欧美激情精品久久久久 | 国产电影一区二区三区爱妃记 | 久久黄网| 毛片软件 | 综合国产在线 | 日日爱夜夜操 | 日本精品一区二区 | 超碰在线播 | www.99热| 欧美视频免费在线 | 一区二区三区四区不卡视频 | 午夜视频在线播放 | 国产999精品久久久久久 | 伊人99| 亚洲欧美日韩精品久久亚洲区 | 国产sm主人调教女m视频 | 中文字幕一区在线观看视频 | av一级久久| 亚洲国产精品第一区二区 | 国产精品久久久久aaaa九色 | 国产精品不卡一区二区三区 | 国家aaa的一级看片 h片在线看 | 毛色毛片免费看 |