FTPサーバーは、ファイル転送プロトコル(File Transfer Protocol)を使用して、ネットワーク越しにファイルを転送するための仕組みです。UbuntuでFTPサーバーを設定することで、他のコンピュータからリモートでファイルの送受信を行えるようになります。この記事では、UbuntuにFTPサーバーをインストールし、設定する方法を順を追って説明します。
必要なパッケージのインストール
まずは、FTPサーバーとしてよく使われる「vsftpd(Very Secure FTP Daemon)」をインストールします。このサーバーは、軽量でセキュリティ面でも強化されているため、多くのユーザーに利用されています。
-
ターミナルを開き、
sudo apt updateでシステムを最新の状態に更新します。bashsudo apt update -
次に、
vsftpdをインストールします。bashsudo apt install vsftpd
インストールが完了すると、vsftpdは自動的にサービスとして起動します。これで基本的なインストールは完了です。
FTPサーバーの設定
インストールが完了したら、vsftpdの設定を変更して、セキュリティやアクセス制御を強化する必要があります。設定ファイルは/etc/vsftpd.confにあります。このファイルを編集して、必要な設定を行います。
-
設定ファイルを編集します。
bashsudo nano /etc/vsftpd.conf -
以下の設定項目を確認し、必要に応じて変更します。
-
匿名ユーザーのアクセスを禁止: セキュリティ上、匿名ユーザーがFTPサーバーにアクセスできないようにするのが一般的です。
bashanonymous_enable=NO -
ローカルユーザーのログインを許可: ローカルユーザー(Ubuntuに設定されたユーザー)にFTPアクセスを許可します。
bashlocal_enable=YES -
書き込み権限を許可: ユーザーがFTPサーバー上でファイルをアップロードできるようにするために、書き込み権限を有効にします。
bashwrite_enable=YES -
chroot環境(ユーザーのホームディレクトリに制限): ユーザーがFTPサーバーにログインした際、特定のディレクトリのみアクセスできるように制限をかけるために、以下の設定を有効にします。
bashchroot_local_user=YES
-
-
設定を保存して、
vsftpdを再起動します。bashsudo systemctl restart vsftpd
ファイアウォールの設定
Ubuntuのデフォルトでファイアウォール(ufw)が有効になっている場合、FTPの通信を許可する必要があります。FTPは通常、ポート21を使用します。
-
ファイアウォールの設定を確認します。
bashsudo ufw status -
FTP通信を許可するために、以下のコマンドを実行します。
bashsudo ufw allow 21/tcp -
設定を適用します。
bashsudo ufw reload
これで、ファイアウォールがFTPの通信を許可するようになります。
ユーザーアカウントの作成
FTPにアクセスするためのユーザーアカウントを作成します。既存のユーザーを使用しても構いませんが、新しく作成することもできます。
-
新しいユーザーを作成します。
bashsudo adduser ftpuser -
パスワードやユーザー情報を入力し、設定を完了させます。
-
作成したユーザーがFTPでアクセスできるように、そのホームディレクトリの権限を適切に設定します。
bashsudo chmod 755 /home/ftpuser
これで、このユーザーがFTPサーバーを通じてファイルを転送できるようになります。
FTPサーバーへの接続
設定が完了したら、実際にFTPサーバーへ接続してみましょう。ローカルでの接続確認には、以下のコマンドを使用できます。
-
FTPクライアントを使用して接続します。
bashftp localhost -
ユーザー名とパスワードを入力すると、FTPサーバーにログインできます。
セキュリティの強化
FTPはその性質上、暗号化されていない通信を行うため、セキュリティ面でのリスクがあります。これを改善するために、FTPS(FTP Secure)やSFTP(SSH File Transfer Protocol)を使用することが推奨されます。
FTPSを有効にする
-
SSL/TLS暗号化を有効にするには、設定ファイルを編集します。
bashsudo nano /etc/vsftpd.conf -
以下の設定を追加または変更します。
bashrsa_cert_file=/etc/ssl/certs/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES -
次に、SSL証明書を作成します。
bashsudo openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem -days 365 -
設定を保存し、
vsftpdを再起動します。bashsudo systemctl restart vsftpd
これでFTPSが有効になり、安全にファイル転送を行えるようになります。
まとめ
UbuntuにFTPサーバーをインストールして設定する方法について説明しました。基本的な設定を行うことで、ローカルユーザーが安全にファイルを転送できる環境を整えることができます。セキュリティを強化するためには、FTPSやSFTPの使用を検討し、さらに安全性を高めることが重要です。
