セキュリティ強化対策(Router編)


セキュリティを強化するため、ネットワーク構成とルータの設定を大幅に変更しました。
今までのネットワークは、ごく一般的な自宅サーバをADSL環境等で設置している構成であり、BBR配下にサーバ機とクライアント機が同じセグメントで接続されていました。従って、万が一サーバ機が乗っ取られるとクライアント側には好き放題にアクセスできてしまいます。そこで、おやじが使用しているBA8000にはVLAN機能があるので、サーバ機とクライアントエリアを別セグメントとしルーティングさせるとともに、サーバ・クライアントア間にフィルタを入れることにより直接通信できないようにしました。

DNSはUDP:53と思っていたのですが、クライアントが名前解決するときに512byteを越えた場合、DNSは512byte以上のデータはUDPで送信できないため、クライアントは再度TCPで牽き直していることが判明したので、UDPとTCPを分離して設定しなおしました。(2002.05.28)

■ネットワーク構成

今回設定したネットワークは、以下のような構成です。

■ルータの設定

ここでは、上記構成に関係するところのみを示します。WAN側の設定やIPアドレス固定等はマニュアルやBA8000の設定例を参考にしてください。

◆VLANの設定

BA8000には4つのLANポートがあるので、メンテナンスを考慮して予備ポートをそれぞれ設けることとし、LAN1/2をプライマリ、LAN3/4をセカンダリLANとし、サーバをLAN4に、クライアントはLAN1にSW-HUBをカスケード接続し、その配下に接続することにした。サーバをルータ直結にすることにより、耐障害性(SW-HUB等の余計なものを通さないことにより、これが壊れても影響なし。)を確保した。
管理設定->VLANで設定。VLANは最大4つ(各ポートをバラバラに設定も可能)に分けられるが、ルーティングは2つのLAN(プライマリ/セカンダリ)しかできないので、クライアント用とサーバ用に分ける。

項 目 設 定
VLAN機能 有効
LAN1 グループA
LAN2 グループA
LAN3 グループB
LAN4 グループB


◆LAN側ネットワークの設定

接続設定->LAN側ネットワークで上記ネットワーク構成で示した条件で設定。

項 目 設 定
プライマリLAN IPアドレス 192.168.0.1
プライマリLANサブネットマスク 255.255.255.0
セカンダリLANモード 有効
セカンダリLAN IPアドレス 192.168.1.1
セカンダリLANサブネットマスク 255.255.255.0


◆IPマスカレードの設定

ルータ設定->NAPT->NAPTで設定するが、NAPTを有効とするだけである。ここの項目は一般的にデフォルトのままで良いはず。おやじは仕事の関係でIPsecパススルーを有効にしている。

アカウント選択 NAPT FTP制御ポート PPTPパススルー機能 L2TPパススルー機能 IPsecパススルー機能
ISP 有効 21 無効 無効 有効

◆スタティックNAT(静的マスカレード)の設定

ルータ設定->NAPT->静的マスカレードで設定する。下のほうにある静的マスカレードの追加ボタンを押し、「静的マスカレードの追加/修正」で設定していく。最後に設定ボタンを押して設定を保存するのを忘れないこと。
ID プロトコル リモートIP
アドレス
リモート
ポート
外部IP
アドレス
外部
ポート
内部
IPアドレス
内部ポート
1 TCP * * WAN側ポートIPアドレス 21 192.168.1.100 外部ポート番号と同じ
2 TCP * * WAN側ポートIPアドレス 25 192.168.1.100 外部ポート番号と同じ
3 TCP * * WAN側ポートIPアドレス 80 192.168.1.100 外部ポート番号と同じ
4 TCP * * WAN側ポートIPアドレス 110 192.168.1.100 外部ポート番号と同じ
5 TCP * * WAN側ポートIPアドレス 443 192.168.1.100 外部ポート番号と同じ
6 TCP * * WAN側ポートIPアドレス 4000-4029 192.168.1.100 外部ポート番号と同じ


