こんにちは!
Linux環境でFTPサーバーの構築を試してみました。その手順と結果を共有します!
FTPとは
FTP(File Transfer Protocol)は、ネットワーク上でファイルを転送するための通信プロトコルの一つです。主にサーバーとクライアント間でファイルのアップロードやダウンロードを行う際に使用されます。
FTPの仕組み
通信には 2つのポート を使用します。
コマンド(制御)接続(ポート 21)
ユーザー認証やコマンドの送受信を行う。
データ接続(ポート 20 または動的なポート)
ファイルの送受信に使われる。
FTPの通信モード
FTPには アクティブモード と パッシブモード の2つの通信モードがあります。
アクティブモード
クライアントがサーバーにポート21で接続し、データ転送用のポートを通知。
サーバーがポート20を使ってクライアントの指定ポートに接続し、データ転送を行う。
パッシブモード
クライアントがサーバーにポート21で接続し、「パッシブモードを使用する」ことを要求。
サーバーが転送用のランダムなポートを開放し、クライアントに通知。
クライアントが通知されたポートに接続し、データ転送を行う。
実際にLinuxに試してみる
では、FTPを実際にローカル環境で試していきたいと思います。
今回は、ローカルで作成した下記のHTMLをFTPで移動して、WEBサーバにて表示されるようにします。
前提条件
- Ubuntuサーバーが動作している
- Apache(Webサーバー)がインストールされている
-
192.168.~.~
をUbuntuサーバーのIPとする
1. FTPサーバーのインストール
まずはvsftpdをインストールします。
sudo apt update
sudo apt install -y vsftpd
2. 設定ファイルの編集
FTPの設定をカスタマイズするために、/etc/vsftpd.confを編集します。
権限の設定やどのファイルを共有のサーバーとするかの設定を書いています。
local_enable=YES
write_enable=YES
allow_writeable_chroot=YES
local_root=/var/www/html
force_dot_files=YES
3. FTP接続の確認
クライアントからFTP接続を試みます。
ローカルからは以下をエクスプローラーに入力することで接続できます。
ftp:<IPアドレス>
ここで認証情報を入力することでファイルサーバーにログインできました。
ここにHTMLファイルを格納してみます
これでブラウザをアクセスしてみます!
まとめ
以上で、UbuntuにFTPサーバーを導入し、/var/www/html
配下のファイルを直接操作できるように設定しました。今回はセキュリティを全く考慮していません。
必要に応じてSSL/TLSの設定や、SFTPの導入も検討してください。