失落的紀錄

2010-05-15

SlackWare 13 – vsFTPd 設定啟動

分類: Llinux — 番茄 @ 11:38

1.啟動 inetd 的 FTP 通訊協定

# cd /etc
# vi inetd.conf# ftp    stream    tcp    nowait    root    /usr/sbin/tcpd    vsftpd
去掉前面的 # 號
 
# kill -HUP inetd
讓 inetd 重新啟動

 

2.設定 vsFTPd 相關檔案

# cd /etc
# mkdir vsftpd
因為想把 vsftpd.conf 集中管理,所以建立一個 vsftpd 的資料夾。
 
# mv /etc/vsftpd.conf /etc/vsftpd/
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf -bk
建立一份 vsftpd.conf 的備份檔
 
# cd /etc
# lm -s /etc/vsftpd/vsftpd.conf vsftpd.conf
這樣可以將 
vsftpd.conf 放在 vsftpd 的資料夾內

 

3.建立 vsftpd.user_list 和 vsftpd.chroot_list 兩個檔案

建立 vsftpd.user_list 檔
# touch vsftpd.user_list
將系統帳號輸入此檔內,就是將 /etc/passwd 內,
不是使用者的帳號,輸入此檔內,也包含root,格式如下:
root
bin
daemon
....略
 
# touch vsftpd.chroot_list
需要瀏覽整個 Linux 資料夾的實體帳號,
輸入在裡面,如沒有,可以留空白

 

4.設定 vsftpd.conf

# vi /etc/vsftpd/vsftpd.conf
這台 FTP Server 設定如下
       a.不允許匿名登入
       b.實體使用者只能在自己的資料夾內移動 
       c.特殊帳號,不能登入,如機器帳號,root等
        
所以在 vsftpd.conf 內找
anonymous_enable=YES
改為 
anonymous_enable=NO#local_enable=YES
改為
local_enable=YES
(在 /etc/passwd 內的帳號才能以實體用戶的方式登入 vsftpd)
#write_enable=YES 改為 write_enable=YES(允許使用者具有寫入的-包括刪除與修改等功能)

[chroot_local_user],[chroot_list_enable],[chroot_list_file],這三個參數
設定 登入的帳號,是否可以瀏覽其他資料夾的權限
這邊用表格,來說明會比較清楚:

假設有一個帳號叫:TE-USER

chroot_local_user YES YES NO NO NO NO YES YES
chroot_list_enable NO YES NO YES NO YES NO YES
chroot_list_file 沒有輸入帳號或沒有設定此參數 有輸入TE-USER帳號
結果 有限制 有限制 無限制 無限制 無限制 有限制 有限制 無限制

有限制:TE-USER登入後,只會顯示該使用者的資料夾,並且該使用者的家目錄為根目錄。
無限制:TE-USER登入後,可以顯示全部資料夾,並且可以瀏覽全部資料夾。

---------------------------------------------------------------------------------

[userlist_deny],[userlist_enable],[userlist_file],這三個參數
設定哪些帳號可以登入此FTP Server ,這邊用表格,來說明會比較清楚:

假設有一個帳號叫:TE-USER

userlist_deny YES YES NO NO NO NO YES YES
userlist_enable NO YES NO YES NO YES NO YES
userlist_file 沒有輸入帳號或沒有設定此參數 有輸入TE-USER帳號
結果 登入 登入 登入 禁止 登入 登入 登入 禁止

登入:TE-USER帳號可以登入
禁止:TE-USER帳號可以不可登入

 

5.建立可登入 FTP 的帳號
在SlackWare 13 內當你下 useradd 時,只是將帳號建立起來,但
家目錄,以及 shell 都沒有設定起來,所以在增加帳號時,必須加參數。

# useradd -m -s /bin/bash 帳號
-m:建立使用者家目錄
-s shell:接這後面輸入一個 shell 如 -s /bin/bash
這樣帳號就可以登入vsFTPd 

 


vsftpd.conf 相關設定值:
/etc/vsftpd/vsftpd.conf 是伺服器最主要的設定檔,VSFTPD 使用者類別:

使用者類別 是否擁有帳號、
密碼及家目錄
登入後的目錄 是否能切換到家目錄以外的目錄
real 家目錄
restricted 家目錄
anonymous
(登入使用 anonymous 或 ftp)
/var/ftp

 

