この設定は以下のような状況で必要になりました。
- あるデモンストレーションサイトには登録されたIPアドレス(ホワイトリスト)からしかアクセスできない
- 出先でのデモンストレーションのため、デモンストレーションサイトにモバイルルーターからアクセスする必要がある。
- モバイルルーターに付与されるIPアドレスは可変のため、アクセスするサイトのホワイトリストには登録できない
- ホワイトリストに登録済みのサイトからのsshポートフォーワードやhttpプロキシで回避できる。デモンストレーションは失敗できないため、別の方式による回避方法(L2TP)によるバックアッププランを用意した。
条件を詳しく書きます。
- デモンストレーションユーザーはその所属組織からのsshによるサイトへのアクセスはすでに用意済み。
- バックアッププランとして、デモンストレーションユーザーが所属していない別機関にL2TPでアクセスし、別機関のIPアドレスでデモンストレーションサイトにアクセスする。この別機関のIPアドレスは、デモンストレーションサイトのホワイトリストに登録されている。
- デモンストレーションユーザーは別機関の所属ではないため、L2TPアクセスはできるが、別機関のサイト内にはアクセスできないようにしたい。
- 別機関は、IPアドレスが1つしかなく、かつL2TPルーターは、この別機関のインターネットアクセス用NATルーターでもあるため、DMZなどはない。
このため、以下のような設定を行いました。
- デモンストレーションユーザー(別機関にとってはゲストユーザー)にL2TPアクセスと、L2TPルーターからのインターネットアクセスは許す
- このゲストユーザーは、別機関には所属しないため、L2TPルーター配下のホストにはアクセスさせない
上記の条件を満たす方法を探してみたところ、以下のようにすればできそうでした。
- IX2105には特定のL2TPユーザーに特定のIPアドレスを割り振ることができる
- このIPアドレスに対して、L2TPルーター配下のホストが属するインターフェイスで、フィルタリングする
- IX2105では、DNSサーバーのIPアドレスはL2TPのユーザー1つしか設定できない。既存のL2TPユーザーにはこの別機関内のDNSサーバーを指定する必要があるため、デモユーザーにも別機関内のDNSサーバーへのアクセスは許さざるをえない。
- そこで、DNSの設定(viewの機能を使う)で特定のIPアドレスからのアクセスがあった場合は、L2TPルーター配下のホストに関する名前解決は許さないようにする(この設定はここでは記述しない)。
具体的な設定を以下に書きます。
- 特定のL2TPユーザーに特定のIPアドレス(172.31.220.0/24)を割り振る
ipcp provide-static-ip-address demo 172.31.220.0
- 172.31.220.0/24に対してフィルタを設定する
ip access-list demo-deny
deny ip src 172.31.220.0/24 dest 172.31.0.0/16
L2TPルーター配下のホストのアドレスは172.31.0.0/16
- 172.31.220.0/24からDNSサーバー、172.31.20.0へのアクセスは許す
ip access-list demo-permit
permit udp src 172.31.220.0/24 sport any
dest 172.3120.0/32 dport eq 53
ip access-list demo-permit
permit tcp src 172.31.220.0/24 sport any
dest 172.31.20.0/32 dport eq 53
- L2TPルーター配下のホストが属するインターフェイスにフィルタを設定する
interface GigaEthernet1.0
ip address 172. 31.0.1/16
ip filter demo-permit 100 out
ip filter demo-deny 110 out
ip filter all-permit 200 out
no shutdown
!
all-permitはすべてを許可するための
ip access-list all-permit permit ip src any dest any
というフィルタです。