« routerをSRT100からLinux PCサーバに入れ替えたよ | ホーム | LinuxルータでOCN IPv6設定をやったよ 〜その1 xl2tpdの巻〜 »

2010年4月 7日

routerをSRT100からLinux PCサーバに入れ替えたよ その2

さて。どんな設定したかって話なんですが、びっくりするくらいあっさりしてた。いい世の中になったものですな。

sysctl: ip_forward

/etc/sysctl.confに以下の設定を有効化。IPv6まわりの設定はまだこれからですけど、一応含めました。

net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_ra = 0

iptables(firewall+NAT)

一番戸惑ったのはiptablesをどこで設定するのかというところ。前に見た時は/etc/init.d/iptablesとか何とかあったと思ったんですが、lenny以降は無くなったみたいですね。というわけでこちらに倣って/etc/network/if-pre-up.d/iptablesにスクリプトを置いてみました。えいやで作ったので甘いかもしんないですがとりあえずINPUTとFORWARDはDROPにしとかなきゃだぜぜぜ。

#!/bin/sh

IPTABLES='/sbin/iptables'

LOCAL_IF=eth0
LOCALNET='x.x.x.x/yy'

##########
# initialize

$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z

$IPTABLES -t nat -F POSTROUTING

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT

##########

$IPTABLES -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
$IPTABLES -A INPUT -j ACCEPT -i lo
$IPTABLES -A INPUT -j ACCEPT -s $LOCALNET
$IPTABLES -A INPUT -j ACCEPT -p tcp --dport 1723
$IPTABLES -A INPUT -j ACCEPT -p 47

$IPTABLES -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED

##########

$IPTABLES -N outer_local

##########

$IPTABLES -N local_outer
$IPTABLES -A local_outer -j ACCEPT -s $LOCALNET

##########
# nat

$IPTABLES -t nat -A POSTROUTING -j MASQUERADE -s $LOCALNET -o ! $LOCAL_IF

##########
# main table

$IPTABLES -A FORWARD -j outer_local -i ! $LOCAL_IF -o $LOCAL_IF
$IPTABLES -A FORWARD -j local_outer -i $LOCAL_IF

$IPTABLES -A INPUT   -j outer_local -i ! $LOCAL_IF

PPPoE周り

pppoeconfっていうパッケージがあるみたいで、これを使ったら本当にあっけなく設定できたんですけど、Bフレッツのマルチセッションを使ってたので結局自分でファイルをいじるしかなかったみたいです。

というわけで、BフレッツONUをeth1側に繋げたことを確認しつつ、まずはデフォルトセッション側に"defaultroute"を付けて。(/etc/ppp/peers/session1)

noipdefault
defaultroute
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
connect /bin/true
noauth
persist
mtu 1492
noaccomp
default-asyncmap
plugin rp-pppoe.so eth1
user "aaa@bbb"
usepeerdns

デフォルトじゃない側では"nodefaultroute"として"usepeerdns"を付けずに、また"noproxyarp"も指定。(/etc/ppp/peers/session2)

noipdefault
nodefaultroute
noproxyarp
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
connect /bin/true
noauth
persist
mtu 1492
noaccomp
default-asyncmap
plugin rp-pppoe.so eth1
user "xxx@yyy"

さらに/etc/ppp/chap-secretsおよび/etc/ppp/pap-secretsに次のようにパスワードを設定。どっちも同じ書式でいいのね。

"aaa@bbb" * "ccc"
"xxx@yyy" * "zzz"

あとはこれを自動接続にするように、/etc/network/interfacesに追記。

allow-hotplug eth1
iface eth1 inet static

auto ppp0
iface ppp0 inet ppp
  pre-up /sbin/ifconfig eth1 up
  provider session1

auto ppp1
iface ppp1 inet ppp
  pre-up /sbin/ifconfig eth1 up
  provider session2

で、マルチセッションというからには、destinationによって振り分けてroutingをちゃんと指定しておきたいよね、と。最初/etc/network/interfacesのppp1にup/down行を追加してみたんですが、うまくいかなかったです。代わりに/etc/ppp/ip-up.d/routeというスクリプトを置いてchmod +xしました。

#!/bin/sh

if [ "x$PPP_IFACE" = "xppp1" ]; then
  ip route add a.a.a.a dev $PPP_IFACE
  ip route add b.b.b.b dev $PPP_IFACE
fi

他には...

BINDとかIPv6の設定分とかは次回に続く。

トラックバック(0)

トラックバックURL: http://foursics.jp/cgi-bin/mt/mt-tb.cgi/287

コメントする

OpenID対応しています OpenIDについて

このブログ記事について

このページは、Hironobu Kouraが2010年4月 7日 16:08に書いたブログ記事です。

ひとつ前のブログ記事は「routerをSRT100からLinux PCサーバに入れ替えたよ」です。

次のブログ記事は「LinuxルータでOCN IPv6設定をやったよ 〜その1 xl2tpdの巻〜」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。