布林值選項
anon_mkdir_write_enable 啟用此選項 (=YES),匿名使用者可以建立子目錄,
但必須配合 write_enable=YES。
anon_other_write_enable 啟用此選項,匿名使用者具有上傳和建立子目錄之外的權限,例如刪除或更改檔名。
anon_upload_enable 啟用此選項,匿名使用者可在特定情況下上傳檔案,
但必須配合 write_enable=YES。
anon_world_readable_only 啟用此選項(預設),
匿名使用者僅可下載可閱讀(readable)檔案。
anonymous_enable 啟用此選項(預設),允許匿名使用者登入。
chown_uploads 啟用此選項,所有以匿名方式上傳的檔案,
都會套用選項「chown_username」指定的擁有人。
chroot_list_enable 啟用此選項,所有列於檔案 /etc/vsftpd/chroot_list 中的使用者,都不允許切換到家目錄以外的目錄。
chroot_local_user 啟用此選項,所有擁有帳號的使用者,
都不允許切換到家目錄以外的目錄。
dirmessage_enable 啟用此選項(預設),當使用者第一次進入新的目錄時,伺服器會顯示該目錄下名為 .message 的檔案內容;
若有需要,可利用選項「message_file」來修改預設檔名。
hide_ids 啟用此選項,目錄中所有檔案的擁有者及群組資訊都會被顯示為 ftp。
local_enable 啟用此選項,允許用有帳號的使用者登入。
no_anon_password 啟用此選項,匿名使用者登入時,不會被要求輸入密碼。
tcp_wrappers 啟用此選項,則會將 VSFTPD 與 tcp wrapper 相結合,因此可以利用檔案 /etc/hosts.allow 及 /etc/hosts.deny 來定義可連線或拒絕的來源位址。
userlist_deny 此選項與選項「userlist_enable」配合,決定檔案 /etc/vsftpd/user_list 中的使用者將被拒絕或允許登入。
userlist_enable 參考選項 「userlist_deny」。
write_enable 啟用此選項,允許使用者使用任何變更檔案系統的 FTP 指令,例如︰STOR、DELE、RNFR、RNTO、MKD、RMD、APPE 和 SITE 等。
xferlog_enable 啟用此選項(預設),所有上傳與下載的資訊將被完整記錄在檔案 /var/log/vsftpd.log 中;若有需要,可利用選項「xferlog_file」來修改預設檔名。

 

數字選項
anon_max_rate 匿名使用者進行連線時,允許的資料傳輸上限,
單位為 Bytes/Second,預設值為 0(表示無限制)。
anon_umask 匿名使用者新增檔案時的 umask 值,預設值為 077,
表示新增檔案的權限為 700。
idle_session_timeout 使用者閒置超過此時間,連線將被中斷,預設值為 300(秒)。
local_max_rate 擁有帳號使用者進行連線時,允許的資料傳輸上限,
單位為 Bytes/Second,預設值為 0(表示無限制)。
local_umask 擁有帳號使用者新增檔案時的 umask 值,預設值為 077。
max_clients 允許同時連線的用戶端數量上限,預設值為 0(表示無限制)。
max_per_ip 同一 IP 位址上,允許同時連線的數量上限,
預設值為 0(表示無限制)。

 

字串選項
anon_root 指定匿名使用者的登入目錄。
banner_file 指定系統歡迎訊息檔。若是啟用此選項,
檔案內容將取代選項「ftpd_banner」所定義的內容。
chown_username 指定匿名使用者所上傳檔案的擁有者名稱,預設值為 root,
但須與選項「chown_uploads」配合。
chroot_list_file 所有列於指定檔案中的使用者,
都不允許切換到家目錄以外的目錄,預設值為 /etc/vsftpd/chroot_list 。
ftp_username 指定匿名使用者登入時所使用的帳號,預設值為 ftp。
ftpd_banner 指定系統歡迎訊息字串,預設值為無。
local_root 指定擁有帳號使用者的登入目錄。
message_file 當使用者第一次進入新的目錄時,伺服器會顯示此指定檔案的內容,預設值為 .message,但須與選項「dirmessage_enable」配合。
userlist_file 參考選項 「userlist_enable」,預設值為 /etc/vsftpd/user_list。
xferlog_file 參考選項 「xferlog_enable」,預設值為 /var/log/vsftpd.log。

無迴響

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress