歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix資訊

Unix下安裝Ftp server(Proftpd為例)

Unix下安裝Ftp server(Proftpd為例)。proftpd(Professional FTP daemon)是針對Wu-FTP的弱項而開發的。除了改進的安全性,另外還具備許多Wu-FTP沒有的特點。比如,可以以Stand-alone、xinetd模式運行等。ProFTP不僅配置很方便,而且還有MySQL和Quota模塊可供選擇。本文講述的是Unix下安裝Ftp server(Proftpd為例)。

目的:

安裝配置一個proftpd,達到以下要求

1 不允許匿名訪問。

2 開放一個帳號,只有在upload目錄有上傳權限,可以續傳,不能改名和刪除。

操作:

0 切換到root帳戶

su root //輸入root的密碼。

一、下載proftpd

地址:www.proftpd.org。這裡我們下載了1.2.9版本

wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.9.tar.gz

二、安裝proftpd

切換到下載目錄,假設為/tmp/proftpd,然後

  1. tar zxvf proftpd-1.2.9.tar.gz //解壓  
  2.  
  3. cd proftpd-1.2.9  
  4.  
  5. ./configure --prefix=/var/proftpd --sysconfdir=/etc //設置安裝目錄/var/proftpd,配置文件目錄/etc  
  6.  
  7. make  
  8.  
  9. make install  
  10.  

三、新建ftp專用帳號

就是上面目的中提到的那個專用帳號,這裡以skate/skate(u/p)為例。

  1. groupadd skate  
  2.  
  3. useradd skate -g skate -d /var/ftp -s /sbin/nologin //設置/var/ftp目錄為ftp的目錄  
  4.  
  5. passwd skate //設置skate用戶的密碼  
  6.  
  7. mkdir /var/ftp/upload  
  8.  
  9. chown skate.skate /var/ftp/upload //設置upload目錄skate用戶可寫  
  10.  

四、設置proftpd

proftpd的配置文件就一個,就是/etc/proftpd.conf

vi /etc/proftpd.conf //打開proftpd.conf

####具體配置如下######

  1. ServerName "Test ftp server..."  
  2.  
  3. ServerType standalone  
  4.  
  5. DefaultServer on  
  6.  
  7. #端口  
  8.  
  9. Port 21  
  10.  
  11. Umask 022  
  12.  
  13. #最大線程數  
  14.  
  15. MaxInstances 30  
  16.  
  17. User skate  
  18.  
  19. Group skate  
  20.  
  21. #DNS反查  
  22.  
  23. UseReverseDNS off  
  24.  
  25. IdentLookups off  
  26.  
  27. #最大嘗試連接次數  
  28.  
  29. MaxLoginAttempts 3  
  30.  
  31. #每用戶線程  
  32.  
  33. MaxClientsPerHost 2  
  34.  
  35. #最大用戶數  
  36.  
  37. MaxClients 20  
  38.  
  39. DirFakeUser On skate  
  40.  
  41. DirFakeGroup On skate  
  42.  
  43. DeferWelcome On  
  44.  
  45. #日志文件位置  
  46.  
  47. SystemLog /var/log/proftpd.log  
  48.  
  49. ServerIdent off  
  50.  
  51. #限制skate組的skate用戶登錄時不能切換到其他目錄(只能呆在他的home目錄)  
  52.  
  53. DefaultRoot ~ skate,skate  
  54.  
  55. #設置只允許192.168.0的用戶登錄  
  56.  
  57. #;  
  58.  
  59. #Order allow,deny  
  60.  
  61. #Allow from 192.168.0.  
  62.  
  63. #Deny from all  
  64.  
  65. #;  
  66.  
  67. #設置只允許skate用戶登錄,否則系統用戶也可以登錄ftp  
  68.  
  69. #;  
  70.  
  71. #Order allow,deny  
  72.  
  73. #DenyUser !skate  
  74.  
  75. #;  
  76.  
  77. #開起全盤的寫權限  
  78.  
  79. ;  
  80.  
  81. AllowOverwrite on  
  82.  
  83. AllowStoreRestart on  
  84.  
  85. #允許FXP  
  86.  
  87. # AllowForeignAddress on  
  88.  
  89. ;  
  90.  
  91. AllowAll  
  92.  
  93. ;  
  94.  
  95. ;  
  96.  
  97. #設置skate用戶在upload的限制  
  98.  
  99. #DELE刪除權限  
  100.  
  101. #RNFR RNTO重命名權限  
  102.  
  103. #RMD XRMD移動目錄權限  
  104.  
  105. ;  
  106.  
  107. ;  
  108.  
  109. DenyUser skate  
  110.  
  111. ;  
  112.  
  113. ;  
  114.  

#####結束######

編輯完以後按Esc,然後輸入:x保存。

五、 啟動服務

編輯一個啟動腳本(這個是proftpd自帶的,做了一點小修改)

  1. vi /etc/rc.d/init.d/proftpd  
  2.  

