2./etc/ftpusers和/etc/ftphosts的設置
/etc/ftpusers是用來設定系統上的某些用戶不允許使用FTP傳送文件,/etc/ftphosts是用來設定某些主機不允許連接本FTP服務器的。這樣做的目的都是為了安全考慮。
/etc/ftpusers使用的范例如下:
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
限制某些用戶登入FTP服務器是出于系統安全的原因,例如要避免超級用戶登入系統。并且禁止某些和一些命令名相同的用戶進入FTP服務器。
/etc/ftphosts的示例如下:
# Example host aclearcase/" target="_blank" >ccess file
#
# Everything after a @##@# is treated as comment,
# empty lines are ignored
#allow <username> <addrglob> [<addrglob> ...]
# Only allow host(s) matching <addrglob> to log in as <username>.
#deny <username> <addrglob> [<addrglob> ...]
# Always deny host(s) matching <addrglob> to log in as <username>.
allow ideal *.linuxaid.com.cn 10.0.0.0/8
deny fred *.hacker.com 131.211.32.0/24
這里只允許ideal從域名以linuxaid.com.cn為后綴的主機及10.0.0.0/255.0.0.0的主機登錄進入FTP服務器;禁止fred從*.hacker.com和131.211.32.0/24登錄進入FTP服務器。這里的username若為anonymous或ftp都指匿名用戶。
3./etc/ftpconversions設置
該文件用來設定當用戶下載文件時應該做那些操作,例如壓縮、解壓縮等。文件內容如下所示:
:.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
: : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
:.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
: : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
: : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
: : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
: : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
: : :.crc:/bin/cksum %s:T_REG::CKSUM
: : :.md5:/bin/md5sum %s:T_REG::MD5SUM
文件設置說明:
:.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
表示對所有以".Z"結尾的文件使用/bin/compress -d -c"的方式解壓縮。
: : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
表示將傳送的文件壓縮為".Z"格式。
:.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
表示將所有以".gz"的文件用"/bin/gzip -cd"解壓縮。
: : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
表示將傳送的文件壓縮為".gz"格式。
: : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
表示將要傳送的文件用"tar"打包。
: : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
表示將要傳送的文件壓縮成"tar.Z"的格式
: : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
表示將要傳送的文件壓縮成"tar.gz"的格式
: : :.crc:/bin/cksum %s:T_REG::CKSUM
表示將要傳送的文件進行CRC校驗處理。
: : :.md5:/bin/md5sum %s:T_REG::MD5SUM
表示將要傳送的文件進行md5校驗。
其實安裝FTP以后缺省的配置文件已經將常用的壓縮也解壓縮的程序定義進去了,所以一般不需要修改這個文件的內容,但可以根據實際需要修改內容的順序。例如,用戶要下載一個"file.tar.gz"的文件,但此FTP上沒有這個文件,但是有文件file,那么FTP服務器會將file打包壓縮為file.tar.gz在傳遞給用戶。若服務器上沒有file這個文件,服務器會按照/etc/ftpconversions文件中指定的順序去搜索,,以這個例子而言,會依次搜索file.Z、file.gz、file.tar、file.tar.Z、file.tar.gz、file.crc、file.md5文件,將先找到的傳送給用戶。所以文件/etc/ftpconversions的內容可以按照需要而改變順序。
到現在為止,已經安裝配置成功了一個提供匿名訪問的FTP服務器,可以連接上去測試功能是否符合需要。
4.wu-ftp的相關程序
ftpcount這個程序可以統計當前連接的用戶數目,并給出上限,如:
[root@linux doc]# ftpcount
Service class friend - 0 users (no maximum)
Service class local - 0 users (no maximum)
Service class outworld - 0 users (no maximum)
這里正在連接的屬于local的有0個人,沒有上限。其他幾個類別含義一樣。
[root@linux doc]# ftpwho
Service class friend:
- 0 users (no maximum)
Service class local:
- 0 users (no maximum)
Service class local:
- 0 users (no maximum)
當前三個類別都沒有用戶連接。
ftpshut
該程序主要用來生成/etc/shutmsg,也就是前面/etc/ftpaccess中設定的shutdown命令,ftpshut的使用格式如下:
ftpshut [ -V ] [ -l min] [ -d min] time [ warning-message ... ]
-l 該選項設置在關閉FTP服務器以前多少分鐘停止用戶的連接請求
-d 該選項設置在關閉FTP服務器以前多少分鐘將已經連接的用戶斷線
time 設置關閉FTP服務器的時間,例如希望在晚上10點關閉FTP服務器,則為2200
warning-message 斷線以前顯示給用戶的告警信息
例如:
[root@linux /etc]# ftpshut -l15 -d5 1800 "ftp server will shutdown"
[root@lix /etc]# less shutmsg
2000 04 07 18 00 0015 0005
ftp server will shutdown
五、開設只能FTP的帳戶
很多時候需要開設一些只允許ftp到服務器的用戶,實現方法如下:
1、按照通常的方式為這些用戶在系統上開設帳戶。
[root@ns /etc]#useradd ftp_user1
[root@ns /etc]#chmod 700 /etc/shadows
[root@ns /etc]#vi /etc/shadows
刪除項:
ftp_user1:!!:11113:0:99999:7:-1:-1:134537372
中第二個字段的"!!",然后再以ftp_usre1用戶登錄,就不會詢問口令,然后使用passwd為該用戶設定口令
2、使用vi修改/etc/shells文件,添加/dev/null項或/bin/passwd,如下所示:
[root@ns /etc]# cat shells
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
修改為:
[root@ns /etc]# cat shells
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
/dev/null
/bin/passwd
2、使用vi打開文件/etc/passwd
3、將那些只允許FTP的系統的用戶的登錄shell改為/dev/null(若不允許用戶修改其口令)或/bin/passwd(若允許用戶修改其口令字),如下所示:
ftp_user1:x:503:504::/home/ftp_user1:/bin/bash
改為:
ftp_user1:x:503:504::/home/ftp_user1:/dev/null
或
ftp_user1:x:503:504::/home/ftp_user1:/bin/passwd
這樣,則該用戶只能使用如pop3、FTP等服務,而不能通過te.net登錄到系統中。
六、設置虛擬FTP主機
所謂虛擬匿名主機,指一臺機器上有多個IP地址,并且可以向外提供過個匿名的FTP服務器,這些服務器在邏輯上是獨立的,有不同的訪問控制表,不同的下載內容。下面是設置一臺虛擬FTP服務器的步驟:
1. 首先對本地某個網卡設置別名IP地址,即在一塊網卡上綁定多個IP地址:如你的內部FTP主機為192.168.0.4
你可再綁定一個IP地址如下:
/sbin/ifconfig eth0:0 192.168.0.5 up //向接口添加一個新的IP
/sbin/route add -host 192.168.11.7 eth0:0 //增添路由信息
2. 先創建目錄/home/virtualftp和/var/log/virtualftp。生成banner文件/home/virtualftp/banner_message修改FTP服務器的主配置文件/etc/ftpaccess,增加對虛擬FTP的支持信息,加下面的行到該文件中:
virtual 192.168.0.5 root /home/virtualftp
virtual 192.168.0.5 banner /home/virtualftp/banner_message
virtual 192.168.0.5 logfile /var/log/virtualftp/xferlog
上面三條指示分別設置的根目錄,的記錄文件,的登錄顯示信息。上面路徑和文件名可隨便定義。
3. 拷貝所需要的匿名FTP文件,主要是/lib,/etc,/bin目錄
# cp /home/ftp/* /home/virtualftp -a
4.在DNS中定義192.168.0.5,設置成虛擬FTP的域名映射。