其實我很喜歡用源碼包安裝軟體,今天在自己機器上用tar包成功安裝并配置了一個vsftp,現在把我的過程和大家說一下,希望對大家有所幫助!
一、安裝
1.下載下傳最新的穩定版vsftpd-1.2.1.tar.gz
2.解除安裝原有的rpm的vsftpd
rpm -e vsftpd
3.tar xvzf vsftpd-1.2.1.tar.gz
4.cd vsftpd-1.2.1
5.make
6.useradd nobody
7.mkdir /usr/share/empty
8.mkdir /var/ftp
9.useradd -d /var/ftp ftp
10.chown root.root /var/ftp
11.chmod og-w /var/ftp
說明:如果你象我一樣原來有rpm的vsftp,隻是解除安裝了,可以省略6-11步,如果原來沒有安裝vsftp,請按部就班。
12.make install
13.vi /etc/xinetd.d/vsftpd
把disable=yes改成no,儲存退出。然後service xinetd restart,ok!新裝的vsftp已經可以工作了!
說明:預設安裝的vsftpd是以xinetd的方式啟動的。你需要上述操作,一會兒,我們再來講把它改成獨立啟動的服務。
14.ftp 127.0.0.1
輸入使用者名ftp,密碼直接回車,ok!已經可以連接配接了!輸入quit退出。然後重新ftp 127.0.0.1,輸入本地使用者和密碼,卻提示login faild!why?原來少一個本地使用者認證的pam檔案。
15.cp redhat/vsftpd.pam /etc/pam.d/ftp(注意,沒有這一步将不能使用本地使用者登入!)
16.cp vsftpd.conf /etc/vsftpd.conf(現在,預設還是隻能匿名使用者登入)
17.vi /etc/vsftpd.conf
把anonmous_enable=yes改成no(禁掉匿名連結,不安全)
把local_enable=yes前的注釋去掉(打開本地使用者連接配接的權限)
把write_enable=yes前的注釋去掉(打開本地使用者的寫權限)
把local_umask=022前的注釋去掉
service xinetd restart
18.再次測試
ftp 127.0.0.1
使用ftp使用者空密碼登入,将出現login faild
使用本地使用者登入,ok!已經成功了!上傳檔案,也ok!
這樣是不是就完事兒了?不是,做一個ftp,我們通常還需要一些特殊要求:比如一個使用者我隻允許他下載下傳,不允許他上傳;另一個使用者可以下載下傳也可以上傳,但是他不能删除檔案,不能給檔案改名;另外,我還需要我的ftp使用非正常的端口,限制下載下傳的速度,還需要一個管理者使用者。那怎麼辦?請看下面的部分!
二、進階配置
1.使用獨立服務
a.vi /etc/xinetd.d/vsftpd把disable=no還改成yes,不再需要它了!
b.vi /etc/vsftpd.conf在結尾加上listen=yes
c.service xinetd restart
d./usr/local/sbin/vsftpd /etc/vsftpd.conf &
ok!現在vsftp已經是獨立啟動的服務了!
2.使用非正常的端口(2121)
a.vi /etc/vsftpd.conf
添加listen_port=2121,儲存退出
b.killall -9 vsftpd
c./usr/local/sbin/vsftpd /etc/vsftpd.conf &
ok!現在用ftp 127.0.0.1将提示你連接配接被拒絕了(ftp:connect:connetion refuesd)!然後ftp 127.0.0.1 2121輸入使用者名和密碼,ok!可以登入!
3.實作不同使用者不同權限
現在我們就來實作三個使用者的不同權限:a.upload使用者,可以上傳下載下傳,可以建立檔案夾,但不能删除檔案和檔案夾,不能重命名原有檔案和檔案夾;b.download使用者,隻能下載下傳;c.admin使用者,管理者,可以上傳,可以下載下傳,可以建立檔案夾,可以删除和更改檔案和檔案夾名。這些使用者都不能登入系統,并且用ftp連接配接時鎖定在自己的家目錄中不能進入系統檔案夾。
a.cat << ! >;logins.txt
>;upload
>;******* #upload使用者的密碼
>;download
>;*******
>;admin
>;****************
>;!
說明,此文本檔案的格式是:單數行為使用者名,偶數行為密碼
b.db_load -t -t hash -f logins.txt /etc/vsftpd_login.db
c.chmod 600 /etc/vsftpd_login.db
d.cd vsftpd-1.2.1/example;cp viryual_users/vsftpd.pam /etc/pam.d/ftp.vu (進入你的解包的源碼目錄,把虛拟使用者的認證檔案拷貝到/etc/pam.d/下)
e.useradd -d /home/ftpsite virtual;chmod 700 /home/ftpsite;su - virtual -c "echo hello>;/homt/ftpsite/test.file(建立虛拟使用者所要通路的ftp目錄并設定僅virtual使用者通路的權限和建立一個供下載下傳實驗的檔案)
f.vi /etc/vsftpd.conf在此檔案中插入下面的配置語句
guest_enable=yes(啟用虛拟使用者)
guest_username=virtual(将虛拟使用者映射為本地virtual使用者)
pam_service_name=ftp.vu(指定pam配置檔案為ftp.vu)
user_config_dir=/etc/vsftpd_user_conf(指定不同虛拟使用者配置檔案的存放路徑)
儲存退出
g.mkdir /etc/vsftpd_user_conf
h.開放不同使用者的不同權限 echo "anon_world_readable_only=no">;/etc/vsftpd_user_conf/download(開放download使用者的下載下傳權限——隻能下載下傳;注意這個不地方不要寫成yes,否則将不能列出檔案和目錄)
cp /etc/vsftpd_user_conf/download /etc/vsftpd_user_conf/upload
vi /etc/vsftpd_user_conf/upload,添加下列行
write_enable=yes (增加寫權限)
anon_upload_enable=yes(增加上傳權限)
anon_mkdir_write_enable=yes (增加建立目錄的權限)
cp /etc/vsftpd_user_conf/upload /etc/vsftpd_user_conf/admin
增加一行:
anno_other_writer_enable=yes(增加管理者使用者的删除/重命名的權限)
i.測試
killall -9 vsftpd;/usr/local/sbin/vsftpd /etc/vsftpd.conf &
ftp 127.0.0.1 2121
以使用者名download和你設定的密碼登入,ls,可以看到檔案,下載下傳,成功!put一個檔案,提示
permission denied。rename test.file同樣權限被拒絕;delete test.file同樣不成功!
輸入quit退出,以upload使用者登入,ok!可以上傳,下載下傳,mkdir lsf,提示“/lsf" created;rename lsf lsf1提示permission denied,删除檔案同樣不成功!
輸入quit退出,以admin使用者登入,可以有上述所有權限,然後rmdir lsf,提示remove directory o[eration successful;delete test.file提示delete operation successful!ok,大功告成了!
4.還有限速,限制同一個ip的連接配接數,限制最大連接配接數等,我在另外的文章中已經寫過,在此不再贅述
像其它守護程式一樣,vsftpd提供了standalone和inetd(inetd或xinetd)兩種運作模式。簡單解釋一下,standalone一次性啟動,運作期間一直駐留在記憶體中,優點是對接入信号反應快,缺點是損耗了一定的系統資源,是以經常應用于對實時反應要求較高的專業ftp伺服器。inetd恰恰相反,由于隻在外部連接配接發送請求時才調用ftp程序,是以不适合應用在同時連接配接數量較多的系統。此外,inetd模式不占用系統資源。除了反應速度和占用資源兩方面的影響外,vsftpd還提供了一些額外的進階功能,如inetd模式支援per_ip(單一ip)限制,而standalone模式則更有利于pam驗證功能的應用。
1.xinetd運作模式
大多數較新的系統采用的是xinetd超級服務守護程序。使用“vi /etc/xinetd.d/vsftpd” 看一下它的内容,如下:
disable = no
socket_type = stream
wait = no
# 這表示裝置是激活的,它正在使用标準的tcp sockets。
如果“/etc/vsftpd.conf”中的有選項為“listen=yes”,登出它
最後,重新開機xinetd,指令如下:
$ /etc/rc.d/init.d/xinetd restart
需要注意的是,“/etc/xinetd.d”目錄中僅能開啟一個ftp服務。
2.standalone模式
standalone模式便于實作pam驗證功能。進入這種模式首先要關閉xinetd下的vsftpd,設定
“disable = yes”,或者登出掉“/etc/inetd.conf”中相應的行。然後修改“/etc/vsftpd.con
f”中的選項為“listen=yes”。