ルータの設定

以下はCiscoのルータ(うちのはちょっと古い2500シリーズ)の設定法です。 同じ型番のルータでも,ソフト(IOS)のバージョンが違うと, うまく使えないコマンドがあるようです。

まずルータにログインします。 パスワードを要求されたら,しかるべきパスワードを入れます。すると,

router>
のようなプロンプトが出ますので,ここにいろいろ命令を入れます。 ヘルプは ? です。

実際に設定を見たり変えたりするには,特権モードに入らなければなりません。 そのための命令は en (enable) です。 つまり,本当は enable ですが,en だけでもかまいません。

en すると,またパスワードを聞いてきます。 これは特権モード用のパスワードです。 特権モードのプロンプトは router# のようになります。

まずは,どのような設定になっているか見てみましょう。 そのための命令は wr t (write terminal) です。 これは記録しておくといいでしょう。 ! で始まる行はコメントです。

設定を変えてみましょう。そのためには conf t (configure terminal) と打ち込みます。すると,

Enter configuration commands, one per line.  End with CNTL/Z.
と言ってきて,プロンプトが router(config)# に変わります。 この段階で設定できるのはルータ全体についてのものです。たとえば
hosthame router
ルータのホスト名を router にする
enable password cisco
ルータの特権パスワードを cisco にする
no ip domain-lookup
間違ったコマンドを入れるとそれをホスト名だと思って DNS を引きに行くことがあるが,それをやめさせる
service password-encryption
デフォールトでは wr t するとパスワードが見えてしまうが, これを暗号化する。
no ip source-route
Source routing というのは指定したホストを経由してパケットを送ることです。 これをされると, パケットをあたかも信頼できるホストから来るように見せかけられるので, こういうパケットは禁止します。
といった設定をこの段階で入れます。 いくつか打ち込んだら, Ctrl-Z または exit と入れると元のモードに戻ります (さらに exit と入れるとログアウトしてしまいます)。

特定のポートについての設定は,conf t した状態で, Ethernet0(LAN 側)についてなら int e 0 (interface ethernet0), Serial0(専用回線側)についてなら int s 0 (interface serial0) のように入れます。プロンプトがまた少し変わります。

以下は設定の例です。

router>en
Password:cisco
router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
router(config)#enable password hogehoge
router(config)#no ip domain-lookup
router(config)#int e 0
router(config-if)#ip address 192.244.75.8 255.255.255.0
router(config-if)#ex
router(config)#int s 0
router(config-if)#ip address 192.50.68.6 255.255.255.252
router(config-if)#ex
router(config)#line vty 0 4
router(config-line)#password boofoowoo
router(config-line)#login
router(config-line)#ex
router(config)#ex
router#wr
router#ex
line vty 0 4 からの数行は, 仮想端末 vty(要するに telnet の口)についての設定です。 これは,vty 0,vty 1,vty 2,vty 3,vty 4 について, パスワードを boofoowoo にしてログインを許可するという意味です。 最後の wr でこの設定を不揮発性メモリに書き込みます。 不揮発性メモリに書き込まなくてもすぐに設定は効果を発揮しますので, テストのためしばらく使っておかしくなかったら wr すればいいでしょう。

アクセス制御のしかた

ルータでは, 各インターフェース(専用回線側,イーサネット側)について, 出・入の各方向について, パケットの種類(TCP,UDP,ICMP), 出発点・到達点のIPアドレス(の範囲), ポート(の範囲)などを指定して,アクセス制御をかけることができます。 この機能をちゃんと理解して使えば, ルータだけで基本的なファイアウォールを構築することができます。

一方,本格的なファイアウォールソフトや, ファイアウォール専用マシンでは,単なるアクセス制御だけでなく, ログ機能・暗号化機能・アドレス変換機能・プロキシ機能などが付いています。 特に暗号化機能は,企業の各支店などで同じソフトを使えば, インターネットをあたかもイントラネットのように安全に使えるというので, 最近はエクストラネットなどと呼んで持てはやされています。

大学等では, ルータでできるような基本的なアクセス制御だけで十分だと思います。 それ以上のことをすれば,使いにくくなるだけですから。 ただ,インターネットの渋滞緩和のためという別な理由で, プロキシ経由でないと外に出られないようなアクセス制御をかけることは, 特に学生用のマシンについては必要なことだと思います。

