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

配置FTP服務器(MySQL+Proftpd)

運維 系統運維
用MySQL和Proftpd配置FTP服務器:FTP是Internet的一項互聯網協議。傳統的FTP服務中的帳號用的是服務器中的系統用戶,然而這樣就為安全留下了隱患。我們可以用MySQL進行用戶認證,來避免這種隱患。本文講述的就是如何利用MySQL和Proftpd配置FTP服務器。

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

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

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

  Proftpd的安裝包可以通過http://www.proftpd.net 獲得,注意要支持MySQL認證最低的版本為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

  解開,這時產生了一個proftpd-1.2.8 的目錄。然后進入該目錄中的contrib目錄:

  cd proftpd-1.2.8/contrib/

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

  tar -gzvf mod_sql-4.0.8.tar.gz

  配置使Proftpd支持MySQL認證:

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

  注意:-with-includes選項是指MySQL的頭文件所在的目錄;-with-libraries選項是指MySQL的庫文件所在的目錄。對于不同的環境可能會是不同的目錄。

  進行編譯:

  1.   make  
  2.  

  安裝:

  1.   make install  
  2.  

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

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

  測試的所需要的臨時文件被放置在/tmp/PFTEST目錄中,運行命令:

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

  如果能正常運行,你可以發現有很多的信息而且最后一行會出現:

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

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

#p#

  三、為FTP服務建立相應的數據庫及其表

  1、你可以為此服務建立專門的數據庫,也可以放在其它的數據庫中。在此我專門建立一個專門的數據庫FTP:

  create database FTP;

  2、然后在這個數據庫中建立一個用戶表FTPUSERS,這個表是必須的:

  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.  

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

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

  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.  

  其中grpname是組的名稱,gid是系統組的ID,members是組的成員。注意:多成員,他們之間要用逗號隔開,不能使用空格。

  4、為空表格插入記錄:

 

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

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

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

#p#

  四、為FTP用戶建立相應的系統用戶

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

  先建立FTPGRP組:

  groupadd -g 1000 -r FTPGRP

  建立FTPUSR用戶:

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

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

  mkdir /home/FTP

  chown FTPUSR /home/FTP

  chgrp FTPGRP /home/FTP

#p#

  五、設置配置文件

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

  修改proftpd.conf文件,具體內容如下:

  #設置FTP服務器的名稱:

  ServerName"My FTP Server"

  #設置FTP服務器的類型:

  ServerType standalone

  DefaultServer on

  #設置根,可以限制用戶在某個地方活動,增強服務器的安全性。

  DefaultRoot ~

  #設置FTP服務端口號,標準的FTP服務端口是21。

  Port 21

  #設置新建文件或目錄時,設置權限的掩碼:

  Umask 022

  #設置系統日志文件:

  SystemLog /var/log/ftp.syslog

  #設置記錄文件傳輸的日志文件:

  TransferLog /var/log/ftp.transferlog

  #設置最大的嘗試登錄的次數,如果超過自動斷開連接:

  MaxLoginAttempts 3

  #設置MySQL認證:

  #數據庫聯接的信息,DatabaseName是數據庫名, HostName是主機名,

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

  SQLConnectInfo DatabaseName@HostName:Port UserName Password

  #例如SQLConnectInfo proftpd@localhost root 123456

  #數據庫認證的類型:

  SQLAuthTypes Backend Plaintext

  #指定用來做用戶認證的表的有關信息。

  SQLUserInfo FTPUSERS userid passwd uid gid home shell

  #設置如果shell為空時允許用戶登錄:

  RequireValidShell off

  #數據庫的鑒別,這里是用于用戶的方式:

  SQLAuthenticate users

  #如果home目錄不存在,則系統會為根據它的home項新建一個目錄:

  SQLHomedirOnDemand on

  #防止DoS攻擊,設置最大的了進程:

  MaxInstances 30

  #設置正常服務的系統用戶與組:

  User FTPUSR

  Group FTPGRP

  #設置用戶登錄時顯示的信息及進入各個子目錄中的信息:

  DisplayLogin welcome.msg

  DisplayFirst Chdir.message

  #設置最大的登錄數:

  MaxClients 10

  #支持斷點續傳:

  AllowRetrieveRestart on

#p#

  六、測試

  完成了文件的配置,你可以啟動Proftpd服務了,用來測試是否成功:

  /usr/local/sbin/proftpd -n

  這里你可以發現服務已經啟動了,你可以在其它的地方進行登錄,如果按上述的配置你就可以使用FTP服務了,不過我在測試的時候真的花了不少的時間。如果沒成功沒關系,仔細檢查一下自己在那個地方出現問題。如果在前面的測試成功了,則在配置文件中出現的問題可能會比較大,當然數據庫中的FTPUSERS表的內容不能出現錯誤。

  七、腳本的編寫

  一切都成功了,下面就寫一個腳本來啟到FTP服務。

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

  ftp streamtcpnowaitroot/usr/local/sbin/proftpd proftpd

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

  具體的內容如下:

 

  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/目錄下面增加一個proftpd 腳本,具體內容如下:

  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#

  八、總結

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

【編輯推薦】

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

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服務器

2011-02-22 10:55:13

ProFTPd服務器配置

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服務器

2011-02-25 10:58:01

PROFTPD命令

2015-08-04 13:29:06

Fedoralinux

2011-03-03 09:26:59

ProFTPD服務器管理

2011-03-04 10:03:44

VSFTPD虛擬服務器

2010-07-01 13:09:46

FTP服務器

2011-02-24 14:14:22

PROFTPD命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99精品亚洲国产精品久久不卡 | 国产精品久久性 | 日本一区不卡 | 久久首页 | 成人影院在线观看 | 国产精品久久久久久久久久了 | 国产一区二区三区视频 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 国产精品毛片无码 | 91性高湖久久久久久久久_久久99 | 999久久久| 久久综合久 | 久久精彩视频 | 精品成人在线观看 | 精品电影 | 亚洲97| 国产精品毛片一区二区三区 | 国产极品粉嫩美女呻吟在线看人 | 亚洲精品视频一区二区三区 | 久久久久久综合 | 日日骚av| 国产特黄一级 | 午夜影院在线观看视频 | 亚洲成a人片 | 精品国产欧美一区二区三区不卡 | 日韩精品视频中文字幕 | 国产精品s色 | 天天久久 | 成年免费大片黄在线观看一级 | 精品国产一区二区三区久久 | 久久com| 亚洲性爰 | 亚洲精品电影网在线观看 | 国产午夜精品一区二区三区在线观看 | 精品久久久久久 | 国产一区二区三区在线看 | 成人免费视频久久 | 91精品国产综合久久香蕉麻豆 | 久久三级影院 | 日韩成人 | www.成人在线视频 |