こんにちは、ひろかずです。
構築や検証中に思うように動作しない時にSecurity Groupをはじめとするファイアウォール機能を疑いたくなりますよね。
今回は、SecurityGroupの設定が正しいか不安な時に闇雲にフル開放してしまうより効率的に切り分けをできる方法があるので、一筆書きます。
#お品書き
- Listenポートの確認
- VPC FlowLogsの確認
#1. Listenポートの確認
サーバで待ち受けていないポートをSecurity Groupで開放する必要はありません。
どのサービスがどのポートを使用しているかを再確認し、開放するべきポートが開放されているかを確認しましょう。
0.0.0.0:ポート番号
や :::ポート番号
で表現されているポートが外部からの待受を想定しているポートです。
上手くできないことに関連するポートを開放すると良いでしょう。
切り分けたい現象にもよりますが、sshやntp等の関連性が薄いサービスポートを空ける必要性は低いはずです。
出力例
netstat -luntp (Amazon Linuxの場合)
# netstat -luntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2331/rpcbind
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 32508/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 32592/sendmail
tcp 0 0 0.0.0.0:36254 0.0.0.0:* LISTEN 2352/rpc.statd
tcp 0 0 :::111 :::* LISTEN 2331/rpcbind
tcp 0 0 :::80 :::* LISTEN 2628/httpd
tcp 0 0 :::22 :::* LISTEN 32508/sshd
tcp 0 0 :::4118 :::* LISTEN 15287/ds_agent
tcp 0 0 :::443 :::* LISTEN 2628/httpd
tcp 0 0 :::46046 :::* LISTEN 2352/rpc.statd
:
netstat -nao & Task Manager(Windows2012の場合)
コマンドプロンプトでポートとPIDを確認し、Task ManagerでPIDとサービスを確認することができます。
C:\Users\Administrator>netstat -nao
Active Connections
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 792
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 72
TCP 0.0.0.0:4118 0.0.0.0:0 LISTENING 163
TCP 0.0.0.0:5985 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:47001 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING 600
TCP 0.0.0.0:49153 0.0.0.0:0 LISTENING 928
TCP 0.0.0.0:49154 0.0.0.0:0 LISTENING 972
TCP 0.0.0.0:49155 0.0.0.0:0 LISTENING 121
TCP 0.0.0.0:49157 0.0.0.0:0 LISTENING 688
TCP 0.0.0.0:49158 0.0.0.0:0 LISTENING 208
TCP 0.0.0.0:49164 0.0.0.0:0 LISTENING 696
TCP 172.31.40.9:139 0.0.0.0:0 LISTENING 4
:
#2. VPC FlowLogsの確認
インスタンスに紐付けられているENIで遮断している通信を確認します。
実際に目的とする動作を行い、その実施時間で遮断している通信(REJECTで検索)があるかを確認するのが良いでしょう。
VPC FlowLogsの設定の仕方はawsブログ : VPC Flow Logs - トラフィックフローの収集、閲覧を参照してください。
このように、Security Groupで遮断された通信はひと目で判断することができます。
切り分けの観点であれば、これで十分と言えるでしょう。
#おわりに
闇雲にSecurity Groupを開きすぎてしまうと、原因が特定できないだけではなく、セキュリティを著しく低下させてしまいます。
サービスの稼働を優先させた場合、設定を戻すこともままならず、セキュリティを低下させたまま運行することになるかもしれません。
検証環境や構築中の環境でも、インターネットからの脅威は本番環境と変わらずに訪れます。
むしろ、セキュリティ強度の劣る検証環境や構築中の環境は、格好の標的になるでしょう。
Security Groupフル開放によるインシデントは防げます。
本稿が少しでもその助けになれば幸いです。
今日はここまでです。
お疲れ様でした。