pam_mysqlに基づくvsftpdの仮想ユーザーメカニズム



Vsftpds Virtual User Mechanism Based Pam_mysql



pam_mysqlに基づくvsftpdの仮想ユーザーメカニズム

仮想ユーザー:はいftp一般的に使用される戦略ftpサービスは古くて安全ではないため、使用Anonymous User権限を効果的に制御できませんが、Local userログインできますオペレーティングシステムは非常に安全ではないため、導入されましたVirtual userコンセプトは、複数の仮想ユーザーのみをローカルユーザーにマップすることです。このユーザーは、ログインを許可しないように設定できるため、システムのセキュリティが強化されます。この質問は主にmysql of Virtual userに基づいて紹介します



構成pam_mysql

1 2 3 4 5 6 Download address: pam-mysql.sourceforge.net # yum -y groupinstall 'Development Tools' 'Server Platform Development' # yum -y install pam-devel openssl-devel mariadb-devel # ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security # make && make install Module path after installation:/usr/lib64/security/pam_mysql.so

mariadb構成
必要なデータベースとテーブルを作成し、必要なユーザーを挿入して、ここでパスワードを使用しますpassword暗号化方式暗号化



1 2 3 4 5 6 7 8 9 10 11 12 13 MariaDB [(none)]> CREATE DATABASE ftpdb MariaDB [ftpdb]> CREATE TABLE users (id int AUTO_INCREMENT PRIMARY KEY,name char(30) NOT NULL,password char(48)) MariaDB [ftpdb]> INSERT INTO users(name,password) VALUES ('tom',password('tom')) MariaDB [ftpdb]> INSERT INTO users(name,password) VALUES ('jerry',password('jerry')) MariaDB [ftpdb]> SELECT * FROM users+----+-------+-------------------------------------------+ | id | name | password | +----+-------+-------------------------------------------+ | 1 | tom | *71FF744436C7EA1B954F6276121DB5D2BF68FC07 | | 2 | jerry | *09FB9E6E2AA0750E9D8A8D22B6AA8D86C85BF3D0 | +----+-------+-------------------------------------------+ MariaDB [(none)]> GRANT ALL ON ftpdb.* TO root@xxxxx'172.18.%.%' IDENTIFIED BY 'vsftpuser'MariaDB [ftpdb]> FLUSH PRIVILEGES


変更するpam構成ファイル、構成を追加

1 2 3 # vim /etc/pam.d/vsftpd.mysql auth required /usr/lib/security/pam_mysql.so user=vsftpuser passwd=vsftpuser host=172.18.4.70 db=ftpdb table=users usercolumn=name passwdcolumn=password crypt=2 account required /usr/lib/security/pam_mysql.so user=vsftpuser passwd=vsftpuser host=172.18.4.70 db=ftpdb table=users usercolumn=name passwdcolumn=password crypt=2

追加Virtual userユーザーの地図



1 2 3 4 # useradd -s /sbin/nologin -d /ftproot vuser # chmod -w /ftproot # #Mkdir/ftproot/{download,upload}# It is recommended to create a directory and grant permissions in subdirectories # chown vuser.vuser /ftproot/{download,upload}

注:CentOS 7以降、vsftpdのアクセス許可はより厳密になるため、ユーザーのホームディレクトリに書き込みアクセス許可を設定しないでください。書き込み権限を設定する必要がある場合は、ディレクトリの下にサブディレクトリを作成する必要があります。


ユーザーができるように権限を変更しますenterできるRead

1 # chmod go+rx /ftproot/


構成ファイルを変更します。/etc/vsftpd/vsftpd.conf


必須オプション

1 2 3 4 5 6 7 8 9 Modify the pam authentication module to vsftpd.mysql:pam_service_name=vsftpd.mysql Ensure that the following three items are enabled:anonymous_enable=YESlocal_enable=YESwrite_enable=YES Add to:guest_enable=YESguest_username=vuser

オプションオプション

1 2 3 4 5 chroot_local_user=YES # It is recommended to open based on security considerations anon_upload_enable=YES # Users can upload files anon_mkdir_write_enable=YES #User Science Association anon_other_write_enable=YES #Other permissions except upload and write # Because virtual users are based on anonymous users, permission control can be based on anonymous users.

アップロードしてテストするようにユーザーを設定する


wKioL1cczS3zCurTAACpFOishO4437.png

個別のユーザー権限制御

構成ファイルを編集します:/etc/vsftpd/vsftpd.conf

対応するディレクトリを追加します:user_config_dir=/etc/vsftpd/vuser.conf.d

対応するディレクトリを作成します:mkdir /etc/vsftpd/vuser.conf.d

ユーザー名に対応するファイルを作成します:touch tom jerry

ファイルを変更し、権限を追加します

例:コントロールtomユーザーはアップロードできます、jerryユーザーはアップロードできません
1.対応するディレクトリを作成し、構成ファイルを変更します

1 2 mkdir /etc/vsftpd/vuser.conf.d echo 'user_config_dir=/etc/vsftpd/vuser.conf.d' >> /etc/vsftpd/vsftpd.conf

2.ファイルシステムとユーザー権限を設定します

1 2 3 echo 'anon_upload_enable=YES' >>/etc/vsftpd/vuser.conf.d/tom echo 'anon_upload_enable=NO' >>/etc/vsftpd/vuser.conf.d/jerry chown -R vuser.vuser /ftproot/upload

3.サービスを再起動してテストします

1 systemctl restart vsftpd.service


wKiom1cczg_R859TABh9Iu09mOE605.gif










この記事は、Zhao Daxin 51CTOブログ、元のリンクから転送されます:http://blog.51cto.com/xinzong/1767316、再版が必要な場合は、元の著者に連絡してください