xl2tp+pppdを IPsec上で使い、L2TPサーバーにする。

{:TableOfContents}

下準備

IPsecが必要

  • L2TPはトネリングのみ行い、その通信内容は平文なので、IPsecを通して暗号化する必要がある。
  • IPsecのセットアップは別途説明。トンネルモードでつなぎっ放しでも良く、windows7からだとプロトコル:自動で接続できる。

l2tp server/IPsecIPsec gateway(NAT)Windows7 など。

L2TP のためのiptables設定

  • L2TPは全く*セキュアでない*ので、IPsecを通るもの以外は禁止する。
  • うちのOUTPUTチェーンはポリシーがACCEPTなので、IPsecでないL2TPは明示的に拒否する。

    -A INPUT  -p udp -m policy --dir in --pol ipsec -m udp --dport l2tp -j ACCEPT
    -A OUTPUT -p udp -m policy --dir out --pol ipsec -m udp --sport l2tp -j ACCEPT
    -A OUTPUT -p udp -m udp --sport l2tp -j REJECT --reject-with icmp-port-unreachable
    

xlt2pd

  • /etc/xl2tpd/xl2tpd.conf

    [global]
    port = 1701
    access control = no
    
    [lns default]
    ip range = 172.21.118.2-172.21.118.254
    local ip = 172.21.118.1
    require authentication = yes
    name = ebiVPN
    pppoptfile = /etc/ppp/options.xl2tpd
    

pppd

  • /etc/ppp/options.xl2tpd

    noccp
    auth
    crtscts
    mtu 1410
    mru 1410
    nodefaultroute
    lock
    proxyarp
    silent
    
  • /etc/ppp/chap.secrets

    # Secrets for authentication using CHAP
    # client        server  secret                  IP addresses
    <user>          *       <pass>                  *
    

以上