vsftpd異なる権限を作成するユーザー


vsftpd異なる権限を作成するユーザー
vsftpdはLinux環境で動作するftpサーバです.ここでは、異なる権限を持つユーザー(管理者、アップロードのみ、ダウンロードのみ)を構成する方法について説明します.
  • admin:
  • をアップロード、ダウンロード、名前変更、削除できます.
  • uploader:
  • のみアップロード可能
  • downloader:
  • のみダウンロード可能
    以下、Ubuntu 18.04を例に挙げる.
    Step 1. 必要なパッケージのインストールapt指令でvsftpddb-utilを取り付ける
    apt install vsftpd
    apt install db-util
    

    Step 2. vsftpdホストユーザーおよびフォルダの作成
    ユーザーフォルダを作成するには、次の手順に従います.
    mkdir /home/vsftpuser
    

    ユーザーフォルダの下に、データ転送用の777権限フォルダを作成します.
    cd /home/vsftpuser
    mkdir data
    chmod 777 /home/vsftpuser/data
    

    新規ログイン不可ユーザーvsftpuser:
    useradd -s /sbin/nologin -d /home/vsftpuser -M vsftpuser
    

    ユーザーパスワードの変更:
    passwd vsftpuser
    

    Step 3. vsftpd仮想ユーザーリストの作成
    作成ファイルvim /home/vsftpd/u_list.txt(奇数行ユーザー名、偶数行パスワード):
    admin
    adminpassword
    uploader
    uploaderpassword
    downloader
    downloaderpassword
    
    db-utilsを使用してユーザー・リスト・ファイルを暗号化し、権限を変更します.
    db_load -T -t hash -f /home/vsftpd/u_list.txt /home/vsftpd/u_list.db
    chmod 600 /home/vsftpd/u_list.db
    

    Step 4. pamを変更する.d/vsftpd
    修正ファイルvim /etc/pam.d/vsftpd:
    # Standard behaviour for ftpd(8).
    # auth   required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
    
    # Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.
    
    # Standard pam includes
    # @include common-account
    # @include common-session
    # @include common-auth
    # auth   required        pam_shells.so
    auth       required     /lib/x86_64-linux-gnu/security/pam_userdb.so   db=/home/vsftpd/u_list
    account    required     /lib/x86_64-linux-gnu/security/pam_userdb.so   db=/home/vsftpd/u_list
    

    Step 5. 異なるユーザーの権限プロファイルの作成vim /home/vsftpd/conf/admin :
    anon_world_readable_only=NO
    write_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    anon_upload_enable=YES
    local_root=/home/vsftpuser
    
    vim /home/vsftpd/conf/downloader :
    anon_world_readable_only=NO
    local_root=/home/vsftpuser
    
    vim /home/vsftpd/conf/uploader :
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_world_readable_only=NO
    download_enable=NO
    local_root=/home/vsftpuser
    

    Step 6. vsftpdプロファイルの変更vim /etc/vsftpd.conf :
    listen=YES
    listen_ipv6=NO
    
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    
    connect_from_port_20=YES
    
    xferlog_enable=YES
    xferlog_file=/var/log/vsftpd.log
    xferlog_std_format=YES
    
    chroot_local_user=YES
    
    pam_service_name=vsftpd
    
    #       
    guest_enable=YES
    guest_username=vsftpuser
    user_config_dir=/home/vsftpd/conf
    
    ascii_upload_enable=YES
    ascii_download_enable=YES
    
    utf8_filesystem=YES
    
    #           vsftpd        
    #      ftp                
    listen_port=21
    pasv_enable=YES
    pasv_min_port=8700
    pasv_max_port=8900
    pasv_address=101.101.101.101
    pasv_addr_resolve=YES
    

    クラウドサーバを使用する場合は、20/21ポートをオンにする構成が必要です.
    Step 7. vsftpdを使用するためのサービスの再起動
    /etc/init.d/vsftpd restart
    

    リファレンスリンク
  • vsftpdユーザーを追加し、異なる権限を割り当てる
  • FTPサーバ構築と構成