ubuntsu 26.04 FTPできるように設定
FTPサーバー構築ガイド
vsftpdを使用してUbuntu 26.04に安全で安定したFTP環境を構築する
Ubuntu 26.04に vsftpd(Very Secure FTP Daemon) をインストールし、 ローカルユーザーによるFTP接続、 アップロード・ダウンロード、 パッシブモード、 UFWファイアウォール設定までを行います。
vsftpdをインストールする
まずUbuntuのパッケージ情報を更新し、 vsftpdをインストールします。
sudo apt update ``` sudo apt install -y vsftpd```
設定ファイルをバックアップ
設定変更前に、元の設定ファイルをバックアップしておくと安心です。
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
vsftpdの設定を変更する
設定ファイルを開きます。
sudo nano /etc/vsftpd.conf
基本設定
以下の設定を確認・追加してください。
anonymous_enable=NO
# Ubuntuのローカルユーザーによるログインを許可
local_enable=YES
# アップロード・削除などの書き込みを許可
write_enable=YES
# 新規ファイル・ディレクトリのパーミッション
local_umask=022
# ユーザーをホームディレクトリ内に閉じ込める
chroot_local_user=YES
# chrootされたユーザーの書き込みを許可
allow_writeable_chroot=YES ```
パッシブモード(PASV)を設定
FTPでは、ログイン用の接続とは別に データ転送用の接続が必要です。 ファイアウォールやルーター越しに接続する場合は、 パッシブモードを設定しておくと接続しやすくなります。
pasv_enable=YES
# パッシブ通信で使用するポート範囲
pasv_min_port=10000
pasv_max_port=10100 ```
Nanoで保存する
Ctrl + O → Enter → Ctrl + X
FTPパッシブモードの仕組み
FTPクライアントは最初に21番ポートへ接続します。 その後、ファイル転送時に10000〜10100番の PASVポートを使用します。
FileZilla / WinSCP
FTP制御
~10100
UFWファイアウォールを設定する
UbuntuでUFWを使用している場合、 FTPの21番ポートとPASV用ポートを開放します。
sudo ufw allow 21/tcp ``` sudo ufw allow 10000:10100/tcp sudo ufw reload```
ファイアウォールの状態を確認
sudo ufw status
以下のような設定が表示されればOKです。
| ポート | 用途 |
|---|---|
| 21/tcp | FTP制御通信 |
| 10000:10100/tcp | FTPパッシブモード |
vsftpdを再起動する
設定変更を反映するため、vsftpdを再起動します。
sudo systemctl restart vsftpd
OS起動時に自動起動
sudo systemctl enable vsftpd
サービス状態を確認
sudo systemctl status vsftpd
Active: active (running)
と表示されれば、vsftpdは正常に起動しています。
FTPクライアントから接続する
Windows PCなどからFileZillaやWinSCPを使用して接続します。
| 項目 | 設定 |
|---|---|
| ホスト | UbuntuサーバーのIPアドレス |
| プロトコル | FTP |
| ポート | 21 |
| 暗号化 | まずは暗号化なしで接続確認 |
| 転送モード | パッシブ |
| ユーザー名 | Ubuntuの一般ユーザー |
| パスワード | Ubuntuユーザーのパスワード |
UbuntuサーバーのIPアドレスを確認
ip addr
例えば以下のようなIPアドレスを探します。
この場合、FTPクライアントのホストには 192.168.1.100 を入力します。
接続できない場合の確認
① vsftpdが起動しているか
sudo systemctl status vsftpd
② 21番ポートが待ち受け状態か
sudo ss -lntp | grep :21
③ PASVポートがUFWで許可されているか
sudo ufw status
④ vsftpdのログを確認
sudo tail -f /var/log/vsftpd.log
- vsftpdが起動していない
- UFWで21番ポートが閉じている
- PASVポートが閉じている
- ルーターのポート開放がされていない
- FTPクライアントがアクティブモードになっている
- Ubuntuユーザーのパスワードが間違っている
- ホームディレクトリの権限に問題がある
セキュリティ上の重要事項
FTPではユーザー名・パスワードやファイルデータが 暗号化されずにネットワークを流れる可能性があります。
特にインターネット経由でFTPを公開する場合は、 通常のFTPをそのまま利用することは推奨されません。
おすすめの選択肢
- 同一LAN内だけで使用 → FTPでもテスト用途なら可
- インターネット経由 → SFTPを推奨
- FTPクライアントが必要 → FTPS(FTP over TLS)を検討
- 外部公開する場合 → 21番+PASVポートの公開範囲を慎重に設定
最終チェックリスト
- vsftpdをインストールした
- /etc/vsftpd.confをバックアップした
- anonymous_enable=NOにした
- local_enable=YESにした
- write_enable=YESにした
- chroot_local_user=YESにした
- pasv_enable=YESにした
- 10000〜10100番をPASVポートに設定した
- UFWの21番ポートを開放した
- UFWの10000〜10100番を開放した
- vsftpdを再起動した
- systemctl statusでrunningを確認した
- FTPクライアントをパッシブモードにした
FTPクライアントからUbuntuサーバーへログインし、 ホームディレクトリが表示され、 ファイルのアップロード・ダウンロードができれば完了です。
コメント