tencent cloud

フィードバック

Linux CVMでFTPサービスを構築

最終更新日:2022-05-07 15:18:55

    概要

    Vsftpd(very secure FTP daemon)は、多数のLinuxディストリビューションのデフォルトのFTPサーバーです。本節では、CentOS 7.6 64ビットOSのTencent Cloud Server(CVM)を例に、vsftpdを使用してLinux CVMのFTPサービスを構築します。

    ソフトウェアのバージョン

    本文では、作成したFTPサービスのコンポーネントバージョンは次のとおりです:
    Linux OS :本節では、公開イメージCentOS 7.6を例に説明します。
    Vsftpd:本節では、vsftpd 3.0.2を例に説明します。

    操作手順

    ステップ1:CVMにログインする

    標準的な方法を使用してLinuxインスタンスにログインする(推奨)。実際の操作方法に応じて、他のログイン方法を選択することもできます:

    手順2:vsftpdのインストール

    1. 次のコマンドを実行し、vsftpdをインストールします。
    yum install -y vsftpd
    2. 次のコマンドを実行し、vsftpdをスタートアップ時に自動起動に設定します。
    systemctl enable vsftpd
    3. 次のコマンドを実行し、FTPサービスを起動します。
    systemctl start vsftpd
    4. 次のコマンドを実行し、サービスが起動されているかどうかを確認します。
    netstat -antup | grep ftp
    次の結果が表示され、FTPサービスが正常に開始されたことを示します。
    
    このとき、vsftpdはデフォルトで匿名アクセスモードを有効化しており、ユーザー名およびパスワードを必要とすることなくFTPサーバーにログインできます。この方法でFTPサーバーにログインするユーザーには、ファイルを変更またはアップロードする権限がありません。

    手順3:vsftpdの設定

    1. 次のコマンドを実行して、FTPサービス用のLinuxユーザーを作成します。本節では、ftpuserを例に説明します。
    useradd ftpuser
    2. 次のコマンドを実行して、ftpuserユーザーのパスワードを設定します。
    passwd ftpuser
    パスワードを入力したら、** Enter **キーを押して確認します。デフォルトではパスワードは表示されません。本節では「tf7295TFY」を例にしています。
    3. 次のコマンドを実行して、FTPサービスが使用するファイルディレクトリを作成します。本節では、「/var/ftp/test」を例にしています。
    mkdir /var/ftp/test
    4. 次のコマンドを実行して、ディレクトリの権限を変更します。
    chown -R ftpuser:ftpuser /var/ftp/test
    5. 次のコマンドを実行し、「vsftpd.conf」ファイルを開きます。
    vim /etc/vsftpd/vsftpd.conf
    6. iを押して編集モードに切り替え、必要に応じてFTPモードを選択し、設定ファイルvsftpd.confを変更します
    ご注意:
    FTPは、アクティブモードとパッシブモードでクライアント端末に接続してデータを転送できます。ほとんどのクライアント端末のファイアウォール設定および実際のIPアドレスを取得できないため、パッシブモードを選択してFTPサービスを構築することをお勧めします。次の変更では、パッシブモードの設定を例として説明します。アクティブモードを選択したい場合は、FTPアクティブモードの設定に進んでください。
    6.1 以下の構成パラメータを変更し、匿名ユーザーとローカルユーザーのログイン権限を設定して、指定された例外ユーザーリストファイルのパスを設定し、IPv4 socketsのリスニングを有効にします。
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    listen=YES
    6.2 行の先頭に#を付けて、listen_ipv6=YES構成パラメータに注釈を付け、IPv6 socketsのリスニングを無効にします。
    #listen_ipv6=YES
    6.3 以下の構成パラメータを追加し、パッシブモードを有効にし、ローカルユーザーがログインした後のディレクトリ、およびCVMがデータ転送を確立するために使用できるポート範囲の値を設定します。
    local_root=/var/ftp/test
    allow_writeable_chroot=YES
    pasv_enable=YES
    pasv_address=xxx.xx.xxx.xx #ご利用のLinux CVMパブリックIPに変更してください
    pasv_min_port=40000
    pasv_max_port=45000
    7. Escを押して、:wqと入力し、保存して終了します。
    8. 次のコマンドを実行して、chroot_listファイルを作成して編集します。
    vim /etc/vsftpd/chroot_list
    9. iを押して編集モードに入り、ユーザー名を入力します。1つのユーザー名が1行に収まり、設定が完了すると、Escを押し、**:wqを入力して保存して終了します。 設定するユーザーの権限はルートディレクトリに限定されていません。例外ユーザーを設定する必要がない場合は、この手順をスキップでき、:wq**を入力してファイルを終了します。
    10. 次のコマンドを実行し、sshサービスを再起動します。
    systemctl restart vsftpd

    手順4:セキュリティグループの設定

    FTPサービスを構築した後、実際に使用するFTPモードに従って、Linux CVMにインバウンドルールをインターネットにオープンする必要があります。詳細については、セキュリティグループルールの追加 をご参照ください。 ほとんどのクライアント端末はLANにあり、IPアドレスが変換されたものです。FTPのアクティブモードを選択した場合は、クライアントマシンが真のIPアドレスを取得したことを確認してください。取得していない場合、クライアントがFTPサーバーにログインできない場合があります。
    アクティブモードの場合:ポート21を開きます。
    パッシブモードの場合:ポート21と、および 設定ファイルの変更 で設定されているpasv_min_port からpasv_max_portまでのすべてのポートを開きます。(本節では、ポート40000~45000を開きます)。

    手順5:FTPサービスの検証

    FTPクライアントソフトウェア、ブラウザ、またはファイルエクスプローラなどのツールを使用してFTPサービスを検証できます。本節では、クライアントのファイルエクスプローラを例に説明します。
    1. クライアントのInternet Explorerを開き、ツール>インターネットオプション>詳細設定を選択し、選択したFTPモードに応じて変更します:
    アクティブモードの場合:「パッシブFTPを使用する」のチェックを外します。
    パッシブモードの場合:「パッシブFTPを使用する」のチェックを入れます。
    2. 次の図に示すように、クライアントでWindowsエクスプローラーを開き、アドレスボックスに次のアドレスを入力して、Enterキーを押します:
    ftp://云服务器公网IP:21
    
    
    
    3. ポップアップされた「ログインID」画面に vsftpdを設定する で設定されたユーザー名とパスワードを入力します。 本節で使用するユーザー名が「ftpuser」、パスワードが「tf7295TFY」です。
    4. ログインが成功したら、ファイルをアップロード及びダウンロードできます。

    付録

    FTPのアクティブモードの設定

    アクティブモードで変更が必要な設定は次のとおりであり、それ以外の設定項目はデフォルトのままにします:
    anonymous_enable=NO #匿名ユーザーのログインを禁止する
    local_enable=YES #ローカルユーザーのログインを許可する
    chroot_local_user=YES #すべてのユーザーがルートディレクトリのみにアクセスするように制限する
    chroot_list_enable=YES #例外ユーザーリストを有効にする
    chroot_list_file=/etc/vsftpd/chroot_list #ユーザーリストファイルを指定します。このリストのユーザーの権限はルートディレクトリに限定されていません
    listen=YES #IPv4 socketsをリスニングする
    #行の先頭に#を付けて、次のパラメータをコメントアウトします
    #listen_ipv6=YES #IPv6 socketsのリスニングをオフにする
    #次のパラメータを追加する
    allow_writeable_chroot=YES
    local_root=/var/ftp/test #ローカルユーザーがログインした後の常駐するディレクトリを設定する
    Esc を押して:wqを入力し、保存して終了します。手順8 に進み、vsftpdの設定を完了します。

    FTPクライアントからのファイルアップロード処理がエラー

    問題の説明

    Linuxシステム環境では、vsftp経由でファイルをアップロードする時に、下記のようなエラー情報が表示されます。
    553 Could not create file

    ソリューション

    1. 次のコマンドを実行し、サーバーのディスク領域の使用率を確認します。
    df -h
    ディスクに十分な空き容量がない場合、ファイルをアップロードできないため、ディスク上の大容量のファイルを削除することをお勧めします。
    ディスク容量が十分な場合は、次のステップを実行してください。
    2. 次のコマンドを実行し、FTP ディレクトリへの書き込み権限があるかどうかを確認します。
    ls -l /home/test
    # /home/testはFTP ディレクトリです。実際のFTPディレクトリに変更してください。
    戻された結果に「w」がない場合は、当該ユーザーに書き込み権限がないことを示し、次のステップを実行してください。
    返された結果の中にwがあれば、チケットを提出 してフィードバックしてください。
    3. 次のコマンドを実行し、FTPディレクトリへの書き込み権限を付与します。
    chmod +w /home/test
    # /home/testはFTP ディレクトリです。実際のFTPディレクトリに変更してください。
    4. 次のコマンドを実行し、書き込み権限が正常に設定されたかどうかを再度確認します。
    ls -l /home/test
    # /home/testはFTP ディレクトリです。実際のFTPディレクトリに変更してください。
    
    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)