通信制御を行う時に使用するアクセスリスト
HTTPやHTTPSなどTCPのプロトコルを使用した通信において、セキュリティの理由から内部からの通信は許可しても、外部からの通信は拒否するように設定したい。このような通信要件はアクセスリストのestablish機能を使用すれば実現可能になります。
アクセスリストのestablish設定とは
このestablish機能を説明する前に、そもそもHTTP,HTTPSなどのTCPを使用した通信を行う際、3ウェイハンドシェイクというやり取りがまず最初に行われます。このやり取りが成立しないとHTTP接続もできません。
3ウェイハンドシェイクのフロー
図の②に記載されているサーバーからクライアントに向けた戻りの通信、ここでACKが付け加えられます。つまりサーバーが認めた相手に対してはACKが加えられた通信を返すので、この通信を許可すれば信頼性を担保した通信が実現できる。このACKが付いた戻りの通信を許可するためのアクセスリストの設定がestablishになります。
検証環境にて各通信ごとのパケットのシーケンス番号の変化
以下は、クライアントからサーバーへのHTTP接続を行った際の3ウェイハンドシェイクの動きをキャプチャした画像を記載。
①
最初の通信なのでシーケンス番号、確認応答番号は0のまま
SYN/ACKのビットフラグは(1/0)となる。
②
サーバー側が認め通信が成立すると、この段階で確認応答番号が「1」になる。
SYN/ACKのビットフラグも(1/1)となる。
③
シーケンス番号は相手から受信した確認応答番号なので「1」
確認応答番号も相手から受信したシーケンス番号に「1」を足すので、0+1で「1」になる。
また既に接続は認められている(ACKのビットフラグが立っている)ので、SYN/ACKのビットフラグにおいて
SYNの部分は「0」ACKの部分は「1」になる。
検証ネットワーク図
検証事項
①支店(内部)からデータセンター(外部)への公開サーバー2台に対しては戻りの通信を許可
②支店(内部)からデータセンター(外部)への非公開サーバーに対しては戻りの通信も拒否
③データセンター(外部)から支店(内部)の機密情報サーバーへの通信は戻りの通信を拒否
interface GigabitEthernet0/0
ip address 192.168.1.1 255.255.255.0
no shut
!
interface GigabitEthernet0/1
ip address 10.16.2.1 255.255.255.0
ip access-group test2 in
no shut
!
*データセンター環境から入ってくる通信に対してACL制御を行う。
ip access-list extended test2
permit icmp any any
permit tcp host 10.16.2.11 any established
permit tcp host 10.16.2.12 any established
!
★補足。
interface GigabitEthernet0/0
ip access-group test2 out
*社内環境に向けて「出ていく方向」にACLの設定をかけても同じような結果になる。
検証結果
①支店PCから公開サーバーへのHTTP接続を行った結果。
戻りの通信が許可されているので、HTTPでの接続が成功。
②支店PCから非公開サーバーへのHTTP接続を行った結果。
戻りの通信はアクセスリストで許可されていないので、HTTPでの接続は失敗。
③データセンターPCから支店機密情報サーバーへHTTP接続を行った結果。
こちらも戻りの通信はアクセスリストで許可されていないので、HTTPでの接続は失敗。
次回予告
これまでは、IOS関連の記事ばかりでしたので、Nexus機器の記事を記載します