GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu VPSでFTPサーバーをセットアップする方法:究極のガイド

この記事では、UbuntuVPSでFTPサーバーをセットアップする方法を学習します。 UNIXライクなシステムで最も高速で安全なFTPサーバーとして広く認められているvsftpdサーバーを使用します。

FTPとは何ですか?

FTP(ファイル転送プロトコル)は、TCP/IPプロトコルを使用してインターネット接続を介してコンピューター間でファイルを共有する手段です。また、クライアントサーバーフレームワークとSSL / TLSセキュリティを利用して、安全で信頼性の高いデータ転送を保証します。

これは、HTTP(HypertText Transfer Protocol)またはSMTP(Simple Mail Transfer Protocol)にいくぶん似ています。違いは、FTPがインターネットを介したファイルの転送を担当し、HTTPとSMTPがそれぞれWebページと電子メールの転送を処理することです。

始める前に、Ubuntu18.04でFTPサーバーを構成する手順を説明することを覚えておいてください。したがって、VPSがその特定のOSで実行されていることを確認する必要があります。

UbuntuでFTPサーバーをセットアップする方法

このチュートリアルでは、SSHを介してサーバーに接続する方法を知っている必要があります。 HostingerのVPSを所有している場合、ログインの詳細はサーバーで入手できます。 hPanelのタブ。

ステップ1-vsftpdのインストール
  1. まず、 vsftpd に進む前に、パッケージの更新を取得する必要があります インストール。開始するには、次のコマンドを実行します:
    sudo apt-get update

    すべてのプロセスが完了するのを待ちます。更新が完了するとすぐに確認が表示されます。

  2. 完了したら、 vsftpdをインストールします 以下のコマンドを使用するデーモン:
    sudo apt-get install vsftpd

    確認メッセージが表示され、 Yと入力する必要があります Enterを押します インストールを続行します。

  3. インストールが完了したら、元のファイルをバックアップして、空の構成ファイルから開始できるようにする必要があります。
    sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original

    これで、ファイアウォールを構成する準備が整いました。

ステップ2–ファイアウォールからのFTPトラフィックを許可する
  1. Ubuntu FTPサーバーがインターネット経由で通信できるようにするには、ファイアウォールを通過する必要があります。ただし、最初に、ファイアウォールがマシンですでに有効になっているかどうかを確認しましょう。次のコマンドを実行して、ステータスを確認します:
    sudo ufw status

    次のメッセージが表示された場合:

    ufw: command not found

    ファイアウォールがインストールされていないことを意味します。次のように入力して、インストールして有効にすることができます:

    sudo apt-get install ufw
    sudo ufw enable
  2. すでにアクティブになっている場合でも、FTPトラフィックが許可されていることを確認する必要があります。これを行うには、次のコマンドを1つずつ実行します。
    sudo ufw allow OpenSSH
    sudo ufw allow 20/tcp
    sudo ufw allow 21/tcp
    sudo ufw allow 990/tcp
    sudo ufw allow 40000:50000/tcp

    この一連のコマンドは、いくつかのポートを開きます:

    • OpenSSH それでもSSH経由でサーバーにアクセスする場合は、が必要です。このオプションはデフォルトで有効になっている場合があります。
    • ポート20 および21 FTPトラフィック用。
    • ポート40000:50000 最終的に構成ファイルに設定されるパッシブポートの範囲用に予約されます。
    • ポート990 TLSが有効になっている場合に使用されます。
  3. 次に、ステータスをもう一度見てみましょう。
    sudo ufw status

    出力は次のようになります。

    Status: active
    To                         Action From
    --                              ------ ----
    OpenSSH                    ALLOW Anywhere
    990/tcp                    ALLOW Anywhere
    20/tcp                     ALLOW Anywhere
    21/tcp                     ALLOW Anywhere
    40000:50000/tcp            ALLOW Anywhere
    OpenSSH (v6)               ALLOW Anywhere (v6)
    20/tcp (v6)                ALLOW Anywhere (v6)
    21/tcp (v6)                ALLOW Anywhere (v6)
    990/tcp (v6)               ALLOW Anywhere (v6)
    40000:50000/tcp (v6)       ALLOW Anywhere (v6)
