在AIX下啟動FTP伺服器

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0


在AIX下啟動FTP伺服器-默認FTP和wu-ftpd
 
 平台:IBM AIX
 
 一:默認FTP
 
 IBM AIX操作系統在安裝完之後,查看/etc/inetd.conf文件,會有一行
 ftp stream tcp6 nowait root /usr/sbin/ftpd ftp
 這表明系統會默認啟動AIX自帶的ftpd,使AIX提供標準的ftp服務。但是AIX提供的ftp服務具有一定的局限性,例如普通用戶可以查看到/home下除了該用戶目錄之外的其他目錄以及根文件系統等,對用戶的控制不夠靈活等等。
 
 默認ftp 屬於inetd內的服務,/etc/initab ->rc.tcpip inetd 通過/etc/inetd.conf來配置是否運行
 lssrc -ls inetd
 startsrc -t ftp    配置沒有什麼太多說的
 startsrc -s tcpip 把所有tcpip子系統都起來,當然是inetd和inittab沒有關閉FTP情況下
 
 拒絕限制某些用戶訪問,編輯/etc/ftpusers添加需要拒絕的用戶,每用戶一行 For example:
 #more /etc/ftpusers
 guest
 當嘗試 ftp 登錄時,系統報錯:
 Name (localhost:root): guest
 530 User ql access denied.
 Login failed
 
 在AIX環境中,當用戶從Windows上傳文件到AIX伺服器時所傳文件的預設讀寫屬性為640(rw-r-----)。如想改變預設讀寫屬性為644,首先用vi編輯器打開/etc/inetd.conf文件,在"ftp"定義行的末尾加上"-u 033",然後刷新inetd進程:
 refresh -s inetd
 這就改變了ftp文件的預設屬性。
 
 作為客戶端,使用ftp自動傳輸文件
 1. 在用戶根目錄下創建文件.netrc
 2. 設置.netrc的屬性為600,owner 為ftp用戶
 3.定製.netrc的內容.如:
 machine

