FTP文件服務器的匿名、本地、虛擬,賬戶訪問
FTP服務器(File Transfer Protocol Server)是在互聯網上提供文件存儲和訪問服務的計算機,它們依照FTP協議提供服務。 FTP是File Transfer Protocol(文件傳輸協議)。顧名思義,就是專門用來傳輸文件的協議。簡單地說,支持FTP協議的服務器就是FTP服務器。
實驗準備
- 兩臺虛擬機,Windows7和linux(Red Hat Enterprise 6.5)
- 兩臺虛擬機都選擇僅主機模式,確保兩臺虛擬機能夠互相ping通
- 利用rpm安裝為Linux虛擬機安裝vfstpd軟件包
實驗開始
本次實驗分為三個部分,分別包括匿名用戶訪問、本地用戶訪問和虛擬用戶訪問,下面我就開始一一介紹。
匿名用戶訪問
下面我就來演示如何讓匿名用戶獲得可以上傳,下載,寫入,刪除的權限(權限最大)
在配置文件(/etc/vsftpd/vsftpd.conf)中開啟以下功能。
anonymous_enable=YES //開啟匿名用戶訪問
anon_mkdir_write_enable=YES //匿名用戶上傳/建立目錄
anon_upload_enable=YES //匿名用戶上傳權限
將配置文件中相應內容行首的“#”去掉即可執行命令(加“#”表示註釋,即不執行該命令,去掉“#”則表示執行該命令)
以下內容配置文件中沒有需要我們手動添加。
anon_other_write_enable=YES //默認沒有這一項,允許匿名用戶具有建立目錄,上傳之外的權限,如重命名,刪除
此時匿名用戶的權限已經放到最大了,但是匿名用戶需要執行寫入權限時還是會遇到問題,此時我們檢查匿名用戶默認文件存放路徑(/var/ftp),可以發現是文件夾的權限不夠,我們要將文件夾的權限放大,就可以執行寫入權限了。
當給文件夾的權限時不能直接給/ftp,因為當ftp文件夾權限最大時(777)服務器會自動關閉遠程連接(Linux系統自動保護程序)。若是想要寫入權限可以更改ftp目錄下的子文件的權限最大(只能作用在子目錄中)。
當這些設置都已經做完之後,我們就要開啟服務,同時關閉Linux系統的防火墻
service vsftpd start //開啟服務 service iptables stop //關閉防火墻 setenforce 0 //關閉selinux防火墻
測試
匿名用戶下載文件
匿名用戶上傳權限(更改文件夾權限之後才可以使用,兩者權限都必須要有)沒有文件夾權限時。
開啟文件夾權限
本地用戶訪問
本地用戶登陸就簡單了,只要在登陸時使用本地賬戶的用戶名和密碼就可以直接登陸。但是這裏存在一個系統漏洞,我們要開啟執行配置文件中的一條命令。如果在實際應用中普通用戶可以隨意切換目錄將會對服務器造成威脅。
chroot_local_user=YES //禁錮用戶不能離開家目錄,默認用戶登錄後都在其家目錄下,當開啟該選項後,用戶就不可以隨意跳轉其他目錄。
虛擬賬戶訪問
往往在實際應用中,即使本地用戶的用戶名都不願意透露給使用者使用,這時我們就可以使用賬戶映射,創建虛擬賬戶登陸
在 /etc/vsftd 文件夾下新建vuser文件,寫入虛擬賬戶的用戶名和密碼,這裏還有格式要特別註意,不可寫錯。奇數行為用戶,偶數行為密碼。
db_load -T -t hash -f vuser vuser.db //將vuser文件轉換成vuser.db的數據庫文件
db_load | -T | -t | hash | -f |
---|---|---|---|---|
轉換命令 | 轉換 | type類型 | 哈希算法 | 指定要轉換的文件 |
這兩個文件在系統中的的權限是所有人都可以查看,我們應該避免這種情況,所以我們要更改文件權限為只有root用戶可以查看。
chmod 600 vuser
chmod 600 vuser.db
創建一個系統用戶,指定家目錄和登陸環境(nologin 不允許系統內登陸)
useradd -d /opt/vuser -s /sbin/nologin vuser
編輯pam認證模塊支持虛擬用戶的登陸
創建一個文件,為其編輯pam認證模塊,認證vuser.db數據庫文件
vim /etc/pam.d/vsftpd.vu
將以下內容添加到剛才創建的文件中
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser //此處的兩個vuser文件並不是普通文件,而是剛才轉換過後的數據庫文件。因為前面寫了db=,所以此處不加後綴名,且為必須省略不寫。
編輯完pam認證模塊之後,我們就要將其添加到配置文件中去使其生效。vim進入配置文件,在文末寫入如下語句
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.vu //開啟虛擬用戶,使用pam認證登陸
使用了新的pam認證模塊登陸,同時我們就要註釋掉vsftpd的pam認證。
此時重啟服務即可使用虛擬賬戶登陸系統。
使用匿名用戶登陸系統
總結
1.在做服務驗證前一定確保兩臺虛擬機可以互相ping通,防火墻也都是關閉的。
2.配置文件中每一條命令都代表不同的權限,開啟執行時要確認清楚
3.當遇到操作失敗時,要冷靜,逐個排查錯誤
4.每次配置文件更改之後都需要重啟服務,使更改生效
5.針對用戶和文件夾的權限都要有
FTP文件服務器的匿名、本地、虛擬,賬戶訪問