Dell Dimension C |
IPnuts 4.0r3 |
IPnuts 4.0r3
IPnutsをPPPoEブロードバンドルーター兼Firewallとし、図のようなネットワーク環境を構築し、
内部サーバーを外部への公開サーバーとする。
IPnutsは普通のPCにNICを複数挿入し、ルーターやFirewallとして使用することに特化したLinux
をベースに作られたOSで、市販のルーターにはない多機能性を持ちながら、導入コストを格段に
下げることができる優れた製品である。(5万円以下のルーターにSNMP機能はなかなかない。)
Linuxでありながら最も障害の多いHDDを使用しなくて済むのは非常にありがたい。
(詳細は http://www.ipnuts.net/ を参照のこと)
FD版は無料で使用することが出来るが、安価なので是非CD-ROM版を使用することを奨めたい。
(CD-ROMの方が格段に使い勝手がいいし、感謝の気持ちと存続を望むので、少しでも売り上げ
に貢献するべきと思う)
1.準備
2.初期設定 1
3.初期設定 2
4.PPPoEの設定1 ( 加入プロバイダへの接続 )
5.PPPoEの設定2 ( マルチセッションを使った、東日本フレッツ・スクウェアへの接続 )
6.DNSマスカーレードの設定
7.ポートフォワードの設定
8.アドレス変換の設定
9.設定の保存
IPnutsを選んだ経緯(ルーター雑感)
筆者宅のルーターの使用歴(ISDN時代を含)は概ね以下の通りだった。
MN128-SOHO → MN128-SOHO SL10 → MN128-SOHO PAL B&I → BRL-04FM → BA8000-Pro → NetGenesis SuperOPT100E
(これ以前はサーバーにTAを直接続してSolarisをルーター兼各種サーバーにしていたのが、最初だった。)
MN128-SOHOシリーズは、ダイヤルアップルーターの火付け役として歴史的な役割を果たした製品で、当時は
OEM供給元の札幌のベンチャー企業と個人的な関わり合いがあった上に、機能的に優れていたため愛着のある
ルーターだった。 ( 自分の作った製品を「長い間使ってくれてありがとう」の精神はこの企業から学んだ )
( 思い出深い製品なので使用しなくなった今でも全て保存している。SL10はISDNのTAとして今でも現役 )
回線をADSLからBフレッツにした時に速度的な問題から高速タイプへの移行を余儀なくされた。
BRL-04FMは速度的には申し分ないのだが、53/tcp(DNSのTCP)を内部のサーバーへStaticにNAT出来ないことが
判明したため、1週間で使用を停止し、友人に上げてしまった。
Port53のTCPはセカンダリのDNSがzone情報を取得する時に使用される。53/udpだけのFirmを書いたプログラマは
余程知識のないチームだったと思わざるを得ない。
BRL-04FMと同等の速度を持ち、MN128-SOHOのような優れた機能のルーターを探したところ、MN128-SOHOと同じ
販売元で、BRL-04FMのFirmを機能追加しただけ(OEM)のBA8000-Proという製品があることが判明したため導入した。
しかし、このBA8000-Pro が大問題だった。機能的にも速度的にも申し分のない製品なのだが、ブラウザ上で
フィルタの設定をしているとフリーズする現象が購入当初から頻発していた。「んまぁ、新しいFirmがリリース
されれば改善されるだろう。それまでゴマカシながら、気長に待とう」と思い、つい先日(2004年11月)まで
本当に気長に(約2年)使用していた。約2年の間に設定画面を触っているわけでもないのに、自然にフリーズ
する現象は1週間に一度くらいの割合で発生し、その度に電源を抜き差ししなければならなかった。
新しいFirmがリリースされる度に期待してUpdateをしたが一番肝心のフリーズ現象は一向に改善されなかった。
フィルタ設定を減らすとフリーズしないという噂を聞きつけたため実行したが、確かにフリーズの頻度は減る
ものの忘れた頃に再発する現象に見舞われていた。サーバーを運営しているようなユーザーにとってルータが
フリーズするのは致命的な問題だし、機能的(スペック的)には出来るはずのフィルタ設定が実質使えないと
いうのは、如何なものだろうか? (こうやってメーカーの信頼は失われていくのだろう)
2004年10月に入ってから減少していたフリーズ現象が再び頻発を始めたので、久々にルーター選びを開始した。
( ルーターのリプレイスが終わったら、このBA8000-Proは叩き割ってやる! → それ程腹の立つ製品 )
様々な掲示板などの他ユーザーの評価を参考に信頼できそうなメーカーを調査し、発売されたばかりの
NetGenesis SuperOPT100Eを選択した。
NetGenesis SuperOPT100E は事前調査の評価通り、機能・速度・安定性・価格で十分満足できる製品だった。
ただ一つだけ(惜しい!!)、機能面でどうしても我慢できないのは出力されるログの内容である。
ログは保存の必要があるため、内部のサーバーのsyslogに飛ばしているのだが、NetGenesis SuperOPT100Eの場合
はパケットを拒絶(Reject or Discard or Drop)した内容だけが出力されるのである。
ネットワークに関わる仕事をする者にとって、FireWallなどのフィルタのログは拒否の記録よりもむしろ許可の
記録(何を通したか? or 通してしまったか? or Pass or Through or Accept)の方が重要なのである。
残念だが導入から1ヶ月後、SuperOPT100Eは「かみさんの実家」に上げることに決定し、再びルーター選びを開始。
どうしようか?を考えている時に、ふとMosquitoの事を思い出した。IPnutsという名前に改名され現在でも
リリースが続いているらしい。
最も障害が発生しやすいHDDを使わず(外してしまって構わない)、FD1枚で動くFirewallのGNAT Box
が販売終了となった後、、代替の物を探しているときに発見していた。(虻の代りに蚊を見つけた)
予算の少ない貧乏顧客のネットワークを組もうとした時に、Mosquitoを考えた事があっが商談自体が流れて
しまったので導入には至らず、その後忘れていたが、この機会に自宅でやってみようと決心。
幸い押入れの中に「ヘッポコ」マシンやカビが生えそうなNICが沢山あるではないか!
使用マシン:
中古の Dell Dimension C P3-833MHz 256MB (HDDは必要ないので外す)
使用NIC:
eth0 : Intel(R) PRO/100 S (マシンにデフォルト付属)
eth1 : 3Com 3C905C-TX (余っていたNIC)
入 手
http://www.ipnuts.net/ で「エクストラメンバーキー 3ヶ月」をオンラインで購入し、CD-ROM版をダウンロード。
(2,940円) <- ダウンロード期間が3ヶ月なのであって、使用期間が限定されている訳ではない。(安心)
下準備
・ダウンロードしたCDイメージ cdrom.img の拡張子を iso に変更し、Easy CD Creatorで焼込み。
・出来上がったCD-ROMのfloppyディレクトリ直下のファイル全てをDOSフォーマットのFDにコピー。
・IPnuts用マシンのBIOSの優先起動DiskをCD-ROMにして、FDとCD-ROMを挿入して起動。
・Windows端末のIPアドレスに192.168.0.?(192.168.0.1以外)を追加しておく。←重要!!
初期設定 1
●rootのパスワード変更。
コンソールからrootでログイン(デフォルトパスワードはなし)
rootのパスワードを設定する。
# passwd
Changing password for root
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
Enter new password: ********
Re-enter new password: ********
Password changed.
●ユーザー追加。
sshでログインするための自分のアカウント(例:myacount)を追加する。
# adduser myacount
adduser: /home/myacount: No such file or directory
adduser: /home/myacount: No such file or directory
adduser: /home/myacount: No such file or directory
Changing password for myacount
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and numbers.
Enter new password: ********
Re-enter new password: ********
Password changed.
●sshログイン制限。
rootアカウントでのsshログインを不許可にする。
viでsshd_configを開く。
# vi /etc/ssh/sshd_config
以下の内容を追加して保存する。
PermitRootLogin no
●telnetの無効化。
telnetでログインできなくする。(リモートからのコンソールはすべてsshを使用する)
viでinetd.confを開く。
# vi /etc/inetd.conf
以下のようにtelnetの行をコメントアウトして保存する。
# telnet stream tcp nowait root.telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd
●追加NICの認識。
追加NIC(3Com 3C905C-TX)を認識させる。
viでモジュール設定ファイルを開く。
# vi /etc/modules
3c59xを最下行に追加して保存。
8390
mii
ne2k-pci
8139too
e100
3c59x
●容量確保。
ログを減す設定。
viでsyslog.confを開く。
# vi /etc/syslog.conf
以下のようにmessagesの部分を全てコメントアウト。
#*.=info;*.=notice;*.=warn;\
# auth,authpriv.none;\
# cron,daemon.none;\
# mail,news.none -/var/log/messages
syslogからkernelログを外すため、以下のように変更して保存。※空白はTab
*;kern,auth,authpriv.none -/var/log/syslog
●設定の保存。
設定を保存
# save_conf
Creating config.lrp Please wait:
New Package:
-rw-r--r-- 1 root root 10762 Dec 18 02:43 /tmp/config.lrp
Old Package:
-rwxr-xr-x 1 root root 473 Apr 22 2003 /var/lib/lrpkg/mnt/config.lrp
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/boot 1424 244 1180 17% /usr/lib/lrpkg/mnt
Enough freespace? (y/N) y
Copying config.lrp Please wait:
再起動させる。
# reboot
初期設定 2
●webminへのログイン。
端末のブラウザでwebminにログイン
URL:http://192.168.0.1/

デフォルトユーザー名:webadmin
デフォルトパスワード:free

●webminのパスワードを変更する。
パスワード変更をクリック。

新しいパスワードを入力して「設定」ボタンをクリック。

ID・パスワードを入力するように促されるので、
ユーザー名:webadmin
パスワード:変更したパスワード

で再ログイン
●IPアドレスの変更。
ネットワークの基本設定をクリック。

eth0のIPアドレスを自分のLAN環境に合うIPアドレスに変更してsaveボタンを押す。

●syslogをLAN内のSolarisサーバーに転送する。
本体管理のシステム監視をクリック。

リモートのホストにsyslogを転送します。に転送先サーバーのIPアドレスを記入する。

実行ボタンを押す。

●設定変更の実行。
ネットワークの設定変更の実行をクリック。

「ネットワークを再起動します」の「実行」ボタンをクリックすると、IPアドレス変更が実行される。

ブラウザのURLに設定した新しいIPアドレスを入力して再びWebminにログインする。

PPPoEの設定1 ( pppoe0 加入プロバイダへの接続 )
ネットワークのデバイスをクリック。

PPPoEをクリック。

チェック(Edit)をクリック。

Nameに任意の適当な名前を入力。
PPPoE ethernet portに「 2 eth1- OUT」を選択。
Login IDを入力。
Password をPasswordと(comfirmation)に入力。
kernel modeにチェック。
「save」ボタンをクリック。

ネットワークのデバイスをクリック。

eth1のdevice groupに設定されているOUTを外す。

最下行に設定したPPPoEが追加されているので、device port numberのnot useを3に変更。
device groupにOUTを追加

「save」ボタンをクリック。

ネットワークの基本設定をクリック。

eth1のstatic/dhcp列がdhcpになっているので、otherに変更。

「save」ボタンをクリック。

DNSマスカレードをクリック。

「有効/無効 有効にするにはチェックしてください。」 のチェックを入れる。

「save」ボタンをクリック。

「起動」ボタンをクリック。

設定保存をクリック。

「設定保存」ボタンをクリック。

ネットワークの設定変更の実行をクリック。

「ネットワークを再起動します」の「実行」ボタンをクリック。

最初に戻るをクリック。

pppoe0に接続が成功してグローバルIPアドレスが割り当てられていることと、DNSサーバーに
プロバイダから設定されたグローバルのDNSサーバーが表示されているかを確認する。

LAN内の端末のデフォルトルートとDNSをIPnutsマシンのIPアドレスに変更し、ブラウザなどから外部に出られるか?
を確認する。
PPPoEの設定2 ( pppoe1 マルチセッションを使った、東日本フレッツ・スクウェアへの接続 )
ネットワークのデバイスをクリック。

PPPoEをクリック。

2行目のチェック(Edit)をクリック。

Nameに任意の適当な名前を入力。
PPPoE ethernet portに「 2 eth1- 」を選択。
Login ID「guest@flets」を入力。
Password 「guest」をPasswordと(comfirmation)に入力。
Use DNS from PPPoEのチェックを外す。
Default Gateway のチェックを外す。
「save」ボタンをクリック。

ネットワークのデバイスをクリック。

最下行に設定したPPPoEが追加されているので、device port numberのnot useを4に変更。
device groupにOUTを追加

「save」ボタンをクリック。

ネットワークの詳細設定をクリック。

以下のようにフレッツ・スクウェアのネットワークへ向うルートをpppoe1に振る。

設定保存をクリック。

「設定保存」ボタンをクリック。

ネットワークの設定変更の実行をクリック。

「ネットワークを再起動します」の「実行」ボタンをクリック。

DNSマスカーレードの設定
LAN内で発生するLAN内の正引・逆引の問い合わせは、LAN内のサーバーに転送させ、
それ以外の問い合わせはPPPoEで所得したプロバイダのDNSへ問い合わせる。
(LAN内のDNSサーバーに再帰処理を行わせないことによって、負荷の軽減と速度感を改善させる)

※ PPPoEの設定1で「Use DNS from PPPoE」のチェックを入れておく。
DNSマスカレードをクリック

「有効にするにはチェックしてください。」のチェックが入っていない場合はチェックを入れる。

「Optional DNS servers:」の設定は以下のように。(東日本の場合)

saveボタンをクリック。

再起動ボタンをクリック。

ポートフォワードの設定

各サーバーへのフォワードポートは図のように以下の通りとする。
ns1 (192.168.1.150) : 20/tcp 21/tcp 22/tcp 53/tcp 53/udp 80/tcp 443/tcp
mail (192.168.1.151) : 25/tcp 110/tcp
ネットワークのパケット制御をクリック。

フォワードフィルタをクリック。

1行目にはAnyINからAnyOUTへの設定(外に出るための設定)がデフォルトでされているので、
2行目から設定することになる。

2行目の設定。
2行目のlogにチェック。
ActionをNONEからACCEPTに変更。
Sourceをクリック。

オブジェクト選択のサブウィンドウ( IP target: )が開く。
PPPoEオブジェクトを作成するので、Newボタンをクリック。

Nameにpppoe0
Memoに適当な文字列
Portに プロバイダ接続で作成した「3 pppoe0- OUT」を選択。
「save」ボタンをクリック。

LAN内のサーバー(ns1)オブジェクトを作成するので、もう一度Newボタンをクリック。

Nameにns1
Memoに適当な文字列
Portに 「1 eth0- IN LAN1」を選択。
IP Addresses(multiple): にLAN内のサーバーのIPアドレス(192.168.1.150)を入力。
「save」ボタンをクリック。

上記で作成したpppoe0をSourceにドラック&ドロップ。
ns1をDestinationにドラック&ドロップ。
[X] をクリックしてオブジェクト選択のサブウィンドウ( IP target: )を閉じる。

Serviceの欄をクリックする。

Service:サブウィンドウが開く。
ns1向けのフォワードポートをまとめてグループ化し作成する。
New Groupボタンをクリック。

NameにNS1-Servicesと入力。
Memoに適当な文字列
左側の (B2) ftp-data を To Add の Drop down here!にドラック&ドロップ。
左側の (B3) ftp を To Add の Drop down here!にドラック&ドロップ。
左側の (B4) ssh を To Add の Drop down here!にドラック&ドロップ。
左側の (B10) domain を To Add の Drop down here!にドラック&ドロップ。
左側の (B12) www を To Add の Drop down here!にドラック&ドロップ。
左側の (B20) https を To Add の Drop down here!にドラック&ドロップ。
Saveボタンをクリック。

作成したNS1-Servicesを Serviceにドラック&ドロップ。
Service:サブウィンドウを閉じる。

3行目の設定。
Add record ボタンを押して3行目を追加する。

3行目のlogにチェック。
ActionをNONEからACCEPTに変更。
Sourceをクリックすると、オブジェクト選択のサブウィンドウ( IP target: )が開く。

Newボタンをクリック。

Nameにmail
Memoに適当な文字列
Portに 「1 eth0- IN LAN1」を選択。
IP Addresses(multiple): にLAN内のMailサーバーのアドレス192.168.1.151を入力。
「save」ボタンをクリック。

前記で作成したpppoe0をSourceにドラック&ドロップ。
作成したmailをDestinationにドラック&ドロップ。
[X] をクリックしてオブジェクト選択のサブウィンドウ( IP target: )を閉じる。

Serviceの欄をクリックする.

Service:サブウィンドウが開く。
mail向けのフォワードポートをまとめてグループ化し作成する。
New Groupボタンをクリック。

NameにMAIL-Servicesと入力。
Memoに適当な文字列
左側の (B6) smtp を To Add の Drop down here!にドラック&ドロップ。
左側の (B13) pop3 を To Add の Drop down here!にドラック&ドロップ。
Saveボタンをクリック。

作成したMAIL-Servicesを Serviceにドラック&ドロップ。
[X] をクリックしてService:サブウィンドウを閉じる。

saveボタンをクリック。

アドレス変換の設定
ネットワークのアドレス変換をクリック。

送信先アドレス変換(DNAT)をクリック。

1行目(下記の場合はftp-data)の設定。
Destination NATの欄をクリック。

NAT target objectのサブウィンドゥが開くので、「New」ボタンをクリック。

Nameにftp-data
Memoに適当な文字列。
IP Address(or range)にLAN内のサーバーのIPアドレス192.168.1.150を入力。
Port number(or range)にftp-dataのポート番号20を入力。
saveボタンをクリック。

作成したftp-dataをDestination NAT欄にドラック&ドロップ。
[X] をクリックしてNAT target objectのサブウィンドゥを閉じる。

Source欄をクリックする。

オブジェクト選択のサブウィンドウ( IP target: )が開く。
前記で設定しておいた PPPoE をSource欄にドラック&ドロップ。
[X] をクリックしてオブジェクト選択のサブウィンドウ( IP target: )を閉じる。

Destination Addressは空欄にするか、グローバル側が固定IPアドレスの場合は、そのグローバルアドレスを入力する。
Service欄をクリックする。

Service Objectサブウィンドゥが開く。
ftp-dataをService欄にドラック&ドロップ。
[X]をクリックして、Service Objectサブウィンドゥを閉じる。

Saveボタンをクリック。

Add recordボタンをクリック。

2行目以降も上記を参考にftp/ssh/named/www/httpsを設定していく。
また、LAN内の他サーバーのmail (192.168.1.151) 用も上記を参考にsmtp/pop3を設定していく。
(この場合全部で8行か9行になる)

設定変更の実行
ネットワークの設定変更の実行をクリック。

パケット制御とアドレス変換の設定を実行します。の実行ボタンをクリック。

設定の保存 1
設定保存をクリック。

「設定保存」ボタンをクリック。

設定の保存 2
FDを抜いてWindows端末に挿入し、内容をコピーしておくと万が一のFD障害時の、迅速な対応の一助となる。
