FREEBSD:VSFTP的安裝和配置

1、預備工做: 
1.新建目錄 
mkdir /usr/share/empty 
mkdir /var/ftp 
2.改變目錄全部者和權限 
chown root:wheel /var/ftp(若是是Linux用chown root:root /var/ftp) 
chmod og-w /var/ftp (此命令是取消其餘用戶的寫權限) 
2、安裝VSFTP 
1.用tar包安裝 
tar zvf vsftpd-2.0.1.gz.tar 
cd vsfpd-2.0.1 
make 
make install 
2.用ports安裝(只適合FREEBSD,並且必須是能夠上網的用戶,對Linux用戶不適用) 
cd /usr/ports/ftp/vsftpd 
make 
make install 
3、配置 
1.配置VSFTP 
打開/etc/vsftpd.conf,(若是用ports安裝的話是在/usr/local/etc/vsftpd.conf),,相關參數說明以下: 
===個別使用者設定=================== 
chroot_list_enable 
用法:YES/NO 
若是啓動這項功能,則全部的本機使用者登入都可進到根目錄以外的數據夾,除了列在/etc/vsftpd.chroot_list 之中的使用者以外。默認值爲NO。 
userlist_enable 
用法:YES/NO 
如果啓動此功能,則會讀取/etc/vsftpd.user_list 當中的使用者名稱。此項功能能夠在詢問密碼前就出現失敗訊息,而不須要檢驗密碼的程序。默認值爲關閉。 
userlist_deny 
用法:YES/NO 
這個選項只有在userlist_enable 啓動時纔會被檢驗。若是將這個選項設爲YES,則在/etc/vsftpd.user_list 中的使用者將沒法登入 若設爲NO , 則只有在/etc/vsftpd.user_list 中的使用者才能登入。並且此項功能能夠在詢問密碼前就出現錯誤訊息,而不須要檢驗密碼的程序。 
user_config_dir 
定義個別使用者設定文件所在的目錄,例如定義user_config_dir=/etc/vsftpd/userconf,且主機上有使用者test1,test2,那咱們能夠在user_config_dir 的目錄新增文件名爲test1 以及test2。如果test1 登入,則會讀取user_config_dir 下的test1 這個檔案內的設定。默認值爲無。 
===歡迎語設定===================== 
dirmessage_enable 
若是啓動這個選項,使用者第一次進入一個目錄時,會檢查該目錄下是否有.message這個檔案,如果有,則會出現此檔案的內容,一般這個檔案會放置歡迎話語,或是對該目錄的說明。默認值爲開啓。 
banner_file 
當使用者登入時,會顯示此設定所在的檔案內容,一般爲歡迎話語或是說明。默認值爲無。 
ftpd_banner 
這邊可定義歡迎話語的字符串,相較於banner_file 是檔案的形式,而ftpd_banner 是字串的格式。預設爲無。 
===特殊安全設定==================== 
chroot_local_user 
若是設定爲YES,那麼全部的本機的使用者均可以切換到根目錄之外的數據夾。預設值爲NO。 
hide_ids 
若是啓動這項功能,全部檔案的擁有者與羣組都爲ftp,也就是使用者登入使用ls -all之類的指令,所看到的檔案擁有者跟羣組均爲ftp。默認值爲關閉。 
ls_recurse_enable 
如果啓動此功能,則容許登入者使用ls -R 這個指令。默認值爲NO。 
write_enable 
用法:YES/NO 
這個選項能夠控制FTP 的指令是否容許更改file system,譬如STOR、DELE、RNFR、RNTO、MKD、RMD、APPE 以及SITE。預設是關閉。 
setproctitle_enable 
用法:YES/NO 
啓動這項功能,vsftpd 會將全部聯機的情況已不一樣的process 呈現出來,換句話說,使用ps -ef 這類的指令就能夠看到聯機的狀態。默認值爲關閉。 
tcp_wrappers 
用法:YES/NO 
若是啓動,則會將vsftpd 與tcp wrapper 結合,也就是能夠在/etc/hosts.allow 與/etc/hosts.deny 中定義可聯機或是拒絕的來源地址。 
pam_service_name 
這邊定義PAM 所使用的名稱,預設爲vsftpd。 
secure_chroot_dir 
這個選項必須指定一個空的數據夾且任何登入者都不能有寫入的權限,當vsftpd 不須要file system 的權限時,就會將使用者限制在此數據夾中。默認值爲/usr/share/empty 
===紀錄文件設定===================== 
xferlog_enable 
用法:YES/NO 
若是啓動,上傳與下載的信息將被完整紀錄在底下xferlog_file 所定義的檔案中。預設爲開啓。 
xferlog_file 
這個選項可設定紀錄文件所在的位置,默認值爲/var/log/vsftpd.log。 
xferlog_std_format 
若是啓動,則紀錄文件將會寫爲xferlog 的標準格式,如同wu-ftpd 通常。默認值爲關閉。 
===逾時設定====================== 
accept_timeout 
接受創建聯機的逾時設定,單位爲秒。默認值爲60。 
connect_timeout 
響應PORT 方式的數據聯機的逾時設定,單位爲秒。默認值爲60。 
data_connection_timeout 
創建數據聯機的逾時設定。默認值爲300 秒。 
idle_session_timeout 
發呆的逾時設定,如果超出這時間沒有數據的傳送或是指令的輸入,則會強迫斷線,單位爲秒。默認值爲300。 
===速率限制====================== 
anon_max_rate 
匿名登入所能使用的最大傳輸速度,單位爲每秒多少bytes,0 表示不限速度。默認值爲0。 
local_max_rate 
本機使用者所能使用的最大傳輸速度,單位爲每秒多少bytes,0 表示不限速度。預設值爲0。 
===新增檔案權限設定================== 
anon_umask 
匿名登入者新增檔案時的umask 數值。默認值爲077。 
file_open_mode 
上傳檔案的權限,與chmod 所使用的數值相同。默認值爲0666。 
local_umask 
本機登入者新增檔案時的umask 數值。默認值爲077。 
===port 設定====================== 
connect_from_port_20 
用法:YES/NO 
若設爲YES,則強迫ftp-data 的數據傳送使用port 20。默認值爲YES。 
ftp_data_port 
設定ftp 數據聯機所使用的port。默認值爲20。 
listen_port 
FTP server 所使用的port。默認值爲21。 
pasv_max_port 
創建資料聯機所可使用port 範圍的上界,0 表示任意。默認值爲0。 
pasv_min_port 
創建資料聯機所可使用port 範圍的下界,0 表示任意。默認值爲0。 
===其它======================== 
anon_root 
使用匿名登入時,所登入的目錄。默認值爲無。 
local_enable 
用法:YES/NO 
啓動此功能則容許本機使用者登入。默認值爲YES。 
local_root 
本機使用者登入時,將被更換到定義的目錄下。默認值爲無。 
text_userdb_names 
用法:YES/NO 
當使用者登入後使用ls -al 之類的指令查詢該檔案的管理權時,預設會出現擁有者的UID,而不是該檔案擁有者的名稱。如果但願出現擁有者的名稱,則將此功能開啓。默認值爲NO。 
pasv_enable 
如果設爲NO,則不容許使用PASV 的模式創建數據的聯機。默認值爲開啓。 
===更換檔案全部權=================== 
chown_uploads 
用法:YES/NO 
如果啓動,全部匿名上傳數據的擁有者將被更換爲chown_username 當中所設定的使用者。這樣的選項對於安全及管理,是頗有用的。默認值爲NO。 
chown_username 
這裏能夠定義當匿名登入者上傳檔案時,該檔案的擁有者將被置換的使用者名稱。預設值爲root。 
===guest 設定===================== 
guest_enable 
用法:YES/NO 
如果啓動這項功能,全部的非匿名登入者都視爲guest。默認值爲關閉。 
guest_username 
這裏將定義guest 的使用者名稱。默認值爲ftp。 
===anonymous 設定================== 
anonymous_enable 
用法:YES/NO 
管控使否容許匿名登入,YES 爲容許匿名登入,NO 爲不容許。默認值爲YES。 
no_anon_password 
如果啓動這項功能,則使用匿名登入時,不會詢問密碼。默認值爲NO。 
anon_mkdir_write_enable 
用法:YES/NO 
若是設爲YES,匿名登入者會被容許新增目錄,固然,匿名使用者必需要有對上層目錄的寫入權。默認值爲NO。 
anon_other_write_enable 
用法:YES/NO 
若是設爲YES,匿名登入者會被容許更多於上傳與創建目錄以外的權限,譬如刪除或是改名。默認值爲NO。 
anon_upload_enable 
用法:YES/NO 
若是設爲YES,匿名登入者會被容許上傳目錄的權限,固然,匿名使用者必需要有對上層目錄的寫入權。默認值爲NO。 
anon_world_readable_only 
用法:YES/NO 
若是設爲YES,匿名登入者會被容許下載可閱讀的檔案。默認值爲YES。 
ftp_username 
定義匿名登入的使用者名稱。默認值爲ftp。 
deny_email_enable 
如果啓動這項功能,則必須提供一個檔案/etc/vsftpd.banner_emails,內容爲email address。如果使用匿名登入,則會要求輸入email address,若輸入的email address 在此檔案內,則不容許聯機。默認值爲NO。 
===Standalone 選項================== 
listen 
用法:YES/NO 
如果啓動,則vsftpd 將會以獨立運做的方式執行,如果vsftpd 獨立執行,如RedHat9的默認值,則必須啓動 如果vsftpd 包含在xinetd 之中,則必須關閉此功能,如RedHat8。在RedHat9 的默認值爲YES。 
listen_address 
如果vsftpd 使用standalone 的模式,可以使用這個參數定義使用哪一個IP address 提供這項服務,如果主機上只有定義一個IP address,則此選項不需使用,如果有多個IPaddress,可定義在哪一個IP address 上提供ftp 服務。如果不設定,則全部的IP address均會提供此服務。默認值爲無。 
max_clients 
如果vsftpd 使用standalone 的模式,可以使用這個參數定義最大的總聯機數。超過這個數目將會拒絕聯機,0 表示不限。默認值爲0。 
max_per_ip 
如果vsftpd 使用standalone 的模式,可以使用這個參數定義每一個ip address 所能夠聯機的數目。超過這個數目將會拒絕聯機,0 表示不限。默認值爲0。 

