天天看點

VSFTP安裝

FTP=File Transfer Protocol(PFC959)

系統環境Linux 2.6.15-1.2054_FC5

隻安裝了開發工具,無圖形環境

建立ftp前的一些準備工作

# useradd nobody

# mkdir /usr/share/empty/

# mkdir /var/ftp/

# useradd -d /var/ftp ftp

# chown root.root /var/ftp

# chmod og-w /var/ftp

如果系統已經做好這些工作我們就可以直接進行以下工作

下載下傳

[url]http://vsftpd.beasts.org[/url]

安裝VSFTP

cd /usr/src

tar xvzf vsftpd-2.0.5.tar.gz

cd vsftpd-2.0.5

make

make install

安裝配置檔案

cp vsftpd.conf /etc/

cp RedHat/vsftpd.pam /etc/pam.d/

mv /etc/pam.d/vsftpd.pam /etc/pam.d/ftp

編輯配置檔案/etc/vsftpd.conf 在末尾處加入一句話:

listen=YES(使VSFTP采用單獨運作模式運作)

禁用xinetd方式啟動

chkconfig vsftpd off

chkconfig vsftpd --list 顯示 vsftpd  off

添加到開機自啟動

vi /etc/rc.local添加一句話

/usr/local/sbin/vsftpd &

手動啟動服務

/usr/local/sbin/vsftpd &  或/etc/rc.local停止服務 killall -9 vsftpd

察看端口,如果有21端口處于監聽狀态,則ftp服務運作。

netstat -tln

配置匿名使用者通路及上傳

vi /etc/vsftpd.conf

anonymous_enable=YES         #允許匿名使用者登入伺服器

local_enable=YES             #允許本地使用者登入

write_enable=YES             #允許用戶端寫指令 

local_umask=022              #本地使用者新檔案的umask值(檔案對同組和其他使用者                              來說是隻讀的)

anon_upload_enable=YES       #允許匿名使用者上傳檔案

anon_mkdir_write_enable=YES  #允許匿名使用者建立目錄

dirmessage_enable=YES        #允許使用目錄資訊(将目錄下.message檔案列印給用                               戶)

ftp_banner=welcome to ...    #登入歡迎詞

listen=YES                   #運作在監聽模式

配置:

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umask=022

anon_upload_enable=YES

dirmessage_enable=YES

重新開機服務

killall -9 vsftpd

上面兩句話可用killall -HUP vsftpd 代替

此時可以嘗試登陸FTP伺服器,

ftp localhost

匿名使用者anonymous/ftp可通路下載下傳。

由于匿名帳戶屬于ftp組,但是/var/ftp 屬于root組,且權限為755其他由戶不可寫

是以可以建立目錄,将檔案屬性改為FTP組

mkdir /var/ftp/incoming

chgrp ftp incoming/

此時匿名使用者可通路可以在incoming檔案夾内下載下傳上傳。

但是所有匿名使用者都可以看到下載下傳删除其他匿名使用者上傳得東西

是以可以把ftp組可讀權限去掉,這樣匿名使用者能上傳但是不能通路不能下載下傳。

chmod g-r incoming/

ls -ld incoming/

顯示drwx-wxr-x 2 root ftp 4096 Oct 21 18:13 incoming

普通使用者的目錄鎖定

匿名使用者預設配置被鎖定在:“/”目錄下即/var/ftp

普通使用者登入ftp時也可以鎖定

需要打開

chroot_list-enable=YES

在中chtoot_list_file=/etc/vsftpd.chroot_list

寫入普通使用者名

redhat

test

使用者控制

寫入/etc/ftpusers:的使用者将被拒絕通路ftp(但是可以通過修改/etc/pam.d/ftp中的sense值為allow來改成允許的使用者清單)

此方法并未成功,但是可以用下列方法實作本地使用者通路控制

在/etc/vsftpd.conf中添加

userlist_enalbe=YES

userlist_deny=YES

userlist_file=/etc/vsftpd.user_list

vi /etc/vsftpd.user_list

這樣在vsftpd.user_list中的test帳戶不能通路ftp。如果是userlist_deny=NO

就變成隻有test可以通路ftp

強烈推薦使用man vsftpd.conf

察看更多詳細内容。