基本事項、コマンドなど

Last-modified: Fri, 14 Aug 2015 15:37:57 JST (853d)
  • シリアルコンソールから設定する前提

ログインパスワードと管理パスワードの概念

RTX1200には、ログインパスワードと管理パスワードがあります。
まずログインパスワードでログインします。この段階では状態確認などしか行えません。
コンソールのプロンプトは「>」になります。
次に

>administrator

とうち、管理パスワードを入力すると、管理者モードになります。
コンソールのプロンプトは「#」になります。
ログインパスワードの変更は

#login password

で。管理者パスワードの変更は

#administrator password

でおこなう。

初期化方法

PWを忘れて入れなくなったとか、どうしようもなくなったときに強制的に工場出荷時に初期化する方法。

microSD + USB + DOWNLOAD の3つのボタンを押しながら電源を入れる。

なお、コマンドでやる穏やかなやり方は

#cold start

基本的なルール

#console character ascii

など、コマンドを直接叩くと即時反映されるが、保存しない限りメモリ上にしか保持されない。
設定を削除する場合は、削除したいコマンドの前に「no」をつける。

#no console character ascii

で削除される。
コマンドは途中まで打ってTABを押すと補完される。「?」を押すとコマンドの引数など簡易ヘルプがでる。

ファームのバージョン確認

>show environment

Configの確認

>show config

Configの保存

#save

タイムゾーン設定

#timezone +09:00

コンソールの文字コードをASCIIにする。

デフォルトではShiftJISであり、コンソールで設定するときなど文字化けするので、ASCIIにしておくのが無難。
なお、ASCIIにすると、エラーメッセージなども英語になる。

# console character ascii

ステルスモード

RTXシリーズのフィルター設定はNATの後ろにある為、フィルターの設定でICMPをすべて蹴ってもPINGに応答します。
WAN側からICMPを蹴りたい場合はステルスモードにします。

#ip stealth lan2

LAN側も含め全てのインターフェースで設定したい場合は

#ip stealth all

とします。

NTPと時刻同期させる

schedule atntpdateを組み合わせて設定する。

#schedule at 1 */* 00:00 * ntpdate ntp.nicp.jp

使わないサービスの停止

シリアルコンソールで設定している。SDカードやUSBを使わないなど、不要なサービスは停止させる。

#telnetd service off
#httpd service off
#http revision-up permit off
#http upload permit off
#operation http revision-up permit off
#sshd service off
#usbhost use off
#sd use off
#sntpd service off

lan1、lan2などインターフェースにIPアドレスを割り当てる。

wan1というのがあったりするが、別物なので注意。
(USBでつなぐWiMAXなどのインターフェースになります。)
必ず、WAN側のインターフェース名とLAN側のインターフェース名を確認して設定すること。
IPアドレスはCIDER形式で指定する。

#ip lan1 address 10.0.0.1/24
#ip lan2 address xxx.xxx.xxx.xxx/xx

侵入検知機能の有効化

不正なパケットなどを検知するらしい。
危険性の高い攻撃については、reject オプションの設定に関わらず、常にパケットを破棄するそうなので、
とりあえず、WAN側の入ってくる通信のみ監視する例。

#ip lan2 intrusion detection in on

この手のやつは誤検知の可能性が付きまとうので設定は慎重に。

静的ルーティング設定

10.0.0.0/24のゲートウエイは192.168.10.254である場合

#ip route 10.0.0.0/24 gateway 192.168.10.254

ルータのデフォルトゲートウエイがxxx.xxx.xxx.250の場合

#ip route default gateway xxx.xxx.xxx.254

DNS関連

ルータにDNSサーバサービスを起動させる。

ルータにDNS機能をさせる場合は起動させる。デフォルトで起動している。

#dns service recursive

DNSサーバを指定

# dns server 8.8.8.8

DNSを応答するインターフェースを指定

オープンリゾルバになると大変なので、DNSの応答はLAN側からしか返さない設定をする。
ネットワーク指定もできる。

#dns host lan1