ステップ3–ユーザーディレクトリの作成
  1. ファイアウォールを設定したら、FTPアクセスを使用するユーザーを作成する必要があります。これを行う方法は次のとおりです。
    sudo adduser hostinger

    自分の好みに応じてユーザー名を変更することを忘れないでください。

  2. 次に、ユーザーのパスワードを入力し、必要なすべての詳細を入力します。
    理想的には、セキュリティ上の理由から、FTPは1つの特定のディレクトリに制限する必要があります。そのため、 vsftpd chroot刑務所を使用します 、これはデフォルトでローカルユーザーをホームディレクトリに制限します。
    ただし、 vsftpdが原因である可能性があります セキュリティ上、ユーザーはそのディレクトリに書き込めない可能性があります。これを修正するために、ホームフォルダから書き込み権限を削除する必要はありません。代わりに、 chrootとして機能するftpディレクトリを作成します 。必要なファイルを保持するための書き込み可能なディレクトリが含まれています。
  3. 次のコマンドを使用してFTPフォルダーを作成します:
    sudo mkdir /home/hostinger/ftp

    次に、以下を使用して所有権を設定します:

    sudo chown nobody:nogroup /home/hostinger/ftp

    最後に、書き込み権限を削除します:

    sudo chmod a-w /home/hostinger/ftp

    次に、次のコマンドを使用して権限を確認します。

    sudo ls -la /home/hostinger/ftp

    出力は次のようになります。

    total 8
    dr-xr-xr-x 2 nobody nogroup 4096 Oct 8 11:32 .
    drwxr-xr-x 3 hostinger   hostinger 4096 Oct 8 11:32 ..
  4. 次に、ファイル保持ディレクトリを作成し、所有権を割り当てます:
    sudo mkdir /home/hostinger/ftp/files
    sudo chown hostinger:hostinger /home/hostinger/ftp/files

    最後に、後ですべてをテストするときに使用されるディレクトリにテストファイルを追加します。

    echo "vsftpd sample file" | sudo tee /home/hostinger/ftp/files/sample.txt
ステップ4–vsftpdの構成

次のステップは、vsftpdとFTPアクセスを構成することです。この例では、1人のユーザーがローカルシェルアカウントを使用して接続できるようにします。これに必要な2つの主要な構成は、構成( vsftpd.conf )ですでに設定されています。 )ファイル。

  1. 開始するには、nanoコマンドを使用して vsftpdを開きます 構成ファイル。
    sudo nano /etc/vsftpd.conf

    コンテンツに次のような設定があることを確認します:

    . . .
    # Allow anonymous FTP? (Disabled by default).
    anonymous_enable=NO
    #
    # Uncomment this to allow local users to log in.
    local_enable=YES
    . . .

    同じファイルで、を削除します (コメント解除)そして、 write_enableが有効になっていることを確認してください 。

    . . .
    write_enable=YES
    . . .
  2. chrootのコメントも解除する必要があります FTPユーザーが許可されたディレクトリ内のファイルにのみアクセスするようにします。 いいえを変更します はいの値 、 同じように。このような行は2つあり、両方のコメントを解除する必要があることに注意してください。
    . . .
    chroot_local_user=YES
    . . .
  3. ファイルの最後にも追加する必要のある新しい値がいくつかあります。 1つ目はuser_sub_token local_rootディレクトリパス内 。これにより、現在のユーザーまたは後で追加される他のユーザーと構成を連携させることができます:
    user_sub_token=$USER
    
    local_root=/home/$USER/ftp
  4. かなりの量の接続を利用できるようにするために、構成ファイルのポート数を制限します:
    pasv_min_port=40000
    pasv_max_port=50000
  5. このチュートリアルでは、ケースバイケースでアクセスを許可する予定です。したがって、リストに明示的に追加したユーザーにのみアクセスを許可するように構成を設定します:
    userlist_enable=YES
    userlist_file=/etc/vsftpd.userlist
    userlist_deny=NO

    userlist_denyフラグを設定した場合 いいえ 、指定されたユーザーのみがアクセスを許可されます。完了したら、 CTRL + Xをクリックします 続いてY 保存するには、入力 ファイルの変更を確認します。

  6. 最後に、ユーザーリストを作成し、ファイルにユーザーを追加します。
    echo "hostinger" | sudo tee -a /etc/vsftpd.userlist

    次のコマンドを実行して、ユーザーが実際にアクティブであることを確認します。

    cat /etc/vsftpd.userlist

    このスクリーンショットに示すように、出力は「hostinger」である必要があります。

  7. 次のコマンドを使用してデーモンを再起動し、構成の変更をロードします。
    sudo systemctl restart vsftpd
