ホーム » 「DMZ」タグがついた投稿
タグアーカイブ: DMZ
https 接続トラブルの対応 (解決)
自宅の D-ONU の交換に伴い、https 通信が繋がらなくなった。色々動かない状況から原因を推理していたが、最終的には DMZ と ポートフォワードの組み合わせが原因だったという結論。
自分なりの原因分析 (失敗のまとめ)
丹南ケーブルの光ルータ(GPON G240)の故障に伴い、光ルータ(GPON G2425)に交換となったが、この影響で https がインターネット側から自宅サーバの接続ができなくなった。色々確認する中で、当初は GPON G2425 の外部メンテナンス用の TR069 関連のトラブルを予想していたが、丹南ケーブル側のルータのWAN側メンテナンスポートの問題の可能性があると考察中。(業者の方と情報交換用にメモ)
- 丹南ケーブルでは、D-ONU とインターネット間に何らかのルータ(たぶんFortiGuard)がある。
- FortiGuard Web Filter (記事A)
- https 通信が接続できないトラブルが光ルータの交換でつながったことがある。
- 丹南CATVの光ルータ交換 (記事B)
この点を考えると、今回の原因は、記事A のように GPON G2425 の上にある上流ルータ(たぶんFortiGuard系) で、WAN側のメンテナンス https ポートが開いていて、インターネット側からアクセスすると、Fortigate ? につながろうとする。ただし Fortigate でアクセス可能IPアドレス設定で特定アドレスからしか受け付けないように設定してあるため、Connection Refused になる…. と想定している。記事B の光ルータ交換でつながるようになったのは、収納されているセグメントが変わり、ルータのWAN側メンテナンスhttpsポートが消されているセグメントに移ったためと推定している。
技術さんの訪問確認
丹南ケーブルさんの訪問を受け、現状の確認作業を行い、上記推定の理由の情報交換を行った。
確認ポイント
- 接続までの経路確認
- G2425 は、DMZ 設定で 自宅内ルータ(AirStation)に接続
- 自宅内ルータ(AirStation)は、DMZ設定は使わず、静的ポート変換で(22,25,53,80,123,443,993,465)を、自宅内サーバに流れる。
- 動作検証用に G2425 に 8443 を 自宅内ルータ(AirStation) の 443 にポートフォワードをかけてある。
- 丹南ケーブルの外から、以下を確認
- telnet … 80 で自宅サーバページにアクセス可能。w3m http://tsaitoh.net/ で自宅ページを表示可能。
- telnet … 443 Connection Refused
- telnet … 8443 自宅サーバにアクセス可能。telnet の接続なので 400 エラーが表示されるが、サーバ側がApache2.4.66 / Ubuntu と表示されるので、自宅以外の物につながっている訳ではない。
この結果から、(a) G2425 で 443 が使われている、or (b) G2425 のインターネット側上流ルータが 443 を使っている。この確認としては、丹南ケーブルの内部から telnet … 443 を実行してもらい、つながれば(b)、つながらなければ(a) と原因切り分けが可能なはず。
https 接続は異常なマニアの要求?
https で自宅Webサーバの公開ができない…というクレームは、逸般家庭(異常なマニア)の要求であり、https 接続は諦めて…という論調にならないか心配していた。でも、技術の方との話だと「最近は自宅 IP カメラに https 接続というのはよくある話なので、https はつながる設定は普通」とのお話で、原因究明をちゃんとしてくれそうで良かった。
んで、設定確認で LAN ケーブル抜き差ししてたら、古いケーブルの抜け止めのノッチが折れた。いい機会だし LAN ケーブル買い出しかな。
追記 HTTPS 問題解決 (DMZなし+ポートフォワード)
HTTPS が繋がらないトラブルを改めて見直してみた。
上記の接続で失敗したのは、DMZ を基本として、繋がらない HTTPS だけポートフォワード転送の設定であった。
- (失敗A) – DMZ 転送 – [443 は繋がらない]
- (失敗B) – DMZ 転送 + 443 ポートフォワード – [443 は繋がらない]
ここで、こういった複合設定の相性問題の時は、地道な設定変更が必要。ということで色々組み合わせて実験した結果…
- (成功C) – DMZ 転送なし + 443 ポートフォワード
であればつながることが確認できた。DMZ とポートフォワードの組み合わせが原因だろうか?
原因のまとめ
- G2425のDMZ機能は、HTTPS を正しく通すことができない。
- G2425はDMZ機能とポートフォワードの両方を設定できない。
Gemini でDMZとポートフォワードの処理順序を問い合わせると『一部の特殊な海外製ルータやファームウェアによっては同時に設定すると競合を起こしたり、挙動が変化する場合があります。』だそうな。
ということで、自宅サーバで動かしているプロトコルをポートフォワードで一つ一つ全て記載した。
(2段目のバッファロールータのポートフォワードをコピーし、これに加え ルータ VPN の L2TP/IPsec のポート転送を追記)
| WAN接続 | WAN | LAN | 端末名 | 端末 | protocol | 概要 |
| 1_INTERNET_R_VID_881 | 53~53 | 53~53 | Unknown_xx:xx:xx:xx:xx:xx | 192.168.1.xx | TCP/UDP | DNS |
| 1_INTERNET_R_VID_881 | 80~80 | 80~80 | Unknown_xx:xx:xx:xx:xx:xx | 192.168.1.xx | TCP/UDP | HTTP |
| 1_INTERNET_R_VID_881 | 443~443 | 443~443 | Unknown_xx:xx:xx:xx:xx:xx | 192.168.1.xx | TCP/UDP | HTTPS |
| 1_INTERNET_R_VID_881 | 123~123 | 123~123 | Unknown_xx:xx:xx:xx:xx:xx | 192.168.1.xx | TCP/UDP | NTP |
| 1_INTERNET_R_VID_881 | 22~22 | 22~22 | Unknown_xx:xx:xx:xx:xx:xx | 192.168.1.xx | TCP | SSH |
| 1_INTERNET_R_VID_881 | 993~993 | 993~993 | Unknown_xx:xx:xx:xx:xx:xx | 192.168.1.xx | TCP/UDP | IMAPS |
| 1_INTERNET_R_VID_881 | 25~25 | 25~25 | Unknown_xx:xx:xx:xx:xx:xx | 192.168.1.xx | TCP | SMTP |
| 1_INTERNET_R_VID_881 | 465~465 | 465~465 | Unknown_xx:xx:xx:xx:xx:xx | 192.168.1.xx | TCP | SSMTP |
| 1_INTERNET_R_VID_881 | 587~587 | 587~587 | Unknown_xx:xx:xx:xx:xx:xx | 192.168.1.xx | TCP | SSMTP(Submission) |
| 1_INTERNET_R_VID_881 | 500~500 | 500~500 | Unknown_xx:xx:xx:xx:xx:xx | 192.168.1.xx | UDP | L2TP/IPsec(IKE) |
| 1_INTERNET_R_VID_881 | 4500~4500 | 4500~4500 | Unknown_xx:xx:xx:xx:xx:xx | 192.168.1.xx | UDP | L2TP/IPsec(NAT-T) |
| 1_INTERNET_R_VID_881 | 1701~1701 | 1701~1701 | Unknown_xx:xx:xx:xx:xx:xx | 192.168.1.xx | UDP | L2TP/IPsec |
ということで、丹南ケーブルさんにメールに、情報共有しておいた。
ファイアウォールとiptables
インターネットからの攻撃を防ぐには、ファイアウォールが必要となる。外部からの接続をうけるコンピュータは、ファイアウォールがどう設定されているのか把握することが重要。
ファイアウォールとDMZ
ファイアウォールは、パケットの(送信元IPアドレス,送信元ポート番号)、(宛先IPアドレス,宛先ポート番号)を見て、通信を制限するルータであり、専用のファイアウォールではさらに細かい制限を加えたり、通信履歴を保存することができる。
組織向けの外部公開のWebサーバやメールサーバを持つ組織では、外部からの接続をうける必要があり、脆弱性があればサーバは乗っ取りなどの被害に会いやすい。サーバが被害を受けたらファイアウォール内部のコンピュータに被害が広がる(トロイの木馬)のは危険であることから、(1) DMZ(非武装地帯)内部に外部公開のサーバを置き、(2) 対外FireWallで外部からのパケットはすべてDMZだけに通す。(3) 内部FireWall では、DMZ の特定の受信パケットだけ流す様にする。
DMZ内部のサーバは、外部からの攻撃をうけるため、極めて慎重にセキュリティ対策を行う必要がある。
iptables
Linux で FireWall を構築するときには、iptables を用いる。iptables では、主に以下の3つのルール(チェイン)でパケットを制限できる。
- コンピュータに入ってくるパケットに対するルール(INPUT チェイン)、
- コンピュータから出ていくパケットに対するルール(OUTPUTチェイン)、
- コンピュータで中継するパケットに対するルール(FORWARDチェイン)
iptables の設定を見るには、iptables -L を実行する。
$ sudo iptables -L # すべてのルールを表示 Chain INPUT (policy DROP) target prot opt source destination DROP all -- anywhere anywhere state INVALID ACCEPT all -- 192.168.11.0/24 anywhere ACCEPT tcp -- anywhere anywhere tcp dpt:http ACCEPT tcp -- anywhere anywhere tcp dpt:https : Chain FORWARD (policy DROP) target prot opt source destination DROP all -- anywhere anywhere state INVALID ACCEPT all -- 127.0.0.0/8 anywhere ACCEPT all -- 192.168.11.0/24 anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
iptables で制限のための設定を間違えると、通信ができなくなるので、基本的な考え方だけを紹介する。
「条件にマッチしたパケットをどうするのか」というルールを、チェインに並べておき、パケットが届くとチェインの先頭からルールを適用し、ACCEPT/REJECT/DROPなどの対応を決める。
iptables でルールを登録する場合は、一般的に以下の書式で、条件1,条件2… をすべて満たすパケットをどうするのかのラベルを最後に記載する。
$ iptables -A チェイン 条件1 条件2 … -j ラベル
$ iptables -P INPUT DROP # デフォルトポリシーの設定 # INPUT のルールにどれもマッチしない場合はDROP(パケット廃棄) $ iptables -P OUTPUT ACCEPT # OUTPUT のどのルールにもマッチしなければACCEPT(受信許可) $ iptables -A INPUT -s 127.0.0.1 -j ACCEPT # INPUT の末尾に、"送信元IPが 127.0.0.1 ならACCEPT" を追加 $ iptables -A INPUT --dport 80 -j ACCEPT # INPUT の末尾に、"宛先ポートが 80 ならACCEPT" を追加 $ iptables -A INPUT -s 11.22.33.44 -j DROP # INPUT の末尾に、"送信元IPが 11.22.33.44 ならDROP" を追加 iptablesのオプション引数 -P デフォルトポリシーの設定 -A 末尾にルールを追加 -s 送信元IPアドレスの条件指定 -d 宛先IPアドレスの条件指定 --sport 送信元ポート番号の条件指定 --dport 宛先ポート番号の条件指定 -j 指定ラベルに移動 INPUT chain | <送信元IPが127.0.0.1なら>----ACCEPT | <宛先ポートが80なら>----------ACCEPT | <送信元IPが11.22.33.44なら>--DROP | DROP