DNSの問い合わせ内容に応じてDNSサーバの参照先を変える

内部DNSを持っていて、たとえばexsample.localdomainなど内部アドレスは内部DNSで、それ以外は外部DNSへ問い合わせをかけたい場合などに使用する。
自宅サーバなどで、自宅ではグローバルIPではなくローカルIPを返してもらいたい場合に便利。

#dns server select 1 192.168.1.100 any localdomain 192.168.1.0-192.168.1.255
#dns server select 2 8.8.8.8 any .

これは、送信元ネットワークが192.168.1.0/24であり、任意のレコードで、hogehoge.localdomainなど、localdomainドメインなら、ローカルDNSサーバ(192.168.1.100)で名前解決を行い、
それ以外は8.8.8.8へ問い合わせをかける例。

select 1
select 2

の数字は設定を特定するための番号に過ぎず、ユニークな番号であれば何番でもよい

プライベートアドレスに対する問い合わせを処理する。

プライベートアドレスに対する問い合わせを上位DNSに返すかどうか?
ローカルルータでない限り、不要なので有効化しておく

#dns privarte address spoof on

NATについて

IPマスカレード

簡単に言うと、1つのグローバルIPをみんなで共有する方法。普通のブロードバンドルータ。
ヤマハルーターでは、NAT機能における一連の変換ポリシーをまとめたものを「NATディスクリプター」と呼んでいます。
簡単な例を示します。WAN側のインターフェースをlan2とします。

#lan2 nat descriptor 1

でまず、lan2のNAT変換で使用するNATディスクリプターはNo1ですと設定します。
では次に、No1のNATでスクリプターを定義します。

#nat descriptor type 1 masquerade

tyope 1 でNo1のNATディスクリプターを定義しています。(type 1というタイプの指定をしている訳ではない)IPマスカレードなのでmasqueradeと設定します。
No1のNATディスクリプターをIPマスカレードで定義したので、対応するグローバルIPとローカルIPを指定します。

#nat descriptor address outer 1 xxx.xxx.xxx.xxx
#nat descriptor address inner 1 192.168.1.0-192.168.1.255

たとえば、複数のグローバルIPをもち、192.168.1.0-192.168.1.100はxxx.xxx.xxx.100、192.168.1.101-192.168.1.255はxxx.xxx.xxx.200
とする場合、つまり複数のNATディスクリプターを設定する場合は

#lan2 nat descriptor 1 2
#nat descriptor type 1 masquerade
#nat descriptor address outer 1 xxx.xxx.xxx.100
#nat descriptor address innner 1 192.168.1.0-192.168.1.100
#nat descriptor type 2 masquerade
#nat descriptor address outer 2 xxx.xxx.xxx.200
#nat descriptor address inner 2 192.168.1.101-192.168.1.255

な感じで設定する。

#lan2 nat descriptor 1 2

がミソで、複数のNATディスクリプターを使用する場合は複数個並べる。ちなみに先頭から順に処理される。

ローカルにあるwebサーバを外部に公開したい(静的IPマスカレード)

静的NATをすると、紐づくサーバを全公開になるので、Port80だけNAT変換し、ローカルサーバに外部からアクセスできるようにする。
例として、192.168.1.100のサーバを外部公開する。(NATディスクリプタNo1)
それ以外はIPマスカレードで出て行く。(NATディスクリプタNo2)

#lan2 nat descriptor 1 2
#nat descriport type 1 masquerade
#nat descriptor address outer 1 xxx.xxx.xxx.80
#nat descriport address inner 1 192.168.1.100
#nat descriptor masquerade static 1 1 192.168.1.100 tcp www
#nat descriptor type 2 masquerade
#nat descriptor address outer 2 xxx.xxx.xxx.xxx
#nat descriptor address inner 2 192.168.1.0-192.168.1.255

ここで

#nat descriptor masquerade static 1 1 192.168.1.100 tcp www

は、NATディスクリプタNo1の変換レコードNo1として、192.168.1.100のwwwのポートを変換することを定義している。
httpsも変換したければ、変換レコードNo2として

