Deprecated : The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
セキュリティ強化対策(Router編)
セキュリティ強化対策(Router編)
セキュリティを強化するため、ネットワーク構成とルータの設定を大幅に変更しました。
今までのネットワークは、ごく一般的な自宅サーバをADSL環境等で設置している構成であり、BBR配下にサーバ機とクライアント機が同じセグメントで接続されていました。従って、万が一サーバ機が乗っ取られるとクライアント側には好き放題にアクセスできてしまいます。そこで、おやじが使用しているBA8000にはVLAN機能があるので、サーバ機とクライアントエリアを別セグメントとしルーティングさせるとともに、サーバ・クライアントア間にフィルタを入れることにより直接通信できないようにしました。
DNSはUDP:53と思っていたのですが、クライアントが名前解決するときに512byteを越えた場合、DNSは512byte以上のデータはUDPで送信できないため、クライアントは再度TCPで牽き直していることが判明したので、UDPとTCPを分離して設定しなおしました。
(2002.05.28)
■ネットワーク構成
今回設定したネットワークは、以下のような構成です。
BA8000には4ポートのLANインタフェースがあるが、メンテナンスも考慮し2ポートづつVLAN機能を使用して2つのグループに分けた。
グループ
LANポート
ゲートウェイ
ネットワーク
備 考
A(プライマリLAN)
LAN1/2
192.168.0.1
192.168.0.0/24
クライアント用
B(セカンダリLAN)
LAN3/4
192.168.1.1
192.168.1.0/24
サーバ用
BA8000ではプライマリLANとセカンダリLANの2つのVLANが扱えるが、セカンダリLANにはいくつか制約がある(DNSルーティングができない等)ので、こちらをサーバ用に使った。
■ルータの設定
ここでは、上記構成に関係するところのみを示します。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 ->静的マスカレード で設定する。下のほうにある静的マスカレードの追加 ボタンを押し、「静的マスカレードの追加/修正 」で設定していく。最後に設定 ボタンを押して設定を保存するのを忘れないこと。
リモートIPアドレス 、リモートポート は、インターネット全体が対象なので、いずれも「* 」とする。
外部IPアドレス は、「WAN側ポートIPアドレス 」としておくと、ISPから動的にWAN側に割り当てられるグローバルIPアドレスが対象になる。
外部ポート は、サーバとしてインターネットに公開するポートを設定する。インターネットからは、上記の外部IPアドレスの外部ポートにアクセスしてくることになる。
内部IPアドレス は、サーバのIPアドレス(192.168.1.100)を設定する。
内部ポート は、「外部ポート番号と同じ 」を選択し、ポート番号を変換することなく中継させる。
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へ