Linux FTP 虛擬使用者的使用配置

2021-06-14 11:32:29 字數 3150 閱讀 9693

linux的ftp服務支援3種使用者:

1.匿名帳戶

2.本地帳戶

3.虛擬使用者

為什麼要使用

虛擬使用者:

匿名帳戶可以很好的保證ftp伺服器的安全性,但是,對匿名使用者的許可權管理不夠靈活.如果想對訪問ftp的帳戶給予更多的許可權,就可以用本地帳戶來 實現.但是,本地帳戶預設情況下是可以登陸linux系統的,這樣對linux系統來說是乙個安全隱患.那麼怎麼能在靈活的賦予ftp使用者許可權的前提下, 保證ftp伺服器乃至整個linux系統的安全呢?使用虛擬使用者就是一種解決辦法.

下面,我們就一起來學習,該怎樣在linux下配置

ftp伺服器的虛擬使用者.

開始配置前,讓我們先大概了解下ftp虛擬使用者的工作原理:

虛擬使用者,顧名思義,並不是乙個合法的linux系統帳戶,但是他可以用來登陸該系統上執行的ftp伺服器.

當使用者在連線上ftp伺服器後,會被要求輸入使用者名稱和密碼.ftp伺服器在拿到這個使用者名稱和密碼後,會呼叫相應的pam認證模組對,和系統中的 ftp認證檔案

進行相比較.如果該使用者名稱和密碼與ftp認證檔案

中的某條記錄相符,就通過認證,然後該帳戶就被對映成乙個linux下的本地帳戶,然後根 據使用該本地帳戶對ftp資源進行訪問.否則則斷開該連線請求.

了解了ftp虛擬使用者的工作原理後,我們就可以開始配置ftp虛擬使用者了.

整個過程可以分這幾個步驟:

1.準備乙個虛擬使用者的口令庫檔案.該檔案中儲存的使用者名稱和密碼是使用者連線ftp伺服器時,需要輸入的使用者名稱和密碼.檔案可以自己建立,位置無關緊要,檔案格式為:奇數行為使用者名稱,偶數行為密碼.

例如:touch login.txt         //建立乙個名為login.txt的虛擬使用者口令庫檔案

vi login.txt            //編輯該口令庫檔案

mike                    //虛擬使用者mike

123                     //虛擬使用者mike的密碼

john                     //虛擬使用者john

321                     //虛擬使用者john的密碼

儲存退出.

2.用剛才建立的虛擬使用者口令庫檔案生成ftp伺服器的認證檔案.該認證檔案是乙個被加密後的密文.pam在呼叫相應的認證模組後,會對從ftp伺服器發來的使用者名稱和密碼進行加密,然後在跟該檔案進行對比,發現相符條目後,登陸使用者才會被允許登陸.

db_load -t -t hash -f login.txt /etc/vsftpd/vsftpd_login.db

//在執行該命令前,別忘記安裝db4-utils軟體包,該包包含有db_load命令等.關於該命令的使用不在本文討論範圍內.其中-f引數後跟的為剛才建立的虛擬使用者口令庫檔案.最後的路徑為生成的ftp認證檔案的存放位置.

為了進一步保證安全,可以將該ftp認證檔案的許可權設定為600.

3.建立虛擬使用者所需要的pam配置檔案.由於ftp伺服器在接受到使用者的使用者名稱和口令後會呼叫pam認證,所以我們還要建立虛擬使用者的pam配置檔案.

我們將該檔案儲存在/etc/pam.d目錄下,檔名暫時取為:vsftpd.這裡要注意一點就是,該檔名要與ftp服務主配置檔案(/etc/vsftpd/vsftpd.conf)中的pam_service_name=vsftpd選項的選項值相同.

建立好該檔案後,將下面的內容加入到該檔案中:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd/

vsftpd_login

改好後,儲存退出.注意3個紅色檔案的檔名.該3個檔案為1個檔案,只不過在使用中寫法不同.

4.由於使用者在通過pam的認證後要被對映成乙個本地使用者,所以我們還要建立乙個本地使用者供虛擬使用者使用.

我們只需要對該本地使用者賦予ftp主目錄的適當訪問許可權就行.即使ftp伺服器遭到攻擊,這個本地使用者也沒有訪問其他目錄的許可權,相對比較安全一些.

useradd -d /home/ftpsite virtual       //使用者名為virtual,主目錄為ftp的根

chmod 700 /home/ftpsite                //將其許可權設定為700,可以根據實際情形進行修改

5.在ftp的主配置檔案中,啟用ftp虛擬使用者.增加如下選項即可:

guest_enable=yes

guest_username=virtual            //將虛擬使用者對映成本地的哪個使用者.這裡用的是virtual,剛才建

立的那個使用者.

pam_service_name=/etc/vsftpd/vsftpd   //切記要修改該項的值

6.配置到這裡就完成了,別忘記重啟ftp服務進行測試.

7.為不同的虛擬使用者分配許可權

預設情況下,虛擬使用者擁有相同的許可權,就是virtual的許可權,我們可以根據實際需求對不同的虛擬使用者分配許可權.

首先在ftp的主配置檔案中加乙個選項:

user_config_dir=/etc/vsftpd_user_conf            //檔名和路徑都可以自己定義

然後建立該目錄.

mkdir /etc/vsftpd_user_conf

下面就可以在該目錄下編輯不同虛擬使用者的許可權配置檔案了,比如要對mike編輯其許可權.

touch mike                 //建立mike的許可權檔案.檔名要與虛擬使用者名稱相同

可以根據實際需求為該檔案新增下面的選項和值:

anon_upload_enable=yes                   //表示使用者可以上傳檔案

anon_mkdir_write_enable=yes              //表示使用者有建立和刪除目錄的許可權

anon_other_write_enable=yes              //表示使用者具有檔案改名和刪除檔案的許可權

到這裡,虛擬使用者就算完成配置完成了

Linux ftp伺服器虛擬使用者的建立

vsftp下的虛擬使用者的特點是只能訪問伺服器為其提供的ftp服務,而不能訪問系統的其它資源。所以,如果想讓使用者對ftp伺服器站內具有寫許可權,但又不允許訪問系統其它資源,可以使用虛擬使用者來提高系統的安全性。首先第一步 建立虛擬使用者 並且生成口令檔案 前提 一定要裝上 db.util服務 生成...

linux ftp伺服器搭建 虛擬使用者

一建立虛擬使用者 並且生成口令檔案 前提 一定要裝上 db.util服務 touch etc vsftp virtual.txt vim etc vsftpd virtual.txt db load t t hash f virtual.txt etc vsftpd virtual.db chmod...

LINUX FTP使用者的建立

先新增個使用者 adduser breezexu 設定該使用者的密碼 passwd breezexu 回車 輸入密碼 輸入確定密碼 密碼在這裡不顯示,直接輸入即可 修改 home breezexu為ftp登入後的預設目錄比如 var html abc,修改 bin bash 為 sbin nolog...