Amazon EC2で検証のためパスワード認証のSFTPサーバーを作ってみた

2019.05.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。AWS初心者のスズです。

先日、Alteryxとの検証用にSFTPサーバーを用意したいと考えていたところ、Amazon EC2で簡単に作れるよということを社内で教えていただきました。教えていただいた内容やWebサイトを参考にしてAmazon EC2でパスワード認証のSFTPサーバーを構築してみましたので、その手順を記事に残しておきたいと思います。

本記事で作成したSFTPサーバーは、検証のために用意したものとなります。セキュリティについては考慮されておりませんので、本記事と同様の環境の利用は非推奨となります。予めご了承ください。

注: キーペア認証を使用せずにパスワードベースのログインを使用する場合、セキュリティに影響を及ぼす可能性があります。したがって、パスワードベースのログインはお勧めしません。また、インスタンスに関連付けられたセキュリティグループルールのソース IP アドレスの数を最小限にして SSH 攻撃を防止することがベストプラクティスです。 EC2 インスタンスに接続するためのパスワードログインを有効にする

※パスワード認証を許可したEC2はハイリスクであるため、注意書きを追加しました。

パスワード認証のSFTPサーバーの構築

Amazon EC2でLinuxの構築

新しくインスタンスを作成します。検証用ということで、必要最小限の構成で用意しました。

  • AMI: Amazon Linux 2 AMI (HVM), SSD Volume Type
  • InstanceType: t2.micro
  • vCPU: 1
  • RAMメモリ: 1 GiB
  • ストレージサイズ: 8 GiB
  • セキュリティグループ(インバウンド): SSH(TCP 22)、特定のIPアドレスのみ許可

LinuxにSFTP用のユーザーを作成

Linuxが起動したあとは、SFTP用のユーザーを作成していきます。

Tera Termを使用して、SSHでLinuxに接続します。ユーザー名はec2-user、秘密鍵として作成したキーペアを選択します。

ログイン後、新しくユーザーを作成し、パスワードを設定します。今回は分かりやすくsftpuserという名前で作成しています。

$ sudo useradd sftpuser
$ sudo passwd sftpuser
Changing password for user sftpuser.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

パスワード認証の許可

/etc/ssh/sshd_configを参照すると、PasswordAuthentication noと設定されており、パスワード認証が許可されていません。パスワード認証を許可するため、PasswordAuthentication noPasswordAuthentication yesに変更します。

$ sudo vi /etc/ssh/sshd_config
PasswordAuthentication yes

設定の変更を反映させるため、sshdを再起動します。

$ sudo systemctl restart sshd

SFTPの接続の確認

WinSCPを使用して、SFTPの接続を確認します。

ファイルのアップロードなどを確認して完了です。

最後に

今回はAmazon EC2でのパスワード認証のSFTPサーバーの構築についてご紹介しました。

参考サイト