え、今頃かよ。
ええ、そうなんです。
だいぶまえにmacOS ServerでWebサーバを立ち上げるって記事を書き、実際にTeam Tupacのサーバを置いた訳ですが、Webサーバを置く上で重要なセキュリティの部分で、これを抜かしていたんです。 
これまでは設定でごまかして、Webサーバも私のネットワーク上に置いていたため、DMZは作ってませんでしたが(なんて言ったらセキュリティの専門家に怒られる)、せっかくいい機材あるんだしちゃんとしようと思い、今回DMZを作りました。

使うのは当然、ヤマハのRTX1200です。
この人、物理的に別れたLANの口が3種類あり、よく使われる方法としては、
  • LAN1:8ポートあるしLAN
  • LAN2:インターネットに接続(FTTH/ADSLに接続)
  • LAN3:???
  という感じでLAN3は、別のインターネット回線を接続して冗長化してみたり、余らせてしまったりされている訳です。私は余してました。
そこで今回、LAN3をDMZ(=DeMilitarized Zone、非武装地帯)として使っちゃろうやないか、と思い立って、数時間ほぼぽちぽちとやっていた訳です。

うちのネットワークはとうとうこうなりました。
DMZ.001

ところで、今回は何を忘れんとしてこの記事を書いているのかと言いますと、DMZ上のサーバからもインターネットにアクセスできるようにする、そこを書き留めたい訳です。
今回使うWebサーバのIPアドレスは192.168.10.2、ポートはテスト用に8022として設定を行います。
ちなみにMacにはOSと一緒にApacheが入っているので、httpd.confのポートの部分をいじり、sudo apachectl startをターミナルで叩いてテスト用サーバをでっち上げました。


RTX1200側の設定

基本的に、ヤマハの設定例と同じです。
すでにISP関係の設定は終わっているので、必要な部分だけ抜き出して設定します。
GUIでも設定できますが、コピペでできるしコマンドでやりました。

・DMZ用インターフェースの設定
ip lan3 address 192.168.10.1/24
ip lan3 secure filter in 100000 1 100001 100002 100003 100004 100005 100099
ip lan3 secure filter out 3000 dynamic 100 101 200
※フィルターの番号が、同じものをすでに設定済みかを確認のこと
INのフィルターの設定はヤマハの例から変えてます。
ヤマハの例ではやってくるパケットをすべて捨ててしまいます。
そこで、RTX1200をGUIから設定したときに自動で設定されるフィルターをいくつか拝借しました。

・NATの設定
nat descriptor type 1 masquerade
nat descriptor masquerade static 1 1 192.168.10.2 tcp www
(正味言ってこれはどっちでもよかったりします、私のネットワークの場合これはなくてもよかった)

これで、DMZの準備はできました。
あとは、お外からやってきたポート8022番へのアクセスを、でっち上げサーバに流してやるように設定するだけです。
うちの場合はPPPoEの設定に組み込みました。
書くのが面倒なので、詳しいやり方はここを見てください。
開けたポートは8022です。


Mac側の設定

この辺の設定がWindowsは面倒に感じるのが、私がWindowsを使わない理由のひとつです。布教はいいから。
DMZではDHCPを動かしていないので、RTX側で設定したネットワークアドレスに収まるアドレスを手動で振ってやらないといけません。
今回使用した設定値は以下の通りです。
IPアドレス:192.168.10.2
ルーター:192.168.10.1
DNS:192.168.10.1

今回はRTX1200のLAN3に対して有線接続します。
接続するでっち上げサーバはMacBook Proにつき、Thunderbolt to Gigabit Ethernet Adapterを介してMacに接続しました。
「システム環境設定」→「ネットワーク」で、対応するアダプタを選択し、
  • 「IPv4の設定」の部分を「手入力」に切り替え
  • 「IPアドレス」にRTXに入力したサーバ用のアドレス(今回は192.168.10.2)を入力
  • サブネットマスクは255.255.255.0
  • ルーターは192.168.10.1
  • 「詳細」をクリックし、「DNS」タブに入り、「DNSサーバ」の左下「+」ボタンをクリック、「192.168.10.1」を入力
で、「適用」をクリックします。
どの経路でネットに接続しているのかわからなくなるのを防ぐため、Wi-FiはOFFにしました。
Screen Shot 2018-09-29 at 23.55.50


できた!

ここまできたら、あとは実際にサーバを接続してアクセスをかけてみるのみです。
うちのネットワークの80番ポートにはとあるサーバがおりますので、テスト用に8022番としているわけなので、アドレスはこんな感じにしてブラウザに入力します。
mydomain.jp:8022
最近のブラウザはプロトコル叩かなくてもいいから楽チン。
何やら表示されました。
Apacheのデフォなのか、Appleの作ったテストページなのか・・・
スクリーンショット 2018-09-29 23.47.45
同じディレクトリにあった画像も表示されたし、完璧です。
スクリーンショット 2018-09-29 23.48.02
  でっち上げサーバのApacheをストップさせてからリロードすると、ちゃんとエラーも吐きました。
スクリーンショット 2018-09-29 23.48.40


おまけ

多分これからもMacBookでDMZとLANを行き来すると思うのですが、その度にEthernetの設定を書き換えるのは面倒だと思い、プリセット的なもの(Macでいうネットワーク環境)を作成しました。
普段使っているLANの設定やST-LinkなどのUSBモデムと認識される類のものは、デフォルトの「自動」に、DMZ用の設定は新たに作った環境設定に入れました。
こうすれば、切り替えが簡単にできます。
Screen Shot 2018-09-29 at 23.59.57Screen Shot 2018-09-29 at 23.55.50
そう、簡単に、ワンタッチで切り替えができるんです。
左上のリンゴマークをクリックし、「ネットワーク環境」からさっき設定したのを選べばその瞬間切り替わります。
Screen Shot 2018-09-30 at 01.21.34
こういうところの使い勝手が最高だから、Macはやめられない・・・


最後に

Rosso8xの解体企画はよ!ってリクエストくださってる皆さん、もうしばらくお待ちください。
現在絶賛準備中です。