ルモーリン
ホーム 更新 Perl ランドナー サービス 雑談 コースガイド 鉄ゲタ 自転車 Linux リンク 連絡先
RedHat 7.2でISDNルータ

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