読むより見て探したいから、がんばって図解。
- SoftLayerセキュリティグループの特性はこちらの記事が参考になります(IBM Cloud Security Groups について、まとめてみた)。
- 本記事では、SoftLayer管理ポータルでの設定パラメータを中心に書きます(データセンター内にあるDNSやNTPなど便利なサービスも通信を許可するとか、仮想サーバーにNICが2つあるのでそれぞれに許可するとか、AWSセキュリティグループと異なるポイントがあるので)。
最初の選択:サーバー毎に設定するか、複数サーバーをまとめてか?
サーバー1台ずつ設定する場合
サーバーのネットワークインターフェース(NI)に通信ルール(ACL)を設定する(Windows FirewallやLinux Iptables/firewalldの様なイメージ)。この図の場合、パブリックNIの通信ルールはインターネットからの受信HTTPSだけ許可し、プライベートNIの通信ルールは受信・送信ともに全て許可とする。パブリックとプライベート側のNICには最大5個までルールを追加できる。
複数サーバーをまとめて設定する場合
まずはデフォルトのセキュリティグループ(allow_httpとかallow_sshとか)は全て削除することを推奨する。この図の場合、セキュリティグループを新規追加して、そのセキュリティグループに通信ルールを設定する(ファイアウォールやAWSセキュリティグループの様なイメージ)。サーバーのネットワークインターフェース(NI)にはセキュリティグループを設定する。複数のサーバーに、同じセキュリティグループを設定することができる。ネットワークインターフェースには最大5個のルールしか追加できないが、セキュリティグループなら最大50個までルールを追加できる。
同じ通信ルールを何度も設定するよりは、1ヶ所に設定した方が楽ですよね。
さて、セキュリティグループへの通信ルール設定
ファイアウォール無しの場合
この場合は、別のFWサービスもしくはOSのFWをきちんと設定しないとセキュリティリスク特大。
【設定】セキュリティグループを適用しない = ファイアウォール無し(つまり全て通信可能)
【検証】図の設定値では、2台のサーバーでお互いにping送受信できた。
全ての通信をブロックする場合
【設定】セキュリティグループを適用する = ファイアウォール有り(デフォルトでは許可ルールが無い)
【検証】図の設定値では、通信ルールを何も設定していないのでping送受信できない。
セキュリティグループを適用して通信ルールが無い場合は、RDPもSSHも何も接続できません。
受信を許可する
【設定】受信(インバウンド)の設定では、送信元IPアドレス(ソース)とポートを指定する。
【検証】図の設定値では、SSH接続が出来た。Pingなど別の通信は応答できない。
送信を許可する
【設定】送信(アウトバウンド)の設定は、送信先IPアドレス(宛先)とポートを指定する。
【検証】図の設定値では、ping送信ができた。別のサーバーやping以外の送信は出来ない。
複数のサーバーに、同じセキュリティグループを適用(サーバー間の許可ルール無し)
【設定】それぞれのサーバーに、同じセキュリティグループを適用する。セキュリティグループ内のサーバーは設定しない場合。
【検証】図の設定値では、許可したサーバーに対してはping送信出来るが、同じセキュリティグループ内のサーバー間は何も通信できない。
複数のサーバーに、同じセキュリティグループを適用(サーバー間の許可ルール有り)
【設定】それぞれのサーバーに、同じセキュリティグループを適用する。セキュリティグループ内のサーバー通信を設定する場合。
【検証】図の設定値では、全てのサーバーに対してPing送受信ができた。
標準SSL-VPNが繋がらない!?
これは悩んだ。SSL-VPNが確立しているのにサーバーが応答しなかった。そうか、VPNのインバウンド通信を許可しなきゃダメだよね。
【設定】SSL VPN 接続でVPNクライアントに割り当てされるIPアドレスはレンジ<10.2.224.0/24>ですべて許可する。
【検証】SSL VPN 接続で、セキュリティグループ内のサーバーにSSH接続出来た。
SoftLayerバックエンドサービスと通信が出来ない!?
データセンター内のサーバーからインターネットの外部サーバーにドメイン名でアクセスできなかった。DNS名前解決できないって言っている。そうか、SoftLayerの便利なバックエンドサービスもすべて許可しなきゃだめか。
・DC内名前解決も出来ない → データセンター内部の宛先DNSを許可すればよい
・おお、時刻同期も必要か → データセンター内部の宛先NTPを許可すればよい
・他にもデータセンター内部にはWSUS、YUMリポジトリ、バックアップサーバーなどもあるぞ。
・だったら思いきって送信(アウトバウンド)は全て(0.0.0.0/0)許可するか? それでも良し。
でも他のサーバーと通信させたくない場合に0.0.0.0/0を許可できない場合がある。その場合は↓。
【設定】SoftLayer標準サービスへの通信をすべて許可する(ユーザとして把握できている限り)。
【検証】内部DNS標準Ping監視のアラートが回復した。
DNS Server 10.0.80.11
DNS Server 10.0.80.12
NTP Server time.service.networklayer.com (10.0.77.54)
Windows KMS Server 10.0.76.42
eVault Server ev-vaulttok0201.service.softlayer.com (10.3.70.250)
NIM Monitoring Server 10.3.67.60
NIM Monitoring Server 10.3.67.61
WSUS wsustok0201.service.softlayer.com (10.3.65.50)
centosリポジトリ mirrors.service.networklayer.com (10.0.77.54)
脆弱性診断 173.192.255.232, 172.17.19.38
DOS緩和システム 161.202.116.0/24
Load Balancer 161.202.117.0/24
※ 東京DCの実機で独自に調べ(2018/5/19) 他にも追加すべきサービスあるかも。
↓
許可すべきIPアドレスのレンジ(プライベートIPアドレス)
SSLVPN (10.2.224.0/24)
TOK02 (10.3.64.0/20) 10.3.64.0 ~ 10.3.79.255
TOK04 (10.201.176.0/20) 10.201.176.0 ~ 10.201.207.255
TOK05 (10.201.192.0/20) 10.201.192.0 ~ 10.201.191.255
DAL01 (10.0.64.0/19) 10.0.64.0 ~ 10.0.95.255
許可すべきIPアドレスのレンジ(パブリックIPアドレス)
TOK02 (161.202.118.0/23) 161.202.118.1 ~ 161.202.119.254
以上
【参考】IBM 公式サイト
IBM Cloud の IP 範囲