0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FTPSサーバーを触ってみる

Last updated at Posted at 2025-03-17

image.png
こんにちは!
以前、FTPを導入しましたが、かなりセキュリティがガバガバです。
そこで、暗号化を備えたFTPS(FTP over SSL/TLS)を構築し、動作を確認した内容をまとめます。

FTPの問題点とFTPSの必要性

FTPの問題点

  1. 通信が暗号化されない: FTPは平文通信のため、ネットワーク上でパスワードやデータが漏洩するリスクがあります。
  2. ファイアウォールの問題: FTPのパッシブモードでは複数のポートを開放する必要があり、管理が煩雑になります。
  3. MITM攻撃のリスク: 中間者攻撃(Man-in-the-Middle Attack)により、データの改ざんや盗聴が発生する可能性があります。

FTPSのメリット

FTPSは、FTPにSSL/TLSを組み合わせてセキュリティを強化したプロトコルです。

  • 通信の暗号化: ユーザー認証情報やファイルが暗号化され、盗聴や改ざんを防ぎます。
  • 認証の強化: SSL/TLS証明書を利用することで、サーバーの正当性を保証できます。
  • FTPの利便性を維持: 既存のFTPクライアントを利用できるため、導入が比較的容易です。

実際にLinuxに試してみる

では、FTPSを実際にローカル環境で試していきたいと思います。

前提条件

  • Ubuntuサーバーが動作している
  • 192.168.~.~ をUbuntuサーバーのIPとする
  • FTPは導入されている

1. 自己証明書を発行する

下記で自己証明書を作成します。

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/ssl/private/keita.server.key \
    -out /etc/ssl/certs/keita.server.crt

下記のファイルが生成されます。
証明書ファイルと鍵ファイルです。

/etc/ssl/certs/keita.server.crt
/etc/ssl/private/keita.server.key

2. 設定ファイルの編集

FTPSの設定を適応するために、/etc/vsftpd.confを下記のように編集します。

ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/keita.server.crt
rsa_private_key_file=/etc/ssl/private/keita.server.key
force_local_logins_ssl=YES
force_local_data_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

3. FTPS接続の確認

WINSCPというアプリを使用して、FTPSに接続してみます。
下記のような設定で接続を試みます。

image.png

これで接続できました!
これが一応暗号化されて転送されているのでセキュリティの対策にはなっています。

image.png

画像を送ってみます

image.png

送れました
目では見れませんが、この通信でファイルが暗号化されていたはずです。

image.png

まとめ

Ubuntu上でFTPSを構築し、安全なファイル転送環境を作成しました。自己署名証明書を使用しましたが、運用環境では正式な証明書を利用するのがおすすめです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?