一個多樣化的實例
好了,大致上 Wu FTP 的設定您應該可以理解了吧!那麼現在出個例題給大家思考一下,假如我需要達成底下的規範,那麼應該如何設定Wu FTP 相關的檔案呢?
將群組設定成為 real, guest, anonymous 這三個群組分別控制!(用 class 來區分喔!);
用戶身份有 real, guest, anonymous,其中, real 僅允許來自 140.116.0.0/16 這個 B class 的網域,其他兩者雖可來自於所有網域,但不允許來自 61.141.0.0/16 這個 B Class 的網域;
允許使用 passive ports ,port number 設定為 65501 - 65510 這 10 個 ports ;
系統裡面小於 499 以及大於 65000 的 UID 與 GID 都被拒絕登入;
任何時刻,最大線上人數限制為 30 人,其中, guest 最多 10 人,而 anonymous 最多為 5 人;
實體用戶 mysiteuser 被限制他僅能在他的家目錄當中工作,無法離開其家目錄,至於其他實體用戶則不在此限;
我有兩個 WWW 的個人用戶 wwwuser1 與 wwwuser2 ,我將這兩個用戶訂為 guest 身份,為使他的網頁資料傳輸方便,將他的 FTP 主機的家目錄設定為他的 WWW 家目錄,亦即為 /home/wwwuser1/public_html ,並且設定傳輸速度最大為 100 Kbytes/second。注意,我的 ftp 使用者預設的群組為自行建立的 myftpusers;
我有一個 FTP 交換連結用戶 ftpuser,我與他交換連結,連上下傳都需要注意!上下傳比例為 1.0 ,並且限制他傳輸的速度為 64 Kbytes/second ;
其他的匿名登入者的家目錄設定為 /var/ftp 這個目錄當中,並且限制 anonymous 一次連線最久 10 分鐘,而且最多僅能下載 20 個文件,以及 10MB 的資料量,此外,傳輸速度最快僅能到達 32 Kbytes/second。至於上傳的設定方面,僅允許上傳到 /var/ftp/upload 這個檔案,此外,預設檔案擁有者為 ftp 群組是 sys,上傳速度最快為 16 Kbytes/second;
似乎很麻煩,那我們就來一個一個的設定吧!
先設定使用者的帳號:
上面的案例中,我們共有 wwwuser1, wwwuser2, ftpuser 與 mysiteuser 這四個人,由於 mysiteuser 為實體用戶,所以不要去改他的登入 shell ,至於 wwwuser1, wwwuser2 與 ftpuser 由於他的群組需建立成為 myftpusers ,所以需要設定一下啦!假設 myftpusers 尚未建立,所以得先建立群組才能建立使用者!並且這兩個使用者單純的想要使用 FTP 而已,所以直接加上 shell 為 /sbin/nologin: [root@test root]# groupadd myftpusers
[root@test root]# useradd -m -g myftpusers -s /sbin/nologin wwwuser1
[root@test root]# useradd -m -g myftpusers -s /sbin/nologin wwwuser2
[root@test root]# useradd -m -g myftpusers -s /sbin/nologin ftpuser
[root@test root]# passwd wwwuser1 <==不要忘記給三個人密碼!
開始設定我們的 /etc/ftpaccess 內容:
設定的項目我們將他分為(1)主機設定(2)實體用戶設定(3)訪客(4)匿名者等部分來設定囉: [root@test root]# vi /etc/ftpaccess
# 底下的資料為 VBird 的 FTP 主機設定範例
#
########################################################################
# 1. 針對 Server 的設定項目:
########################################################################
# 1.1 針對群組的設定項目
class all real,guest,anonymous 140.116.0.0/16
class allreal real 140.116.0.0/16
class allguest guest !61.141.0.0/16 *
class allanonymous anonymous !61.141.0.0/16 *
# 1.2 其他主機相關的設定項目
email vbird@tsai.adsldns.org
hostname tsai.adsldns.org
shutdown /etc/shutmsg
loginfails 3
log transfers anonymous,guest,real inbound,outbound
passwd-check rfc822 warn
# 1.3 訊息管理
readme README* login
readme README* cwd=*
message /welcome.msg login
message .message cwd=*
# 1.4 指令管理
compress yes all
tar yes all
chmod no guest,anonymous
delete no anonymous
overwrite no anonymous
rename no anonymous
# 1.5 人物登入管理
deny-uid %-499 %65000-
deny-gid %-499 %65000-
allow-gid myftpusers
# 1.6 時間相關的設定值
timeout data 2400
timeout idle 1800
timeout maxidle 1800
# 1.7 主機最大連線人數設定
limit all 30 Any /etc/ftpmaxnumber
# 1.8 被動的 port 設定
passive ports 0.0.0.0/0 65501 65510
########################################################################
# 2. 針對實體用戶的設定
########################################################################
restricted-uid mysiteuser
########################################################################
# 3. 針對 guest 用戶的設定
########################################################################
limit allguest 10 Any /etc/ftpmaxnumber
guestuser wwwuser1 wwwuser2 ftpuser
# 3.1 www users
guest-root /home/wwwuser1/public_html wwwuser1
guest-root /home/wwwuser2/public_html wwwuser2
throughput /home/wwwuser1/public_html * * 102400 - *
throughput /home/wwwuser2/public_html * * 102400 - *
# 3.2 FTP users
guest-root /home/ftpuser ftpuser
ul-dl-rate 1 allguest
throughput /home/ftpuser * * 64000 - *
########################################################################
# 4. 針對 anonymous 用戶的設定
########################################################################
limit allanonymous 5 Any /etc/ftpmaxnumber
anonymous-root /var/ftp
limit-time anonymous 10
file-limit out 20 allanonymous
data-limit out 10000000 allanonymous
throughput /var/ftp * * 32000 - *
throughput /var/ftp /upload * 16000 - *
upload /var/ftp/upload yes ftp sys 0666
建立可上傳目錄與使用者家目錄:
由於我們設定了 /var/ftp/upload 為可上傳的目錄,所以需要動手設定一下囉: [root@test root]# mkdir /var/ftp/upload
[root@test root]# chown ftp:sys /var/ftp/upload
[root@test root]# mkdir /home/wwwuser1/public_html
[root@test root]# mkdir /home/wwwuser2/public_html
[root@tset root]# chown wwwuser1:myftpusers /home/wwwuser1/public_html
[root@tset root]# chown wwwuser2:myftpusers /home/wwwuser2/public_html
修訂一下 /etc/shells:
必須要確認 /sbin/nologin 在這個檔案內 [root@test root]# vi /etc/shells
/bin/bash
....(略)...
/sbin/nologin
修改一下歡迎畫面檔案:
你可以建立一下歡迎畫面喔!檔案有這些: /welcome.msg
/home/wwwuser1/public_html/.message
/home/wwwuser2/public_html/.message
/var/ftp/welcome.msg 如果想要一勞永逸,那麼將 /welcome.msg 這個檔案複製到 /etc/skel/welcome.msg 以及 /etc/skel/public_html/.message 則是一個不錯的主意!
重新啟動 xinetd 囉!
大致的流程就是這樣啦! ^_^