1. 程式人生 > >LINUX下如何開啟FTP伺服器

LINUX下如何開啟FTP伺服器

現如今越來越多的人選擇了開源的Linux作業系統,其不遜於Windows的效能和平易近人的價格是人們選擇它的最好理由,而Red Hat Linux 9是Linux作業系統中使用最廣的一種。Red Hat Linux 9利用其簡單的配置和使用者熟悉的圖形介面為人們提供了豐富的Internet服務,FTP便是其提供的服務之一。在眾多的網路應用中,FTP有著非常重要的地位,網際網路中各種各樣的軟體資源大多數都放在FTP伺服器中。與大多數網際網路服務一樣,FTP也是一個客戶機/伺服器系統。下面我就給大家簡單介紹一下如何在Red Hat Linux 9 下架設FTP伺服器,希望藉此拋磚引玉。 

  1.安裝vsftpd伺服器 


  vsftpd是目前Linux最好的FTP伺服器工具之一,其中的vs就是“Very Secure”(很安全)的縮寫,可見它的最大優點就是安全,除此之外,它還具有體積小,可定製強,效率高的優點。 

  如果選擇完全安裝Red Hat Linux 9.0,則系統會預設安裝vsftpd伺服器。我們可以在終端命令視窗輸入以下命令進行驗證: 

  [[email protected] root] rpm -qagrep vsftpd 

  如果結果顯示為“vsftpd-1.1.3-8”,則說明系統已經安裝vsftpd伺服器。如果安裝Red Hat Linux 9.0時沒有選擇vsftpd伺服器,則可以在圖形環境下單擊“主選單→系統設定→新增刪除應用程式”選單項,在出現的“軟體包管理”對話方塊裡確保選中 “FTP伺服器”選項,然後單擊“更新”按鈕,按照螢幕提示插入第3張安裝光碟即可開始安裝。 

  另外,你也可以直接插入第3張安裝光碟,定位到/RedHat/RPMS下的vsftpd-1.1.3-8.i386.rpm安裝包,然後在終端命令視窗執行以下命令即可開始安裝程序: 

  [
[email protected]
RPMS] rpm -ivh vsftpd-1.1.3-8.i386.rpm 

  2.啟動/重新啟動/停止vsftpd服務 

  從Red Hat Linux 9.0開始,vsftpd預設只採用standalone方式啟動vsftpd服務,方法是在終端命令視窗執行以下命令: 

  [[email protected] root] /etc/rc.d/init.d/vsftpd start 

  重新啟動vsftpd服務: 

  [[email protected] root] /etc/rc.d/init.d/ vsftpd restart 

  關閉vsftpd服務: 

  [
[email protected]
root] /etc/rc.d/init.d/ vsftpd stop 

  確認vsftpd服務已經啟動後,我們可以在任意一臺Windows主機的DOS命令窗口裡輸入“ftp FTPAddres”(用實際的FTP伺服器IP地址或者域名代替FTPAddres),注意使用者名稱、密碼都是ftp(ftp是匿名使用者的對映使用者賬號),如下所述: 

  Microsoft Windows XP [版本 5.1.2600] 

  (C) 版權所有 1985-2001 Microsoft Corp. 

  F:/Peter>ftp FTPAddress 

  Connected to FTPAddress 

  220 (vsFTPd 1.1.3)//vsftpd的響應請求 

  User (FTPAddress:(none)): ftp//輸入使用者賬號ftp 

  331 Please specify the password. 

  Password://輸入密碼ftp 

  230 Login successful. Have fun. 

  ftp> 

  3.vsftpd的配置 

  在Red Hat Linux 9.0裡的vsftpd共有3個配置檔案,它們分別是: 

  vsftpd.ftpusers:位於/etc目錄下。它指定了哪些使用者賬戶不能訪問FTP伺服器,例如root等。 

