Vsftpd服務器實現基於虛擬用戶帳號服務

實驗環境:LinuxAS4操作系統,雙網卡,IP分別爲192.10.30.3/24(VM1) | 192.10.10.3/24(VM2)
 
    (一)FTP服務器簡述
FTP指的是一種文件傳輸的網絡協議.在Linux和Windows平臺下有多種FTP服務器軟件可供選擇.
Vsftpd是一個基於GPL發佈的類Unix系統上使用的FTP服務器軟件;Vsftpd是very secure ftp daemon的縮寫,安全性是它的最大特點.Vsftpd服務器可使用匿名用戶,本地用戶和虛擬用戶三種用戶類型.
FTP服務器使用的端口和傳輸模式:FTP服務器使用21端口與客戶機建立命令(控制)鏈路;在主動模式下FTP服務器使用20端口與客戶機建立數據鏈路
    (二)FTP服務器的兩種傳輸模式
i:主動模式:由服務主動連接客戶機建立數據鏈路.
主動模式建鏈過程:FTP客戶機使用(1024,65535)之間的某端口N向FTP服務器的21端口發起請求建立命令(控制)鏈路;FTP服務器用21端口迴應FTP客戶機N端口的請求,並確認建立控制鏈路;FTP服務器由20端口向FTP客戶機的N+1端口主動建立數據鏈路連接;FTP客戶機由N+1端口向FTP服務器的20端口迴應,確認數據鏈路的建立.
 
ii:被動模式:FTP服務器等待客戶機建立數據鏈路.
被動模式建鏈過程:FTP客戶機使用(1024,65535)之間的某端口N向FTP服務器的21端口發起請求建立命令(控制)鏈路;FTP服務器用21端口迴應FTP客戶機N端口的請求,並確認建立控制鏈路;FTP服務器使用已經建立的控制鏈路通知客戶機自己已經打開(1024,65535)M端口,用於數據鏈路的建立;當需要傳輸數據時,FTP客戶機會通過N+1端口向FTP服務器的M端口請求建立數據鏈路;FTP服務器在M端口監聽到FTP客戶機連接請求後,將從M端口向FTP客戶機的N+1端口確認數據鏈路的建立.
   (三)檢查vsftpd包的安裝狀態
[root@localhost]#rpm -qa |grep vsftpd
vsftpd-2.0.1-5.EL4.3
 
   (四)vsftpd的配置文件介紹
i:/etc/vsftpd.ftpusers :用於保存哪些用戶不允許登錄FTP服務器,可禁止高權限的本地用戶登錄FTP服務器,提高了系統安全性 
ii:/etc/vsftpd.user_list :此文件中的用戶在默認情況下(/etc/vsftpd.conf中設置爲userlist_enable=YES  userlist_deny=YES)禁止登錄
iii:/etc/vsftpd/vsftpd.conf  :是主配置文件,具體配置如下 
[root@localhost vsftpd]#grep -v "^#" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES   #FTP服務器允許匿名登錄
local_enable=YES            #允許本地用戶登錄
write_enable=YES            #開放對本地用戶寫權限
local_umask=022             #設置本地用戶新建文件的umask值
anon_upload_enable=YES #允許匿名用戶上傳文件,同時要求存放上傳的文件的目錄對匿名用戶有寫權限
anon_mkdir_write_enable=YES   #允許匿名用戶上創建目錄
dirmessage_enable=YES  #在FTP服務器中的某個目錄切換時,顯示該目錄下的.message隱含文件的內容
xferlog_enable=YES       #FTP服務器啓用上傳和下載日誌
connect_from_port_20=YES   #FTP服務器啓用FTP數據端口的連接請求
xferlog_std_format=YES    #FTP服務器使用標準的ftpd xferlog日專格式
chroot_local_user=YES     #將FTP本地用戶禁錮在宿主目錄中,即不允許FTP用戶切換目錄,提高了安全性
pam_service_name=vsftpd   #設置PAM認證服務的配置文件名稱
userlist_enable=YES     #FTP服務器檢查userlist_file設置文件中指定的用戶是否可以訪問vsftpd服務器
userlist_deny=YES    #關聯userlist_enable=YES,表示禁止此文件中用戶登錄;若userlist_deny=NO,則只允許vsftpd.user_list中的用戶登錄;
listen=YES       #表示FTP服務器處於獨立啓動模式
tcp_wrappers=YES   #FTP服務器將使用tcp_wrappers作爲主機訪問控制方式
(五)運行vsftpd
[root@localhost /]#service vsftpd restart     #重新啓動vsftpd服務
[root@localhsot /]#chkconfig --level 35 vsftpd on  #設置vsftpd服務器在運行級別35自啓動
[root@loaclhost /]#service vsftpd status     #檢查vsftpd狀態
 
vsftpd服務器提供匿名用戶登錄的功能,可使用anonymous或ftp登錄(不用密碼,直接回車).如在windows平臺下:運行-->cmd
C:\>ftp 192.10.30.3
Connected to 192.10.30.3.
220 <vsFTPd 2.0.1>
user <192.10.30.3:<none>>:anonymous
331 Plesase sepcify the password.
password:此處直接按回車即可
>dir      #可查看所在目錄中的文件詳細信息,同 ls -l
 
 
(六)vsftpd實現基於虛擬用戶帳號服務
虛擬用戶:使用獨立的文件保存虛擬帳號,安全性較好,可替代本地用戶.
i:創建虛擬用戶口令庫文件  
[root@localhost vsftpd]#cat vuser.txt   
lilei                   #奇數行爲用戶名
123456             #偶數行爲用戶口令
han×××
123456
jim
123456
ii:生成vsftpd的認證文件
[root@localhost vsftpd]#db_load -T -t hash -f ./vuser.txt /etc/vsftpd/vsftpd_login.db   #使用db_load命令生成認證文件
[root@localhost vsftpd]#chmod 600 vsftpd_login.db   #設置認證文件只對用戶可讀可寫
iii:建立虛擬用戶所需的PAM配置文件
[root@localhost /]#cat /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_user.so db=/etc/vsftpd/vsftpd_login
 
iv:建立虛擬用戶所要訪問的目錄並設置相應的權限
[root@localhost /]#useradd -d /home/ftp ftpuser
[root@localhost /]#chmod 700 /home/ftp/
 
v:重新修改vsftpd.conf配置文件如下:
[root@localhost vsftpd]# grep -v "^#" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ftpd_banner=Welcome to blah FTP service.
guest_enable=YES
guest_username=ftp
pam_service_name=vsftpd.vu
chroot_local_user=YES
listen=YES
tcp_wrappers=YES
 
(七)驗證虛擬用戶登錄
[root@localhost /]#service vsftpd restart #重新啓動vsftpd服務程序
[root@localhost /]#ldd /usr/sbin/vsftpd   #檢查vsftpd是否已經加載pam模塊,vsftpd依賴於libpam.so.0
在windows客戶端驗證結果如下
C:\>ftp 192.10.30.3
Connected to 192.10.30.3.
220 Welcome to blah FTP service.
User (192.10.30.3:(none)): lilei
331 Please specify the password.
Password:
230 Login successful.
ftp>
 
Vsftpd下的虛擬用戶賬號就這樣創建成功了,呵呵!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章