●AWS セキュリティグループ
AWSセキュリティグループは、EC2などに適用するファイヤーウォール機能。
デフォルトは、INは、拒否。OUTは許可。
INを開けることで通信が可能となる。
設定後、すぐに適用される。
Yamaha Routerと同じ(笑)。
ステートフルな制御が可能であり、戻りの通信も自動的に許可される。
グループ定義が可能ですので、用途により、まとめておくと、いいのかと。
●AWS ネットワークACL
AWSネットワークACLは、VPCに適用するファイヤーウォール機能。
デフォルトでは、Inbounde Rules / Outbound Rulesとも、「許可」となっています。
最も低い番号から順番に適用される。
1番と10番が相反する設定の場合、1番が適用されて、10番は無視される形になります。
ステートフルな制御はできないので、戻りの通信も考慮しなければいけません。
そのため、「一時ポート」「エフェメラルポート」をきちんと設定しないといけません。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-network-acls.html#nacl-ephemeral-ports
利用するOSにより異なりますので、最大公約数的に設定することになるかと思います。
●AWS セキュリティグループとネットワークACLの使い分け
セキュリティグループ、ネットワークACL、どちらかが拒否だと(片方が許可でも)、全体としては拒否となる。
例えば、ネットワークACLでは、SSHを許可しておいて、SGで、不許可にする。
なにか、非常事態になった場合、SGで、該当EC2だけ、SSHをオープンする。
というような運用も一つの手かと思います。
●ポート変更(セキュリティ対策)
一般的なセキュリティ対策ですが、よく知られているデフォルトのポートは、運用に支障がなければ、変更するのがいいのかと思います。
RDPの3389番
SSHの22番
ポートは変更しても、念のため、
・パスワードの複雑化
・administrator権限を、「administrator」ではなく、違う名前にする。
・できれば、利用先IPを固定する。
・SSHは、shadowパスワードではなく、「カギ」を利用する。
こちらも、IPを固定する
などの対策をしておくのもいいかと。
また、
phpMyAdmin
などは、
https://(ドメイン)/phpmyadmin/
など、「ありがちな」ディレクトリに設置しない。
デフォルトで、パスワードアタックが行われます。
access_log:XXX.XXX.XXX.XXX – – [XX/Xxx/XXXX:XX:XX:XX +0900] “GET /phpMyAdmin/index.php?pma_username=root&pma_password=administrator!@#&server=1 HTTP/1.1” 400 226 “-” “-”
と、アタックされます。
パスワードをかけたり、指定IP以外を不許可など対策を取っておくことも重要ですが、
「phpMyAdmin」ディレクトリには、設置しない。
というのがいいのかと思います。