vsftpd

vsftpd:

    程序環境:

        配置文件:/etc/vsftpd/vsftpd.conf

        主程序:/usr/sbin/vsftpd

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

        文件路徑映射:/var/ftp 

            ftp://ftp.magedu.com/pub/a.txt  –> /var/ftp/pub/a.txt

            用戶的家目錄的映射:訪問ftp必須以某個系統用戶的身份,此用戶的家目錄即文檔目錄;

            匿名用戶:anonymous,要映射為一個系統用戶,默認ftp;

        

    用戶種類:

        匿名用戶、系統用戶、虛擬用戶

    配置vsftpd:

        配置文件: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

            輔助認證配置文件/etc/vsftpd/ftpusers:

                pam認證的配置文件:/etc/pam.d/vsftpd

                chroot_local_users=YES

    禁錮所有的本地用戶于自己的家目錄中;但需要事先移除用戶對家目錄的寫權限;

                chroot_list_enable=YES

                chroot_list_file=/etc/vsftpd/chroot_list 

    禁錮指定的文件中的用戶于自己的家目錄中;但需要事先移除用戶對家目錄的寫權限;

        數據傳輸日志:

            xferlog_std_format=YES

            xferlog_enable=YES

            xferlog_file=/var/log/xferlog

        控制可登錄vsftpd服務的用戶列表:

            userlist_enable=YES

                是否啟用/etc/vsftpd/user_list文件來可登錄的用戶;

            userlist_deny={YES|NO}

                YES:黑名單

                NO:白名單

    虛擬用戶:

        用戶賬號存儲于何處?

            文件,MySQL,Redis, …

        vsftpd的認證功能托管給pam:

            Pluggable Authencate Module,認證框架,認證庫;

            通過模塊完成認證功能:/usr/lib64/security/

            pam_mysql模塊:

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

            # make

            # make install 

            準備數據庫:

            mysql> CREATE DATABASE vsftpd;

            mysql> CREATE TABLE vsftpd.users (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name CHAR(30) NOT NULL UNIQUE KEY,password CHAR(48));

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

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

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

            mysql> FLUSH PRIVILEGES;

            vsftpd通過pam_mysql進行認證的配置文件:/etc/pam.d/vsftpd.mysql

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

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

            user:連接mysql服務器的用戶名,此用戶要有權限訪問認證vsftpd服務的數據庫;

                passwd:上面的用戶的密碼; 

                host:mysql服務器主機地址;

                db:認證vsftpd服務的數據庫名稱;

                table:存放了用戶和密碼的表;

                usercolumn:用戶名對應的字段;

                passwdcolumn:密碼對應的字段;

                crypt:密碼加密方法;

            準備匿名用戶映射的系統用戶賬號:

                # mkdir /ftproot 

                # useradd  -d /ftproot  vuser

                # mkdir /ftproot/{pub,upload}

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

            配置vsftpd:vsftpd.conf

                pam_service_name=vsftpd.mysql

                guest_enable=YES

                guest_username=vuser

            配置每匿名用戶有單獨的權限設定

                vsftpd.conf,添加:

                    user_config_dir=/etc/vsftpd/users_conf

                創建目錄:

                    # mkdir /etc/vsftpd/vusers_conf

                為每用戶提供配置文件:

                    /etc/vsftpd/vusers_conf/{tom,jerry}

                配置權限的指令:

                    anon_upload_enable

                    anon_mkdir_write_enable

                    anon_other_write_enable

原創文章,作者:songzizhe,如若轉載,請注明出處:http://www.www58058.com/55874

(0)
songzizhesongzizhe
上一篇 2016-12-05 17:03
下一篇 2016-12-05 17:03

相關推薦

  • linux進程管理

    Linux內核:搶占式多任務 進程類型: 1、守護進程:在系統引導過程中啟動的進程,與終端無關的進程; 2、前臺進程:跟終端相關,通過終端啟動的進程,注意:也可把前臺啟動的進程送往后臺,以守護模式運行;   進程狀態: 運行態:running 就緒態:ready 睡眠態:a、可中斷:interruptable;b、不可中斷:uninterrupta…

    Linux干貨 2018-02-08
  • N26-第五周作業-邢巖

    馬哥門徒-N26-邢巖    我要繼續今天的博客,《一萬小時天才理論》里提到了髓鞘質,我是不是正在慢慢的給自己包裹一層髓鞘質呢?如果還沒有,那么繼續吧。    第一題:顯示當前系統上root、fedora或user1用戶的默認shell。      ~]# grep -E &#8…

    2017-02-24
  • mysql/mariadb基于ssl的主從復制

     當mysql/mariadb跨越互聯網進行復制時別人可以竊取到mysql/mariadb的復制信息, 這些信息是明文的, 因此存在不安全性, 這里通過ssl對復制的信息進行加密      1. 創建證書中心 在主服務器上創建證書中心 cd /etc/pki/CA 生成私鑰 (umask&…

    Linux干貨 2016-12-05
  • DNS and BIND 配置指南

    前言     說來接觸Linux也有一年了,BIND是我曾經學習RH系Linux接觸的第一個服務,對我有著莫大的意義,當初差點因為這個服務難以配置而放棄Linux,今天學完馬哥的bind相關系列視頻之后,寫一篇DNS and BIND的基礎到進階。 一、DNS的基礎知識 DNS是什么? DNS(Domain Name …

    Linux干貨 2016-03-21
  • Mysql之主從復制

    Mysql之主從復制 節點一 修改配置文件設置唯一ID開起二進制日志 [root@node1 ~]# vim /etc/my.cnf 增加以下內容     [mysqld]     log-bin=master_bin &nbsp…

    Linux干貨 2016-07-19
  • Nginx淺談(一)

    淺談nginx(一) 此文主要介紹nginx的基礎知識及其基本配置,一為鞏固,二為記錄 知識點: nginx的作用 nginx的基本配置框架 nginx一些常用模塊介紹 1、什么是nginx     nginx是一款免費的,開源的,高性能的HTTP服務軟件,它不僅能     夠支…

    Linux干貨 2017-01-15
欧美性久久久久