2.添加用戶(FREEBSD系統使用adduser命令,Linux系統用useradd) 
1.新建匿名用戶 
adduser -d /var/ftp ftp 
2.新建普通用戶,這裏就用test1 
adduser -d /var/ftp test1 (Linux系統使用useradd -d /var/ftp) 
四.啓動服務 
1.配置inetd 
打開/etc/inetd.conf,並添加下面一行 
ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd 
如今從新啓動inted服務,讓配置生效 
killall –HUP inetd 


附: 
FTP 數字代碼的意義 
110 從新啓動標記應答。 
120 服務在多久時間內ready。 
125 數據鏈路埠開啓,準備傳送。 
150 文件狀態正常,開啓數據鏈接端口。 
200 命令執行成功。 
202 命令執行失敗。 
211 系統狀態或是系統求助響應。 
212 目錄的狀態。 
213 文件的狀態。 
214 求助的訊息。 
215 名稱系統類型。 
220 新的聯機服務ready。 
221 服務的控制鏈接埠關閉,能夠註銷。 
225 數據連結開啓,但無傳輸動做。 
226 關閉數據鏈接端口,請求的文件操做成功。 
227 進入passive mode。 
230 使用者登入。 
250 請求的文件操做完成。 
257 顯示目前的路徑名稱。 
331 用戶名稱正確,須要密碼。 
332 登入時須要帳號信息。 
350 請求的操做須要進一部的命令。 
421 沒法提供服務,關閉控制連結。 
425 沒法開啓數據鏈路。 
426 關閉聯機,終止傳輸。 
450 請求的操做未執行。 
451 命令終止:有本地的錯誤。 
452 未執行命令:磁盤空間不足。 
500 格式錯誤,沒法識別命令。 
501 參數語法錯誤。 
502 命令執行失敗。 
503 命令順序錯誤。 
504 命令所接的參數不正確。 
530 未登入。 
532 儲存文件須要帳戶登入。 
550 未執行請求的操做。 
551 請求的命令終止,類型未知。 
552 請求的文件終止,儲存位溢出。 
553 未執行請求的的命令,名稱不正確
相關文章
相關標籤/搜索