#####腳本內容開始########

  1. #!/bin/sh  
  2.  
  3. #  
  4.  
  5. # Startup script for ProFTPD  
  6.  
  7. #  
  8.  
  9. # chkconfig: 345 85 15  
  10.  
  11. # description: ProFTPD is an enhanced FTP server with \  
  12.  
  13. # a focus toward simplicity, security, and ease of configuration. \  
  14.  
  15. # It features a very Apache-like configuration syntax, \  
  16.  
  17. # and a highly customizable server infrastructure, \  
  18.  
  19. # including support for multiple 'virtual' FTP servers, \  
  20.  
  21. # anonymous FTP, and permission-based directory visibility.  
  22.  
  23. # processname: proftpd  
  24.  
  25. # config: /etc/proftpd.conf  
  26.  
  27. #  
  28.  
  29. # By: Osman Elliyasa ;  
  30.  
  31. # $Id: proftpd.init.d,v 1.7 2002/12/07 21:50:27 jwm Exp $  
  32.  
  33. # Source function library.  
  34.  
  35. . /etc/rc.d/init.d/functions  
  36.  
  37. if [ -f /etc/sysconfig/proftpd ]; then  
  38.  
  39. . /etc/sysconfig/proftpd  
  40.  
  41. fi  
  42.  

#下面這行設置環境變量,注意設置好你的proftpd的安裝目錄

  1. PATH="$PATH:/usr/local/sbin:/var/proftpd/bin:/var/proftpd/sbin" 
  2.  
  3. # See how we were called.  
  4.  
  5. case "$1" in  
  6.  
  7. start)  
  8.  
  9. echo -n "Starting proftpd: "  
  10.  
  11. daemon proftpd $OPTIONS  
  12.  
  13. echo  
  14.  
  15. touch /var/lock/subsys/proftpd  
  16.  
  17. ;;  
  18.  
  19. stop)  
  20.  
  21. echo -n "Shutting down proftpd: "  
  22.  
  23. killproc proftpd  
  24.  
  25. echo  
  26.  
  27. rm -f /var/lock/subsys/proftpd  
  28.  
  29. ;;  
  30.  
  31. status)  
  32.  
  33. status proftpd  
  34.  
  35. ;;  
  36.  
  37. restart)  
  38.  
  39. $0 stop  
  40.  
  41. $0 start  
  42.  
  43. ;;  
  44.  
  45. reread)  
  46.  
  47. echo -n "Re-reading proftpd config: "  
  48.  
  49. killproc proftpd -HUP  
  50.  
  51. echo  
  52.  
  53. ;;  
  54.  
  55. suspend)  
  56.  
  57. hash ftpshut >;/dev/null 2>;&1  
  58.  
  59. if [ $? = 0 ]; then  
  60.  
  61. if [ $# -gt 1 ]; then  
  62.  
  63. shift  
  64.  
  65. echo -n "Suspending with '$*' "  
  66.  
  67. ftpshut $*  
  68.  
  69. else  
  70.  
  71. echo -n "Suspending NOW "  
  72.  
  73. ftpshut now "Maintanance in progress"  
  74.  
  75. fi  
  76.  
  77. else  
  78.  
  79. echo -n "No way to suspend "  
  80.  
  81. fi  
  82.  
  83. echo  
  84.  
  85. ;;  
  86.  
  87. resume)  
  88.  
  89. if [ -f /etc/shutmsg ]; then  
  90.  
  91. echo -n "Allowing sessions again "  
  92.  
  93. rm -f /etc/shutmsg  
  94.  
  95. else  
  96.  
  97. echo -n "Was not suspended "  
  98.  
  99. fi  
  100.  
  101. echo  
  102.  
  103. ;;  
  104.  
  105. *)  
  106.  
  107. echo -n "Usage: $0 {start|stop|restart|status|reread|resume"  
  108.  
  109. hash ftpshut  
  110.  
  111. if [ $? = 1 ]; then  
  112.  
  113. echo '}'  
  114.  
  115. else  
  116.  
  117. echo '|suspend}'  
  118.  
  119. echo 'suspend accepts additional arguments which are passed to ftpshut(8)'  
  120.  
  121. fi  
  122.  
  123. exit 1  
  124.  
  125. esac  
  126.  
  127. if [ $# -gt 1 ]; then  
  128.  
  129. shift  
  130.  
  131. $0 $*  
  132.  
  133. fi  
  134.  
  135. exit 0  
  136.  

#######腳本結束#########

按Esc,輸入:x保存。

修改權限,然後添加到系統服務並啟動

  1. chmod +x /etc/rc.d/init.d/proftpd  
  2.  
  3. chkconfig --add proftpd  
  4.  
  5. service proftpd start  
  6.  

以後可以用service proftpd restart來重起proftpd。

六、一點體會

最後,有一個用來限制登陸的特殊命令,就是LOGIN。在 ;中用這個,可以禁止或者允許連接進來。但是,如果不在Server config,;

或者;中使用的話,他將失去效用,或者說被忽略掉(比如在;中使用就是無效的)。

proftpd感覺還是比vsftp功能配置上好用一點,主要掌握好 ;段基本上應用來說就沒有問題了。

Copyright © Linux教程網 All Rights Reserved