最近のアラテレは SDNへの注力もあって ATxシリーズへの世代移行が加速しており、昔ながらの CentreCOMシリーズは青息吐息な感があるけれども、かえってかつての高級機が手頃な値段でオークション等に出回るようになった。ここでは CentreCOM系では最後にして現役の AR5xxルータおよびそれと同族の 8xxxスイッチ関係の小技をいくつか取り上げる。1
コンソールへのアラートを黙らせる
AR系や87xx系でファイアウォールを有効にすると、デフォルトではルールにないパケットを受信する度にマネージャ権限以上でログインしているコンソール(async/telnet/ssh)にアラート通知が流れてしまう。
XXX.XXX.XXX.XXX attempting to use non-policy interface
Denial of service attack from XXX.XXX.XXX.XXX is finished
設定作業中にこれらが次々に流れてゆくと作業の邪魔も甚だしい(電源を切りたくなる)ので、次のコマンドでコンソールへのアラートは止めてしまおう。
disable firewall notify=manager
UnTagポートにTagパケットが入ってきた時も attempting to use non-policy
と怒られるので、VLAN変更をしている最中にも、これをしておくと結構助かる。
なおnotify=all
にするとすべてのアラートが止まるが、ログにも残らなくなる。ファイアウォール設定が充分固まって逆に FIRE ATACK
通知で sh log
が埋まるようになったら、全部止めたほうがむしろ都合が良いだろう。
時系列逆順ログ
コマンドラインヘルプ(?キーのあれ)では表示されないので気づきにくいが show log reverse (sh log rev)
でログを時系列の逆順に見ることが出来る。最新のログだけ確認して Quitで抜けるのに便利だ。
> sh log rev
Date/Time S Mod Type SType Message
-------------------------------------------------------------------------------
27 17:58:21 3 IPG IPFIL DUMP Received invalid DA 8.240.213.66>22.103.89.96
Prot=17 Int=ppp5
27 17:57:57 3 IPG IPFIL FRAG DirBcast Fail 6.102.80.241>22.103.89.103
Prot=6 Int=vlan12
27 17:57:43 3 IPG IPFIL FRAG DirBcast Fail 19.6.240.45>22.103.89.103 Prot=6
Int=vlan12
もちろん moduleと組み合わせて特定カテゴリのログだけ表示するときにも使える。
> sh log reverse module=ssh
Date/Time S Mod Type SType Message
-------------------------------------------------------------------------------
27 17:51:39 3 SSH SSH RJCT Rejecting SSH connection from 43.29.53.43
incompatible versions
27 17:43:23 3 SSH SSH RJCT Rejecting SSH connection from 45.14.11.37
incompatible versions
27 17:37:53 3 SSH SSH RJCT Rejecting SSH connection from 43.29.53.51
incompatible versions
この機能は AR5xxS系や8xxxXL系で使えるが、9424T/SP等では使えない。
Security Mode の有効時間を伸ばす
IPSec/PKI/SSH を有効化して SECURITYOFFICERユーザに切り替えると、デフォルトでは1分で再ログインを求められるようになる。いくらなんでもこれは短いと感じた時は、次のコマンドを打ち込む。
set user securedelay=3600
設定可能な範囲は 10〜3600秒である。最短の10秒にすると相当の苦行を味わえるが、タイプ速度が上達する効能もある。
非同期ポートのボーレートを変更する
アラテレ製品では、管理用シリアルコンソールポートを非同期ポートと呼称する。初期値は baud=9600なのでこれを変更するには、次のようなコマンドを打ち込む。
set asyn=0 speed=115200
# 以下でも同じ(show conf dynの表示はこちら)
set asyn=asyn0 speed=115200
打ち込んだ瞬間に設定が反映されるので、現在正に非同期ポートでログインしている場合は、対向端末側も設定を合わせるまで制御不能になることに注意しよう。
だがこの設定にかかわらず、機器ブート(起動時診断)メッセージは baud=9600固定である。従って動的にボーレートを変更できる端末ソフトを使っていないと思ったより難儀してしまう。結局できるだけ 9600固定で運用するほうがいざというとき慌てずに済むかもしれない。
なお設定内容は show asyn=0
で確認できる。
NTPモジュール
NTP時刻合わせのテンプレを以下に示す。ログ記録に関わるので、機器に IPを付したら真っ先に行う作業だ。
# NTPモジュールを活かして時差を指定する
enable ntp
set ntp utc=+09:00:00
# peerアドレスは一つだけ書ける
# DNSモジュールを活かしていても FQDNでは指定できない。
add ntp peer=133.243.238.163
# 強制同期
# "ACTIVATE NTP" コマンドではない(そういうものはない)
reset ntp
# ステータス表示
show ntp
# peerアドレスの変更
# "SET NTP PEER"コマンドが存在しないので "DEL"して "ADD"する
# 当然DNSラウンドロビンも出来ないので機器毎にバラけた設定をしたりする
del ntp peer=133.243.238.163
add ntp peer=133.243.238.164
L3スイッチでの PPP接続
L3スイッチでのLAN型PPP接続の例を挙げる。下記は 8948XL、8724SL/8748SLでの場合だ。2
# Port1をアップリンクポートとして ONU接続に使う
create vlan="PPPoE-FLET" vid=4
add vlan="4" port=1
# そのポートの中に PPPセッションを張って PPPインタフェースを作る
create ppp=4 over=vlan4-any
set ppp=4 bap=off iprequest=on username="<ISPアカウント>" password="<パスワード>"
set ppp=4 over=vlan4-any lqr=off echo=10
# PPPインタフェースの IPは ISPから貰う
enable ip
enable ip remote
add ip int=ppp4 ip=0.0.0.0
# ・・・ことにしつつ、内側のVLANにそのIPを付けて NETMASKを切る
# これがL3スイッチ配下から見たゲートウェイIPになる
add ip int=vlan1 ip=<付与されたグローバルIPのひとつ> mask=255.255.255.248
# デフォルトルートは PPPインタフェースに丸投げする
add ip rou=0.0.0.0 mask=0.0.0.0 int=ppp4 next=0.0.0.0
上位への接続は L3ルーティングとなる。設定のミソは本来 PPPインタフェースに付くべき IPを、内側の VLANにつけるところだ。
言うまでもなかろうが、IPが一つしか付与されない端末型接続の PPPでは、NATが使えなければおよそ意味が無い。L3スイッチ系では通常は NAT接続ができないので(ファイアウォールライセンスの購入が別途必須)、その場合はおとなしく ARシリーズを使おう。AR系と 89xx/87xx系の使い分けは、装備された物理ポートの数とNAT機能の有無で、PPPインタフェースの設定については概ね互換性がある。
工場出荷時初期化
Security Mode 状態から工場出荷時設定へ一気に戻すには次のようにする。AR550S v2.9.2 で確認した。
# 非同期ポート速度を初期値に変更
set asyn=0 speed=9600
# 設定ファイルを読み込まずにコールドスタート
restart router config=none
Warning: Config file MUST add a user with SECURITY OFFICER privilege.
Do you wish to proceed with restart using specified config?(y/n)
INFO: Initialising Flash File System.
INFO: Router startup complete
# 規定値ユーザの manager/friend でログイン
login: manager
Password:
# SECURITY_MODE を切る
disable system security_mode
Warning: This command will disable security mode and delete all security files.
Are you sure you wish to proceed?(y/n) y
Info (1034003): Operation successful.
# 起動設定を消して、元の起動設定ファイルを rename あるいは delete fileする
set conf=none
rename boot.cfg boot-old.cfg
見れば解るが、デフォルトの managerユーザは Security Mode を切ることができる。起動設定ファイル(規定値では boot.cfg)を削除して再起動しても同じことだが、Security Mode 状態は設定ファイルと関係なく EEPROM内に保存されているため、これを切る方法を知らないと show confも create confも出来ない。
ところで起動診断時に以下のメッセージの途中で数秒間止まる。そこで "y" を押すと何が起きるだろう?
INFO: Self tests beginning.
INFO: RAM test beginning.
PASS: RAM test, 65536k bytes found.
INFO: Self tests complete.
INFO: Downloading router software.
Force EPROM download (Y) ?
INFO: Initialising Flash File System.
INFO: Executing configuration script <flash:boot-1.cfg>
INFO: Router startup complete
AR550S login:
答えは「起動設定ファイルは読み込むが、すべてのEnableコマンドを無視する(組み込みモジュールを有効化しない)」である。このため Security Mode は切れて起動するものの、SET USERは通常通り実行されているために SECURITY OFFICERでログインすることが出来ず、かつ managerユーザが設定ファイルから削除もしくはパスワード変更されていたならば、結局は再ログイン手段が得られずに行き詰まる。
ところがここで "y" ではなく "s" を押すとどうなるだろう?3
Force EPROM download (Y) ?
INFO: Initial download successful.
INFO: Initialising Flash File System.
INFO: Router startup complete
login:
ログインプロンプトに "SET SYS NAME" が反映されていなければ成功である。つまり起動設定ファイルを読み込まないで起動できる。こうなれば自動的に managerユーザが復活するので、それでログインして Security Modeを切り、工場出荷時状態に戻してしまえる。
この Undocumentedな挙動は、対応しているいくつかの機種・ファームウェアでのみ可能4ですべての機種で可能なわけではない。同じ機種でもファームウェアによっては(Undocumentedなのだから当然だが)そもそも対応していなかったり、GS916M/GS924M に至っては managerユーザは復活するもののパスワードはリセットされない5ので、パスワード忘れ事案には対応できない。
CentreCOMは開発担当部署によっていくつかの製品グループがある。AR5xxSルータと89xxXL/83xxXLは同族だが、87xxSLはそれより1世代古くて多少性格が異なり、94xxTSと GS9xxMはいずれも全く異なる出自と設計なので似て非なる挙動を示したりする。これらの見分け方というか個性の違いは、見たとおり型番ルールの類似性や(アンドキュメントな)隠し機能の有無、コンソールエラーメッセージの違いに強く現れる。 ↩
8948XLは正式には PPPに対応しておらず Undocumentedなのだが、実際には 8724SL/8748SLと同様の設定と運用ができる。両者の決定的な違いはファイアウォール(NAT機能)追加ライセンスが設定されているか否かだ。だが NAT設定が不要=LAN型接続であれば、8948XLでも不都合なく設定して運用できる。 ↩
恐らく SKIP の頭文字だ。必ずしもすべてのファームウェアで対応している保証はない。別の一部機種では起動メッセージ中で明示的に "S"と表示しているものもあるが、AR5xxS系の場合はノーヒントである。 ↩
アラテレ製品の場合、パスワード忘れによる工場出荷時初期化は、有償修理対応が原則である。エンドユーザレベルでこれが出来るのは一部機種の隠し機能に限られる。 ↩
GS916M/GS924Mは、パスワードが EEPROMに独立して記録されるため設定ファイルを読み飛ばしても再ログイン可能にはならない。だがこの機種はブートローダー起動中に特定の操作をすると、ブートローダーシェルに入ることができる。そこで EEPROM内容のダンプ&エディットが不可能でもない。 ↩