2009年12月4日金曜日

Ubuntu 9.10 で PPPoE サーバ

Ubuntu 9.10 で PPPoE サーバを構築してみた。

ネットワーク図

[BB Router]---eth0[Ubuntu]eth1===(PPPoE)===[RouterA (PPPoE Client]---{192.0.2.64/28}

手順
  1. パッケージをインストールする。
    $ sudo apt-get install pppoe iptables

  2. /etc/ppp/pppoe-server-options を作成する。
  3. ms-dns 8.8.8.8 # Google Public DNS
    ms-dns 8.8.4.4 # Google Public DNS
    mru 1454 # for FLET'S
    mtu 1454 # for FLET'S
    require-chap
    lcp-echo-interval 30
    lcp-echo-failure 4
    debug
  4. /etc/ppp/chap-secrets を編集する。
    foo1@bar.ne.jp * "password" 192.168.2.64
    foo2@bar.ne.jp * "password" 192.168.2.128
  5. ルートを追加するスクリプト (/etc/ppp/ip-up.d/99route-add) を作成する。
    #! /bin/sh
    route add -net $5 netmask 255.255.255.240 dev $1
  6. パケットの転送を有効にするために、/etc/sysctl.conf の "net.ipv4.ip_forward=1" の行のコメントを外す。

  7. /etc/rc.local に追記をして、PPPoE サーバの起動と IP マスカレードの設定を実施する。

    iptables -A FORWARD -o eth0 -p tcp --dport 25 -j DROP # 安全のためにメールを DROP
    iptables -P FORWARD ACCEPT
    iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
    ifconfig eth1 up 0.0.0.0
    pppoe-server -T 120 -I eth1 -L 10.99.99.99 -N 10
    exit 0
  8. /etc/rc.local に追記する代わりに、/etc/network/interfaces を変更してもよい。
    # The primary network interface
    auto eth0
    iface eth0 inet dhcp
    pre-up iptables -A FORWARD -o eth0 -p tcp --dport 25 -j DROP
    pre-up iptables -P FORWARD ACCEPT
    pre-up iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
    post-down iptables -D FORWARD -o eth0 -p tcp --dport 25 -j DROP
    post-down iptables --table nat -D POSTROUTING -o eth0 -j MASQUERADE

    # PPPoE Server
    auto eth1
    iface eth1 inet manual
    up ifconfig $IFACE 0.0.0.0 up
    up pppoe-server -T 120 -I $IFACE -L 10.99.99.99 -N 10
    down killall pppoe-server
    down ifconfig $IFACE down

  9. 再起動する。(sudo reboot)


ログの確認

$ sudo tail -f /var/log/daemon.log
$ sudo tail -f /var/log/debug

参考

0 件のコメント: