ホーム自宅サーバーを立てる

フレッツ・ADSL でサーバーを立てる


NTT の「フレッツ・ADSL」に乗り換えました。 Linux での PPPoE の設定方法と、 フレッツ・ISDN の時と同じように、 外部からアクセスできるようにするための方法を紹介します。

夢の高速接続?!

 フレッツ・ISDN の24時間接続で喜んでいたのもつかの間、 今度はほぼ同じ料金で一桁高速な接続環境が手に入ることになりました。 よい時代になったものです。

 ADSL の場合は、接続方法が PPP over Ethernet に変わります。 やはりフレッツ・ISDN と同じく、 接続ごとに異なる IP アドレスが割り振られるようです。 実際には変更されたことがない人(地域/ISPに依存?)もあるようですが、 私の環境では毎回異なるようです。

 ISDN の時は(TA の仕様なのか) 私の環境では 20 時間以上の連続接続ができませんでした。 ADSL でも何かのタイミングで切断されて、 即座に再接続しても異なる IP が振られています。


PPP over Ethernet

 NTT には Web から申し込んだのですが、 後日電話でのやりとりがあって、 「OS は Linux」と返事をすると担当の方は「は?」といういう感じで、 Linux の存在すら知らないようでした。 面倒だったので「Windows です」と返事をしなおしたのですが、 Linux でもちゃんと接続できます。

 PPP over Ethernet で接続するための Linux での実装はいくつかあるようです。 rp-pppoe(Roaring Penguin Software) が多く使われているようです。 Kernel 2.4.x 自体でもサポートしているようですが、 2.4.1 ではバグがあってつながらないとか。 NTT の配布する Linux 用接続ソフトはまた別のようです。


rp-pppoe

 ここでは VineLinux 2.1.5, rp-pppoe で接続することにします。 rp-pppoe には ppp も必要なので、 VinePlus2.1 mirror information - ppp から入手します。 Vine2.0 なら標準で含まれていると思います。

 rp-pppoe は本家でも RPM を配布していますが、 Vine2.1.5 用のバイナリが必要なら、 フレッツシリーズでサーバーを立てる に置いたものをご利用下さい。

 インストールは

% su
# rpm -ihv ppp-* rp-pppoe-*
# /sbin/chkconfig --add adsl

 でよいでしょう。 (いつもの癖で 'ntsysv' を使ったら "/etc/rc.d/rc6.d/K01adsl" が作られずにハマりました。 そういうものなのでしょうか。)

 設定ですが、手で設定ファイルを書き直そうなどとせずに '/usr/sbin/adsl-setup' を使うのがわかりやすくてよいです。 気をつけるのは DNS の質問には server と答えるのが 自動取得になるということぐらいでしょうか。 設定ファイルで言うと、

"/etc/ppp/pppoe.conf"
DNSTYPE=SERVER

 に対応します。

 私の場合、FIREWALLING は自前で設定するつもりなので 0(NONE) としました。


ノートパソコンで PCMCIA NIC 2枚刺し

 私の環境ではノートパソコン(DX4-75MHz, 16Mbyte)を ルーター兼 Web サーバーに仕立て上げました。 PCMCIA NIC を2枚刺して boot すると、 スロット0が eth0 に、スロット1が eth1 になるようです。

 VineLinux はネットワークの設定を 'netcfg' コマンドなどで行える代わりに、 pcmcia-cs での設定はあまり考慮されてません。 'netcfg' での設定で十分なのかもしれませんが、 私はスロットごとの設定のできる pcmcia-cs での設定が好みです。 Vine2.1.5 ではありがたいファイルが含まれていました。 次のようにすれば簡単でよいです。

# mv network network.vine
# ln -s network.pcmcia-cs.orig network
# chmod +x network.pcmcia-cs.orig  ←これが重要

 残念ながら、こちらのファイルは含まれてません。

network.opts
# Network adapter configuration
#
# The address format is "scheme,socket,instance,hwaddr".
#
# Note: the "network address" here is NOT the same as the IP address.
# See the Networking HOWTO.  In short, the network address is the IP
# address masked by the netmask.
#
case "$ADDRESS" in
*,0,*,*) # private LAN
    # Host's IP address, netmask, network address, broadcast address
    IPADDR="192.168.0.1"
    NETMASK="255.255.255.0"
    NETWORK="192.168.0.0"
    BROADCAST="192.168.0.255"
    # Gateway address for static routing
    GATEWAY=""
    # Things to add to /etc/resolv.conf for this interface
    DOMAIN=""
    SEARCH=""
    DNS_1=""
    DNS_2=""
    DNS_3=""
    ;;
esac
    # Transceiver selection, for some cards -- see 'man ifport'
    IF_PORT=""
    # Use BOOTP? [y/n]
    BOOTP="n"
    # Use DHCP? [y/n]
    DHCP="n"
    # NFS mounts, should be listed in /etc/fstab
    MOUNTS=""
    # For IPX interfaces, the frame type and network number
    IPX_FRAME=""
    IPX_NETNUM=""
    # Extra stuff to do after setting up the interface
    start_fn () { return; }
    # Extra stuff to do before shutting down the interface
    stop_fn () { return; }
network.opts

 このようにして PCMCIA NIC を2枚刺して boot すると、 スロット0の eth0 がプライベート側になり、 スロット1の eth1 が何もされないので ADSL 側に使えます。 途中で NIC 抜き差しすると、先に刺した方が eth0 になるハズなので、ご注意下さい。


外部からのアクセス

 ダイナミック DNS については フレッツ・ISDN でサーバーを立てる をご覧ください。 ez-ipupdate を使うには、 "/usr/doc/ez-ipupdate-3.0.10/example-dyndns.conf" なんかを "/etc/ppp/dyndns.conf" などにでもコピーして編集して、

"ip-up.local" を実行可能にして新規作成
#!/bin/sh

sh /etc/ppp/firewall-masq
sh /etc/ppp/dyndns.conf >> /var/log/ez-ipupdate.log

 などとすればよいでしょう。

 外部からのアクセスで仕事をさせるには、 次の修正が必要でしたが、必要最少限の設定ではありません。 今後もう少し修正が必要です。

"/etc/ppp/firewall-masq"
# Deny TCP and UDP packets to privileged ports
ipchains -A input -l -i  -d  0:1023 -p udp -j DENY
#ipchains -A input -l -i  -d  0:1023 -p tcp -j DENY  ←コメントにする
 
# Deny TCP connection attempts
#ipchains -A input -l -i  -p tcp -y -j DENY  ←コメントにする

 松田陽一さんの 典型的(?)なパケットフィルタリング ipchains の設定方法 を利用したいのですが、力不足です。


謝辞

 佐藤精一様の LinuxでADSL を参考にさせていただきました。 丁寧に解説されてますので、こちらもご覧いただいたほうがよいです。


ホーム自宅サーバーを立てる
リンクはご自由にどうぞ。
土村 展之(tutimura(a)nn.iij4u.or.jp) '(a)'は'@'に置き換えて
更新日 5/19 18:26, 2001