FTP基於PAM和MySQL/MariaDB實現虛擬使用者存取控制

來源:互聯網
上載者:User

標籤:ftp   mysql   pam   虛擬使用者   mariadb   存取控制   

前言

vsftpd是一款在Linux發行版中最受推崇的FTP伺服器程式,特點是小巧輕快,安全易用,目前在開源作業系統中常用的FTP套件主要有proftpd、pureftp、ServU和wu-ftpd等。本文將講解vsftpd的準系統和如何基於PAM和MySQL/MariaDB實現虛擬使用者存取控制。

基礎配置介紹

工作原理

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6B/AB/wKioL1U0crDDiyOgAAFcT6Kq79I735.jpg" title="FTP工作原理.jpg" alt="wKioL1U0crDDiyOgAAFcT6Kq79I735.jpg" />

狀態響應碼

1xx:資訊碼

2xx:成功狀態代碼

3xx:進一步提示補全資訊的狀態代碼

4xx:用戶端錯誤

5xx:伺服器端錯誤

使用者認證

虛擬使用者:僅用於訪問某特定服務中的資源

nsswitch: network server switch, 名稱解析架構設定檔:/etc/nsswitch.conf模組:/lib64/libnss*, /usr/lib64/libnss*pam: pluggable authentication module, 使用者認證架構模組:/lib64/security/設定檔:/etc/pam.conf, /etc/pam.d/*

系統使用者通過ftp訪問的資源的位置:使用者自己的家目錄

虛擬使用者通過ftp訪問的資源的位置:給虛擬使用者指定的映射成為的系統使用者的家目錄

設定檔

vsftpd在CentOS6.6的設定檔

使用者認證設定檔:/etc/pam.d/vsftpd服務指令碼:/etc/rc.d/init.d/vsftpd設定檔目錄:/etc/vsftpd主設定檔:/etc/vsftpd/vsftpd.conf匿名使用者(映射為ftp使用者)共用資源位置:/var/ftp

設定檔詳解

匿名使用者的設定    anonymous_enable=YES:允許匿名登入    anonymous_upload_enable=YES:允許上傳檔案    anonymous_other_write_enable=YES:允許刪除檔案    anonymous_mkdir_write_enable=YES:允許建立目錄    註:啟用此功能,ftp使用者對/var/ftp目錄仍無許可權,可在/var/ftp/目錄下建立目錄,    如/var/ftp/upload/,並給ftp使用者佈建許可權 setfacl -m u:ftp:rw /var/ftp/upload系統使用者的配置    local_enable=YES:允許登入    write_enable=YES:允許上傳檔案禁錮所有的ftp本機使用者於其家目錄中    chroot_local_user={YES|NO}禁錮指定使用者於家目錄中    chroot_list_enable=YES    chroot_list_file=/etc/vsftpd/chroot_list 日誌配置    xferlog_enable=YES    xferlog_std_format=YES    xferlog_file=/var/log/xferlog改變上傳檔案的屬主    chown_uploads=YES    chown_username=whoever上傳檔案的umask    anon_umask:匿名使用者上傳檔案的umask    local_umask:本機使用者上傳檔案的umaskvsftpd使用pam完成使用者認證,其用到的pam設定檔    pam_service_name=vsftpd    控制使用者登入:/etc/vsftpd/ftpusers中的使用者都不允許使用ftp服務,基於pam是否啟用控制使用者登入的列表檔案    userlist_enable=YES    userlist_deny=YES|NO    預設檔案為/etc/vsftpd/user_list串連限制    max_clients: 最大並發串連數    max_per_ip: 每個IP可同時發起的並發請求數傳輸速率    anon_max_rate:匿名使用者的最大傳輸速率,單位是bytes/s    local_max_rate:本機使用者的最大傳輸速率,單位是bytes/s自訂資訊配置        ftpd_banner=Welcome to FTP Server #自訂        dirmessage_enable=YES   #需建立.message檔案

虛擬使用者存取控制

虛擬使用者

所有的虛擬使用者會被統一映射為一個指定的系統帳號,訪問的共用位置即為此系統帳號的家目錄

各虛擬使用者可被賦予不同的存取權限,通過匿名使用者的許可權控制參數進行指定

虛擬使用者的存放方式:

hash編碼的檔案(奇數行為使用者名稱,偶數行為密碼)

關係型資料庫(通過第三方模組pam-mysql實現認證)

工作原理

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6B/AE/wKioL1U0lX7SMeqEAADUzbJtf8I522.jpg" title="虛擬使用者存取控制原理.jpg" alt="wKioL1U0lX7SMeqEAADUzbJtf8I522.jpg" />

配置過程

環境準備

FTP伺服器:172.16.10.10(CentOS6.6)

資料庫伺服器:172.16.10.211(CentOS6.6),MariaDB

安裝所需程式

首先FTP伺服器需要安裝vsftpd和pam_mysql,資料庫伺服器需要安裝MySQL或者MariaDB,我這裡已經安裝完畢了,就直接開始配置了

建立虛擬使用者

[[email protected] ~]# mysqlMariaDB [(none)]> CREATE DATABASE vsftpd;MariaDB [(none)]> use vsftpd;MariaDB [vsftpd]> GRANT SELECT ON vsftpd.* TO [email protected]‘172.16.10.10‘ IDENTIFIED BY ‘vpass‘;MariaDB [vsftpd]> FLUSH PRIVILEGES;MariaDB [vsftpd]> CREATE TABLE users (    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> name VARCHAR(50) BINARY NOT NULL,     -> password CHAR(48) BINARY NOT NULL );#添加虛擬使用者   MariaDB [vsftpd]> INSERT INTO users (name,password) VALUES (‘tom‘,password(‘scholar‘));#password(‘PASSWORD‘)加密密碼MariaDB [vsftpd]> INSERT INTO users (name,password) VALUES (‘alice‘,password(‘scholar‘));

vsftpd配置

[[email protected] ~]# vim /etc/pam.d/vsftpd.mysql  #建立pam認證檔案auth required pam_mysql.so user=vsftp passwd=vpass host=172.16.10.211 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 #密碼經過加密,crypt值為2account required pam_mysql.so user=vsftp passwd=vpass host=172.16.10.211 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2[[email protected] ~]# useradd -s /sbin/nologin -d /var/ftproot vuser#建立虛擬使用者映射的系統使用者及對應的目錄[[email protected] ~]# chmod go+rx /var/ftproot  #給予許可權[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf #請確保已經啟用了以下選項anonymous_enable=YESlocal_enable=YESwrite_enable=YESanon_upload_enable=NOanon_mkdir_write_enable=NOchroot_local_user=YES#添加以下選項guest_enable=YESguest_username=vuser #設定的映射系統使用者#並確保pam_service_name選項的值如下所示pam_service_name=vsftpd.mysql #建立的pam認證檔案

配置虛擬使用者具有不同的存取權限

vsftpd可以在設定檔目錄中為每個使用者提供單獨的設定檔以定義其ftp服務存取權限,每個虛擬使用者的設定檔名同虛擬使用者的使用者名稱。設定檔目錄可以是任意未使用目錄,只需要在vsftpd.conf指定其路徑及名稱即可。

配置vsftpd為虛擬使用者使用設定檔目錄

[[email protected] ~]# vim /etc/vsftpd/vsftpd.conf#添加如下選項user_config_dir=/etc/vsftpd/vusers_config

建立所需要目錄,並為虛擬使用者提供設定檔

[[email protected] ~]# mkdir /etc/vsftpd/vusers_config[[email protected] ~]# cd /etc/vsftpd/vusers_config/[[email protected] vusers_config]# touch tom alice

配置虛擬使用者的存取權限

虛擬使用者對vsftpd服務的存取權限是通過匿名使用者的相關指令進行的。比如,如果需要讓tom使用者具有上傳檔案的許可權,可以修改/etc/vsftpd/vusers_config/tom檔案,在裡面添加如下選項即可。

[[email protected] vusers_config]# vim tomanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES[[email protected] vusers_config]# vim alice anon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NO

啟動服務,設定開機自啟,查看21連接埠是否被監聽

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6B/B0/wKioL1U0o7aySHnUAABzZrUoe9w172.jpg" title="1.jpg" alt="wKioL1U0o7aySHnUAABzZrUoe9w172.jpg" />

測試虛擬使用者

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6B/B5/wKiom1U0ujLjFDnqAAHiQJfvXi8688.jpg" title="2.jpg" alt="wKiom1U0ujLjFDnqAAHiQJfvXi8688.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6B/B1/wKioL1U0u6fBt_wYAAE1pXpZmxg827.jpg" title="3.jpg" alt="wKioL1U0u6fBt_wYAAE1pXpZmxg827.jpg" />

The end 

好了,FTP基於PAM和MySQL/MariaDB的虛擬使用者存取控制,就說到這裡啦,配置ftp過程中請確保不要敲多空格,否則是會報錯或者登入失敗的,我就深受其害,這確實是個坑,部署過程中遇到問題可留言,多謝關注呦。以上僅為個人學習整理,如有錯漏,大神勿噴~~~

本文出自 “北城書生” 部落格,請務必保留此出處http://scholar.blog.51cto.com/9985645/1636190

FTP基於PAM和MySQL/MariaDB實現虛擬使用者存取控制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.