生產環境搭建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