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
下一篇 2016-12-05

相關推薦

  • Bash基礎命令操作

    Bash基礎命令操作

    2018-03-18
  • MySQL主從復制: MHA

                    MySQL主從復制: MHA 前言 MHA的架構 環境部署 實驗步驟 總結 前言 上篇文章我們實現了MySQL的主從復制, 但是我們之前就說過, 主從復制是有很多問題的…

    Linux干貨 2016-04-28
  • useradd命令

    useradd創建用戶 使用格式: useradd[options] LOGIN -c:備注信息保存在passwd的備注欄中。 -d:用戶登入時的主目錄 -e:賬號的失效日期,缺省表示永久有效。 -f:密碼過期后多少天關閉該賬號。 -g:用戶所屬組。 -G:用戶所屬的附加群組。 -m:自動創建用戶的登入目錄。 -M:不要自動創建用戶的登入目錄。 -n:取消創…

    Linux干貨 2017-12-20
  • 運維架構之httpd

    Web Service 傳輸層:提供進程地址 Port number tcp:傳輸控制協議,面向連接,通信前需建立虛擬鏈路,結束后拆除;0-65535 udp:用戶數據報協議,無連接;0-65535 IANA 0-1023:眾所周知,永久分配給固定應用使用;22/tcp(ssh)、80/tcp(http)、443/tcp(https) 1024-41951:…

    系統運維 2018-06-04
  • Linux里的用戶與組

    任何事務的進行都離不開管理,脫離了管理的系統將會是一團亂麻。今天就來講講Linux里的用戶與組的管理 首先,用戶與組不會憑空出現,必須得是系統本身或人為創建的 。     所以,系統創建的就叫系統用戶.系統組,用戶創建的就是普通用戶.普通組。 useradd  創建用戶 -u 創建用戶并指定用戶的UID -g…

    2017-07-30
  • class12 shell編程(四)軟件包管理(二)

    一、shell編程(四) 1、循環特殊用法 while 循環的特殊用法(遍歷文件的每一行): while read line; do       循環體   done < /PATH/FROM/SOMEFILE 依次讀取/P…

    Linux干貨 2016-08-24
欧美性久久久久