天天看點

生産環境搭建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、驗證服務是否可用

<code>yum </code><code>install</code> <code>vsftpd lftp db4-utils</code>

(系統環境centos6.6)

<code>cd</code> <code>/etc/vsftpd/</code>

<code>vi</code> <code>vuserpass.txt</code>

<code>jdsfeftp</code>

<code>hH+GRu22pCa14eXoifEpqA==</code>

說明1:第一行是使用者名,第二行是密碼,可以添加多個使用者和密碼

說明2:/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/logins.txt 是示例文檔

說明3:rpm -ql vsftpd可以檢視其他版本生成的示例文檔的位置

說明4:openssl rand -base64 16 可生成随機密鑰

<code>db_load -T -t </code><code>hash</code> <code>-f </code><code>/etc/vsftpd/vuserpass</code><code>.txt </code><code>/etc/vsftpd/vftpuser</code><code>.db</code>

<code>chmod</code> <code>600 vftpuser.db</code>

說明:vftpuser.db就是PAM認證時讀取的資料庫檔案

<code>vim </code><code>/etc/pam</code><code>.d</code><code>/vsftpd</code>

<code>auth required </code><code>/lib64/security/pam_userdb</code><code>.so db=</code><code>/etc/vsftpd/vftpuser</code>

<code>account required </code><code>/lib64/security/pam_userdb</code><code>.so db=</code><code>/etc/vsftpd/vftpuser</code>

說明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

<code>mkdir</code> <code>-p </code><code>/etc/vsftpd/vsftpd_user_conf</code>

<code>cd</code> <code>/etc/vsftpd/vsftpd_user_conf</code>

以虛拟使用者名建立同名檔案

<code>vi</code> <code>jdsfeftp</code>

<code>local_root=</code><code>/home/apps/ftpsite/public</code>

<code>#虛拟使用者的家目錄</code>

<code>write_enable=YES</code>

<code>anon_world_readable_only=NO</code>

<code>anon_upload_enable=YES</code>

<code>anon_mkdir_write_enable=YES</code>

<code>anon_other_write_enable=YES</code>

5、建立虛拟使用者對應本地使用者,并授權該本地使用者通路虛拟使用者的家目錄

<code>useradd</code> <code>-s </code><code>/sbin/nologin</code> <code>virtual</code>

<code>mkdir</code> <code>-p </code><code>/home/apps/ftpsite/public</code>

<code>chown</code> <code>-R virtual:virtual  </code><code>/home/apps/ftpsite/</code>

<code>vi</code> <code>/etc/vsftpd/vsftpd</code><code>.conf</code>

<code>guest_enable=YES</code>

<code>#開啟虛拟使用者的功能</code>

<code>guest_username=virtual</code>

<code>#虛拟使用者對應的本地使用者名</code>

<code>user_config_dir=</code><code>/etc/vsftpd/vsftpd_user_conf</code>

<code>#虛拟使用者的權限配置目錄</code>

<code>local_enable=YES</code>

<code>#必須允許本地使用者通路</code>

<code>pam_service_name=vsftpd</code>

<code>#pam目錄下的檔案名pasv_enable=YES</code>

<code>pasv_min_port=30000</code>

<code>pasv_max_port=30999</code>

<code>pasv_address=192.168.1.137</code>

<code>#注意修改被動IP,使用ifconfig檢視</code>

<code>pasv_addr_resolve=</code><code>yes</code>

<code>listen=YES</code>

<code>anonymous_enable=YES</code>

<code>local_umask=022</code>

<code>dirmessage_enable=YES</code>

<code>xferlog_enable=YES</code>

<code>connect_from_port_20=YES</code>

<code>xferlog_std_format=YES</code>

<code>userlist_enable=YES</code>

<code>tcp_wrappers=YES</code>

<code>/etc/init</code><code>.d</code><code>/vsftpd</code>  <code>start</code>

<code>#需要開啟防火牆的話</code>

<code>#iptables -t filter -A INPUT -m state –state NEW -p tcp -m tcp –dport 30000:30999 –syn -j ACCEPT</code>

8、驗證服務

lftp ftp://IP -u jdsfeftp

輸入密碼:

ls

!ls /tmp

put /tmp/testfile

mkdir testdir

登入伺服器檢視檔案

ls /home/apps/ftpsite/public

本文轉自 zhuhc1988 51CTO部落格,原文連結:http://blog.51cto.com/changeflyhigh/1918081,如需轉載請自行聯系原作者