不定期日記

J2千葉観戦記, ライブの感想を中心とした備忘録

2006-12-29 (Fri) [長年日記]

_ [PC] OpenBlockS266

これまでFreeBSDを入れて、ダイアルアップルータにしていたPCの電源が壊れたため購入。 ADSLでつなぐなら出来合いのものを買ってくれば良いが、AIR-EDGEで接続しようという馬鹿なことができる製品は恐らく存在しないので。 ダイアルアップルータにしていたPCでメールも読んでいたけど、これは VMware Player でFreeBSDを動かして済ますことにしました。

ちなみにPCMCIAではなくSlipper Sを使ったシリアル経由で使っています。

結構いろいろとはまりました。 まず、付属のRJ-45/Dsub9ピン変換アダプタはあくまでもシリアルコンソール用なので、クロス結線になっていることに注意。Interlink用クロスケーブルでSlipper Sとつないでいます。

さらに、いくらやってもダイアルまでは行くもののPAP認証をやってくれなかったのが、ファームウェアをアップデートしたら一発で解消しました。 telnetで接続しようとすると長時間待たされる不具合も、ファームウェアのアップデートで解消。

付属の簡単設定ガイドには、

モデムを利用するためのソフトウェア(PPP)はハードディスクを接続したときに利用できます。

と書いてあるが、ハードディスク等を接続しなくても問題なく使えた。 未確認ですが恐らく、ハードディスクを接続したときはデフォルトでシリアルコンソールが使えないようになっているということではないかと思います。

設定手順

1. 基本的な設定 (WEB設定画面)
  • ネットワーク
    • IP address
    • DNS (あとから /etc/resolv.conf を直接変更でも可)
  • 保存&再起動
2. ファームウェアアップデート
flashcfg -f zImage.initrd.treeboot.big-product
  • 再起動
3. パスワード変更
4. PPPの設定(Linux PPP HOWTO, PAP/CHAP の認証ファイル等参考)
  • /etc/ppp/ppp-on
TELEPHONE=

の行に電話番号を入力。##64 等の「#」をエスケープする必要は無い

  • /etc/ppp/ppp-on-dialer
    • login認証はしないので、最後の2行を削除
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
exec chat -v                                            \
        TIMEOUT         3                               \
        ABORT           '\nBUSY\r'                      \
        ABORT           '\nNO ANSWER\r'                 \
        ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
        ''              \rAT                            \
        'OK-+++\c-OK'   ATH0                            \
        TIMEOUT         30                              \
        OK              ATDT$TELEPHONE                  \
        CONNECT         ''
  • /etc/ppp/pap-secrets
# Secrets for authentication using PAP
# client	server	secret			IP addresses
<login name>	*	<password>
  • /etc/ppp/options
    • 以下の行を追加
name <login name>
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
extint="ppp0"
intint="eth0"
intnet="192.168.0.0/24"

# Initialize
iptables -F -t filter
iptables -F -t nat

# Default configuration
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING DROP

# Output log and drop packets
#iptables -N log_drop
#iptables -A log_drop -j LOG --log-level warning
#iptables -A log_drop -j DROP

# input from PPP
iptables -N ppp-in
# through established packets
iptables -A ppp-in -m state --state ESTABLISHED,RELATED -j ACCEPT
# through some ports
#iptables -A ppp-in -p tcp --dport ssh -j ACCEPT
#iptables -A ppp-in -p tcp --dport www -j ACCEPT
#iptables -A ppp-in -p tcp --dport smtp -j ACCEPT
#iptables -A ppp-in -p tcp --dport pop3 -j ACCEPT
#iptables -A ppp-in -p tcp --dport 20 -j ACCEPT
#iptables -A ppp-in -p tcp --dport 21 -j ACCEPT
# log and drop
#iptables -A ppp-in -j log_drop

# output to PPP
iptables -N ppp-out
# deny some ports
iptables -A ppp-out -p udp --dport 137:139 -j DROP
iptables -A ppp-out -p tcp --dport 137:139 -j DROP
# drop local ip
iptables -A ppp-out -d 10.0.0.0/8 -j DROP
iptables -A ppp-out -d 172.16.0.0/12 -j DROP
iptables -A ppp-out -d 192.168.0.0/16 -j DROP

# forward through PPP
iptables -N ppp-forward
# forward established packets
iptables -A ppp-forward -m state --state ESTABLISHED,RELATED -j ACCEPT

# INPUT
iptables -A INPUT -i ${intint} -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i ${extint} -j ppp-in

# OUTPUT
iptables -A OUTPUT -o ${extint} -j ppp-out

# FORWARD
iptables -A FORWARD -i ${extint} -j ppp-forward
iptables -A FORWARD -o ${extint} -j ppp-out
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -i ${intint} -j ACCEPT

# IP MASQUERADE
iptables -t nat -A POSTROUTING -s 127.0.0.1 -o ${extint} -j MASQUERADE
iptables -t nat -A POSTROUTING -s ${intnet} -o ${extint} -j MASQUERADE
iptables -t nat -A POSTROUTING -s 127.0.0.1 -j ACCEPT
iptables -t nat -A POSTROUTING -s ${intnet} -j ACCEPT
iptables -t nat -A POSTROUTING -o ${extint} -j ACCEPT

# END CONFIGURATION
  • /etc/inittab
    • デフォルトではシリアルコンソールにCOM1を使われているので、以下の行をコメントアウトする。
#c1:2345:respawn:/sbin/agetty 9600 ttyS0 vt100
  • /etc/rc.local
    • 起動時に自動的にpppを動かすために、「# Add your local daemons here.」の下あたりに以下の行を追加
echo -n ' ppp'; /etc/ppp/ppp-on
  • /etc/ppp/ppp-autodial
    • ダイアルに失敗した時のために、以下のスクリプトを作成してcronから定期的に呼ぶことにする。
#!/bin/sh
######################################################################
#
# Determine the device to be terminated.
#
if [ "$1" = "" ]; then
	DEVICE=ppp0
else
	DEVICE=$1
fi

######################################################################
#
# If the ppp0 pid file is not present then the program is not running.
# dialing
if [ ! -r /var/run/$DEVICE.pid ]; then
	/etc/ppp/ppp-on
fi
  • /etc/crontab
    • 上記スクリプトを定期的に実行するために作成
# /etc/crontab: system-wide crontab
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
1,11,21,31,41,51 * * * *        root /etc/ppp/ppp-autodial

/etc/flashcfg に以下の行を追加

/etc/crontab
5. 設定をフラッシュROMに書き込み
flashcfg -s /etc/flashcfg
6. 再起動

2001|01|07|08|09|10|11|12|
2002|01|02|03|
2003|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|08|09|10|11|12|
2017|03|05|06|09|11|12|
2018|05|08|10|11|
2020|07|