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ユーザをシステムに追加します.
    
      
      
      
      
    1. useradd vsftpdguest  
    2.  

    仮想ユーザがログインすると、vsftpdguestの自宅ディレクトリ/home/vsftpdguestが存在します.仮想ユーザを/var/ftpなどの他のディレクトリにログインさせるには、vsftpdguestの自宅ディレクトリを変更すればよい.
    3、プロファイルの設定
    (1)基本設定.
    vsftpd.confプロファイルに、次のパラメータを追加します.
    
      
      
      
      
    1. guest_enable=YES 
    2.  
    3. guest_username=vsftpdguest 
    4.  

    (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操作のみに変更する.
    
      
      
      
      
    1. [root@hpe45 vsftpd]# chown vsftpdguest.vsftpdguest /home/vsftpdguest  
    2.  
    3. [root@hpe45 vsftpd]# chmod 700 /home/vsftpdguest  
    4.  

    ②仮想ユーザによるファイルアップロードの許可
    
      
      
      
      
    1. write_enable=YES 
    2.  
    3. anon_upload_enable=YES 
    4.  

    ③仮想ユーザによるファイル名の変更とファイルの削除を許可する
    
      
      
      
      
    1. anon_other_write_enable=YES 
    2.  

    上記のオプションの設定は、匿名のユーザーにも有効になります.匿名ユーザーがこの機会に同じ権限を持ちたくない場合は、匿名ユーザーのログインを禁止することが望ましい.
    VSTFTPD-1.2.0でvirtual_use_local_privs=YESの場合、write_Enable=YESで、仮想ユーザーは書き込み権限を持つことができます.
    (3)仮想ユーザのその他の構成
    ①仮想ユーザの自宅ディレクトリ限定.
    
      
      
      
      
    1. chroot_local_user=NO 
    2.  
    3. chroot_list_enable=YES 
    4.  
    5. chroot_list_file=/etc/vsftpd.chroot_list  
    6.  

    /etc/vsftpd.chroot_listファイルにxiaotongとxiaowangを追加します.
    または、chroot_local_user=YES
    ②仮想ユーザの個人構成.
    個別の仮想ユーザに独自の構成を持たせる場合は、同様に仮想ユーザの個人プロファイルを作成できます.プライマリ・プロファイルに次を追加します.
    user_config_dir=/etc/vsftpd/vsftpd_user_conf
    生成/etc/vsftpd/vsftpd_user_confディレクトリで、特定の仮想ユーザーと同じ名前のファイルを作成します.
    
      
      
      
      
    1. [root@hpe45 vsftpd]# mkdir vsftpd_user_conf  
    2.  
    3. [root@hpe45 vsftpd]# cd vsftpd_user_conf  
    4.  
    5. [root@hpe45 vsftpd_user_conf]# touch xiaowang  
    6.  

    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に設定します.
    
      
      
      
      
    1. [root@hpe45 home]# mkdir xiaowang  
    2.  
    3. [root@hpe45 home]# chown vsftpdguest.vsftpdguest ./xiaowang  
    4.  

    (5)MySQL仮想ユーザの保存
    このセクションでは、仮想ユーザーのユーザー名とパスワードをMySQLのデータベースに保存する方法について説明します.これは主に2つの部分に分けられ、1つはユーザーとパスワードをデータベースに保存することであり、2つは対応するPAM認証を設定することである.論述を容易にするために、データベースvsftpdvu、テーブルusers、フィールドname、passwdは、仮想ユーザのユーザー名とパスワードを保存するために使用されると仮定する.安全のために、vsftpdguestにvsftpdvuデータベースのusersテーブルの読み取りのみを許可します.
    仮想ユーザーのユーザー名/パスワードの保存.このセクションはMySQLデータベースで完了します.まず、データベースvsftpdvuおよびテーブルusersを作成し、仮想ユーザーxiaotong、xiaowangを挿入します.次のコマンドを実行します.
    
      
      
      
      
    1. [root@hpe45 vsftpd]#mysql -p  
    2.  
    3. mysqlmysqlmysqlmysqlmysqlmysql  
    4.  

    その後、認証vsftpdguestはvsftpdvuデータベースのusersテーブルのみを読み込むことができます.次のコマンドを実行します.
    
      
      
      
      
    1. [root@hpe45 vsftpd]#mysql -u root mysql -p  
    2.  
    3. mysqlmysql  
    4.  

    先ほどの操作が成功したかどうかを確認するには、次のコマンドを実行します.
    
      
      
      
      
    1. [root@hpe45 vsftpd]#mysql -u vsftpdguest -pi52serial0 vsftpdvu