vsftpd.user_list:位於/etc目錄下。該檔案裡的使用者賬戶在預設情況下也不能訪問FTP伺服器,僅當vsftpd .conf配置檔案裡啟用userlist_enable=NO選項時才允許訪問。 

  vsftpd.conf:位於/etc/vsftpd目錄下。它是一個文字檔案,我們可以用Kate、Vi等文字編輯工具對它進行修改,以此來自定義使用者登入控制、使用者許可權控制、超時設定、伺服器功能選項、伺服器效能選項、伺服器響應訊息等FTP伺服器的配置。 

  (1)使用者登入控制 

  anonymous_enable=YES,允許匿名使用者登入。 

  no_anon_password=YES,匿名使用者登入時不需要輸入密碼。 

  local_enable=YES,允許本地使用者登入。 

  deny_email_enable=YES,可以建立一個檔案儲存某些匿名電子郵件的黑名單,以防止這些人使用Dos攻擊。 

  banned_email_file=/etc/vsftpd.banned_emails,當啟用deny_email_enable功能時,所需的電子郵件黑名單儲存路徑(預設為/etc/vsftpd.banned_emails)。 

  (2)使用者許可權控制 

  write_enable=YES,開啟全域性上傳許可權。 

  local_umask=022,本地使用者的上傳檔案的umask設為022(系統預設是077,一般都可以改為022)。 

  anon_upload_enable=YES(這步的配置很重要不然會發現不能通過FTP軟體向LINUX上傳檔案,能下載)允許匿名使用者具有上傳許可權,很明顯,必須啟用write_enable=YES,才可以使用此項。同時我們還必須建立一個允許ftp使用者可以讀寫的目錄(前面說過,ftp是匿名使用者的對映使用者賬號)。 

  anon_mkdir_write_enable=YES,允許匿名使用者有建立目錄的權利。 

  chown_uploads=YES,啟用此項,匿名上傳檔案的屬主使用者將改為別的使用者賬戶,注意,這裡建議不要指定root賬號為匿名上傳檔案的屬主使用者! 

  chown_username=whoever,當啟用chown_uploads=YES時,所指定的屬主使用者賬號,此處的whoever自然要用合適的使用者賬號來代替。 

  chroot_list_enable=YES,可以用一個列表限定哪些本地使用者只能在自己目錄下活動,如果chroot_local_user=YES,那麼這個列表裡指定的使用者是不受限制的。 

  chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,則指定該列表(chroot_local_user)的儲存路徑(預設是/etc/vsftpd.chroot_list)。 

  nopriv_user=ftpsecure,指定一個安全使用者賬號,讓FTP伺服器用作完全隔離和沒有特權的獨立使用者。這是vsftpd系統推薦選項。 

  async_abor_enable=YES,強烈建議不要啟用該選項,否則將可能導致出錯! 

  ascii_upload_enable=YES;ascii_download_enable=YES,預設情況下伺服器會假裝接受ASCⅡ模式請求但實際上是忽略這樣的請求,啟用上述的兩個選項可以讓伺服器真正實現ASCⅡ模式的傳輸。 

  注意:啟用ascii_download_enable選項會讓惡意遠端使用者們在ASCⅡ模式下用SIZE/big/file這樣的指令大量消耗FTP伺服器的I/O資源。 

  這些ASCⅡ模式的設定選項分成上傳和下載兩個,這樣我們就可以允許ASCⅡ模式的上傳(可以防止上傳指令碼等惡意檔案而導致崩潰),而不會遭受拒絕服務攻擊的危險。 

  (3)使用者連線和超時選項 

  idle_session_timeout=600,可以設定預設的空閒超時時間,使用者超過這段時間不動作將被伺服器踢出。 

  data_connection_timeout=120,設定預設的資料連線超時時間。 

  (4)伺服器日誌和歡迎資訊 

  dirmessage_enable=YES,允許為目錄配置顯示資訊,顯示每個目錄下面的message_file檔案的內容。 

  ftpd_banner=Welcome to blah FTP service,可以自定義FTP使用者登入到伺服器所看到的歡迎資訊。