Telnet ポートのアクセス制御

最低限,ルータにTelnetでログインできるのは 192.244.75.* の中からだけに制限する必要があります。そのためのアクセスリストは

access-list 12 permit 192.244.75.0 0.0.0.255
のように書きます(12 はアクセスリストの番号で,他の値でもかまいません)。 実際にこれを設定するには次のように打ち込みます。
router>en
Password:hogehoge
router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
router(config)#access-list 12 permit 192.244.75.0 0.0.0.255
router(config)#line vty 0 4
router(config-line)#access-class 12 in
router(config-line)#ex
router(config)#ex
router#wr
router#ex

アクセスリストを設定したなら,permit で明示的に許可された場合以外は, すべて deny(拒否)扱いになります。

一般のアクセス制御

次は一般のアクセス制御です。アクセスリスト番号が100番超の場合は, パケットの種類やポート番号も指定することができます。 たとえば以下の例をご覧ください。

access-list 101 deny   ip 127.0.0.0 0.255.255.255 0.0.0.0 255.255.255.255
access-list 101 deny   ip 192.244.75.0 0.0.0.255 0.0.0.0 255.255.255.255
access-list 101 permit icmp 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
access-list 101 permit tcp 0.0.0.0 255.255.255.255 192.244.75.1 0.0.0.0 eq 25
access-list 101 permit tcp 0.0.0.0 255.255.255.255 192.244.75.1 0.0.0.0 eq 80
access-list 101 permit tcp 0.0.0.0 255.255.255.255 192.244.75.0 0.0.0.255 gt 1023
access-list 101 permit udp 0.0.0.0 255.255.255.255 192.244.75.0 0.0.0.255 gt 1023

このアクセスリストを内向きに設定すれば,

ということになります。 これで 192.244.75.1 というホストに対しての port 25(SMTP = メール), port 80(HTTP = Web のサービス)だけ許可されます。 また,port≧1024 はとりあえず許可します。

なお,頭の2行は,127.0.0.1(ループバック)や 192.244.75.* という内側にしかない番号が外からやってくるのを禁止します。 これは IP spoofing といって, 外から内部者のような顔をして入ってくる悪者を切るための手段です。

実際にこれを設定するには次のように打ち込みます (頭の no access-list 101 は, すでに設定してあるものを消すという意味です)。

router>en
Password:hogehoge
router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
router(config)#no access-list 101
router(config)#access-list 101 deny ip 127.0.0.0 0.255.255.255 0.0.0.0 255.255.255.255
router(config)#access-list 101 deny ip 192.244.75.0 0.0.0.255 0.0.0.0 255.255.255.255
router(config)#……
router(config)#int e 0
router(config-if)#ip access-group 101 out
router(config-if)#ex
router(config)#ex
router#wr
router#ex

トラフィックの測定

MRTG を使えば簡単です。 そのためには SNMP をオンにしておかなければなりません。 最も簡単な設定は次の通りです。

router>en
Password:hogehoge
router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
router(config)#snmp-server community public RO
★(追記)snmp のテストには UCD-SNMP パッケージが便利です。

トリック

インチキマルチホームとかいろいろするようになったので, インターネットへのデフォールトの経路にあるルータにちょっとトリックをしておきました。 デフォールトの経路をスタティックに与えてから, ルータがイーサネット側(内側)に rip を流さないという passive-interface ethernet 0 と, ルータ自身が rip を無視するという distance 255 を設定したわけです。 192.50.68.5 は専用線の向こう側にあるルータのこちら側です。

router>en
Password:hogehoge
router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
router(config)#ip route 0.0.0.0 0.0.0.0 192.50.68.5
router(config)#router rip
router(config-router)#passive-interface ethernet 0
router(config-router)#distance 255
router(config-router)#ex

付録

次のファイルはほぼ現時点におけるうちのルータの設定例です (特権モードで wr t として表示されるものです)。 部分的に伏せ字があります。 おかしなところがあったら教えてください。

リンク集

Cisco 以外(順不同,抜けあり)

IMnet接続用ルータの選定にあたって (1996年) には実績あるルータとして Cisco,Bay Networks,YAMAHA が挙げられていました。

参考書


リンクはご自由にどうぞ。

松阪大学 奥村晴彦 okumura@matsusaka-u.ac.jp

Last modified: Tue Mar 28 09:48:36 JST 2000