生產環境搭建ftp並配置虛擬用戶

生產環境搭建ftp並配置虛擬用戶

虛擬用戶的特點是隻能訪問服務器爲其提供的FTP服務,而不能訪問系統的其它資源。所以,如果想讓用戶對FTP服務器站內具有寫權限,但又不允許訪問系統其它資源,可以使用虛擬用戶來提高系統的安全性。
在VSFTP中,認證這些虛擬用戶使用的是單獨的口令庫文件(pam_userdb),由可插入認證模塊(PAM)認證。

虛擬用戶並非系統上的用戶,但它必須映射到系統上的某個用戶,虛用戶的家目錄屬主和屬組就這系統上的這個用戶。並且每個虛用戶有自己的用戶名和密碼,每個虛用戶也可以單獨設定對家目錄的訪問權限。使用文件的方式創建並依此建立一個數據庫文件,PAM可以讀取這個數據庫文件完成用戶認證目的。

安裝配置步驟
1、安裝相關包(vsftpd,lftp,db4-utils)
ftp服務端:vsftpd
ftp客戶端:lftp
由文本文件生成數據庫文件:db4-utils
2、創建虛擬用戶口令文件並依此生成數據文件
3、在PAM認證中添加ftp
4、添加虛擬用戶的權限配置文件
5、創建虛擬用戶對應本地用戶,並授權訪問虛擬用戶的家目錄
6、根據以上內容修改vsftpd.conf總配置文件
7、啓動服務
8、驗證服務是否可用


1、安裝相關包(vsftpd,lftp,db4-utils)

yum install vsftpd lftp db4-utils

(系統環境centos6.6)

2、創建虛擬用戶口令文件並依此生成數據文件

cd /etc/vsftpd/
vi vuserpass.txt
jdsfeftp
hH+GRu22pCa14eXoifEpqA==

說明1:第一行是用戶名,第二行是密碼,可以添加多個用戶和密碼
說明2:/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/logins.txt 是示例文檔
說明3:rpm -ql vsftpd可以查看其他版本生成的示例文檔的位置
說明4:openssl rand -base64 16 可生成隨機密鑰

db_load -T -t hash -f /etc/vsftpd/vuserpass.txt /etc/vsftpd/vftpuser.db
chmod 600 vftpuser.db

說明:vftpuser.db就是PAM認證時讀取的數據庫文件

3、在PAM認證中添加ftp

vim /etc/pam.d/vsftpd
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

說明1:/lib64/security/pam_userdb.so檢查是否存在該文件,此處是64位系統,所以是/lib64/,32位系統在/lib/下。
說明2:db=/etc/vsftpd/vftpuser無需".db"後綴名
說明3:/etc/pam.d/vsftpd有示例文件在/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam

4、添加虛擬用戶的權限配置文件

mkdir -p /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf

以虛擬用戶名創建同名文件

vi jdsfeftp
local_root=/home/apps/ftpsite/public
#虛擬用戶的家目錄
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

5、創建虛擬用戶對應本地用戶,並授權該本地用戶訪問虛擬用戶的家目錄

useradd -s /sbin/nologin virtual
mkdir -p /home/apps/ftpsite/public
chown -R virtual:virtual  /home/apps/ftpsite/

6、根據以上內容修改vsftpd.conf總配置文件

vi /etc/vsftpd/vsftpd.conf
guest_enable=YES
#開啓虛擬用戶的功能
guest_username=virtual
#虛擬用戶對應的本地用戶名
user_config_dir=/etc/vsftpd/vsftpd_user_conf
#虛擬用戶的權限配置目錄
local_enable=YES
#必須允許本地用戶訪問
pam_service_name=vsftpd
#pam目錄下的文件名pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
pasv_address=192.168.1.137
#注意修改被動IP,使用ifconfig查看
pasv_addr_resolve=yes
listen=YES
anonymous_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
userlist_enable=YES
tcp_wrappers=YES

7、啓動服務

/etc/init.d/vsftpd  start
#需要開啓防火牆的話
#iptables -t filter -A INPUT -m state –state NEW -p tcp -m tcp –dport 30000:30999 –syn -j ACCEPT

8、驗證服務
lftp ftp://IP -u jdsfeftp
輸入密碼:
ls
!ls /tmp
put /tmp/testfile
mkdir testdir
登錄服務器查看文件
ls /home/apps/ftpsite/public

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章