今月、ADSLから
んですが、ルータがレンタルされるのかと思ってたら、ただのVDSLモデムだけでした。そこで、急遽、FreeBSDをルータにして、複数のパソコンでインターネットにアクセスできるようにしました。
自分でルータを手作りということで・・・とはいっても、そんなたいしたことじゃないですけど、そこそこの
を味わえ、おもしろかったです。
しかし、ひかり電話を申し込んで、昨日、なにやらルータみたいなものが届いたので、FreeBSDなルータも、不要になりそう。でも、せっかくなので、自分用のメモだけ残しておきます。
FreeBSDハンドブックで、PPPoEについての記述があります。
http://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/pppoe.html
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/pppoe.html
薄々そんな気はしていたんですが、日本語訳のFreeBSDハンドブックよりも、英語で書かれたFreeBSD Handbookのほうが、内容が新しかったりすることがあります。
■ イーサネットの接続
ルータにするFreeBSDでは、
VDSLモデムとの接続用
自宅内のパソコンがぶらさがっているLANとの接続用
の2つのイーサネットのポートが必要です。
■ /usr/sbin/pppでPPPoE
通信速度があまりでないので、すぐにmpdにしてしまったんですが、/usr/sbin/pppは標準でインストールされているし、比較的簡単にセットアップできました。
/etc/ppp/ppp.conf
default:
set log Phase tun command
set device PPPoE:vr0
set mru 1448
set mtu 1448
set dial
set login
nat enable yes
ocn:
set authname なんとか@かんとか.ocn.ne.jp
set authkey ほにゃらら
add default HISADDR
flets:
set authname guest@flets
set authkey guest
enable dns
add 220.210.194.0 255.255.255.128 HISADDR
add 220.210.199.160 255.255.255.224 HISADDR
add 220.210.196.192 255.255.255.224 HISADDR
add 220.210.196.0 255.255.255.128 HISADDR
add 220.210.196.128 255.255.255.192 HISADDR
add 220.210.199.208 255.255.255.240 HISADDR
add 220.210.198.0 255.255.255.192 HISADDR
add 220.210.199.144 255.255.255.240 HISADDR
set server /var/run/flets "" 0177
補足
set device PPPoE:vr0
VDSLモデムとつながっている側のネットワークインターフェイスがvr0だったので、vr0と書く。
set mru 1448
set mtu 1448
FreeBSDハンドブックには、1492とか書いてあったんですが、それだと、ダメでした。「ウェブサイトによっては、いつまでたっても、ページが表示されない」、という現象が発生しました。
ocn:
ラベル名なのでなんでもよいのですが、うちがOCNなので、そう書いただけ。
set authname なんとか@かんとか.ocn.ne.jp
set authkey ほにゃらら
プロバイダから指定されたものをここに書く。
flets:
set authname guest@flets
set authkey guest
フレッツ網に接続するための設定。authnameとauthkeyは、このままでいい。
addでルーティング設定を列挙しているが、このネットワークアドレスはたまに変化するらしい。ここにルーティング情報が載っている?
http://flets.com/square/routing.html
/etc/rc.conf
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="ocn"
gateway_enable="YES"
VDSLモデム側のネットワークインターフェイス(上の例ではvr0)にはIPアドレスは割り当てる必要がないので、/etc/rc.confでは何も書かなくてよい。
■ named
ふつうのインターネットとフレッツ網の両方を同時に利用できるようにするために、namedを立ち上げた。
/etc/namedb/named.conf にはこんなことを書き加えた。
http://euc.jp/network/pppoe.ja.html に書いてあったもの。
zone "flets" {
type forward;
forward only;
forwarders {
220.210.194.67; // ns1.flets
220.210.194.68; // ns2.flets
};
};
zone "194.210.220.in-addr.arpa" {
type forward;
forward only;
forwarders {
220.210.194.67;
220.210.194.68;
};
};
■ mpd5でPPPoE
通信速度があまりでないので/usr/sbin/pppをやめて、mpd5にした。
portsにある/usr/ports/net/mpd5 をインストール。
ドキュメントは、/usr/local/share/doc/mpd5/ にある。
/usr/local/etc/mpd5/mpd.conf
むずかしかった(笑)。もう忘れかけている。
フレッツ網用の設定。
flets_square:
create bundle static bFLETS
set iface idle 0
set iface enable tcpmssfix
set iface enable nat
#set iface route default
set iface route 220.210.194.0/25
set iface route 220.210.199.160/27
set iface route 220.210.196.192/27
set iface route 220.210.196.0/25
set iface route 220.210.196.128/26
set iface route 220.210.199.208/28
set iface route 220.210.198.0/26
set iface route 220.210.199.144/28
set iface disable on-demand
#set ipcp enable req-pri-dns req-sec-dns
set ipcp disable vjcomp
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
#set ipv6cp enable
create link static lFLETS pppoe
set link action bundle bFLETS
set auth authname guest@flets
set auth password guest
set link max-redial 0
set link mtu 1454
set link mru 1454
set link keep-alive 10 60
set pppoe iface vr0
set pppoe service ""
open
プロバイダ用の設定。
ocn:
create bundle static bOCN
set iface idle 0
set iface enable tcpmssfix
set iface enable nat
set iface route default
set iface disable on-demand
#set ipcp enable req-pri-dns req-sec-dns
set ipcp disable vjcomp
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
create link static lOCN pppoe
set link action bundle bOCN
set auth authname なんとか@かんとか.ocn.ne.jp
set auth password ほにゃらら
set link max-redial 0
set link mtu 1454
set link mru 1454
set link keep-alive 10 60
set pppoe iface vr0
set pppoe service ""
open
FreeBSDが起動したときに、自動的に接続するように。
default:
# load dialup
load ocn
load flets_square
/usr/local/etc/rc.d/mpd5
FreeBSDをブートしたとき、自動的にmpdが起動するようにしたけど、一部のネットワークデーモンが、どうもうまくネットワークアクセスできなかったので、/usr/local/etc/rc.d/mpd5の末尾に、sleep 15 という1行を付け加えた。
/etc/rc.conf
「ppp_なんとか」をコメントアウトして、
mpd_enable="YES"
■ pfの設定
pfは使ったことがなかったので、実はよく理解できていない。
おっと、以下の設定だと、フレッツ網に通じない・・・使ってなかったんで気がつかなかった。ng1を通すように追加すればOK
あと、うちではvtundによるVPN接続があるんで、ほかの人には参考にならないところが多い。
http、https、ssh、vtundを外から通すようにしてる。sshは、ポート22であげておくと、しらみつぶしでログインしようとアタックされて、ログがふくれるので、22以外のポート番号を使うとよい。
/etc/pf.conf
ext_if="ng0" # replace with actual external interface name i.e., dc0
int_if="fxp0" # replace with actual internal interface name i.e., dc1
table <foo> { 10.0.0.0/8, 192.168.0.0/24, 192.168.1.0/24 }
block in log all
pass out quick on $ext_if all
pass in quick on $int_if all
pass out quick on $int_if all
pass in quick on lo0 all
pass out quick on lo0 all
pass in on { tun0, tun1, tun2 } all
pass out on { tun0, tun1, tun2 } all
block out quick on $ext_if proto {tcp udp} from any to any port 135
block out quick on $ext_if proto {tcp udp} from any to any port 137:139
block out quick on $ext_if proto {tcp udp} from any to any port 445
#block in log quick on $ext_if from any to any port smtp
#block in log quick on $ext_if from any to any port 22
pass in on $ext_if proto tcp from any to $ext_if port {22221 80 443 5000} keep state
pass in on $int_if proto tcp from any to $ext_if port 22 keep state
/etc/rc.conf
pf_enable="YES" # Set to YES to enable packet filter (pf)
pflog_enable="YES" # Set to YES to enable packet filter logging
/etc/ssh/sshd_config
前述のように、22以外のポートでsshを使うようにするために、listenするポート番号を増やしておく。LAN側からは22で接続できてもいいので、変更するんではなく、増やす。
Port 22
Port 22221
みたいにPortの行を複数書けばいいそうだ。
■ その他
ネームサーバとデフォルトルートに、このFreeBSDなルータを指定する。
必要なら、dhcpdを立ち上げる。/usr/ports/net/isc-dhcp3-server/ をインストールした。
0 件のコメント:
コメントを投稿