ステップ5–FTPを安全にする
  1. デフォルトでは、FTPはデータを暗号化しないため、 SSL / TLSを使用します データ転送を保護するための証明書。最初のステップは、UbuntuFTPサーバーのSSL証明書を作成する必要があることです。
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

    –日 フラグは証明書を1年間有効にし、2048ビットを含めました プライベートRSA 同じコマンドを入力します。

  2. プロンプトが表示されたら、表示されたフィールドに対応する個人情報を入力します。
  3. 証明書の作成が完了したら、構成ファイルを再度開きます:
    sudo nano /etc/vsftpd.conf

    ファイルの終わりには、 rsaで始まる2行が含まれている必要があります 。

    # rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    # rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

    次に、作成したばかりの証明書を構成ファイルにポイントします。前の行のすぐ下に次のディレクトリを追加します。

    rsa_cert_file=/etc/ssl/private/vsftpd.pem
    rsa_private_key_file=/etc/ssl/private/vsftpd.pem
  4. 次に、SSLを有効にし、アクティブなSSLを持つクライアントのみが連絡できるようにします。次の行を入力するだけです:
    ssl_enable=YES

    次に、次の行を追加して、SSLを介した匿名接続を禁止します。

    allow_anon_ssl=NO
    force_local_data_ssl=YES
    force_local_logins_ssl=YES

    以下を使用してTLSを使用するようにサーバーを構成します:

    ssl_tlsv1=YES
    ssl_sslv2=NO
    ssl_sslv3=NO
  5. 次に、さらに2つのオプションを変更します。まず、SSLの再利用を無効にします FTPクライアントが故障するのを防ぐため。次に、高度な暗号化暗号スイートを使用します。これにより、キーの長さが128ビット以上になるようになります。
    require_ssl_reuse=NO
    ssl_ciphers=HIGH

    CTRL + X を押して、ファイルをもう一度保存します 続いてY 、次に Enterを押します 。

  6. vsftpdを再起動しましょう もう一度、新しい構成を適用します:
    sudo systemctl restart vsftpd

すごい仕事!これで、SSL/TLSプロトコルで動作するようにUbuntuVPSでFTPサーバーを構成しました。

ステップ6–FileZillaとの接続のテスト

現在、ほとんどのFTPクライアントはTLS暗号化構成をサポートしています。これは、UbuntuFTPサーバーが正しく機能しているかどうかをテストするための優れた方法です。接続をテストするために、FileZillaFTPクライアントを使用します。

  1. 開始するには、 FileZillaを起動します サイトマネージャーをクリックします アイコン。次に、新しいサイトをクリックします プロンプトウィンドウのボタンをクリックして、UbuntuFTPサーバーの詳細を入力します。
  2. 必要なすべての列に、新しく作成したUbuntuFTPサーバー情報を入力します。 TLSを使用するように構成したため、明示的なFTPoverTLSを使用するを選択することもできます。 オプション。最終的な構成は次のようになります。
  3. 準備ができたら、[接続]をクリックします FTPユーザーのパスワードの入力を求める画面が表示されます。その後、 OKを押します 。
  4. 最後に、UbuntuVPSでFTPサーバーのSSL証明書を確認する必要があります。確認すると、テストファイルを含むルートディレクトリが画面に表示されます。

それで全部です!これで、コンピューターからUbuntuFTPサーバーへのさまざまなファイル転送を実行できます。

結論

Ubuntu FTPサーバーがあると、UbuntuVPS/サーバーとコンピューター間でファイルを簡単に共有できます。 SSL/TLSセキュリティとTCP/IPプロトコルのおかげで、安全で信頼性の高いデータ転送方法です。

このチュートリアルでは、vsftpdを使用してUbuntu18.04でFTPサーバーをセットアップする方法を学習しました。あなたが従うべき5つのステップがあります。それらをもう一度見てみましょう。

  1. インストールvsftpd Ubuntuサーバーで、元の構成ファイルをバックアップします。
  2. ファイアウォールを介したFTP接続を許可します。
  3. 指定したユーザーだけがアクセスできるユーザーディレクトリを作成します。
  4. vsftpdを構成します 。
  5. FTPサーバーを保護します。
  6. FileZillaを使用してFTP接続をテストします。

頑張ってください。他のVPSチュートリアルも必ず確認してください。


Ubuntu
  1. UbuntuでWireGuardVPNを設定する方法(ステップバイステップガイド)

  2. UbuntuServer21.04にAnsibleをインストールする方法

  3. Ubuntu 20.04 に FTP サーバーをインストールする方法

  1. RaspberryPiでFTPサーバーを設定する方法

  2. vsftpdを使用してUbuntuにFTPサーバーをインストールする方法

  3. ユーザーがUbuntuLinuxでsudoを使用できるようにする方法

  1. Ubuntu18.04でOpenVPNサーバーをセットアップする方法

  2. Ubuntu20.04でNginxサーバーブロックを設定する方法

  3. UbuntuサーバーにGUIをインストールする方法(簡単なガイド)