あなたの天然記念物
ホーム更新雑談Perl鉄ゲタランドナーコースガイド自転車Linuxリンク経歴連絡先
RedHat 7.2でISDNルータ (2002.10.10)

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