压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

使用Proftpd搭建多功能FTP服務器(一)

  理論描述

  Linux系統(tǒng)中,有不少實現(xiàn)FTP服務器的軟件套件。但是,大部分都是基于Linux系統(tǒng)用戶。。這一方面,沒必要,ftp用戶能上傳下載文件即可;另一方面,不安全,ftp用戶一旦采用弱密碼,則會大大降低系統(tǒng)安全性。

  根據(jù)我們的需求,我們的FTP服務器需要滿足以下特點:

  匿名登錄

  FTP的Passive傳輸模式

  UTF-8編碼,對客戶端推送語言編碼

  虛擬用戶,用戶磁盤空間限額

  FTPS安全傳輸

  根據(jù)以上需求,我們采用了proftpd這款軟件。它不但能優(yōu)雅的完成上述功能,還能有更多的強大功能等待我們發(fā)現(xiàn)。

  proftpd服務器完全使用編譯的方式安裝軟件,使用一個配置文件來配置服務。proftpd支持使用mysql數(shù)據(jù)庫存儲用戶信息。然而,在滿足我們需要的情況下,為了保持系統(tǒng)簡潔性,我們采用文件存儲用戶信息。

  proftpd軟件短小精悍,官方鳥語文檔豐富,可讀性非常好。

  操作步驟

  獲取軟件包

  搭建系統(tǒng)時,官方最新的穩(wěn)定版本是1.3.xx,從下面地址下載源代碼包:

  ftp://ftp.proftpd.org/distrib/source/

  下載后,解壓。

  tar xvfproftpd-1.3.xx.tar.gz

  安裝軟件

  這里采用編譯的形式安裝

  ./configure–with-modules=mod_quotatab:mod_quotatab_file:mod_ban:mod_tls:\

  mod_rewrite:mod_ifsession–enable-ctrls –enable-nls

  –with-modules//編譯時包括選項:

  mod_quotatab  //啟用 quota用戶磁盤限額

  mod_quotatab_file  //采用基于文件的quotatab

  mod_ban //啟動動態(tài)黑名單,防止密碼猜測,DDOS攻擊

  mod_tls  //啟用tls,實現(xiàn)功能FTPS

  mod_rewrite  //啟用重寫,可實現(xiàn)用戶上傳內容自動改名

  mod_ifsession  //啟用會話判斷,可判斷會話,對用戶IP設置規(guī)則。

  –enable-ctrls  //啟用訪問控制,可設置ACL

  –enable-nls  //啟用語言探測,解決中文亂碼。

  make

  //默認安裝到/usr/local/ ,需要root權限

  makeinstall

  編譯安裝完成后,我們看一下,安裝后的文件分布:

  [root@ftp ~]# cd /usr/local

  [root@ftp local]# ls -R

  ./bin:

  ftpasswd  ftpcount ftpdctl  ftpmail  ftpquota ftptop  ftpwho  prxs

  ./etc:

  conf.d    proftpd.conf    (部分輸出)

  ./etc/conf.d:

  ban.tab     ftpd.group   ftpquota.limittab  mod_ban.conf    mod_tls.conf      proftpd-key.pem

  cacert.pem  ftpd.passwd ftpquota.tallytab mod_quota.conf proftpd-cert.pem whitelist

  配置主配置文件

  接下來,講解配置文件。下面的配置文件只是一個實例,并不通用。使用者根據(jù)自身情況酌情修改,

  在開始配置proftpd配置文件之前,請確保已經(jīng)正確配置了,proftpd需要的文件,目錄,文件池等必要條件。

  # This isa basic ProFTPD configuration file . rename it to

  #'proftpd.conf' for actual use.  Itestablishes a single server

  # and asingle anonymous login.  It assumes thatyou have a user/group

  #"nobody" and "ftp" for normal operation and anon.

  #————————————————————————–

  # mainconfigure for

  #                          ftp.xiyang-liu.com

  #                                                 by xiyang-liu

  #————————————————————————–

  ##配置管理員郵箱地址,實際沒什么用,服務器相當安全,至今沒給我發(fā)過郵件

  ServerAdmin                        xiyangliu1987@gmail.com

  ##配置服務器名,實踐說明在設置了服務器偽裝后,不提示服務器名。

  ServerName"Xiyang-liu.comFTP Server"

  ## 配置服務器偽裝,這里我們偽裝proftpd成Server-U服務器。

  ServerIdent   on    "Serv-UFTP Server v6.4 for WinSock ready…"

  ##設置服務器運行模式,獨立服務,或者被監(jiān)管

  ServerType                         standalone

  #ServerType                        inetd

  ##設置為默認服務器

  DefaultServer                      on

  ##設置服務器進程運行使用的用戶

  User                               nobody

  ##設置服務器進程運行使用的組

  Group                             nobody

  ##設置關閉IPv6支持

  UseIPv6                           off

  ##設置服務器接受請求的端口

  Port21

  ##設置被動模式使用的端口范圍

  PassivePorts6000065535

  ##設置用戶上傳文件的權限掩碼

  Umask022

  ##設置用戶被chroot鎖定到的各自的Home目錄

  DefaultRoot~

  ##關閉歡迎信息顯示

  DeferWelcome                       off

  ##如果顯示歡迎信息,則指定顯示的文件

  DisplayLogin                       welcome.msg

  ##指定切換文件夾時,顯示的歡迎信息

  DisplayChdir.message

  #

  #

  ##登錄超時時間,從出現(xiàn)輸入用戶名的提示符到斷開連接的時間

  TimeoutLogin1200

  ##空閑超時,無操作超時

  TimeoutIdle600

  ##不傳輸超時,數(shù)據(jù)連接建立,但是沒有數(shù)據(jù)傳輸

  TimeoutNoTransfer900

  ##延遲超時,從數(shù)據(jù)連接建立到有數(shù)據(jù)傳輸最大延遲時間

  TimeoutStalled3600

  ##不使用DNS反查詢

  UseReverseDNS                     off

  ##上傳時,允許覆蓋已有的文件

  AllowOverwrite                    yes

  ##不使用RFC 1413協(xié)議反查用戶信息,加快FTP訪問速度

  IdentLookups                       off

  ## 開啟delay引擎,更安全。

  ##        為什么這么說呢Proftpd在接受用戶請求的時候,會查詢用戶列表,以確

  ##定是否有這個用戶。如果有,還會查詢黑名單列表,訪問控制列表。這些查詢都需要

  ##時間。所以,不同情況(服務器存在賬戶和不存在賬戶)下,從輸入用戶名到出現(xiàn)密

  ##碼提示符之間的時間會有一個時間差值。這個時間很短,憑人無法感覺,但是計算機

  ##可以識別,通過對這個時間差進行分析,可以試探那些Proftpd上存在哪些用戶,不

  ##存在哪些用戶。

  ##   開啟delay引擎,會均衡這個時間段。無論輸入的用戶存不存在,從用戶名輸入到

  ##彈出密碼提示符的時間間隔都是一樣的!

  DelayEngine                        on

  ##指定日志格式

  LogFormatdefault"%h%l %u %t \"%r\" %s %b"

  LogFormat                          auth    "%v [%P] %h %t \"%r\" %s"

  LogFormat                          write   "%h %l %u %t \"%r\" %s%b"

  TransferLog/usr/local/var/proftpd/log/transfer.log

  ExtendedLog/usr/local/var/proftpd/log/access.log WRITE,READ write

  ExtendedLog/usr/local/var/proftpd/log/auth.log AUTHauth

  #

  #

  ##如果存在lang模塊

  <<>IfModule mod_lang.c>

  ##開啟lang引擎

  LangEngine on

  ##默認語言英文

  LangDefaulten_US

  ##使用強制utf8編碼

  UseEncoding on

  ##制定語言模塊位置

  LangPath/usr/local/share/locale/

  <<>/IfModule>

  #

  ##如果存在facts模塊

  .c>

  ##關閉FactsAdvertise,提高兼容性。

  FactsAdvertise off

  <IfModule>

  #

  ##限制特定操作

  <<>LimitSITE_CHMOD,SITE_CHGRP>

  ##阻止所有用戶使用更改權限 更改組命令

  DenyAll

  <<>/Limit>

  #

  ##設置虛擬用戶

  ##指定虛擬用戶的passwd和group文件,格式和系統(tǒng)文件一樣

  AuthUserFile                       /usr/local/etc/conf.d/ftpd.passwd

  AuthGroupFile/usr/local/etc/conf.d/ftpd.group

  #這里->這里 之間是約束說明。

  ##創(chuàng)建虛擬用戶的時候制定home目錄,應該是下面目錄的子目錄。

  # homedir/ftp_pool/home/

  ##虛擬用戶統(tǒng)一使用nobody的UID和GID

  ###問:為什么不使用不同的UID和GID那樣不是更安全嗎

  ###答:也可以使用不同的UID和GID,但是那樣太費事。使用不同UID和GID。首先,

  ##要判斷和系統(tǒng)UID和GID是不是有沖突;其次,要每次創(chuàng)建用戶需要找一個沒用過的

  ##UID和GID;再次,得給新創(chuàng)建的用戶賦予權限;最后,災難恢復太麻煩。

  # useridnobody

  # groupidnobody

  #這里->這里 之間是約束說明。

  #

  #

  #設置匿名用戶資源

  <<>Anonymous/ftp_pool/pub/>

  ##匿名用戶使用的用戶和組

  User             ftp

  Group            ftp

  ##用戶別名

  UserAlias                 anonymous ftp

  ##不要求合法的shell

  RequireValidShellno

  MaxClients50

  ##限制匿名用戶登錄的位置

  <<>Limit LOGIN>

  ##限制順序為先允許 再阻止

  OrderAllow,Deny

  ##允許內網(wǎng)用戶登錄匿名目錄

  Allow10.0.0.0/8

  Allow172.16.0.0/12

  Allow192.168.0.0/16

  ##阻止所有其他用戶

  Deny ALL

  <<>/Limit>

  #

  ##配置upload目錄權限

  #限制寫

  Order Allow,Deny

  ##只允許技術部上傳

  Allow 10.1.5.0/24

  ##阻止其他所有用戶

  Deny ALL

  <<>/Limit>

  <Directory>

  ##配置匿名用戶權限

  <<>Limit WRITE>

  ##阻止所用戶的寫權限

  DenyAll組織所有

  <<>/Limit>

  <Anonymous>

 

上一篇:安卓防火墻 PS DroidWall

下一篇:批量修改遠程linux服務器密碼