Edited at

図解で、IBM Cloud (SoftLayer) のセキュリティグループ設定


読むより見て探したいから、がんばって図解。


  • 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 範囲