AWS EC2で踏み台サーバを作成して80ポートと22ポートを分ける

AWS EC2で踏み台サーバを作成して80ポートと22ポートを分ける

EC2にWebサーバを立ち上げると80ポート(要件によっては443ポートも)や22ポートを開けると思います。が、22ポートを問答無用で開放しておくのはセキュリティ上好ましくありません。

ということで、そういう場合は22ポートのみを開けている踏み台サーバをEC2で作成します。

踏み台サーバからWebサーバに22ポートでアクセスするように限定することで、Webサーバのセキュリティを高めます。

踏み台サーバは管理者がWebサーバをメンテナンスしたい時にだけ起動し、通常時はインスタンス停止しておきます。

踏み台サーバを作成する

EC2を作成してEIPを割り当てます。インバウンドは22ポートのみ解放します。

AWS EC2で踏み台サーバを作成して80ポートと22ポートを分ける

sshで接続できるか確認します。

$ chmod 400 aaaa.pem

$ ssh -i "aaaa.pem" ec2-user@ec2-18-xx-xx-xx.us-east-2.compute.amazonaws.com
The authenticity of host 'ec2-18-xx-xx-xx.us-east-2.compute.amazonaws.com (18.xx.xx.xx)' can't be established.
ECDSA key fingerprint is SHA256:gMeZcYyIA5YHBMiX0qCgrhrtyjIuytyYKOk.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-18-xx.xx.xx.us-east-2.compute.amazonaws.com,18.xx.xx.xx' (ECDSA) to the list of known hosts.

__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|


Amazon Linux AMI 2017.09 Release Notes

これで踏み台サーバに接続するのはOKです。

次に踏み台サーバから保護対象のWebサーバに接続するので、scpコマンドでWebサーバのEC2の秘密鍵を踏み台サーバにアップロードします。これも本当はセキュリティ上良くありませんが、とりあえず試しに実装してみます。ローカルから実行します。

scp -i “xxxx.pem” “アップロードするxxxx.pem” ユーザ名@EC2のエンドポイント:アップロード先パス

ここではEC2のエンドポイントは踏み台サーバにします。踏み台サーバに保護対象に接続するための秘密鍵をアップロードしたいからです。

$ scp -i "xxxx.pem" "yyyy.pem" ec2-user@ec2-18-xx-xx-xx.us-east-2.compute.amazonaws.com:~
yyyy.pem 100% 1692 8.4KB/s 00:00

次にアップロードしたファイルの権限変更します。

[ec2-user@ip-10-xx-xx-xx ~]$ chmod 400 yyyy.pem

で、保護対象のEC2の20ポートのソース元を踏み台サーバのプライベートアドレスに指定します。グローバルIPではないので注意です。

AWS EC2で踏み台サーバを作成して80ポートと22ポートを分ける

これで踏み台サーバからのみのssh接続ができるようになり、逆に、直接保護対象のEC2にsshは出来ないようになります。

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました