linux中檔案服務及vsftpd的配置

來源:互聯網
上載者:User

檔案服務:

    ftp:應用程式層,C/S,檔案分享權限設定;file transfer protocol;

    nfs,cifs:檔案系統介面,網路檔案系統;

        nfs:network file system

cifs:common internet file system

    samba


網路儲存:

    NAS:Network Attached Storage,檔案伺服器,nfs或cifs,檔案層級;

    SAN:Storage Area Network,塊層級共用服務,分區–>格式化–>建立檔案系統;IPSAN, FCSAN;


ftp:

    file transfer protocol,21/tcp

C/S:

            Client –> ftp–>Server

        Client:Connect

Server:Listen


    串連:

命令串連:命令傳輸,串連一直存在;

資料連線:資料轉送,按需建立;


    資料連線的建立模式:

主動模式:伺服器通過20/tcp主動串連用戶端的命令串連連接埠向後最近一個空閑連接埠;PORT;

被動模式:用戶端發出資料請求後,服務端會響應一個開啟的臨時使用的隨機連接埠,用戶端對此連接埠進行請求;PASV;


    資料轉送模式:

        文字格式設定:ASCII

二進位格式:BINARY


協議安全:

    明文:資料、認證時傳輸帳號和密碼均是明文 ;


安全增強:

            ftp over ssl/tls:ftps

    ftp over ssh:sftp


虛擬使用者帳號;


    c/s:

Server:

            Windows:Serv-U, IIS, …

         開源解決方案:

                    wuftpd:Washington University ftp daemon

             vsftpd:Very Secure ftp daemon

                 proftpd, pureftpd, …


        Client:

         GUI:flashfxp, cute, filezilla, gftp, …

    CLI:ftp, lftp, …


    vsftpd:

程式環境:

            主程式:/usr/sbin/vsftpd

        Unit File:/usr/lib/systemd/system/vsftpd.service

    設定檔:/etc/vsftpd/vsftpd.conf

    文檔路徑映射:

fedora, /home/fedora/pub/a.txt –> ftp://HOST:PORT/pub/a.txt

使用者的家目錄映射:訪問vsftpd服務必須以某個系統使用者的身份進行;此使用者的家目錄即為文檔映射的根目錄;

匿名使用者:anonymous,映射為一個系統使用者,此使用者為ftp;


    配置:vsftpd.conf

directive VALUE,…

directive:指令之前不能存在任何字元,包括空白;


    匿名使用者:

        anonymous_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES


    本機使用者:

local_enable=YES

write_enable=YES


    認證服務:

pam_service_name=vsftpd

/etc/pam.d/vsftpd

pam: pluggable authencate module


         切換目錄時的提示資訊:

dirmessage_enable=YES

         .messages


         修改上傳檔案的屬主:

chown_uploads=YES

chown_username=USERNAME


    禁錮使用者於自己的家目錄:

會引入別的風險,因此,要求使用者對自己的家目錄不能有寫入權限;


(1) 禁錮所有使用者

    chroot_local_user=YES

(2) 禁錮部分使用者

         (a) 白名單:名單中的使用者不被禁錮;

        chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

    (b) 黑名單:名單中的使用者被禁錮

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list


    user_list控制使用者訪問vsftpd:

(1) 白名單

         userlist_enable=YES

    userlist_deny=NO


             (2) 黑名單,預設

    userlist_enable=YES

    userlist_deny=YES


虛擬使用者帳號:

    vsftpd依賴pam完成認證,pam儲存支援的認證方式,vsftpd都可調用;

帳號密碼儲存於何處?

        檔案、MySQL、ldap、redis、…


    pam_mysql模組

CentOS 6:epel

CentOS 7:編譯安裝


    編譯:

        (1) 編譯環境;

(2) 依賴關係:mariadb-devel, pam-devel


# ./configure –with-pam=/usr –with-mysql=/usr –with-pam-mods-dir=/usr/lib64/security/

# make install


MySQL設定:

         mysql> CREATE DATABASE vsftpd;

    mysql> GRANT ALL ON vsftpd.* TO 'vsftpd'@'127.0.0.1' IDENTIFIED BY 'mageedu';

    mysql>  CREATE TABLE vsftpd.users (uid SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE KEY,name VARCHAR(100) NOT NULL PRIMARY KEY,password CHAR(48) NOT NULL);

    mysql> INSERT INTO users (name,password) VALUES ('tom',PASSWORD('mageedu')),('jerry',PASSWORD('mageedu')),('lucy',PASSWORD('mageedu'));


準備要映射成為的系統帳號:

# mkdir -pv /ftproot/{pub,upload}

# useradd -d /ftproot vuser

# setfacl -m u:vuser:rwx /ftproot/upload


準備基於mysql認證的pam設定檔:/etc/pam.d/vsftpd.mysql

auth required pam_mysql.so host=127.0.0.1 user=vsftpd passwd=mageedu db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

account required pam_mysql.so host=127.0.0.1 user=vsftpd passwd=mageedu db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

配置vsftpd啟用虛擬使用者,並使用指定的pam service:vsftpd.conf

    pam_service_name=vsftpd.mysql

    guest_enable=YES

    guest_username=vuser


配置每虛擬使用者擁有不同的許可權:vsftpd.conf

    user_config_dir=/etc/vsftpd/vusers_conf


# mkdir /etc/vsftpd/vusers_conf

# touch USERNAME


許可權配置指令:

         anon_upload_enable

    anon_mkdir_write_enable

    anon_other_write_enable

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.