<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # vsftpd 篇 vsftpd 是 Linux 中最安全、最穩定的 FTP 服務器 ## 安裝 vsftpd vsftpd 推薦使用 apt 安裝,這樣更加穩定 ```sh $ apt install vsftpd -y ``` ## 配置 vsftpd vsftpd 主要有 3 個配置文件 ### 主配置文件 路徑: /etc/vsftpd.conf 點擊查看詳細內容 [vsftpd.conf](./vsftpd/vsftpd.conf.md) ### 監獄列表文件 作用:控制用戶是否只能訪問家目錄, 路徑:由 vsftpd 指定,當前路徑為 /etc/vsftpd/chroot_list 當前作用:監獄列表文件下的用戶不在家目錄監獄內,其它用戶全部處于家目錄監獄中 ### 用戶列表文件 作用:用戶哪些用戶允許或不允許登錄 vsftpd 路徑:由 vsftpd 指定,當前路徑為 /etc/vsftpd/user_list 當前作用:拒絕用戶列表文件下的用戶登陸 > 提示:虛擬用戶登錄,只需設置映射的系統用戶 ## PAM 模塊 libpam-mysql 通過 MariaDB + pam 的方式 來實現對 vsftpd 認證 - 優勢:使用虛擬用戶登陸,最大的好處是,我們之后可以通過 web 后臺來控制! - 注意:需要在 pam 中暴露 mariadb 用戶密碼 ### 安裝 PAM 模塊 ```sh $ apt install libpam-mysql -y ``` ### 配置 libpam-mysql libpam-mysql 配置文件位于 /etc/pam-mysql.conf 具體內容請查看 [pam-mysql.conf](./vsftpd/pam-mysql.conf.md) - 警告:配置文件里,出現了數據庫用戶名及其登錄密碼,為了安全期間,需設置其它用戶不可見 ```sh $ chown root:root /etc/pam-mysql.conf $ chmod 640 /etc/pam-mysql.conf ``` ### 創建 vsftpd 的 PAM 配置文件 路徑 :/etc/pam.d/vsftpd-guest ```sh $ touch /etc/pam.d/vsftpd-guest $ chmod 640 /etc/pam.d/vsftpd-guest $ vim /etc/pam.d/vsftpd-guest ``` vsftpd-guest 內容如下: ```conf auth required pam_mysql.so config_file=/etc/pam-mysql.conf account required pam_mysql.so config_file=/etc/pam-mysql.conf ``` 0.7RC1 版本之前,不支持指定配置文件,需改成: ```conf auth required pam_mysql.so user=數據庫用戶名 passwd=數據庫用戶密碼 host=127.0.0.1 db=數據庫名 table=數據庫表 usercolumn=用戶字段 passwdcolumn=密碼字段 crypt=2 account required pam_mysql.so user=數據庫用戶名 passwd=數據庫用戶密碼 host=127.0.0.1 db=數據庫名 table=數據庫表 usercolumn=用戶字段 passwdcolumn=密碼字段 crypt=2 ``` ## 數據庫管理 在 MariaDB 創建用于管理 pam 認證的數據庫,并創建針對 vsftpd 認證的表 ### 配置數據庫信息 ```sh MariaDB [(none)]> CREATE DATABASE db_pam; MariaDB [(none)]> CREATE TABLE db_pam.pam_vsftpd ( -> id int AUTO_INCREMENT NOT NULL PRIMARY KEY, -> ftp_user varchar(255) BINARY NOT NULL, -> ftp_passwd char(41) BINARY NOT NULL, -> ftp_dir varchar(255) BINARY -> ); MariaDB [(none)]> CREATE USER 'pam_vsftpd'@'localhost' IDENTIFIED BY '數據庫用戶密碼'; MariaDB [(none)]> GRANT SELECT ON db_pam.pam_vsftpd TO 'pam_vsftpd'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; ``` ### vsftpd 登錄用戶 創建 vsftpd 登錄用戶 www ```sh MariaDB [(none)]> INSERT INTO db_pam.pam_vsftpd -> ( ftp_user, ftp_passwd ) -> VALUES -> ( 'www', password('ftp登錄用戶密碼') ); ``` 創建 vsftpd 登錄用戶 qyadmin ```sh MariaDB [(none)]> INSERT INTO db_pam.pam_vsftpd -> ( ftp_user, ftp_passwd ) -> VALUES -> ( 'qyadmin', password('ftp登錄用戶密碼') ); ``` 表 db_pam.pam_vsftpd 的結構: ```sh MariaDB [(none)]> DESCRIBE db_pam.pam_vsftpd; +------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | ftp_user | varchar(255) | NO | | NULL | | | ftp_passwd | char(41) | NO | | NULL | | | ftp_dir | varchar(255) | YES | | NULL | | +------------+--------------+------+-----+---------+----------------+ 4 rows in set (0.001 sec) ``` 表 db_pam.pam_vsftpd 的數據: ```sh MariaDB [(none)]> select * from db_pam.pam_vsftpd; +----+----------+-------------------------------------------+---------+ | id | ftp_user | ftp_passwd | ftp_dir | +----+----------+-------------------------------------------+---------+ | 1 | www | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | NULL | | 2 | qyadmin | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | NULL | +----+----------+-------------------------------------------+---------+ 2 rows in set (0.001 sec) ``` ## 用戶配置 ### 創建映射用戶 使用 pam 認證需要創建一個本地用戶,用于虛擬用戶授權 創建系統用戶 www ```sh $ useradd -c 'This Linux user is used to map VSFTPD virtual users' -u 2001 -s /usr/sbin/nologin -d /server/default -M -U www ``` 修改 www 家目錄權限 ```sh $ chmod 550 /server/www ``` ### 配置虛擬用戶 在 /server/vsftpd 目錄下,創建與虛擬用戶同名的配置文件,并自定義根目錄地址,具體操作如下: ```sh $ mkdir /server/vsftpd ``` - 創建虛擬用戶 www 的單獨配置文件 ```sh $ vim /server/vsftpd/www ``` www 文件內容: ```conf local_root=/server/www ``` - 控制目錄權限不可寫 設置了 virtual_use_local_privs=yes 以后,虛擬用戶的權限與本地用戶完全相同,所以家目錄不能有寫的權限: ```sh $ chown www:www /server/www $ chmod a-w /server/www ``` 到此 lnmp 內容基本完結 局域網或本地虛擬機推薦使用 samba 來替代 vsftpd samba 不在 lnmp 規劃里,期待下個作品
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看