2015年12月5日土曜日

IX2105でゲストユーザーにL2TP接続を提供する

この設定は以下のような状況で必要になりました。
  1. あるデモンストレーションサイトには登録されたIPアドレス(ホワイトリスト)からしかアクセスできない
  2. 出先でのデモンストレーションのため、デモンストレーションサイトにモバイルルーターからアクセスする必要がある。
  3. モバイルルーターに付与されるIPアドレスは可変のため、アクセスするサイトのホワイトリストには登録できない
  4. ホワイトリストに登録済みのサイトからのsshポートフォーワードやhttpプロキシで回避できる。デモンストレーションは失敗できないため、別の方式による回避方法(L2TP)によるバックアッププランを用意した。
条件を詳しく書きます。
  1. デモンストレーションユーザーはその所属組織からのsshによるサイトへのアクセスはすでに用意済み。
  2. バックアッププランとして、デモンストレーションユーザーが所属していない別機関にL2TPでアクセスし、別機関のIPアドレスでデモンストレーションサイトにアクセスする。この別機関のIPアドレスは、デモンストレーションサイトのホワイトリストに登録されている。
  3. デモンストレーションユーザーは別機関の所属ではないため、L2TPアクセスはできるが、別機関のサイト内にはアクセスできないようにしたい。
  4. 別機関は、IPアドレスが1つしかなく、かつL2TPルーターは、この別機関のインターネットアクセス用NATルーターでもあるため、DMZなどはない。
このため、以下のような設定を行いました。
  1. デモンストレーションユーザー(別機関にとってはゲストユーザー)にL2TPアクセスと、L2TPルーターからのインターネットアクセスは許す
  2. このゲストユーザーは、別機関には所属しないため、L2TPルーター配下のホストにはアクセスさせない
上記の条件を満たす方法を探してみたところ、以下のようにすればできそうでした。
  1. IX2105には特定のL2TPユーザーに特定のIPアドレスを割り振ることができる
  2. このIPアドレスに対して、L2TPルーター配下のホストが属するインターフェイスで、フィルタリングする
  3.  IX2105では、DNSサーバーのIPアドレスはL2TPのユーザー1つしか設定できない。既存のL2TPユーザーにはこの別機関内のDNSサーバーを指定する必要があるため、デモユーザーにも別機関内のDNSサーバーへのアクセスは許さざるをえない。
  4. そこで、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
    というフィルタです。