pam_mysqlに基づくvsftpdの仮想ユーザーメカニズム
Vsftpds Virtual User Mechanism Based Pam_mysql
pam_mysqlに基づくvsftpdの仮想ユーザーメカニズム
仮想ユーザー:はい
ftp
一般的に使用される戦略ftp
サービスは古くて安全ではないため、使用Anonymous User
権限を効果的に制御できませんが、Local user
ログインできますオペレーティングシステムは非常に安全ではないため、導入されましたVirtual user
コンセプトは、複数の仮想ユーザーのみをローカルユーザーにマップすることです。このユーザーは、ログインを許可しないように設定できるため、システムのセキュリティが強化されます。この質問は主にmysql
ofVirtual 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=YES local_enable=YES write_enable=YES Add to: guest_enable=YES guest_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. |
アップロードしてテストするようにユーザーを設定する
個別のユーザー権限制御
構成ファイルを編集します:
/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 |
この記事は、Zhao Daxin 51CTOブログ、元のリンクから転送されます:http://blog.51cto.com/xinzong/1767316、再版が必要な場合は、元の著者に連絡してください