vsftpd配置(虚拟用户、匿名用户登录)
一、ftp服務搭建
(一)概述
1.ftp連接及傳輸模式
(1)控制連接
TCP21,用于發送FTP命令信息
(2)數據連接
TCP20,用于上傳、下載數據
(3)數據連接的建立類型
?????????????????? 主動模式:服務端從20端口主動向客戶端發起連接
?????????????????? 被動模式:服務端在指定范圍內某個端口被動等待客戶端連接
2.FTP傳輸模式
(1)文本模式
ASCII模式,以文本序列傳輸數據
(2)二進制模式
Binary模式,以二進制序列傳輸數據
3. FTP用戶的類型
(1)匿名用戶
anonymous或ftp
(2)本地用戶
賬號名稱、密碼等信息保存在passwd、shadow文件
(3)虛擬用戶
使用獨立的賬號/密碼數據文件
4.常見的FTP服務器程序
IIS、Serv-U
wu-ftpd、Proftpd
vsftpd(Very Secure FTP Daemon)
5.常見的FTP客戶端程序
ftp命令
CuteFTP、FlashFXP、LeapFTP、Filezilla
gftp、kuftp
6.Vsftpd軟件包
(1)官方站點
http://vsftpd.beasts.org/
(2)主程序
/usr/sbin/vsftpd
(3)服務名
vsftpd
(4)用戶控制列表文件
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
(5)主配置文件
/etc/vsftpd/vsftpd.conf
7.安裝后目錄解讀
解讀生成的目錄
沒有截完!
(1)用戶控制列表文件
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
(2)主配置文件
/etc/vsftpd/vsftpd.conf
(3)利用service啟動的執行文件
/etc/rc.d/init.d/vsftpd
(4)ftp用戶默認工作目錄(宿主目錄)
/var/ftp
(5)ftp用戶默認登錄的目錄
/var/ftp/pub
(二)匿名用戶訪問ftp
1.安裝vsftpd
2.修改配置文件
修改的項用紅色標注出來了!
3.給相關的目錄設置權限
給你想給匿名用戶控制訪問的目錄設置權限!
比如給/var/ftp/pub目錄設置777,這樣匿名用戶就可以在配置文件參數允許的情況下刪除文件,創建文件了。
比如,配置文件中有這樣一條參數:anon_other_write_enable=NO,那么就算是/var/ftp/pub目錄的權限為777,那你也不可能刪除其中的東西!
4.啟動
service vsftpd start
5.測試
匿名用戶登錄后,會默認出現在/var/ftp目錄,且只能在/var/ftp目錄下活動,不能移動到服務器的根目錄下!
(1)安裝ftp客戶端
安裝6.5光盤自帶的ftp包。
(2)關閉防火墻與selinux
service iptables stop
setenforce 0? (getenforce查看狀態)
(3)登錄測試
利用本機測試訪問:? ftp? 192.168.8.116? (192.168.8.116為搭建vsftpd服務的主機IP)
二、本地用戶登錄
(一)本地用戶可以移動到服務器的根目錄
不推薦,因為不安全!
1.安裝vsftpd
2.修改配置文件
不修改配置文件,直接用原來默認的!
默認起作用的關鍵是黃色框住的!
3.添加一個用于測試的本地用戶(實體用戶)并修改密碼
4.測試
關閉防火墻與selinux后,安裝ftp客戶端后再測試!詳情見本文匿名用戶登錄測試小點下!
(1)創建目錄測試
其實現在用ftp登錄是直接登錄到該賬戶自己本身的默認工作目錄的!如果該賬戶沒有默認的工作目錄,那么該賬戶是不能通過ftp登錄的!
(2)回到根目錄測試
(二)本地用戶只能在不能移動到服務器的根目錄
1.安裝vsftpd
2.修改配置文件
紅色框住的參數是控制本地用戶是否被束縛在該用戶的默認工作目錄下的參數!
存在這句,ftp登錄的實體用戶就不到達根目錄!
3.添加一個用于測試的本地用戶(實體用戶)并修改密碼
4.測試
關閉防火墻與selinux后,安裝ftp客戶端后再測試!詳情見本文匿名用戶登錄測試小點下!
?
(1)安裝客戶端軟件
(2)創建目錄測試
(3)移動到其他目錄測試
不能移動到其他目錄,只能在用戶的默認工作目錄活動!
(三)僅一部分本地用戶可以移動到服務器的根目錄
1.安裝vsftpd
2.修改配置文件
紅色框住的第一行為不允許ftp登錄的用戶跳轉到根目錄,
第二行為開啟部分用戶可以跳轉到根目錄的功能
第三行為用戶列表文件
3.創建用戶列表文件
文件內容只有可以跳轉到根目錄的用戶!
比如:
4.添加用戶并改密
5.啟動
6.測試
(1)安裝ftp客戶端
(2)切換目錄測試
用su登錄(su在/etc/vsftpd/chroot_list文件中)
用tang登錄
三、虛擬用戶登錄
(一)所有虛擬用戶登錄到同一個目錄(不設權限)
注意:當允許虛擬用戶登錄時,就不能實現實體用戶登錄!!兩者不共存!
1.安裝vsftpd
2.修改配置文件
配置文件的要求:允許本地用戶登錄,因為虛擬用戶最終是映射到本地用戶來登錄的。
還有根據情況添加匿名用戶的權限!因為虛擬用戶登錄上去后,權限由匿名用戶權限管理!比如:anon_mkdir_write_enable=YES等
添加這三項:
guest_enable=YES
guest_username=su(要映射到的用戶)
pam_service_name=vsftpd.vu(vsftpd.vu為后面編寫的pam模塊的名字)
3.創建實體用戶
useradd ?-s? /sbin/nologin?? su
如果后面測試時,用虛擬用戶登錄后不能執行ls命令的話,就先將該實體用戶的權限設置為757,等可以ls后再將該目錄的權限改為755。
修改命令(chmod? -R 757? /home/su)R選項為遞歸參數!
4.創建虛擬賬戶文件
用戶 密碼…的格式
5.將該文件生成數據庫文件
[root@sutang vsftpd]# db_load -T -t hash -f vuser.list vusers.db
{---***選項-T允許應用程序能夠將文本文件轉譯載入進數據庫。
-t hash使用hash碼加密
-f 指定包含用戶名和密碼文本文件。此文件格式要示:奇數行用戶名、偶數行密碼***---}
確認該文件類型:
[root@sutang vsftpd]# file vusers.db
vusers.db: Berkeley DB (Hash, version 9, native byte-order)
6.編寫pam模塊
一般在/etc/pam.d目錄下編寫!vim? /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
其中vusers是上一步生成的數據庫文件的文件名,不要后綴名!!!
7.啟動
service vsftpd start
8.測試
虛擬用戶默認登錄的位置為映射的實體用戶的默認工作目錄下,而且不能跳到其他位置!
關閉防火墻與selinux后,安裝ftp客戶端后再測試!詳情見本文匿名用戶登錄測試小點下!
(二)設置各個虛擬用戶的權限的ftp
1.修改配置文件
紅色框中的內容是要修改的!剩下的保持默認就好!
第一個紅框:實體用戶的默認權限!(因為虛擬用戶映射到實體用戶,所以必須給實體用戶相應的權限)
第二個紅框:虛擬用戶和匿名用戶的權限設置,這里因為要實現各個虛擬用戶的權限不同,就將此全部設置成NO!這里的權限設置相當于全局權限,對所有虛擬用戶的權限都有效!
第三個紅框:設置虛擬用戶的開啟、映射的實體用戶、使用的pam模塊
第四個紅框:設置虛擬用戶的指定權限文件的目錄,在該目錄下是一些和虛擬用戶用戶名同名的文件,這些文件中存放有每一虛擬用戶的指定權限!
2.創建實體用戶
useradd ?-s? /sbin/nologin? su
如果后面測試時,用虛擬用戶登錄后不能執行ls命令的話,就先將該實體用戶的權限設置為757,等可以ls后再將該目錄的權限改為755。
3.創建虛擬賬戶文件
用戶 密碼…的格式
4.將該文件生成數據庫文件
[root@sutang vsftpd]# db_load -T -t hash -f vuser.list vusers.db
確認該文件類型:
[root@sutang vsftpd]# file vusers.db
vusers.db: Berkeley DB (Hash, version 9, native byte-order)
5.編寫pam模塊
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
其中vusers是上一步生成的數據庫文件的文件名,不要后綴名!!!
6.創建虛擬用戶的權限目錄并創建權限設置文件
此處的目錄的路徑一定要和配置文件中的第四個紅框內容相同!
mkdir? /etc/vsftpd/vusers_config
進入該目錄并創建指定的文件
我在這個目錄中創建了aaa這個虛擬用戶對應的配置文件,內容如上圖!
7.啟動
8.測試
aaa虛擬用戶登錄測試
bbb虛擬用戶登錄測試
bbb用戶沒寫單獨的配置文件,直接用的是主配置文件中的全局權限控制!(詳情見配置文件第二個紅框)
?
總結
以上是生活随笔為你收集整理的vsftpd配置(虚拟用户、匿名用户登录)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言的指针思维导图,指针基础知识(含思
- 下一篇: 运筹学概述