◆フィルタリングの設定

セキュリティ->静的フィルタで設定する。今回設定したフィルタリングポリシーを、以下に示します。ルータとしては、3つのネットワーク、即ちWAN/プライマリLAN(P_LAN)/セカンダリLAN(S_LAN)間をそれぞれルーティングすることになるので、フィルタも3個(方向を考えると6個)設定が必要になります。

No. 経 路 フィルタリングリングポリシー
1 WAN - P_LAN  基本的にP_LAN(クライアント)からアクセスが始まる通信は特定のものを除き許容し、WAN側からアクセスが始まるものは、必要最小限のサービスのみ許容する。最低限としては、サーバがないので、FTPクライアント動作時のActiveモードのデータコネクションだけでよい。その他、サーバ動作が必要なものは適宜ポートを開放する。
2 WAN - S_LAN  基本的にサーバからアクセスが始まる通信は特定のものを除き許容し、WAN側からアクセスが始まるものは、サーバ機でサポートしているサービスのみとする。また、ポートマッピング(静的マスカレード)もサーバ機のアドレス限定とする。(今までは全てアドレス向けを許容)
3 P_LAN - S_LAN  基本的にP_LAN(クライアント)からアクセスが始まる通信は、サーバ機でサポートしているサービスのみ許容し、サーバ側からアクセスが始まるものは必要最小限のサービスのみ許容する。
静的フィルタは、「WAN側からLAN側」、「LAN側からWAN側」でそれぞれ64個ずつ設定でき、かつフラグが使えるのでかなりきめ細かいフィルタを書くことができる。CPUのパワーもあるので、フィルタをかなり書いてもスループットの低下はある程度防げると思われる。
なお、この画面ではプライマリLAN(P_LAN)がLAN0、セカンダリLAN(S_LAN)がLAN1と表現されているので注意が必要である。

■アカウント/方向選択  ISP -> lan0 (WAN -> P_LAN(クライアント)) 図1

このフィルタは、インターネット側から家庭内クライアントにアクセスする方向のフィルタである。クライアントしか送信先にはいないため、フィルタリングは、FTPクライアント動作時のActiveモードのデータコネクション以外、WANから始まる通信は遮断してある。必要に応じて開放する必要がある。送信先がはっきりしているので、基本的アドレスを指定する。セッションが設定できて以降のパケットはID.64で通過させる。

ID 動作 プロトコル tcpフラグチェック tcpフラグ 送信元IPアドレス 送信元ポート 送信先IPアドレス 送信先ポート
1 破棄 * - - 10.0.0.0/8 * * *
2 破棄 * - - 172.16.0.0/12 * * *
3 破棄 * - - 192.168.0.0/16 * * *
4 破棄 tcp&udp tcpフラグチェックしない - * 135 * *
5 破棄 tcp&udp tcpフラグチェックしない - * * * 135
6 破棄 tcp&udp tcpフラグチェックしない - * 137-139 * *
7 破棄 tcp&udp tcpフラグチェックしない - * * * 137-139
8 破棄 tcp&udp tcpフラグチェックしない - * 445 * *
9 破棄 tcp&udp tcpフラグチェックしない - * * * 445
10 通過 udp - - * 53 192.168.0.0/24 *
11 通過 udp - - * 123 192.168.0.0/24 *
                 
18 破棄 udp - - * * * *
19 通過 icmp - - * * * *
20 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn * 20 192.168.0.0/24 *
                 
63 廃棄 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn * * * *
64 通過 tcp tcpフラグチェックしない - * * 192.168.0.0/24 *
ID. 1〜 3 : WANからのプライベートIPになりすましての侵入防止。
ID. 4〜 9 : Microsoft ネットワーク関連のパケットの流出防止。
ID.10〜18 : UDP関係の設定。ID.18で上で通過と指定したもの以外のUDPをカット。
ID.19     : ping/tracerouteのための設定。
ID.20   : TCP関係の設定。ここには、WAN側から通信が開始されるサーバ関係のポートを通過設定。
ID.63    :上で通過と指定したもの以外のWAN側から通信が開始されるTCPをカット。
ID.64     : 上で破棄と指定したもの以外は通過させる設定。

