引用 | 編輯
love104
2005-08-05 10:11 |
樓主
▼ |
||
x0
出處:鳥哥的 Linux 新手討論區 http://phorum.vbird.org這是我跟同學一起整理的ftp教學 有錯ㄉ話請指正喔!!!...^^ 10-0 FTP SERVER摘要 FTP(File Transfer Protocol)檔案傳輸協定,是目前Internet最常被用來傳輸檔案的方法,它可以提供使用者上傳或下載檔案。由於FTP伺服器的服務功能相當好用,所以Linux在安裝光碟中就有WU-FTP Server,另外還有相當好用的PROFTP Server可在網路上下載供使用者安裝,使用者可在Linux文字模式下直接以ftp指令連接伺服器。 FTP伺服器除了提供擁有專屬帳號的使用者連接外,更提供了匿名式的檔案下載服務,使用者只要在帳號中填入anonymous,密碼則鍵入電子郵件地址,就能以匿名方式登入FTP伺服器來上傳或下載檔案,這也是FTP通訊協定得以盛行的原因之一。 10-1 WU-FTP 簡介 WU-FTPD 為 Washington Univ. in Saint Louis 所寫的FTP server程式。除了它原有 ftp server 的功能,主要地也增加了下列數項功能︰ 1.可將使用者區分成不同的class,給予一些權限上的限制。 2.記錄 (log) 使用者所下的命令及傳送檔案的名稱。 3.可對不同網域做不同存取權限和可存取的時段。 4.提供user在下載檔案的時,可自動壓縮或解壓。 5.可記錄FTP Server使用情形。 6.可限定最多連線人數,以符合整體運作效能。 7.顯示相關訊息,讓使用者瞭解接收狀態。 8.可將FTP Server暫停,便於系統維護。 9.支援虛擬FTP主機(Virtual FTP Servers)。 10-2 WU-FTP 安裝與啟動 WU-FTP的安裝套件在Linux的安裝光碟就有,在安裝Linux系統時選取即可安裝WU-FTP。若是當初安裝系統時沒有安裝WU-FTP,則可經由下列的方式安裝。 [root@linux root]# mount /mnt/cdrom 將光碟機掛入/mnt/cdrom [root@linux root]# cd /mnt/cdrom/RedHat/RPMS 切換到放置RPM檔案的目錄 [root@linux root]# rpm –ivh wu-ftpd-2.6.1-18.i386.rpm 如要從舊版升級至新版,請將參數-i改成-U即可 [root@linux root]# /etc/rc.d/init.d/xinetd reload 啟動FTP 要確認 FTP伺服器是否已啟動可利用telnet指令來測試: WU-FTP Ver. 2.6.1-18有安全漏洞,可以讓hacker讀取Server上所有文件。必須升級至Ver. 2.6.1-20以修正漏洞。我們可以在http://www.redhat.com/apps/support/errata下載修正程式,執行 rpm –Fvh wu-ftpd-2.6.1-20.i386.rpm 安裝完成後修改/etc/xinetd.d/wu-ftpd檔,將disable設為no service ftp{ disable = no ←改為no socket_type = stream wait = no user = root server = /usr/sbin/in.ftpd server_args = -l -a log_on_success += DURATION USERID log_on_failure += USERID nice = 10 } 存檔後,要求xinetd重新讀取設定檔 [root@linux root]# /etc/rc.d/init.d/xinetd reload 經過以上步驟,WU-FTP安裝啟動完成。 10-3 WU-FTP 設定 設定檔/etc/ftpaccess l 拒絕登入的Unix使用者與UID deny-uid <使用者ID> l 拒絕登入的Unix群組與GID deny-gid <群組ID> l 不拒絕的Unix使用者與UID allow-uid <使用者ID> l 不拒絕的Unix群組與GID allow-gid <群組ID> l 當作訪客Unix使用者與UID guestuser <使用者ID> l 當作訪客Unix群組與GID guestgroup <群組ID> l 允許登入時帳號或密碼輸入錯誤的次數,這個值設越小越好,以避免被hacker攻擊 loginfails 3 登入成功後顯示歡迎訊息 message <訊息檔> login 例如我們編寫一個訊息內容如下: ////////////////////////////////////////////////////////////////////////// WELCOME TO FTP site !!! 請大家多分享好用的軟體----^_^---thx!!///////////////////////////////////////////////////////////////////////// 你的來源IP是 %R 您是目前站上第 %N 位使用者 系統時間是: %T 主目錄為: %C 將此內容存成welcome.msg放在根目錄下,設定歡迎訊息 message /welcome.msg login 則登入成功後會顯示歡迎訊息 訊息檔中使用的參數: %T FTP Server系統的時間 %C 目前所在目錄名稱 %E 管理員的E-Mail %R FTP Client的主機名稱 %L FTP Server的主機名稱 %U Client登入的帳號 %M 最大連線人數 %N 目前連線人數 l上傳設定 upload /var/ftp/guestftp /upload yes guest guest dirs 說明:/var/ftp/guestftp FTP 所在目錄 /upload 上傳目錄 Yes 允許上傳 guest guest owner group dirs 允許建立目錄 密碼檢查 passwd-check <none|trivial|rfc822> <enforce|warn> 檢查方式: none 不檢查密碼 trivial 密碼中需有”@” rfc822 要符合rfc822規定 回應: enforce 中斷與client的連線 warn 顯示警告訊息 l 匿名FTP根目錄 anonymous-root <目錄> l 訪客根目錄 guest-root <目錄> l 限制 user 只能在 /home 目錄下活動 guest-root <FTP目錄> restricted-uid l 拒絕某IP或DomainName進入 deny <IP> <訊息檔> ex: deny *.*.edu.tw /msgdeny deny 140.92.0.0/16 /msgdeny l利用real, guest, anonymous三種身分與client來源IP/HostName來定義群組,以便於管理。 class <class> <typelist> <addrglob> ex: class admin real *.pccu.edu.tw class local real, guest, anonymous *.pccu.edu.tw class remote real, guest, anonymous l 紀錄檔 log commands <類別> ex: log command real,anonymous 將類別為real與anonymous的連線時所下的指令,紀錄到紀錄檔去。 log transfers <類別> <directions> ex: log transfers real inbound,outbound 將類別為real的連線所下載/上傳的檔案全部紀錄到紀錄檔去。 l 限定某個類別在某時間的最大登入人數 limit <類別> <n> <times> <訊息檔> ex: limit local 100 Any1800-0100 /msgtoomany l 對類別設定其對於可否使用chmod, delete, overwrite, rename, umask等權限 chmod <yes|no> <類別> delete <yes|no> <類別> overwrite <yes|no> <類別> rename <yes|no> <類別> umask <yes|no> <類別> ex: chmod yes class=admin delete no anonymous, real overwrote no class=remote 設定檔/etc/ftphost l 允許某使用者從某個IP登入 allow <使用者ID> <IP> ex: allow John 140.137.161.86 l 不允許某使用者從某個IP登入 deny <使用者ID> <IP> ex: deny Mary 140.137.161.80 其他管理指令: ftpwho :查閱目前登入FTP_Server的使用者。 ftpcount:計算目前登入的人數。 ftpshut :關閉FTP_Server。單純關閉ftp,當該Server同時提供其他服務時,可以選擇僅關避FTP SERVER,以保留其他服務。 ftpshut:<-l 分鐘><-d 分鐘><絕對時間><警告訊息> 10-4 ProFTP簡介 目前大多數站台的 FTP 服務,以採用 WU-FTPD 伺服器程式架設者居多,而且WU-FTPD 在效能上,一直有不錯的表現,程式版本更新的速度也不慢,不過,它卻不是一個夠安全的系統。 如果想找一個不錯的 FTP 伺服程式來取代 WU-FTPD, ProFTPD是另一個不錯得選擇!ProFTPD 的發展,一開始,便是定位在:成為一個安全且容易設定的 FTP 伺服器程式。 以下是 ProFTPD 的特點: · 單一設定檔,設定風格接近 Apache 設定檔 · 每一目錄可用 .ftpaccess 來控制(類似 Apache 的 .htaccess) · 易於設定多重虛擬主機以及匿名FTP · 可讓管理人員選擇 standalone 或 inetd 的執行方式 · 匿名FTP不需要額外的目錄結構 · 原始碼開放,沒有 SITE EXEC 指令,安全性可受監控 · 根據系統檔案權限,可隱藏目錄或檔案 · 以較低權限的身份來執行,降低萬一被攻入的危險 · 記錄檔支援 utmp/wtmp,並和 wu-ftpd 相容,記錄格式也可擴充 支援 shadow password 10-5 開始安裝 1.以proftpd-1.2.4.tar.gz安裝為範例 步驟: [root@linux root]#tar –zxvf proftpd-1.2.4.tar.gz [root@linux proftpd-1.2.4]#cd proftpd-1.2.4 [root@linux proftpd-1.2.4]#./configure 執行組態設定檔make [root@linux proftpd-1.2.4]#make install 2. ProFTPD 設定檔的位罝 用 RPM 檔安裝的 ProFTPD 設定檔在 /etc/proftpd.conf 若抓 tar.gz 檔回來安裝的,則設定檔在 /usr/local/etc/proftpd.conf . 3. 啟動ProFTP ProFTP啟動方式有兩種,一種是standalone,另一種則為inetd,若此Server為專門之FTP則建議採用Standalone方式啟動,若還有其他服務則建議採inetd啟動其效能較佳。 以下為inetd方式作為範例: 修改 /usr/local/etc/proftpd.conf ServerType inetd 在 /etc/xinedtd.d/ 下建立 proftpd 檔,內容為 : Service ftp { disable = no ←預設為 yes,請改為 no socket_type = stream wait = no user = root server = /usr/local/sbin/proftpd } 10-6 proftpd.conf 的設定範例: # ServerName : 設定您的站台名稱 (”# ”號為註解) ServerName "MY FTP SITE" # ServerType : 設定 ProFTPD 的執行方式,可以是 standalone 或 inetd # 此處是 inetd ServerType inetd # DefaultServer 用來設定 unknown 的連接是否由預設的主機來處理 DefaultServer on # Port 21 是 FTP 標準的通道,inetd啟動的話無法變更port Port 21 # 檔案安全濾網值設為022 Umask 022 # 可避免 Dos 攻擊的設定 MaxInstances 30 # 執行時的身份/組別權限 User nobody Group nobody #設定檔案能被覆寫. <Directory /*> AllowOverwrite on </Directory> #針對特定目錄設定存取的限制,如上傳目錄 <Directory uploads/*> #予許來源讀取 <Limt READ> #Deny All Allow All </Limit> #允許來源儲存、建立目錄 <Limit STOR MKD> Allow All </Limit> </Directory> # 以下是匿名 FTP 的設定 <Anonymous ~ftp> User ftp Group ftp AnonRequirePassword off RequireValidShell off #將用ftp身份登入的user權限設為等同anonymous UserAlias anonymous ftp # 設定匿名最大連線人數 MaxClients 10 #當使用者登入時顯示歡迎訊息 , welcome.mag為歡迎訊息檔名 #DisplayFirstChdir 是當切換目錄時的提示訊息 DisplayLogin welcome.msg DisplayFirstChdir .message #限制匿名使用者是有能寫入資料,此處設為不允許, Allow all 為允許 <Limit WRITE> DenyAll </Limit> </Anonymous> 存檔之後,重新啟動 inetd : /etc/rc.d/init.d/inet restart 10-7其他設定 設定一般user登入與否: <Limit Login> AllowAll 若不允許為 DenyAll </Limit> 設定一般user登入時的home目錄: DefaultRoot <目錄位置> 若要設定根目錄為自已的home目錄:讓使用者無法切換到別人的home目錄 DefaultRoot ~ 設定支援續傳: AllowStoreRestart on #若想使用Root身份登入,請加上: RootLogin On 隱藏版本訊息: ServerIdent On “” 設定一個IP的登入個數: MaxClientsPerHost 1 設定Log檔的位置和檔名: TransferLog <目錄位置><檔名> 匿名FTP來源限制: <Limit Login> Order Deny,Allow Deny from .evil.net , .otherevil.net Allow from all </Limit> 若發現使用 CuteFtp 等軟體連上FTP時,無法改變檔案屬性,在proftpd.conf加入 AllowChmod true 隱藏某Group/User的檔案: HideUser <使用者> / HideGroup <群組> 若設定完仍無法使用匿名登入,請確定在匿名使用者中,有加入: RequireValidShell off x0
|
引用 | 編輯
mnbmnb5266
2010-08-25 19:46 |
4樓
▲ |
教學是不錯,只不過我不接觸這個軟體所以暫時也是用不到,可惜啊
x0 |