web-dev-qa-db-ja.com

AmazonEC2インスタンスへのSSHアクセスの制限

AmazonEC2インスタンスをセットアップする準備をしています。これは、ローカルマシンに縛られることなく、PHP、Pythonなどのスクリプトをサーバーに配置できるようにするテストおよび開発マシンになります。現在、私はNitrousIOを使用していますが、EC2ボックスはいくつかの理由でより魅力的です。

しかし、1つのことが私を悩ませています。ほとんどのドキュメントには、SSHアクセスを自分のIPアドレスのみに制限することが明記されています。ほとんどの企業ではおそらく問題はありませんが(実際、私の雇用主はIP範囲を設定しています)、自宅のIPアドレスは動的です。このような状況で、IPアドレスによってEC2インスタンスへのSSHアクセスを制限する方法はありますか?不適当な時期に締め出されるのではないかと心配しています。

3
Mike P

アマゾンウェブサービスコンソールのEC2パネルのセキュリティグループ設定にアクセスできる場合、これは問題になりません。

ログに記録されるたびに、EC2インスタンスにバインドされたセキュリティグループに移動し、Inboundアクセスを構成し、SSHルールを追加または変更できます。 「マイIP」と表示される便利なドロップダウンもあるので、スペースに情報が自動的に入力され、そのインスタンスがロックアウトされます。

2
Gus Fune

現在のIPへのアクセスを許可して、セキュリティグループルールを追加/削除するスクリプトを作成する必要があります。

Web APIを使用して、現在のIPアドレスを取得します。 http://api.ipify.org/?format=json のようなもの

結果を使用してAWSCLIを呼び出します: http://docs.aws.Amazon.com/cli/latest/userguide/cli-ec2-sg.html

このようなものが機能するはずです:

aws ec2 authorize-security-group-ingress --group-name <SSH_ACCESS_GROUP_NAME> --protocol tcp --port 22 --cidr <MY_IP>

ルールも削除することを忘れないでください。

1
Barak

カップルのオプションが思い浮かびます。

1)ローカルISPにそのIPの静的IPホワイトリストを要求し、ローカルマシンから使用します。

2)ルーター接続からはごくわずかしか使用されない可能性があるため、ルーターの指定IP範囲からのみ許可してください。例の場合sshのホワイトリスト123.456.78.90/21。

3)オプション1または2が不可能な場合は、ローカルマシンからsshを使用する前に、コンソールGUIを使用してその接続の「既知の」現在のIPを手動で変更できます。

4)ホームルーターからも、そのマシンに静的IPのみを使用するように設定できるため、ISPが静的IPを提供しない場合でも、ホーム接続を介してルーティング可能なLAN静的IPを使用できます。

0
linuxdev2013

動的IPを使用する場合でも、取得するIPを時間の経過とともに確認するか、特定のIPプールについてISPに問い合わせることにより、該当する範囲を選択できるはずです。それが完了したら、デフォルトの拒否を設定し、次のようにIP範囲を許可できます。

iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT

...もちろん、IP値を調査結果と一致するものに置き換えます。 /16は、IPの最後の16ビットが何であっても、IPの.0.0部分と一致することを意味します。

警告:デフォルトの拒否ルールを適用する前に、設定したことを100%確認してください。そうしないと、ロックアウトされます。可能であれば、静的IPを使用してシェルをどこかに取得し、それも追加して、万が一の場合に備えて代替ルートを用意することをお勧めします。

0
Jarmund