■アカウント/方向選択  lan0 -> ISP (P_LAN(クライアント) -> WAN) 図1

このフィルタは、上記の逆方向のフィルタで家庭内クライアントからインターネット側にアクセスする方向のフィルタである。特別なポートの廃棄フィルタが中心である。クライアントから通信が始まるポートが特定できるなら、synフラグでフィルタを書いても良いが、そこまではフィルタを書いてはいない。基本的にID.64で上で廃棄設定した以外のパケットは全て通過させている。

ID 動作 プロトコル tcpフラグチェック tcpフラグ 送信元IPアドレス 送信元ポート 送信先IPアドレス 送信先ポート
1 破棄 * - - * * 10.0.0.0/8 *
2 破棄 * - - * * 172.16.0.0/12 *
3 破棄 * - - * * 192.168.0.0/16 *
4 破棄 tcp&udp tcpフラグチェックしない - * 135 * *
5 破棄 tcp&udp tcpフラグチェックしない - * * * 135
6 破棄 tcp&udp tcpフラグチェックしない - * 137-139 * *
7 破棄 tcp&udp tcpフラグチェックしない - * * * 137-139
8 破棄 tcp&udp tcpフラグチェックしない - * 445 * *
9 破棄 tcp&udp tcpフラグチェックしない - * * * 445
10 破棄 tcp tcpフラグチェックしない - * * * 1243
11 破棄 tcp tcpフラグチェックしない - * * * 12345
12 破棄 tcp tcpフラグチェックしない - * * * 27374
13 破棄 tcp tcpフラグチェックしない - * * * 31785
14 破棄 udp - - * * * 31789
15 破棄 udp - - * * * 31791
                 
64 通過 * - - 192.168.0.0/24 * * *
ID. 1〜 3 : LANからWAN側のプライベートIPへのパケット送出防止。
ID. 4〜 9 : Microsoft ネットワーク関連のパケットの流出防止。
ID.10〜15 : トロイの木馬対策。
ID.64     : 上で破棄と指定したもの以外は通過させる設定。

■アカウント/方向選択  ISP -> lan1 (WAN -> S_LAN(サーバ)) 図2

このフィルタは、インターネット側からサーバにアクセスする方向のフィルタである。送信先がはっきりしているので、基本的アドレスを指定する。フィルタリングは、サーバが使用しているサーバ向けに通信が始まるポートのみ開放する。一部クライアントとしてもサーバ機を動作させている(サーバテストのほかlinuxソースのダウンロードも行う)ので、FTPのActiveモードのデータコネクション設定も考慮してある。セッションが設定できて以降のパケットはID.64で通過させる。
ID 動作 プロトコル tcpフラグチェック tcpフラグ 送信元IPアドレス 送信元ポート 送信先IPアドレス 送信先ポート
1 破棄 * - - 10.0.0.0/8 * * *
2 破棄 * - - 172.16.0.0/12 * * *
3 破棄 * - - 192.168.0.0/16 * * *
4 破棄 tcp&udp tcpフラグチェックしない - * 135 * *
5 破棄 tcp&udp tcpフラグチェックしない - * * * 135
6 破棄 tcp&udp tcpフラグチェックしない - * 137-139 * *
7 破棄 tcp&udp tcpフラグチェックしない - * * * 137-139
8 破棄 tcp&udp tcpフラグチェックしない - * 445 * *
9 破棄 tcp&udp tcpフラグチェックしない - * * * 445
10 通過 udp - - * 53 192.168.1.100 *
11 通過 udp - - * 123 192.168.1.100 *
                 
18 破棄 udp - - * * * *
19 通過 icmp - - * * 192.168.1.100 *
20 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn * 20 192.168.1.100 *
21 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn * * 192.168.1.100 21
22 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn * * 192.168.1.100 25
23 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn * * 192.168.1.100 80

