SSH通信において一部データが漏えいする可能性がある脆弱性に対応するため、以下の機能追加を行った。
http://www.rtpro.yamaha.co.jp/RT/FAQ/Security/CPNI957037.html
sshd encrypt algorithmコマンドを新設し、SSHで使用する暗号アルゴリズムを指定できるようにした。
○SSHサーバで利用可能な暗号アルゴリズムの設定
ALGORITHM ... 暗号アルゴリズム(空白で区切って複数指定可能) |
|
IPsecで、OpenswanをVPNクライアントとしてXAUTHで相互接続できるようにした。
OpenswanとヤマハルータをIPsecで相互接続しようとした場合、XAUTHを使わなければそのまま接続できるが、XAUTHを使用する場合には、Mode-Cfgの仕様の解釈の違いでうまく接続できない。そのため、ヤマハルータの側で、Openswanに接続できるよう動作を変更するコマンドを新設した。
○IKE XAUTH Mode-Cfgメソッドの設定
GATEWAY_ID | ... | セキュリティゲートウェイの識別子 |
METHOD | ... | set ... SETメソッド |
OPTION | ... | openswan ... Openswan互換モード |
OPTIONに'openswan'を指定した場合にはOpenswan互換モードとなり、Openswanと接続できるようになる。
外部データベース参照型URLフィルタについて、特定拡張子を持つURLのカテゴリ確認を行うか否かを設定する機能を追加した。
http://www.rtpro.yamaha.co.jp/RT/docs/url-filter_ext_db/specified_extension.html
LANインタフェースのリンクアップ直後の送信を保留する機能を実装した。
○LANインタフェースのリンクアップ後の送信抑制時間の設定
ARPエントリ変更をログに残すことができるようにした。
show log | grep ARP: を実行することによって、過去のARPエントリ履歴を確認することができる。
○ARPエントリの変化をログに残すか否かの設定
SWITCH |
|
シリアル番号をネットボランチDNSのホスト名として登録できるコマンドを追加した。
○シリアル番号を使ったホスト名登録コマンドを実行
NTPパケットの始点IPアドレスを設定できるコマンドを新設した。
○NTPパケットを送信するときの始点IPアドレスの設定
tracerouteコマンドで、始点IPアドレスを設定できるようにした。
○traceroute
HOST ....... traceruteをかけるホストのIPアドレス(xxx.xxx.xxx.xxx)、またはホスト名 |
noresolv ... DNSによる解決を行わないことを示すキーワード |
SOURCE ..... 始点IPアドレス |
ip keepaliveコマンドで、始点IPアドレスを設定できるようにした。
OPTIONに local-address=(始点IPアドレス) を指定することで設定できる。
○ネットワーク監視機能の設定
NUM ........... このコマンドの識別番号(1..100) | ||||||||||||||||||||||||||||||||||
KIND .......... 監視方式
|
||||||||||||||||||||||||||||||||||
INTERVAL ...... キープアライブの送信間隔秒数(1..65535) | ||||||||||||||||||||||||||||||||||
COUNT ......... 到達性がないと判断するまでに送信する回数(3..100) | ||||||||||||||||||||||||||||||||||
GATEWAY
|
||||||||||||||||||||||||||||||||||
OPTION=VALUE列
|
ARP受信時の動作を以下のように変更した。
DHCPサーバ機能で、IPアドレス割り当て方式がbind-onlyのとき、IPアドレス予約が解除されたらそのIPアドレスの現在のリース情報も消去することとした。
これにより、予約対象IPアドレスの再利用がより早くできるようになる。
IPアドレスの設定またはIPv6アドレスの設定、IPv6プレフィックスの設定を行う以下のコマンドにおいて、それぞれの設定でIPアドレスが重複した場合は、エラーとするように変更した。
ただし、IPv6リンクローカルアドレスは重複して設定できる。
show status lanコマンドにIPアドレスを表示するようにした。
例) # show status lan1 LAN1 説明: IPアドレス: 192.168.1.1/24 IPアドレス(セカンダリ): 192.168.2.1/24 イーサネットアドレス: 00:a0:de:01:23:45 :
security class コマンドのオンラインヘルプをコマンドリファレンスの表記に合わせた。
show environmentの表示についても同様に変更した。
下記のコマンドで設定できるフィルタの数を300個までに増やした。
○フィルタリングによるセキュリティの設定
INTERFACE ......... LAN インタフェース名、LOOPBACK インタフェース名、NULLインタフェース名、ブリッジインタフェース名 |
|
FILTER_LIST ....... 空白で区切られたフィルタ番号の並び(RTX3000は300個以内、他の機種は128個以内) |
SET_NAME .......... フィルタセットの名前を表す文字列 |
dynamic ........... キーワード後に動的フィルタの番号を記述する |
# ip filter 1 pass 192.168.0.0/24 * # ip filter 2 reject 192.168.0.1 # ip lan1 secure filter in 1 2この設定では、始点IP アドレスが192.168.0.1 であるパケットは、最初のフィルタ1 で通過が決定してしまうため、フィルタ2 での検査は行われない。そのため、フィルタ2 は何も意味を持たない。
○外部プロトコルによる経路導入
|
FILTER_NUM ............ フィルタ番号(RTX3000は300個以内、他の機種は100個以内) |
以下のコマンドでclear configurationで設定が削除されないバグを修正した。
また、受信設定の識別子と時間を指定してnoコマンドを発行した場合にのみ個別に指定した設定を削除するようにした。
この修正に伴いオンラインヘルプも変更した。
○受信間隔の監視設定
○RECV_ID........ 受信設定の識別子 |
|
○通知間隔の設定
○TRANS_ID....... 通知設定の識別子 |
○TIME........... 通知間隔秒数(30..65535) |
ip INTERFACE secure filter name が設定されている状態で、ip INTERFACE secure filter in または out を新たに設定したときに、nameの設定が消えて in または out の設定が反映されるように変更した。
PPP接続の認証で、CHAP Response送信のタイムアウト時にLCPを切断するようにした。
UDPパケットがノーマルパス経由でNAT/IPマスカレード変換されると、変換後のUDPチェックサムが0x0000になることがあるバグを修正した。UDPチェックサムの0x0000は「チェックサム無し」を表す特別な値なので、UDPチェックサムの計算結果が0x0000になった場合は0xFFFFに変換しなければならない。
長さが0にセットされているTCPオプションを受信したときに出力されるSYSLOG"Invalid TCP option length(0)" で、IPv6アドレスが正しく表示されないバグを修正した。
Rev.9.00.20以降で発生する。
不正なTCPパケットを受信すると、パケットデータ外の不当領域を参照することがあるバグを修正した。
このバグにより、当該パケットを受信するとCPU利用率が不当に高くなることがあった。
PPのanonymous接続においてpp auth usernameコマンドで相手に割り当てるIPアドレスが設定してあっても、ip routeコマンドでPAP/CHAPの名前を使って同じ相手に対する静的経路が設定してあると、2番目以降に接続した相手に対してはpp auth usernameコマンドの設定どおりのIPアドレスが割り当てられないバグを修正した。
IPv6 RAプロキシ機能を使用しているとき、配下のホストへ通知するRA内のprefix informationの数が時間とともに増えていくバグを修正した。まったく同一のIPv6プレフィックスの数が増えていくというバグであり、上位ルータからRAを受信する度にその数が増えていく可能性があった。
この問題はRev.9.00.42以降のファームウェアで発生する。
静的経路やOSPF/BGPで学習した経路で、自分のLANインタフェース上にある別のホストをゲートウェイとする経路を、RIP2でそのLANインタフェースに広告できないバグを修正した。
このような経路は、RIP1ではスプリットホライズンの対象になり広告できないのが正しいが、RIP2では広告できなくてはいけない。
RIPで通知された経路が隠し経路 (hidden) としてルーティングテーブルに登録された場合、rip use offでRIPを停止してもその経路が削除されないバグを修正した。
DHCPクライアント機能で、サーバから通知されるゲートウェイ情報が変わった場合、それが経路情報に反映されないことがあるバグを修正した。
DHCPでアドレスをリース延長し続けるとメモリリークするバグを修正した。
クライアントからのメッセージにホストネームオプションがあった場合にメモリリークしていた。
PPインタフェースに複数のNATディスクリプタを適用してNAT/IPマスカレード機能を使用する場合、2番目以降のNATディスクリプタの外側IPアドレス(nat descriptor address outer)に"ipcp"を指定すると、そのNATディスクリプタを使用する通信のNAT変換が正しく行われないバグを修正した。
帯域検出機能で、ロスや遅延により測定に使用するパケットの受信タイムアウトが発生し、帯域測定がエラー終了するとリブートすることがあるバグを修正した。
アグレッシブモードの受け側としてIPsecトンネルを構築しているとき、そのトンネル内で帯域検出機能、または、負荷通知機能を使用すると恒常的にメモリリークが発生し、やがてリブートに至るバグを修正した。
帯域検出のサーバ側で、クライアントからの測定用パケットの受信中に帯域検出機能の設定を変更するとメモリリークすることがあるバグを修正した。
YMS-VPN1や他社製ルーターなど、ヤマハルーター以外の装置とIPsec接続する場合、アグレッシブモードの受け側としてヤマハルーターを設定すると、IPsec-SAのバイト寿命が尽きる直前にVPNがダウンすることがあるバグを修正した。なお、バイト寿命を設定していない装置との接続ではこの問題は該当しないが、YMS-VPN1との接続では必ずバイト寿命が設定されるため、この問題が該当する。
トンネルテンプレートとなるトンネルインタフェースの設定で以下のコマンドを変更すると、そのテンプレートの適用先のトンネルインタフェースに設定されている同じコマンドが優先されず、トンネルテンプレートの設定が適用されるバグを修正した。
LAN経由のキープアライブでICMP Echoを利用し、確認先のIPアドレスにIPv6アドレスを指定した場合、キープアライブが正常に動作せず、常にダウン検知されるバグを修正した。
IPv6 ICMP EchoによるIKEキープアライブにおいて、送信したICMP Echo Requestに対する ICMP Echo Replyを受信していない場合、以降のIKEキープアライブが行われないバグを修正した。
IPv6 ICMP EchoによるIKEキープアライブにおいて、ipsec ike keepalive logコマンドの設定に関わらず、ICMP Echo Request送信時にログが出力されないバグを修正した。
IPv6 ICMP EchoによるIKEキープアライブを使用するとき、拠点数が多いと障害を誤検知してトンネルがダウンすることがあるバグを修正した。
生存通知2機能で送信側と受信側で暗号化の設定が異なる場合、受信側で不正なログが出力されることがあるバグを修正した。
TELNET EC(Erase Character)、またはTELNET EL(Erase Line)シーケンスのパケットを受信するとメモリの不正アクセスをし、リブートすることがあるバグを修正した。
既にSSHでログインしているユーザー名と同じユーザー名でSSH接続をすると、その後の動作が不安定になり、リブートすることがあるバグを修正した。
XAUTH認証機能の内部IPアドレスとしてIPv6アドレスを指定したとき、トンネル接続後に当該アドレス宛ての経路情報がstatic経路として登録されてしまうバグを修正した。
本来であれば、temporary経路として登録されるのが正しい。
XAUTH認証機能を使用してIPsecトンネルを確立させたとき、auth user attribute/auth user group attributeコマンドのxauth-filterパラメータで設定したフィルタセットが、そのトンネル内で有効にならないバグを修正した。
接続先PPにフレームリレーが設定されているとき、そのPPに対してSNMPマネージャからSNMPGETコマンドでフレームリレーのインタフェース番号 (mib2.transmission.frDlcmiTable.frDlcmiEntry.frDlcmiIfIndex) を取得すると、不当な値が返ってくるバグを修正した。
接続先PPにフレームリレーが設定されているとき、SNMPでフレームリレーのPVC状態確認手順の設定値(mib2.transmission.frDlcmiTable.frDlcmiEntry.frDlcmiState)が取得できなかったり、取得できても不当な値が返ってくるバグを修正した。
また、frDlcmiEntryに対してSNMPWALKコマンドを実行しても、同原因によりfrDlcmiStateより前のオブジェクト(frDlcmiIfIndex)しか取得できていなかった。この問題も本修正により改善される。
フレームリレーが設定されているPPにおいて、次に示す条件のいずれかが該当する場合、SNMPでフレームリレー関連のオブジェクト(mib2.transmission)が正しく取得できないバグを修正した。
(*) mib2.interfaces.ifTable.ifEntry.ifIndexに示される全インタフェースの通し番号で128以上になるPPインタフェースが該当する。
また、mib2テーブル全体に対してSNMPWALKコマンドを実行しても、上記条件に該当するPPが存在する場合はフレームリレー関連のオブジェクト(mib2.transmission)の取得中にSNMPマネージャでエラーが発生してしまうため、transmissionより後のオブジェクトを取得することができなかった。この問題も本修正により改善される。
フレームリレー関連のMIBオブジェクト(mib-2.transmission)に対して、SNMPマネージャからSNMPGETNEXTやSNMPWALKコマンドが実行されたとき、QoSの設定がある場合でもQoSのクラスごとに設定されているMIBインタフェースを見せないようにした。
なお、フレームリレーの設定がない場合も、同オブジェクト(mib-2.transmission)に対してSNMPマネージャからSNMPGETNEXTやSNMPWALKコマンドが実行されたときは、応答する情報がないということを調べるために検索処理が発生する。いずれかのインタフェースにQoSの設定があるとMIBインタフェース数が増えることでこの検索処理にかかる時間が長くなり、ルータから何らかの応答を返す前にSNMPマネージャでタイムアウトが発生してしまうことがあった。また、その結果、SNMPマネージャはコマンドの再送を繰り返すことがあり、その間ルータの負荷が上がったまま下がらないという問題も発生する可能性があった。この問題は本修正により改善される。
SNMPで、atIfIndex、ipNetToMediaIfIndexの値が実際のインタフェースにかかわらず常に1(LAN1)になるバグを修正した。
SSHでログインしたRTから、またはSSHでログインされたRTに対して、リモートセットアップすることができないバグを修正した。
remote setupを実行すると、"Idle timer is expired"という間違ったログが出力されることがあったバグを修正した。
256文字以上のパラメータ、またはスペースを含むパラメータを入力した後、以降のパラメータのタブ補完が効かないバグを修正した。
console character/columns/linesコマンドの設定を変更後、restartコマンドを実行し、設定の変更を保存するか否かの問いに 'Y' を入力して再起動をすると、変更したはずの設定がconfigに保存されないバグを修正した。
show ipv6 addressで、disableになっているtunnelインタフェースの情報が表示されるバグを修正した。
tunnelを一旦enableにした後でdisableにするとこの現象が発生していた。
pp enable all、tunnel enable allを設定してもshow ipv6 addressでpp、tunnelの情報が表示されないバグを修正した。
auth user group attributeコマンドでメモリリークするバグを修正した。
Rev.9.00.15以降のファームウェアで発生していた。
ip keepaliveコマンドで以下のバグを修正した。
以下のコマンドに「|」を指定できないバグを修正した。
dns serverの後に 'd', 'p', 's'+タブキーを入力しても、'dhcp', 'pp', 'select'キーワードがタブ補完されず、それ以降のキーワードもタブ補完されないバグを修正した。
dns hostコマンドで'any'以外の値を設定したとき、RT自身からの名前解決ができなくなるバグを修正した。
nslookupやドメイン名を指定したping、メール通知、ネットボランチDNSなどで名前解決に失敗する。
ipsec ike remote addressコマンドで255文字のホスト名を設定した場合、ホスト名の名前解決に失敗し、IPsecの接続ができないバグを修正した。
dhcp scopeコマンドのexpireとmaxexpireの設定で、設定可能な最大値より大きな値を設定してもエラーにならなかったり、ある値以上が設定できない場合があるバグを修正した。
no dhcp scope lease type コマンドで設定されていないスコープ番号を指定すると、不正に設定が追加されるバグを修正した。
また、設定されていないスコープ番号を指定した場合、エラーメッセージを出力ようにした。
no tcp logコマンドのコマンドヘルプが表示されないバグを修正した。
no login userコマンドでユーザ名を指定せずに入力できることがあるバグを修正した。この場合、直前にlogin userコマンドで設定したユーザが削除されることがある。
no login userコマンドのオンラインヘルプで必須パラメータであるユーザ名の記述がないバグを修正した。
auth user attributeコマンドの"xauth-address="オプションにIPv6アドレスを指定すると、任意のIPv4アドレスが設定されてしまうバグを修正した。
auth user attribute/auth user group attributeコマンドの各パラメータが重複指定されたときは、エラーメッセージを出力し、コマンド入力を受け付けないようにした。
以下のコマンドのコマンドヘルプで、IDの説明が表示されないバグを修正した。
PPPoE用のPPインタフェースに対してshow status ppコマンドを実行したとき、インタフェースの説明(descriptionコマンドの設定値)が表示されないバグを修正した。
no ethernet filer コマンドのオンラインヘルプの誤記を修正した。
dhcp scope lease typeコマンドのコマンドヘルプの誤記を修正した。
ip I/F igmp static コマンドのコマンドヘルプの誤記を修正した。
ipv6 I/F mld static コマンドのコマンドヘルプの誤記を修正した。
heartbeat receiveコマンドのオンラインヘルプのデフォルト値がアルファベット大文字だったのを小文字にした。
heartbeat2 receive recode limitコマンドのコマンドヘルプの誤記を修正した。
ipv6 INTERFACE secure filterコマンドのコマンドヘルプの誤記を修正した。
dns cache max entryコマンドのコマンドヘルプの誤記を修正した。
url filter external-database lookup specified extention listコマンドのコマンドヘルプ表示が間違っているバグを修正した。
url filter external-database lookup specified extensionコマンドのコマンドヘルプ表示が間違っているバグを修正した。