はじめに
中古で入手した NEC UNIVERGE IX2215 を使って、自宅ネットワークを構築しました。
目的は、ただインターネットにつなぐだけではなく、次のような「小規模ながらセキュリティを意識した構成」を作ることです。
- 家庭用LANと公開サーバー用ネットワーク(DMZ)を分離する
- DMZから家庭LANへのアクセスを禁止する
- 特定の管理PCのみDMZへSSH接続可能にする
- IX2215自体のSSH・Web GUIへのアクセス元を制限する
- PPPoEでインターネット接続する
- DHCPで家庭LAN端末へIPアドレスを配布する
使用したルーターは以下です。
- NEC UNIVERGE IX2215
- IX Series Software Version 10.11.17
なお、PPPoEのユーザー名・パスワードなどの認証情報は、当然ながら伏せて記載しています。
ネットワーク構成
設計資料としてまとめた構成図がこちらです(公開用に作成者名の表示部分は加工しています)。
テキストで表すと以下のとおりです。
Internet
|
PPPoE / IIJ
|
GigaEthernet0.1
|
+-------------+
| NEC IX2215 |
+-------------+
| |
GE1.0 GE2.0
| |
192.168.10.1 192.168.2.1
| |
DMZ 家庭LAN
192.168.10.0/24 192.168.2.0/24
| |
Server 管理PC
192.168.2.20
IPアドレス設計は以下です。家庭LANとDMZを別セグメントに分離し、IX2215が両ネットワークのデフォルトゲートウェイになります。
| インターフェース | ネットワーク | IPアドレス | 用途 |
|---|---|---|---|
| GE0.1 | PPPoE | IPCPで取得 | インターネット |
| GE1.0 | 192.168.10.0/24 | 192.168.10.1 | DMZ |
| GE2.0 | 192.168.2.0/24 | 192.168.2.1 | 家庭LAN |
| 管理PC | 192.168.2.0/24 | 192.168.2.20 | IX2215・サーバーの管理 |
PPPoEによるインターネット接続
今回はIIJのPPPoE接続を使用しています。まずPPPプロファイルを作成します。
ppp profile web-ppp-gigaethernet0.1
authentication myname <PPPoEユーザー名>
authentication secret-password 1 <パスワード>
!
続いて、WAN側インターフェースを設定します。
interface GigaEthernet0.1
encapsulation pppoe
auto-connect
ppp binding web-ppp-gigaethernet0.1
ip address ipcp
ip tcp adjust-mss auto
ip napt enable
no shutdown
!
ポイントは以下の4つです。
-
encapsulation pppoe:PPPoEを使用する -
auto-connect:通信が必要になった際に自動接続する -
ip address ipcp:ISPからIPアドレスを取得する -
ip napt enable:NAPTを有効化し、家庭LANやDMZのプライベートIPアドレスをWAN側のグローバルIPアドレスへ変換してインターネットへ接続する
デフォルトルートはこのインターフェース向けに設定します。
ip route default GigaEthernet0.1
家庭LANの構築とDHCP
家庭LANは 192.168.2.0/24、IX2215のIPアドレスは 192.168.2.1 です。
interface GigaEthernet2.0
description LOCAL-FAMILY-LAN
ip address 192.168.2.1/24
ip dhcp binding ge2-dhcp
ip filter lan-dhcp 1 in
ip filter lan-admin-ssh 10 in
ip filter lan-block-dmz 20 in
ip filter lan-allow 100 in
no shutdown
!
フィルタの適用については後述します。
家庭LANではIX2215をDHCPサーバーとして使用します。
ip dhcp enable
ip dhcp profile ge2-dhcp
assignable-range 192.168.2.100 192.168.2.250
subnet-mask 255.255.255.0
default-gateway 192.168.2.1
dns-server 192.168.2.1
!
配布範囲は 192.168.2.100 〜 192.168.2.250 です。管理PCなど固定IPを使う機器は配布範囲外のアドレスを使用し、今回の管理PCは 192.168.2.20 としています。
DMZの構築
DMZは公開サーバーなどを設置することを想定したネットワークで、192.168.10.0/24、IX2215側のIPアドレスは 192.168.10.1 です。
interface GigaEthernet1.0
description DMZ-PUBLIC-SERVER
ip address 192.168.10.1/24
ip filter dmz-ssh-return 10 in
ip filter dmz-block-lan 20 in
ip filter dmz-to-other 100 in
no shutdown
!
サーバー類は自宅ラボのラックに集約しています。
アクセス制御
今回最も重視した部分です。基本方針は以下です。
DMZ → 家庭LAN 原則禁止
家庭LAN → DMZ 原則禁止
管理PC → DMZ (SSH) 許可
DMZ → 管理PC (SSH応答) 許可
ネットワーク全体を自由に相互通信させるのではなく、必要な通信だけを許可します。
家庭LAN側のフィルタ
ip access-list lan-dhcp permit udp src any sport eq 68 dest any dport eq 67
ip access-list lan-admin-ssh permit tcp src 192.168.2.20/32 sport any dest 192.168.10.0/24 dport eq 22
ip access-list lan-block-dmz deny ip src 192.168.2.0/24 dest 192.168.10.0/24
ip access-list lan-allow permit ip src 192.168.2.0/24 dest any
評価順序は以下です。
| 順序 | フィルタ | 内容 |
|---|---|---|
| 1 | lan-dhcp | DHCPを許可 |
| 10 | lan-admin-ssh | 管理PCからDMZへのSSHを許可 |
| 20 | lan-block-dmz | LANからDMZへの通信を拒否 |
| 100 | lan-allow | その他の通信を許可 |
アクセスリストは順番が非常に重要です。たとえば lan-block-dmz を lan-admin-ssh より先に評価してしまうと、管理PCのSSH通信まで拒否されてしまいます。
DMZ側のフィルタ
ip access-list dmz-ssh-return permit tcp established src 192.168.10.0/24 sport eq 22 dest 192.168.2.20/32 dport any
ip access-list dmz-block-lan deny ip src 192.168.10.0/24 dest 192.168.2.0/24
ip access-list dmz-to-other permit ip src 192.168.10.0/24 dest any
DMZから家庭LANへの通信は基本的に禁止です。ただし、そのままだと管理PCから開始したSSH通信の戻りも遮断されてしまいます。そこで established を使い、すでに確立されたTCP通信の応答だけを許可しています。DMZサーバー側から新規に家庭LANへ接続することは許可していません。
結果として、通信の可否は以下のようになります。
| 通信 | 結果 |
|---|---|
| DMZ → 家庭LAN | 拒否 |
| DMZ → 管理PCへの新規接続 | 拒否 |
| SSH応答 → 管理PC | 許可 |
| DMZ → インターネット | 許可 |
仮にDMZ上の公開サーバーが侵害された場合でも、家庭LANへ直接アクセスされることを防ぐのが狙いです。
IX2215自体へのアクセス制限
ルーターの管理機能をLAN全体へ公開する必要はないため、SSH・Web GUIともに管理PCからのみアクセス可能にします。
SSH
ip access-list ssh-mgmt-admin permit tcp src 192.168.2.20/32 sport any dest 192.168.2.1/32 dport eq 22
ssh-server ip access-list ssh-mgmt-admin
ssh-server ip enable
これにより、IX2215へSSH接続できるのは 192.168.2.20 だけになります。他の家庭LAN端末からは接続できません。
Web GUI
ip access-list web-gui-admin permit ip src 192.168.2.20/32 dest 192.168.2.1/32
http-server username <ユーザー名>
http-server ip access-list web-gui-admin
http-server ip enable
Web GUIも同様に、管理PC(192.168.2.20)からのみアクセス可能となります。
その他の設定
Proxy DNS
IX2215を家庭LANのDNSサーバーとして利用します。DHCPで dns-server 192.168.2.1 を配布しているため、クライアントはIX2215へDNS問い合わせを行い、IX2215が上位DNSへ中継します。
proxy-dns ip enable
proxy-dns interface GigaEthernet0.1 priority 200
NTP
時刻同期にはNICTのNTPサーバーを使用し、タイムゾーンは日本時間に設定しています。ログを確認する際に、正しい時刻が記録されるようにするためです。
ntp server 133.243.238.163
timezone +09 00
ログ
ログバッファを拡張し、日時を記録するようにしています。フィルタ関連のログレベルも明示しています。
logging buffered 131072
logging timestamp datetime
logging subsystem flt warn
logging subsystem mflt warn
動作確認
構築後は以下を確認しました。
show interfaces GigaEthernet0.1 # PPPoE接続状態
show ip route # デフォルトルート
show ip filter # フィルタの状態
- 家庭LAN端末から
ping 8.8.8.8でインターネット到達性を確認 -
nslookup qiita.comで名前解決を確認 - 管理PCからDMZサーバーへSSH接続できることを確認
- 管理PC以外の端末からDMZへSSH接続できないことを確認
- DMZサーバーから家庭LANへping・SSHし、通信が拒否されることを確認
設定保存
設定変更後は必ず保存します。保存せずに再起動すると、変更内容が失われる可能性があるためです。
copy running-config startup-config
show running-config # 現在動作中の設定
show startup-config # 保存済み設定
まとめ
今回のIX2215構築で実現できたことは以下です。
- PPPoEによるインターネット接続とNAPT
- 家庭LANとDMZのネットワーク分離
- DMZから家庭LANへのアクセス禁止
- 管理PCのみDMZへSSH可能
- IX2215のSSH・Web GUIへのアクセス制限
- DHCPによるIPアドレス配布、Proxy DNS
- NTPによる時刻同期、ログバッファによるログ管理
家庭用ルーターではGUIで設定することが多い内容ですが、IX2215ではCLIから「どこから」「どこへ」「どのプロトコルで」「どのポートへ」という単位で通信を細かく制御できます。
CCNAの学習で出てくるACLやNAPT、DMZといった内容を、実際のネットワークで手を動かして確認できたのが一番の収穫でした。IX2215は中古価格も比較的安く、ネットワーク学習用のルーターとして非常に面白い機器です。
今後やりたいこと
- DMZサーバーの外部公開とポートフォワーディング設定
- IPv6 IPoE対応
- VLANを利用したネットワーク分離
- Cisco Catalystとの接続
- Syslogサーバーへのログ転送
- SNMPによるネットワーク監視
- VPNによる外部からの管理
- DMZへの追加アクセス制御