24

通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn * * 192.168.1.100 110
25 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn * * 192.168.1.100 443
26 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn * * 192.168.1.100 4000-4029
                 
63 廃棄 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn * * * *
64 通過 tcp tcpフラグチェックしない - * * 192.168.1.0/24 *
ID. 1〜 3 : WANからのプライベートIPになりすましての侵入防止。
ID. 4〜 9 : Microsoft ネットワーク関連のパケットの流出防止。
ID.10〜18 : UDP関係の設定。ID.18で上で通過と指定したもの以外のUDPをカット。
ID.19     : ping/tracerouteのための設定。
ID.20〜26 : TCP関係の設定。ここには、WAN側から通信が開始されるサーバ関係のポートを通過設定。
ID.63   :上で通過と指定したもの以外のWAN側から通信が開始されるTCPをカット。
ID.64   :セッション設定後のパケットの通過を許可。

■アカウント/方向選択  lan1 -> ISP (S_LAN(サーバ) -> WAN) 図2

このフィルタは、上記の逆方向のフィルタでサーバからインターネット側にアクセスする方向のフィルタである。特別なポートの廃棄フィルタが中心である。サーバから通信が始まるポートが特定できるので、synフラグでフィルタを書いても良いが、そこまではフィルタを書いてはいない。基本的にID.64で上で廃棄設定した以外のパケットは全て通過させている。

ID 動作 プロトコル tcpフラグチェック tcpフラグ 送信元IPアドレス 送信元ポート 送信先IPアドレス 送信先ポート
1 破棄 * - - * * 10.0.0.0/8 *
2 破棄 * - - * * 172.16.0.0/12 *
3 破棄 * - - * * 192.168.0.0/16 *
4 破棄 tcp&udp tcpフラグチェックしない - * 135 * *
5 破棄 tcp&udp tcpフラグチェックしない - * * * 135
6 破棄 tcp&udp tcpフラグチェックしない - * 137-139 * *
7 破棄 tcp&udp tcpフラグチェックしない - * * * 137-139
8 破棄 tcp&udp tcpフラグチェックしない - * 445 * *
9 破棄 tcp&udp tcpフラグチェックしない - * * * 445
10 破棄 tcp tcpフラグチェックしない - * * * 1243
11 破棄 tcp tcpフラグチェックしない - * * * 12345
12 破棄 tcp tcpフラグチェックしない - * * * 27374
13 破棄 tcp tcpフラグチェックしない - * * * 31785
14 破棄 udp - - * * * 31789
15 破棄 udp - - * * * 31791
                   
64 通過 * - - 192.168.1.0/24 * * *
ID. 1〜 3 : LANからWAN側のプライベートIPへのパケット送出防止。
ID. 4〜 9 : Microsoft ネットワーク関連のパケットの流出防止。
ID.10〜15 : トロイの木馬対策。
ID.64     : 上で破棄と指定したもの以外は通過させる設定。

■アカウント/方向選択  lan0 -> lan1 (P_LAN(クライアント) -> S_LAN(サーバ)) 図3

このフィルタは、家庭内のクライアントからサーバにアクセスする方向のフィルタである。送受信先がはっきりしているので、基本的アドレスを指定する。フィルタリングは、サーバが使用しているサーバ向けに通信が始まるポートのみ開放する。セッションが設定できて以降のパケットはID.64で通過させる。

ID 動作 プロトコル tcpフラグチェック tcpフラグ 送信元IPアドレス 送信元ポート 送信先IPアドレス 送信先ポート
1 通過 udp - - 192.168.0.0/24 * 192.168.1.100 53
2 通過 udp - - 192.168.0.0/24 * 192.168.1.100 123
5 通過 tcp&udp tcpフラグチェックしない - 192.168.0.0/24 * 192.168.1.100 135
6 通過 tcp&udp tcpフラグチェックしない - 192.168.0.0/24 * 192.168.1.100 137-139
7 通過 tcp&udp tcpフラグチェックしない - 192.168.0.0/24 * 192.168.1.100 445
                 
