Vsftpd仮想ユーザの構成
Vsftpd仮想ユーザの構成要旨:VSFPDの仮想ユーザーはFTPサービスの専用ユーザーであり、仮想ユーザーはFTPサーバー資源にしかアクセスできない.この文書では、Vsftpdで仮想ユーザ を構成する方法について説明する.ラベル:Vsftpd仮想ユーザ
Vsftpd仮想ユーザの構成
1、VSTFTPDの仮想ユーザー紹介
VSTFTPDのローカルユーザ自体はシステムのユーザであり、FTPサーバにログインできるほか、システムにログインして他のシステムリソースを使用することもできるが、VSTFTPDの仮想ユーザはFTPサービスの専用ユーザであり、仮想ユーザはFTPサーバリソースにしかアクセスできない.他のシステムリソースを必要としないFTPのみでシステムに読み書き権限を持つユーザや場合には,仮想ユーザ方式が適している.
VSTFTPDの仮想ユーザは,個別のユーザ名/パスワード保存方式を採用し,システムアカウント(passwd/shadow)から分離し,システムのセキュリティを大幅に強化した.VSFPDは、hashなどのユーザ/パスワードを保存するためにデータベースファイルを使用することができる.ユーザー/パスワードは、MySQLなどのデータベースサーバに保存することもできます.VSTFTPDは仮想ユーザを検証し、PAM方式を採用する.仮想ユーザのユーザ名/パスワードが個別に保存されるため、認証時にVSTFTPDは、匿名ユーザもシステムユーザftpを必要とするように、データベースファイルまたはデータベースサーバを1つのシステムユーザとして読み出す必要がある.もちろんguestユーザは、仮想ユーザをマッピングするために使用されると考えてもよい.
仮想ユーザの構成は、guestユーザの作成、ユーザ/パスワードの保存、PAM認証構成、vsftpdに分けられる.confファイル設定など.具体的な構成方法については、次のセクションを参照してください.注意:後述する例では、仮想ユーザxiaotongおよびxiaowangが存在すると仮定します.
2、ユーザー作成とディレクトリ設定
仮想ユーザのシステムの代表としてvsftpdguestユーザをシステムに追加します.
仮想ユーザがログインすると、vsftpdguestの自宅ディレクトリ/home/vsftpdguestが存在します.仮想ユーザを/var/ftpなどの他のディレクトリにログインさせるには、vsftpdguestの自宅ディレクトリを変更すればよい.
3、プロファイルの設定
(1)基本設定.
vsftpd.confプロファイルに、次のパラメータを追加します.
(2)仮想ユーザの権限構成.
VSFPD-1.2.0 virtual_を追加use_local_privsパラメータは、このパラメータがアクティブ化(YES)されると、仮想ユーザがローカルユーザと同じ権限を使用する.このパラメータがオフ(NO)の場合、仮想ユーザは匿名ユーザと同じパーミッションを使用します.これはVSFPD-1.2.0以前のバージョンの仮想ユーザパーミッションの処理方法です.この2つの方法は、特に書き込みアクセスがある場合に比べて、後者はより厳しくなります.既定では、このパラメータはオフです(NO).
まずvirtual_について説明しますuse_local_privs=NOの場合、VSFPD-1.2.0以前のバージョンの仮想ユーザー権限の構成方法:
①仮想ユーザ閲覧ディレクトリの制御
ユーザーがディレクトリを閲覧できなくてもファイルを操作できる場合は、次の2つのステップを実行する必要があります.1、プロファイル、anon_world_readable_only=YES.二、仮想ユーザーディレクトリの権限をvsftpdguest操作のみに変更する.
②仮想ユーザによるファイルアップロードの許可
③仮想ユーザによるファイル名の変更とファイルの削除を許可する
上記のオプションの設定は、匿名のユーザーにも有効になります.匿名ユーザーがこの機会に同じ権限を持ちたくない場合は、匿名ユーザーのログインを禁止することが望ましい.
VSTFTPD-1.2.0でvirtual_use_local_privs=YESの場合、write_Enable=YESで、仮想ユーザーは書き込み権限を持つことができます.
(3)仮想ユーザのその他の構成
①仮想ユーザの自宅ディレクトリ限定.
/etc/vsftpd.chroot_listファイルにxiaotongとxiaowangを追加します.
または、chroot_local_user=YES
②仮想ユーザの個人構成.
個別の仮想ユーザに独自の構成を持たせる場合は、同様に仮想ユーザの個人プロファイルを作成できます.プライマリ・プロファイルに次を追加します.
user_config_dir=/etc/vsftpd/vsftpd_user_conf
生成/etc/vsftpd/vsftpd_user_confディレクトリで、特定の仮想ユーザーと同じ名前のファイルを作成します.
xiaowangファイルにxiaowang専用のオプション設定を追加できます.
注意:個人プロファイルにchroot_を追加する場合local_user=YESは無効です.
(4)仮想ユーザ個人ディレクトリ設定
どの仮想ユーザでも、ログイン後のディレクトリは/home/vsftpdguest、すなわちguest_であることがわかります.usernameユーザーの自宅ディレクトリ.以下では、仮想ユーザーごとに独自のディレクトリを作成する方法について説明します.
1つの方法は、仮想ユーザのパーソナルプロファイルでlocal_を使用することです.rootオプションは、仮想ユーザーの自宅ディレクトリを指定します.xiaowangを例にとると、ステップアップに基づいて、まず/etc/vsftpd/vsftpd_user_conf/xiaowangファイルに追加:
local_root=/home/xiaowang
xiaowangディレクトリを新規作成し、権限をvsftpdguestに設定します.
(5)MySQL仮想ユーザの保存
このセクションでは、仮想ユーザーのユーザー名とパスワードをMySQLのデータベースに保存する方法について説明します.これは主に2つの部分に分けられ、1つはユーザーとパスワードをデータベースに保存することであり、2つは対応するPAM認証を設定することである.論述を容易にするために、データベースvsftpdvu、テーブルusers、フィールドname、passwdは、仮想ユーザのユーザー名とパスワードを保存するために使用されると仮定する.安全のために、vsftpdguestにvsftpdvuデータベースのusersテーブルの読み取りのみを許可します.
仮想ユーザーのユーザー名/パスワードの保存.このセクションはMySQLデータベースで完了します.まず、データベースvsftpdvuおよびテーブルusersを作成し、仮想ユーザーxiaotong、xiaowangを挿入します.次のコマンドを実行します.
その後、認証vsftpdguestはvsftpdvuデータベースのusersテーブルのみを読み込むことができます.次のコマンドを実行します.
先ほどの操作が成功したかどうかを確認するには、次のコマンドを実行します.
Vsftpd仮想ユーザの構成
1、VSTFTPDの仮想ユーザー紹介
VSTFTPDのローカルユーザ自体はシステムのユーザであり、FTPサーバにログインできるほか、システムにログインして他のシステムリソースを使用することもできるが、VSTFTPDの仮想ユーザはFTPサービスの専用ユーザであり、仮想ユーザはFTPサーバリソースにしかアクセスできない.他のシステムリソースを必要としないFTPのみでシステムに読み書き権限を持つユーザや場合には,仮想ユーザ方式が適している.
VSTFTPDの仮想ユーザは,個別のユーザ名/パスワード保存方式を採用し,システムアカウント(passwd/shadow)から分離し,システムのセキュリティを大幅に強化した.VSFPDは、hashなどのユーザ/パスワードを保存するためにデータベースファイルを使用することができる.ユーザー/パスワードは、MySQLなどのデータベースサーバに保存することもできます.VSTFTPDは仮想ユーザを検証し、PAM方式を採用する.仮想ユーザのユーザ名/パスワードが個別に保存されるため、認証時にVSTFTPDは、匿名ユーザもシステムユーザftpを必要とするように、データベースファイルまたはデータベースサーバを1つのシステムユーザとして読み出す必要がある.もちろんguestユーザは、仮想ユーザをマッピングするために使用されると考えてもよい.
仮想ユーザの構成は、guestユーザの作成、ユーザ/パスワードの保存、PAM認証構成、vsftpdに分けられる.confファイル設定など.具体的な構成方法については、次のセクションを参照してください.注意:後述する例では、仮想ユーザxiaotongおよびxiaowangが存在すると仮定します.
2、ユーザー作成とディレクトリ設定
仮想ユーザのシステムの代表としてvsftpdguestユーザをシステムに追加します.
- useradd vsftpdguest
-
仮想ユーザがログインすると、vsftpdguestの自宅ディレクトリ/home/vsftpdguestが存在します.仮想ユーザを/var/ftpなどの他のディレクトリにログインさせるには、vsftpdguestの自宅ディレクトリを変更すればよい.
3、プロファイルの設定
(1)基本設定.
vsftpd.confプロファイルに、次のパラメータを追加します.
- guest_enable=YES
-
- guest_username=vsftpdguest
-
(2)仮想ユーザの権限構成.
VSFPD-1.2.0 virtual_を追加use_local_privsパラメータは、このパラメータがアクティブ化(YES)されると、仮想ユーザがローカルユーザと同じ権限を使用する.このパラメータがオフ(NO)の場合、仮想ユーザは匿名ユーザと同じパーミッションを使用します.これはVSFPD-1.2.0以前のバージョンの仮想ユーザパーミッションの処理方法です.この2つの方法は、特に書き込みアクセスがある場合に比べて、後者はより厳しくなります.既定では、このパラメータはオフです(NO).
まずvirtual_について説明しますuse_local_privs=NOの場合、VSFPD-1.2.0以前のバージョンの仮想ユーザー権限の構成方法:
①仮想ユーザ閲覧ディレクトリの制御
ユーザーがディレクトリを閲覧できなくてもファイルを操作できる場合は、次の2つのステップを実行する必要があります.1、プロファイル、anon_world_readable_only=YES.二、仮想ユーザーディレクトリの権限をvsftpdguest操作のみに変更する.
- [root@hpe45 vsftpd]# chown vsftpdguest.vsftpdguest /home/vsftpdguest
-
- [root@hpe45 vsftpd]# chmod 700 /home/vsftpdguest
-
②仮想ユーザによるファイルアップロードの許可
- write_enable=YES
-
- anon_upload_enable=YES
-
③仮想ユーザによるファイル名の変更とファイルの削除を許可する
- anon_other_write_enable=YES
-
上記のオプションの設定は、匿名のユーザーにも有効になります.匿名ユーザーがこの機会に同じ権限を持ちたくない場合は、匿名ユーザーのログインを禁止することが望ましい.
VSTFTPD-1.2.0でvirtual_use_local_privs=YESの場合、write_Enable=YESで、仮想ユーザーは書き込み権限を持つことができます.
(3)仮想ユーザのその他の構成
①仮想ユーザの自宅ディレクトリ限定.
- chroot_local_user=NO
-
- chroot_list_enable=YES
-
- chroot_list_file=/etc/vsftpd.chroot_list
-
/etc/vsftpd.chroot_listファイルにxiaotongとxiaowangを追加します.
または、chroot_local_user=YES
②仮想ユーザの個人構成.
個別の仮想ユーザに独自の構成を持たせる場合は、同様に仮想ユーザの個人プロファイルを作成できます.プライマリ・プロファイルに次を追加します.
user_config_dir=/etc/vsftpd/vsftpd_user_conf
生成/etc/vsftpd/vsftpd_user_confディレクトリで、特定の仮想ユーザーと同じ名前のファイルを作成します.
- [root@hpe45 vsftpd]# mkdir vsftpd_user_conf
-
- [root@hpe45 vsftpd]# cd vsftpd_user_conf
-
- [root@hpe45 vsftpd_user_conf]# touch xiaowang
-
xiaowangファイルにxiaowang専用のオプション設定を追加できます.
注意:個人プロファイルにchroot_を追加する場合local_user=YESは無効です.
(4)仮想ユーザ個人ディレクトリ設定
どの仮想ユーザでも、ログイン後のディレクトリは/home/vsftpdguest、すなわちguest_であることがわかります.usernameユーザーの自宅ディレクトリ.以下では、仮想ユーザーごとに独自のディレクトリを作成する方法について説明します.
1つの方法は、仮想ユーザのパーソナルプロファイルでlocal_を使用することです.rootオプションは、仮想ユーザーの自宅ディレクトリを指定します.xiaowangを例にとると、ステップアップに基づいて、まず/etc/vsftpd/vsftpd_user_conf/xiaowangファイルに追加:
local_root=/home/xiaowang
xiaowangディレクトリを新規作成し、権限をvsftpdguestに設定します.
- [root@hpe45 home]# mkdir xiaowang
-
- [root@hpe45 home]# chown vsftpdguest.vsftpdguest ./xiaowang
-
(5)MySQL仮想ユーザの保存
このセクションでは、仮想ユーザーのユーザー名とパスワードをMySQLのデータベースに保存する方法について説明します.これは主に2つの部分に分けられ、1つはユーザーとパスワードをデータベースに保存することであり、2つは対応するPAM認証を設定することである.論述を容易にするために、データベースvsftpdvu、テーブルusers、フィールドname、passwdは、仮想ユーザのユーザー名とパスワードを保存するために使用されると仮定する.安全のために、vsftpdguestにvsftpdvuデータベースのusersテーブルの読み取りのみを許可します.
仮想ユーザーのユーザー名/パスワードの保存.このセクションはMySQLデータベースで完了します.まず、データベースvsftpdvuおよびテーブルusersを作成し、仮想ユーザーxiaotong、xiaowangを挿入します.次のコマンドを実行します.
- [root@hpe45 vsftpd]#mysql -p
-
- mysqlmysqlmysqlmysqlmysqlmysql
-
その後、認証vsftpdguestはvsftpdvuデータベースのusersテーブルのみを読み込むことができます.次のコマンドを実行します.
- [root@hpe45 vsftpd]#mysql -u root mysql -p
-
- mysqlmysql
-
先ほどの操作が成功したかどうかを確認するには、次のコマンドを実行します.
- [root@hpe45 vsftpd]#mysql -u vsftpdguest -pi52serial0 vsftpdvu