給VSFTP建立虛擬用戶
上面配置的FTP服務器有一個特點,就是FTP服務器的用戶本身也是系統用戶。這顯然是一個安全隱患,因爲這些用戶不僅能夠訪問FTP,也能夠訪問其它的系統資源。如何解決這個問題呢?答案就是創建一個虛擬用戶的FTP服務器。虛擬用戶的特點是隻能訪問服務器爲其提供的FTP服務,而不能訪問系統的其它資源。所以,如果想讓用戶對FTP服務器站內具有寫權限,但又不允許訪問系統其它資源,可以使用虛擬用戶來提高系統的安全性。
在VSFTP中,認證這些虛擬用戶使用的是單獨的口令庫文件(pam_userdb),由可插入認證模塊(PAM)認證。使用這種方式更加安全,並且配置更加靈活。
下面介紹配置過程。
1.生成虛擬用戶口令庫文件。爲了建立此口令庫文件,先要生成一個文本文件。該文件的格式如下,單數行爲用戶名,偶數行爲口令:
2.生成口令庫文件,並修改其權限:
3.新建一個虛擬用戶的PAM文件。加上如下兩行內容:
4.建立虛擬用戶,設置該用戶所要訪問的目錄,並設置虛擬用戶訪問的權限:
經過該步驟的設置,/ftpsite就是virtual_user用戶的主目錄,該用戶也是/ftpsite目錄的擁有者。除root用戶之外,只有該用戶具有對該目錄的讀、寫和執行的權限。
5.生成一個測試文件。先切換至virtual_user用戶身份,然後在/ftpsite目錄下創建一個文件:
6.編輯/etc/vsftpd/vsftpd.conf文件,使其整個文件內容如下所示(去掉了註釋內容):
上面代碼中,guest_enable=YES表示啓用虛擬用戶;guest_username=virtual則是將虛擬用戶映射爲本地用戶,這樣虛擬用戶登錄後才能進入本地用戶virtual的目錄/ftpsite;pam_service_name=vsftp.vu指定PAM的配置文件爲vsftp.vu。
7.重新啓動VSFTP:
#service vsftpd restart
8.以虛擬用戶gou(Linux中並無該賬號)進行測試:
測試下載服務器目錄中的一個文件mytest:
測試上傳本機目錄中的文件vsftpd.conf:
可以看到,使用沒有系統賬號的虛擬用戶可以成功完成上傳、下載的工作。但該FTP虛擬服務器只允許虛擬用戶登錄,其它系統用戶無法登錄,如系統用戶user1不是虛擬用戶,則不能登錄該虛擬服務器。
在虛擬FTP服務器中,也可以對各個用戶的權限進行設置。方法是在/etc/vsftpd.conf文件中添加如下一行:
user_config_dir=用戶配置文件目錄
然後在用戶配置文件目錄下創建相應的用戶配置文件,比如爲上述名爲gou的用戶創建一個配置文件(假設配置文件目錄爲/etc/user_config_dir):
重啓FTP服務器,這時再使用賬號gou來登錄,就已經沒有上傳的權限了。
在VSFTP中,認證這些虛擬用戶使用的是單獨的口令庫文件(pam_userdb),由可插入認證模塊(PAM)認證。使用這種方式更加安全,並且配置更加靈活。
下面介紹配置過程。
1.生成虛擬用戶口令庫文件。爲了建立此口令庫文件,先要生成一個文本文件。該文件的格式如下,單數行爲用戶名,偶數行爲口令:
|
2.生成口令庫文件,並修改其權限:
|
3.新建一個虛擬用戶的PAM文件。加上如下兩行內容:
|
4.建立虛擬用戶,設置該用戶所要訪問的目錄,並設置虛擬用戶訪問的權限:
|
經過該步驟的設置,/ftpsite就是virtual_user用戶的主目錄,該用戶也是/ftpsite目錄的擁有者。除root用戶之外,只有該用戶具有對該目錄的讀、寫和執行的權限。
5.生成一個測試文件。先切換至virtual_user用戶身份,然後在/ftpsite目錄下創建一個文件:
|
6.編輯/etc/vsftpd/vsftpd.conf文件,使其整個文件內容如下所示(去掉了註釋內容):
|
上面代碼中,guest_enable=YES表示啓用虛擬用戶;guest_username=virtual則是將虛擬用戶映射爲本地用戶,這樣虛擬用戶登錄後才能進入本地用戶virtual的目錄/ftpsite;pam_service_name=vsftp.vu指定PAM的配置文件爲vsftp.vu。
7.重新啓動VSFTP:
#service vsftpd restart
8.以虛擬用戶gou(Linux中並無該賬號)進行測試:
|
測試下載服務器目錄中的一個文件mytest:
|
測試上傳本機目錄中的文件vsftpd.conf:
|
可以看到,使用沒有系統賬號的虛擬用戶可以成功完成上傳、下載的工作。但該FTP虛擬服務器只允許虛擬用戶登錄,其它系統用戶無法登錄,如系統用戶user1不是虛擬用戶,則不能登錄該虛擬服務器。
|
在虛擬FTP服務器中,也可以對各個用戶的權限進行設置。方法是在/etc/vsftpd.conf文件中添加如下一行:
user_config_dir=用戶配置文件目錄
然後在用戶配置文件目錄下創建相應的用戶配置文件,比如爲上述名爲gou的用戶創建一個配置文件(假設配置文件目錄爲/etc/user_config_dir):
|
重啓FTP服務器,這時再使用賬號gou來登錄,就已經沒有上傳的權限了。