18 破棄 udp - - * * * *
19 通過 icmp - - 192.168.0.0/24 * 192.168.1.0/24 *
20 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn 192.168.0.0/24 20 192.168.1.100 *
21 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn 192.168.0.0/24 * 192.168.1.100 21
22 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn 192.168.0.0/24 * 192.168.1.100 25
23 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn 192.168.0.0/24 * 192.168.1.100 80

24

通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn 192.168.0.0/24 * 192.168.1.100 110
25 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn 192.168.0.0/24 * 192.168.1.100 443
26 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn 192.168.0.0/24 * 192.168.1.100 4000-4029
27 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn 192.168.0.0/24 * 192.168.1.100 53
                 
63 廃棄 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn * * * *
64 通過 tcp tcpフラグチェックしない - 192.168.0.0/24 * 192.168.1.0/24 *
ID. 1〜 2 : DNS/NTPへのアクセス許可。
ID. 5〜 7 : Microsoft ネットワーク関連のパケットをアドレス指定で許可。
ID.18   : ID.18でそれ以前で通過と指定したもの以外のUDPをカット。
ID.19     : ping/tracerouteのための設定。
ID.20〜27 : TCP関係の設定。ここには、家庭内クライアントから通信が開始されるサーバ関係のポートを通過設定。
ID.63   :上で通過と指定したもの以外の家庭内クライアントから通信が開始されるTCPをカット。
ID.64   :セッション設定後のパケットの通過を許可。

■アカウント/方向選択  lan1 -> lan0 (S_LAN(サーバ) -> P_LAN(クライアント)) 図3

このフィルタは、上記の逆方向で家庭内のクライアントからサーバにアクセスに対する応答が主体のフィルタである。送受信先がはっきりしているので、基本的アドレスを指定する。フィルタリングは、サーバから通信が始まるポート(FTPサーバのActiveモードのデータコネクションのみ)のみ開放する。サーバアクセスに対するセッションが設定できて以降のパケットはID.64で通過させる。これによりサーバが乗っ取られても、アクセスできるポートはほとんどない。

ID 動作 プロトコル tcpフラグチェック tcpフラグ 送信元IPアドレス 送信元ポート 送信先IPアドレス 送信先ポート
1 通過 udp - - 192.168.1.100 53 192.168.0.0/24 *
2 通過 udp - - 192.168.1.100 123 192.168.0.0/24 *
5 通過 tcp&udp tcpフラグチェックしない - 192.168.1.100 135 192.168.0.0/24 *
6 通過 tcp&udp tcpフラグチェックしない - 192.168.1.100 137-139 192.168.0.0/24 *
7 通過 tcp&udp tcpフラグチェックしない - 192.168.1.100 445 192.168.0.0/24 *
                 
18 破棄 udp - - * * * *
19 通過 icmp - - 192.168.1.0/24 * 192.168.0.0/24 *
20 通過 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn 192.168.1.100 20 192.168.0.0/24 *
                 
63 廃棄 tcp 以下のtcpフラグだけを持つ
パケットをフィルタ対象とする
syn * * * *
64 通過 tcp tcpフラグチェックしない - 192.168.1.0/24 * 192.168.0.0/24 *
ID. 1〜 2 : DNS/NTPへのアクセス許可。
ID. 5〜 7 : Microsoft ネットワーク関連のパケットをアドレス指定で許可。
ID.18   : ID.18でそれ以前で通過と指定したもの以外のUDPをカット。
ID.19     : ping/tracerouteのための設定。
ID.20   : TCP関係の設定。ここには、サーバ側から通信が開始されるサーバ関係のポートを通過設定。
ID.63   :上で通過と指定したもの以外のサーバ側から通信が開始されるTCPをカット。
ID.64   :セッション設定後のパケットの通過を許可。


Top Pageへ