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に対応していることが分かったので、
ここまで設定したのに使わなくなっちゃいました。
ちゃんちゃん。