檔案傳輸協定 (FTP)

Very Secure FTP Daemon (VSFTPD)

在 Red Hat 中使用的 FTP 套件是 vsftpd,它提供了兩種方式的取存:

暱名取存:使用者可用共用的帳號 ftp,密碼 ftp;或帳號 anonymous,密碼為電子郵件來登入,預設的根目錄是 /var/ftp。

使用者取存:使用私有的帳號密碼來登入 FTP。

只要有安裝 vsftpd 的 RPM 套件,直接啟動:
# /etc/init.d/vsftpd start
正在啟動 vsftpd 中的 vsftpd:                               [  確定 ]

VSFTPD 的記錄檔在 /var/log/xferlog 中。

VSFTPD 的設定檔在 /etc/vsftpd/vsftpd.conf,預設暱名是可以取存的,如果要關閉暱名取存,可在 /etc/vsftpd/vsftpd.conf 中將設定關閉:
anonymous_enable=NO (關閉暱名取存,等號的左右兩邊不能有空白)

如果要開放暱名上傳,可設定:
anon_upload_enable=YES (開放暱名上傳)

如果考量到安全性,開放暱名上傳最好是在 /etc/vsftpd/vsftpd.conf 中設定:
anon_upload_enable=YES (開放暱名上傳)
chown_uploads=YES (上傳後檔案改變擁有者)
chown_username=nobody (檔案的擁有者)
anon_umaks=077 (上傳後的檔案暱名者都無法看到)
製作可供上傳的目錄:
# cd  /var/ftp (/var/ftp 的目錄是 root.root 644,ftp 無法寫入)
# mkdir  incoming (建立上傳目錄)
# chown  root.ftp  incoming (改變擁有者讓 incoming 目錄屬於 ftp 群組)
# chmod  730  incoming (設定成 -wx 讓 ftp 群組可寫入 incoming,但是因為沒有 r 的權限,所以無法列出其中的內容)

開放系統帳號 (/etc/passwd 中的帳號) 登入,設定 /etc/vsftpd/vsftpd.conf:
local_enable=YES (關閉則改成 NO)

禁止登入的系統帳號:
輸入在 /etc/vsftpd/ftpusers 內即可,預設已有一些帳號無法登入:
# cat /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

限制使用者登入後只能在自己家目錄下活動,設定:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

最後將限制的使用者寫入 /etc/vsftpd/chroot_list 之中。