ISDNに変更する都合でふたたびLinuxでルータを作ってみました。
RedHat 7.2では7.1とちょいと違っていたのと、
掲載ページを検索してみても見つけられなかったので、
このページを作成してみました。
まえおき
Linuxユーザの世界をよく知らないので、こういうページを作ってよいのか
だれに聞けばよいのかも、わかりません。
「私はこうやってLinuxを活用できた」という紹介のつもりで作りました。
これは、Linuxや関連ソフト、文書を作ってくれたお礼として、
程良いものではないかと考えたからです。他意はありません。
もし、都合の悪いことがあれば、エンリョなく連絡ください。
なお、一部の表現がAmigaに偏っているのは、私の趣味です。
設定の方針としてRedHat 7.2の制度(仕掛)に
すんなり収まるようスマートなものにすることにしました。
/etc/sysctl.conf
ip_forwardの設定を0から1にします。
ファイルには他の設定もあります。
当然、コメントもDisablesからEnablesにしましょう。
# Enables packet forwarding net.ipv4.ip_forward = 1
/etc/rc.d/init.d/modules
iptables用のモジュールをロードする良いタイミングを
既存のファイルでは見つけられなかったため、
ロード用のスクリプトを作成しました。
ファイルの属性を他と合わせるためiptablesをコピーして
中身を書換えます。
「# chkconfig: 2345 07 93」の07と93は、
iptablesの08と92から1ずつずらしています。
07でiptablesよりも先に開始処理を起動して
93でiptablesの後に終了処理を起動します。
#!/bin/sh
#
# Startup script to implement load modules.
#
# chkconfig: 2345 07 93
#
# description: Load modules.
#
# Source 'em up
. /etc/init.d/functions
if [ ! -x /sbin/insmod ]; then
exit 0
fi
KERNELMAJ=`uname -r | sed -e 's,\..*,,'`
KERNELMIN=`uname -r | sed -e 's,[^\.]*\.,,' -e 's,\..*,,'`
if [ "$KERNELMAJ" -lt 2 ] ; then
exit 0
fi
if [ "$KERNELMAJ" -eq 2 -a "$KERNELMIN" -lt 3 ] ; then
exit 0
fi
start() {
action $"Loading module ip_tables:" insmod ip_tables
action $"Loading module ip_conntrack:" insmod ip_conntrack
action $"Loading module ip_conntrack_ftp:" insmod ip_conntrack_ftp
action $"Loading module iptable_nat:" insmod iptable_nat
action $"Loading module ip_nat_ftp:" insmod ip_nat_ftp
}
stop() {
action $"Unloading module ip_nat_ftp:" rmmod ip_nat_ftp
action $"Unloading module iptable_nat:" rmmod iptable_nat
action $"Unloading module ip_conntrack_ftp:" rmmod ip_conntrack_ftp
action $"Unloading module ip_conntrack:" rmmod ip_conntrack
action $"Unloading module ip_tables:" rmmod ip_tables
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
condrestart)
start
;;
status)
lsmod
;;
panic)
stop
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status|panic}"
exit 1
esac
exit 0
シェルで実行して、設定を変更します。
ipchainsが自動的に実行されないように
chkconfig ipchains off
代わりにiptablesが自動的に実行されるように
chkconfig --level 3 iptables on
modulesを他のファイルの仲間に入れて
chkconfig --add modules
modulesが自動的に実行されるように
chkconfig --level 3 modules on
/etc/hosts
IPアドレスで指定するのは面倒なのでホスト名を設定します。
aegisはこのPCで、amigaの有名なソフトメーカ名です。
amithlonは私のメインPCで、超強力amigaエミュレータ名です。
普段はamigaしか使いません。LinuxのPCはamigaの周辺装置です。
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost ???.???.???.??? aegis ???.???.???.??? amithlon
/etc/sysconfig/network
このパソコンのホスト名を設定します。
NETWORKING=yes HOSTNAME=aegis
ここで再起動して、ipchainsからiptablesに移行します。
ctrl+alt+delではカッチョ悪いので、シェルで実行して再起動。
shutdown -r now
ここでiptablesを使ってバンバン設定してください。
私のよりも正しい設定内容を他のホームページで見てください。
この設定はスクリプトに書かないで大丈夫です。
我流でも色々実験すると勉強になると思いますよ。
例えば、すべてのチェインのポリシーをDROPにすると
自分に対するpingさえ通らなくなります。
ping aegis ←これが失敗してしまう。
設定の内容に納得してから、
iptablesの設定をファイルに保存します。
下記のように保存するとPCの起動時に自動的に設定されます。
iptables-save > /etc/sysconfig/iptables
/etc/ppp/options
pppdの設定を作ります。
domainの行にドメイン名を入れます。
lock /dev/modem 115200 crtscts lcp-echo-failure 0 lcp-echo-interval 0 lcp-max-configure 99999 defaultroute domain ?????????????????? nodetach noauth
/etc/ppp/peers/ntt_flets
フォルダ/etc/ppp/peersを作り、フレッツ用のファイルを入れます。
nameの行にダイヤルアップ先のユーザIDを設定します。
name ??????
connect 'chat -v -f/etc/ppp/ntt_flets.chat'
/etc/ppp/ntt_flets.chat
TAの初期化とダイヤル動作を設定します。
TAはATerm IW50/Dで、Flet's ISDNの場合は接続番号1492です。
「I(1)SDN良(4)く(9)つ(2)ながる」だそうで。
ABORT BUSY ABORT ERROR '' 'AT' 'OK' 'AT' 'OK' 'AT\$L1=1Q0V1X1$N1=1S7=50&K3' 'OK' ATD1492
/etc/ppp/chap-secrets
ユーザIDとパスワードを設定します。
# Secrets for authentication using CHAP # client server secret IP addresses ?????? * ????????? *
ダイヤルアップする際は、
pppd call ntt_flets
と実行し、ctrl+cで切断します。
抜けている設定があるかも知れませんが、
このページがヒントになれば幸いです。
《おまけ》
今まで使っていたアナログモデム用のダイヤルアップルータが
ISDNのTAに対応していることが分かったので、
ここまで設定したのに使わなくなっちゃいました。
ちゃんちゃん。