#nat descriptor masquerade static 1 2 192.168.1.100 tcp https

を追記すればよい。

#nat descriport address inner 1 192.168.1.100

に内部サーバのIPを列挙する。ポート番号が被らなければ、ひとつのグローバルIPに任意のポート番号で複数の内部サーバを公開することができる。

NATテーブルについて

NAT変換を使って、一つのグローバルIPを複数のマシンで共有する場合、
その対応表(NATテーブル)が必要になります。
これはルータのメモリ上に構築され、ルータの機種によってその最大数が決まっています。
RTX1200の場合は20,000セッションになります。
この数字は最大数なので、例えばWAN側に2つのグローバルIPを割り当て、それぞれでIPマスカレードを行っていた場合、
それぞれ20,000セッションではなく、合計で20,000セッションになりますので、注意です。
20,000セッションというと結構余裕がある(ちなみにRTX810だと1,000セッションらしい)ように見えますが、
一度張ったセッションはデフォルトでは15分間解放されないので、最近のタブブラウザでタブを開きまくったりすると、
DNSのセッションなりですぐ数百セッションは消費される為、ぶら下がる台数が30台とかあると危険です。
現在のNATテーブル使用状況は以下のコマンドで確認できます。

#show nat descriptor address

NATテーブルが一杯になると、当然NAT変換ができなくなるので、どうにかして使用率を下げます。
手としては、セッションのタイムアウトを短くし、NATテーブルを長時間占有しないようにします。

一律タイムアウトを10分に設定する例です。(NATディスクリプタ番号1に適用する場合)
また、tcpfinのセッションは終了するセッションなので10秒でタイムアウトさせています。

#nat descriptor timer 1 600
#nat descriptor timer 1 tcpfin 10

ただ、一律設定してしまうと、頻繁にセッションが切断される為、都合が悪いです。

なので、DNSなど切れても問題がないものに限り、セッションタイムアウトを短くします。

#nat descriptor timer 1 protocol=udp port=domain 30
#nat descriptor timer 1 protocol=tcp port=80 120
#nat descriptor timer 1 protocol=tcp port=443 120

ここでは、DNSを30秒、http,httpsを120秒に設定しています。

もっと根本的に、ホスト毎のNATセッション数を制限するには以下のようにします。

#nat descriptor masquerade session limit 1 1 600

IPフィルターについて

動的フィルタと静的フィルタ
Yamahaルータには、静的フィルタと動的フィルタがあります。
まずは理解しやすい静的フィルタの例です。

#ip filer 100 reject 10.0.0.0/8 * * * *
#ip filer 200 pass * * * * *
#ip lan2 secure filter in 100 200

これは、lan2インターフェースから入ってくるパケットに対し、フィルタ100、200を適用しています。
フィルタの適用は番号の若い順から適用されていきます。
ip filerの書式についてはここを参考。

動的フィルタについて

動的フィルタは、簡単に言うと戻ってくるパケットのフィルタを動的に生成するものです。
戻ってくるパケットのフィルタだとestablishedでいいじゃん?と思うのですが、
estableshedは単にACKを見ているだけなので、ACKを含んだ悪意あるパケットが来た場合対処できないらしい。
通常フィルタリングのポリシーとしては、中から出ていくものはすべて許可しますが、外から入ってくるものはすべて拒否します。
そうした場合、外部のWebサーバへの通信はできますが、Webサーバからの応答パケットは、当然外部から入ってくるため、
すべて拒否設定だと入ってこれません。
といっても、静的フィルタで定義すると、どのWebサーバから応答パケットが来るかなんて分からないので、送信元Portが80をすべて許可な設定にしないといけません。参考
そこで、動的フィルタを使い、出ていく通信を監視し、動的に戻り用のフィルタを作成します。
作成された動的フィルタは以下のコマンドで確認できます。

#show ip connection

Counter: 1599, today: 11, yesterday: 9

このページの参照回数は、1599です。