開発運用

Ubuntu FTPサーバー設定ガイド

FTPサーバーは、ファイル転送プロトコル(File Transfer Protocol)を使用して、ネットワーク越しにファイルを転送するための仕組みです。UbuntuでFTPサーバーを設定することで、他のコンピュータからリモートでファイルの送受信を行えるようになります。この記事では、UbuntuにFTPサーバーをインストールし、設定する方法を順を追って説明します。

必要なパッケージのインストール

まずは、FTPサーバーとしてよく使われる「vsftpd(Very Secure FTP Daemon)」をインストールします。このサーバーは、軽量でセキュリティ面でも強化されているため、多くのユーザーに利用されています。

  1. ターミナルを開き、sudo apt updateでシステムを最新の状態に更新します。

    bash
    sudo apt update
  2. 次に、vsftpdをインストールします。

    bash
    sudo apt install vsftpd

インストールが完了すると、vsftpdは自動的にサービスとして起動します。これで基本的なインストールは完了です。

FTPサーバーの設定

インストールが完了したら、vsftpdの設定を変更して、セキュリティやアクセス制御を強化する必要があります。設定ファイルは/etc/vsftpd.confにあります。このファイルを編集して、必要な設定を行います。

  1. 設定ファイルを編集します。

    bash
    sudo nano /etc/vsftpd.conf
  2. 以下の設定項目を確認し、必要に応じて変更します。

    • 匿名ユーザーのアクセスを禁止: セキュリティ上、匿名ユーザーがFTPサーバーにアクセスできないようにするのが一般的です。

      bash
      anonymous_enable=NO
    • ローカルユーザーのログインを許可: ローカルユーザー(Ubuntuに設定されたユーザー)にFTPアクセスを許可します。

      bash
      local_enable=YES
    • 書き込み権限を許可: ユーザーがFTPサーバー上でファイルをアップロードできるようにするために、書き込み権限を有効にします。

      bash
      write_enable=YES
    • chroot環境(ユーザーのホームディレクトリに制限): ユーザーがFTPサーバーにログインした際、特定のディレクトリのみアクセスできるように制限をかけるために、以下の設定を有効にします。

      bash
      chroot_local_user=YES
  3. 設定を保存して、vsftpdを再起動します。

    bash
    sudo systemctl restart vsftpd

ファイアウォールの設定

Ubuntuのデフォルトでファイアウォール(ufw)が有効になっている場合、FTPの通信を許可する必要があります。FTPは通常、ポート21を使用します。

  1. ファイアウォールの設定を確認します。

    bash
    sudo ufw status
  2. FTP通信を許可するために、以下のコマンドを実行します。

    bash
    sudo ufw allow 21/tcp
  3. 設定を適用します。

    bash
    sudo ufw reload

これで、ファイアウォールがFTPの通信を許可するようになります。

ユーザーアカウントの作成

FTPにアクセスするためのユーザーアカウントを作成します。既存のユーザーを使用しても構いませんが、新しく作成することもできます。

  1. 新しいユーザーを作成します。

    bash
    sudo adduser ftpuser
  2. パスワードやユーザー情報を入力し、設定を完了させます。

  3. 作成したユーザーがFTPでアクセスできるように、そのホームディレクトリの権限を適切に設定します。

    bash
    sudo chmod 755 /home/ftpuser

これで、このユーザーがFTPサーバーを通じてファイルを転送できるようになります。

FTPサーバーへの接続

設定が完了したら、実際にFTPサーバーへ接続してみましょう。ローカルでの接続確認には、以下のコマンドを使用できます。

  1. FTPクライアントを使用して接続します。

    bash
    ftp localhost
  2. ユーザー名とパスワードを入力すると、FTPサーバーにログインできます。

セキュリティの強化

FTPはその性質上、暗号化されていない通信を行うため、セキュリティ面でのリスクがあります。これを改善するために、FTPS(FTP Secure)やSFTP(SSH File Transfer Protocol)を使用することが推奨されます。

FTPSを有効にする

  1. SSL/TLS暗号化を有効にするには、設定ファイルを編集します。

    bash
    sudo nano /etc/vsftpd.conf
  2. 以下の設定を追加または変更します。

    bash
    rsa_cert_file=/etc/ssl/certs/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES
  3. 次に、SSL証明書を作成します。

    bash
    sudo openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem -days 365
  4. 設定を保存し、vsftpdを再起動します。

    bash
    sudo systemctl restart vsftpd

これでFTPSが有効になり、安全にファイル転送を行えるようになります。

まとめ

UbuntuにFTPサーバーをインストールして設定する方法について説明しました。基本的な設定を行うことで、ローカルユーザーが安全にファイルを転送できる環境を整えることができます。セキュリティを強化するためには、FTPSやSFTPの使用を検討し、さらに安全性を高めることが重要です。

Back to top button