loginpassword
 macdef init
 get file1
 put file2
 ....
 quit
 
 註:.netrc必須以一空行結束。
 
 二:AIX下的wu-ftp
 
 一個增強的FTP伺服器軟體——wu-ftpd
 本文向AIX用戶介紹了世界上廣泛使用的ftp伺服器軟體wu-ftpd的安裝以及系統配置。
 
 這裡推薦一個功能比較強大的ftp伺服器端軟體wu-ftpd,可以彌補ftpd功能上的不足。 熟悉Linux的用戶比較清楚,Linux下默認的ftp伺服器軟體就是wu-ftpd。這個軟體是由華盛頓大學(Washington University-http://wuarchive.wustl.edu/)開發的。它具有非常強大的功能:
 1) 可以在用戶下載文件的同時對文件做自動的壓縮或解壓縮操作;
 2) 可以對不同網路上的機器做不同的存取限制;
 3) 可以記錄文件上載和下載時間;
 4) 可以顯示傳輸時的相關信息,方便用戶及時了解目前的傳輸動態;
 5) 可以設置最大連接數,提高了效率,有效地控制了負載。
 
 您可以在IBM Linux Toolbox網站上下載到:
 http://www-1.ibm.com/servers/aix/products/aixos/linux/altlic.html。IBM提供的wu-ftpd最新版本是2.6.2。
 
 一、wu-ftpd的安裝。
 
 從IBM網站上下載到的wu-ftpd是rpm格式的,安裝前需要安裝fileutils包,同樣可以從IBM Linux Toolbox網站上下載到。在安裝完后,您可以找到文件/usr/sbin/wu.ftpd,這個文件就是用來替換原來的ftpd的ftp伺服器進程。為了在啟動inetd的時候自動啟動wu-ftpd,需要將/etc/inetd.conf中ftp stream tcp6 nowait root /usr/sbin/ftpd ftp改為ftp stream tcp6 nowait root /usr/sbin/wu.ftpd ftp,然後用refresh -s inetd刷新inetd進程。安裝好以後,可以用/usr/sbin/ckconfig命令來檢查是否已經正確安裝。此時就可以使用wu-ftpd了。您可以用lssrc -t ftp隨時列出wu-ftpd的狀態。
 wu.ftpd命令還有一些參數,這裡做以簡要說明:
 -d 當FTP伺服器出錯時,將錯誤入系統的syslog中;
 -l 將每次FTP客戶端進行連接的信息記錄入系統的syslog中;
 -t 設置FTP客戶端連接幾分鐘無操作就切斷連接;
 -a 使wu-ftp使用/etc/ftpaccess的設定;
 -A 使wu-ftp不使用/etc/ftpaccess的設定;
 -L 將FTP客戶端登錄后所執行的程序記錄在系統的syslog中;
 -I 將FTP客戶端上載文件的日誌記錄在/usr/adm.xferlog文件中;
 -o 將FTP客戶端下載文件的日誌記錄在/usr/adm/xferlog文件中。
 
 二、wu-ftpd的配置。
 
 wu-ftpd主要有以下6個配置文件:
 ftpaccess(主配置文件,控制存取許可權)
 ftpconvertions(配置文件壓縮/解壓縮轉換)
 ftpgroups(設定ftp自己定義的組)
 ftphosts(設定個別的用戶許可權)
 ftpservers(設定不同IP/Domain Name以對應到不同的虛擬主機)
 ftpusers(設定哪些帳號不能用ftp登錄)
 下面就文件中的一些常見參數做以說明。
 
 1、/etc/ftpaccess(wu-ftpd的主要配置文件)
 class--定義群組,用法如下:
 class<種類><用戶地址>[<用戶地址>……]
 由class定義的組用戶才可以登錄進ftp,可以使用多層式的class來限制哪些組的用戶能夠從哪些地方登錄。有三個重要的類,real、anonymous和guest。real如果沒有列在定義中,那麼這台機器中任何真實的用戶都無法用自己的帳號連上來(真實用戶是指在主機上擁有自己帳號的用戶)。anonymous如果沒有定義,就表示不讓沒有帳號的的人連上來。如果有定義guest,那麼guest組的人就可以上來。另外<用戶地址>是指ftp上來的用戶會用到的IP地址,則可自行設定。
 以下是一些例子:
 class all real,guest,anonymous *
 定義了一個名為all的類,包含三種人,所有IP的登錄用戶,也就是任何人都可以登錄ftp。
 class local real localhost loopback
 local這個類的意思是只有real的用戶可以從本機機器連上來 。
 class remote guest,anonymous *
 remote這個類包含了從任何地方上來的guest和anonymous用戶,但是real用戶不能登錄。
 class rmtuser real !*.example.com
 rmtuser這個類包含了任何遠程的(除了example.com)真實用戶 ,也就是說example.com是在"黑名單"上的。
 autogroup--自動對應組,用法如下:
 autogroup[……]
 因為在UNIX中沒有類(class)的概念,只有組(group)的概念。對用戶的控制都是基於組的。當定義好的那些同屬於一個類的用戶,一旦登錄上來就會被對應到一個相應的組下面,這樣你就可以用Unix的文件許可權對某一群人做限制。
 deny--拒絕某些地址登錄,用法如下:
 deny<拒絕登錄的地址><信息文件>
 禁止某些機器登錄,並顯示<信息文件>。例如:
 deny 210.62.146.*:255.255.255.254 /etc/reject.msg
 在reject.msg中您可以給出拒絕登錄的理由等等。
 guestgroup--設定訪客群
 guestuser--設定訪客帳號
 realgroup--設定真實組
 realuser--設定真實帳號
 defumask--設定某class的umask,用法如下:
 defumask[]
 umask是建立文件時該文件的的許可權掩碼,這對於上傳文件很重要。
 timeout--設定登錄超時,用法如下:
 timeout accept<秒>
 接受登錄超時,預設120秒
 timeout connect<秒>
 登錄建立超時,預設120秒
 timeout data<秒>
 數據傳送超時,預設1200秒
 timeout idle<秒>
 用戶發獃超時,預設900秒
 file-limit--限制某class只能傳幾個文件,用法如下:
 file-limit[][]
 對某個類用戶存取文件的數目,包含了in(上傳)、out(下載),total raw代表整個傳輸的結果,不光是數據文件。例如:
 file-limit out 20 testftp
 限制testftp用戶最多只能下載20個文件
 byte-limit--限制某class只能傳幾個位元組,用法跟file-limit相似
 limit-time--限制一個登錄只能持續多久,用法如下:
 limit-time{*|anonymous|guest}<分鐘>
 為了避免有人在ftp站上不下來,可以用這個方法限制用戶的上線時間,例如:
 limit-time guest 5
 讓guest帳號的用戶只能用5分鐘
 limit--限制某class能同時幾人上線,用法如下:
 limit<登錄數目><時間區段><額滿信息文件>
 設定某個class在某一時間區段內最多能夠幾人同時上線,後面是當超過登錄數目時要顯示的信息。例如:
 limit all 32 Any /home/ftp/etc/toomanyuser.msg
 限制所有登錄在任何時間只能有32個用戶,超過則拒絕登錄並顯示信息
 limit levellone 5 Any2300-0600 /home/ftp/etc/toomanyuser.msg
 限制levellone這個class的用戶在23:00到6:00這段時間內只能有5人登錄
 noretrieve--設定哪些文件不可下載
 noretrieve[absolute/relative][class=]…[-][<文件名>…]
 absolute或relative指文件是用絕對路徑還是相對路徑
 allow=retrieve--設定哪些文件可以下載
 allow[absolute/relative][class=]…[-][<文件名>…]
 loginfails--設置登入錯誤可嘗試的次數
 當用戶登錄時可能輸入錯誤ID或密碼,這個設定可以讓用戶輸入錯誤幾次以後就斷線。
 greeting--顯示Server的版本信息,用法如下:
 greeting
 當用戶登入畫面顯示的server信息,full是預設值,包含版本號以及hostname,brief只有hostname,而terse只有「FTP server ready」的信息。
 barnner--設定未進入Login畫面之前用戶看到的信息,用法如下:
 banner<文件路徑>
 這裡敘述了在用戶登入時,在還沒打ID/Password之前要出現的信息。文件路徑指的是相對於真實的路徑,而不是相對於ftp的根目錄。
 host--設定ftp主機名
 email--指定ftp管理者的email地址
 message--信息文件的設定,用法如下:
 message<文件>{<何時>{……}}
 這裡的文件的路徑是相對於ftp的根目錄的,「何時」是指當你做了什麼動作之後的反應,有幾個選擇:
 login(登入時)
 cwd=<目錄>(進入某目錄時)
 class 名稱是前面已經定義過的,允許你的信息只對哪些人發出。
 而信息文件的內容除了文字以外,還可以使用以下一些事先定義好的代號:
 %T(本機時間)
 %F(目前分區所剩餘的空間)
 %C(目前所在的目錄)
 %E(管理者的E-mail)
 %R(客戶端主機名稱)
 %L(本機主機名稱)
 %U(用戶名稱)
 %M(與我相同class用戶允許多少人登錄)
 %N(與我相同class用戶目前有多少人登錄)
 %B(絕對磁碟限制大小,目前分區(單位blocks))
 %b(preferred磁碟限制大小,目前分區(單位blocks))
 %Q(目前已使用的blocks)
 %I(最大可使用的inodes(+1))
 %i(Preferred inodes限制)
 %q(目前使用的indoes)
 %H(超量使用磁碟空間的時間限制)
 %h(超量使用文件數目的時間限制)
 readme--通知用戶哪些README文件已經更新
 log commands--記錄用戶所使用過的命令,用法如下:
 log commands<用戶種類>
 log transfers--記錄用戶所傳輸的文件,用法如下:
 log transfers<用戶種類><傳輸方向>
 設定有哪些類型的用戶傳輸文件需要記錄,包含了inbound(用戶上傳)和outbound(用戶下載),例如:
 log transfers anonymous,guest inbound,outbound
 log security--記錄安全性,用法如下:
 log security<用戶種類>
 特別用於記錄某類用戶關於noretrive、notar等有關安全性的記錄
 log syslog--記錄到系統的syslog文件
 alias--設定目錄別名,用法如下:
 alias<別名字元串><目錄>
 cdpath--設定cd更換目錄搜索順序
 shutdown--通知用戶要關站了
 shutdown<信息文件>
 如果信息文件存在的話,當這個文件指定的某時間以後,就會拒絕登錄並切斷已有的登錄,等時間一到就關機。這個信息文件的格式如下:
 <年><月><日><時><分><拒絕倒數><斷線倒數><文字>
 chmod--設定是否可以改變文件許可權
 delete--設定是否可以刪除文件
 overwrite--覆蓋文件
 rename--重命名文件
 umask--允許設定umask
 passwd-check--設定anonymous FTP的密碼檢查程度,用法如下:
 passwd-check()
 設定對anonymous ftp用戶的密碼是否檢查,none表示不檢查,trivial為包含@的任意密碼,rfc822則表示密碼要遵循RFC822格式,enforce表示密碼檢查不過不允許進入,warn表示密碼檢查不過只出現警告信息。
 deny=email--拒絕特定的email當密碼
 path-filer--攝定哪些文件名不可使用
 path-filer<錯誤信息文件><允許字元><不允許字元>
 upload--設定upload許可權
 upload[absloute/relative][class=]…[-]<設定的目錄> >[dirs/nodirs][d_mode]
 用來對我們要設定的目錄做許可權設定:
 absoulte/relative使用絕對路徑或是相對路徑
 class=指定某個class
 root-dir指的是對哪些root-dir的人,也就是chroot后的登入目錄,應用這個規則
 設定的目錄指的就是我們要限制的目錄
 yes/no指得是能否在此目錄下開新文件
 owner,group指出是開出來的文件擁有者及組
 Mode指的是文件許可權
 dirs/nodirs指的是能否開新目錄
 d_mode設定建立新目錄時目錄的許可權,如果不設定會根據mode來設定
 thoughput--控制下載速度
 thoughput<子目錄列表><文件><遠端地址列表>
 對遠端的地址,控制他抓某個子目錄下的某些文件時的速度,例如:
 thoughput /e/ftp * * oo - *
 thoughput /e/ftp /sw* * 1024 0.5 *
 thoughput /e/ftp sw* readme oo - *
 thoughput /e/ftp sw* * oo - *.foo.com
 以上的設定「oo」表示不限制bytes/sec,「-」或是「1.0」都是代表一倍。第一行的意思是說,在/e/ftp下面的文件不限制下載速度;第二行說,在/sw*下面的任何文件限速為1024bytes/sec*
 0.5=512bytes/sec;第三行又把readme文件的限速取消;最後一行則對*.foo.com開放全速。
 anonymous-root--對某class設定匿名用戶的根目錄
 anonymous-root[]
 guest-root--預設一個guest用戶根目錄
 guest-root[]
 其中用於指定uid的範圍
 deny-uid,deny-gid--拒絕某段UID(GID)範圍
 allow-uid,allow-gid--允許某段UID(GID)範圍
 restricted-uid,restricted-gid--限制用戶不能離開他的登錄目錄
 unrestricted-uid,unrestricted-gid--用戶可以離開他的登錄目錄
 dns refuse_mismatch--設定DNS查到名稱與用戶設定不符的動作
 dns refuse_mismatch<信息文件>[override]
 當用戶使用未註冊IP時,拒絕他的登錄,override則是不理會錯誤而讓他登錄,信息文件則是我們要給用戶看的。
 
 2、/etc/ftphosts
 
 ftphosts文件其實跟ftpaccess裡面的access,deny很像,它是特別用來設定某些ID的登錄,它沒有class定義,所以必須是真實用戶。
 allow|deny<用戶><地址>[<地址>……]
 以下是一些例子:
 allow rose 140.0.0/8
 deny jack 140.123.0.0:255.255.0.0
 允許rose從140.*.*.*進來,拒絕jack從140.123.*.*上來。
 
 3、/etc/ftpservers
 
 這個文件控制了當你有不同的IP/hostname的時候,進來的登錄使用哪一個配置文件。例如:
 10.196.145.10 /etc/ftpd/ftpaccess.somedomain/
 10.196.145.200 /etc/ftpd/ftpaccess.someotherdomain/
 some.domain internal
 10.196.145.20 /etc/ftpd/config/faqs.org/
 ftp.some.domain /etc/ftpd/config/faqs.org/
 
 4、/etc/ftpusers
 
 在這個文件里記錄的用戶禁止使用FTP。
 
 5、/etc/ftpgroups。
 
 給SITE GROUP指令使用,在線切換group。SITE EXEC容易造成安全漏洞,一般不建議開放。
 
 6、/etc/ftpconversions
 
 用來做tar、compress、gzip等動作指令配置文件,只要用預設即可,如果你不開放即時壓縮打包,也可以把內容清除。
 
 三、wu-ftpd的一些相關命令。
 
 安裝完wu-ftpd之後,會在/usr/bin下安裝幾個有關ftp管理的命令:
 ftpcount:
 ftpcount命令可以統計出當前連接到FTP伺服器上的用戶數目,並且同時列出上限。
 命令輸出如下所示:
 Service class local ---0 --Users(20maximum)
 Service class remote --5 --Users(100maximum)
 ftpwho:
 ftpwho命令可以列出當前連接的用戶的詳細情況。
 ftpshut:
 ftpshut命令用於生成一個在/etc/ftpaccess中設置的shut.msg文件,用於關機設定。ftpshut命令的格式為:
 Ftpshut <-l min=""> <-d min=""> time <說明>
 -l 這個參數設定在關閉FTP伺服器功能前多少分鐘時停止用戶的連接;
 -d 這個參數設定在關閉FTP伺服器功能前多少分鐘時切斷用戶連接;
 time 指定關閉FTP伺服器的時間。例如6:20分則寫為0620;
 
 四、有關wu-ftpd的一些說明。
 
 wu-ftpd是免費軟體,源代碼開放,因此IBM公司不負責該軟體的維護和技術支持。目前在wu-ftpd上已經發現了一些安全漏洞,wu-ftpd一直在完善中,因此對於使用wu-ftpd造成的一切直接和間接損失,IBM公司不負任何責任。




[火星人 ] 在AIX下啟動FTP伺服器已經有2231次圍觀

http://coctec.com/docs/linux/show-post-203701.html