Memo/dd-wrt

https://dexlab.net:443/pukiwiki/index.php?Memo/dd-wrt
 

dd-wrt

  • At your own risk. 全ては自己責任
  • ファームウェアの更新に失敗した場合は動作しなくなります

無線LANルーターのファームウェアを書き換えて、機能追加を行う。数万のルータと同様な機能を持たせることができる。
Memo/OpenWrtから派生

  • メイン機能(*はハードウェア対応していれば)
    • 200種類以上のデバイスをサポート
    • 無線LAN規格 (802.11a/b/g/n*)をサポート
    • VPN
    • ホットスポット
    • QoS(帯域幅管理)
    • 多言語ユーザーインタフェース(日本語あり)
    • SSH
    • Syslog
    • Samba(ファイル共有)
    • SNMP
    • DDNS
    • Zabbix Client(DD-WRT 3.0)
  • 公式
  • 対応機器
  • http://ja.wikipedia.org/wiki/DD-WRT

    DD-Wrt は、ゲートウェイ、無線LANアクセスポイントなどの組み込みシステム用ファームウェアとして開発されているLinuxディストリビューションの一種である。OpenWRTを元にして作られている。

dd-wrt-build16994-info.png dd-wrt-build16994-hardware.png


UPnPの無効化

WAN側のUPnPは脆弱性を利用したセキュリティ問題のため無効化した方が良い。

  • dd-wrt:
    • Firmware: DD-WRT v3.0-r29739 std (05/19/16): デフォルトで無効化
  1. NAT/QoS > UPnPタブ
  2. UPnP サービス: 無効化

DD-WRT NXT

  • http://www.dd-wrt.com/nxt/wiki/
    • UIがシンプル
    • open-wrtのモジュールが使えるらしい
    • 対応ハードウェアはまだ少ない
    • DD-WRT NXT Routers | Buffalo Americas Buffalo USではDD-WRT NXTをプリインストールしてあるモデルがあるようだ
      • Dynamic DNS
      • Open VPN and full command line access
      • DHCP server
      • SSH server
      • IPsec passthrough
      • IPtables NAT and Firewall
      • Advanced access restrictions

Zabbixでの監視

DD-WRT 3.0からzabbix clientが入っている。

DD-WRTでの作業

  1. ネットワーク > サーバ/サービス
  2. Zabbix
    • client: 有効
    • Zabbix Server IP: <zabbix server IP>
  3. 設定 > 再起動

DD-WRTのホストからZabbixテンプレートをWinSCP等でlocalにコピーする

  1. /etc/zabbix_template.xml
  2. /tmp/zabbix.conf に定義してある独自監視項目
    UserParameter=temperature.wl0, /usr/sbin/temps eth1 2> /dev/null
    UserParameter=temperature.wl1, /usr/sbin/temps eth2 2> /dev/null
    UserParameter=clients.wired, /usr/sbin/clients
    UserParameter=clients.wl0, /usr/sbin/wclients eth1
    UserParameter=clients.wl1, /usr/sbin/wclients eth2
    UserParameter=system.topcpu[*], /usr/sbin/topcpu  
    UserParameter=listenport[*], netstat -ln 2> /dev/null  | grep -c ':'
    UserParameter=net.iptables.cksum, iptables-save | grep -v '^[#:]' | md5sum | tr -cd 0-9 | cut -b1-10
    UserParameter=net.ipv4.cksum,ifconfig | grep -B1 ' inet ' | md5sum | tr -cd 0-9 | cut -b1-10
    UserParameter=net.ipv4,ifconfig | grep -B1 ' inet ' | grep -o -e 'addr:[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' -e '^[a-z0-9:]*'
    UserParameter=nvram.cksum, /usr/sbin/nvram show 2>/dev/null | grep -vE '^(forward_|traff|dnsmasq_lease_|http_client_)' | sort | md5sum | tr -cd '0-9' | cut -b1-10
    UserParameter=nvram.free, /usr/sbin/nvram show 2>&1 1>/dev/null | grep -o '(.*' | tr -cd '0-9'

Zabbixでの作業

  1. 設定 > テンプレート > インポート > zabbix_template.xmlを指定
  2. ホスト追加時に「Template_Linux_DDWRT」を指定する

Buffalo US公式 DD-WRT


beta版


OpenSSL Heartbleed Bug


デバッグモード

パーティションのバックアップ、リージョン変更、telnetd開始等ができる

  1. ブラウザでdebugモード用のURLを開く
  2. telnetdを開始
  3. 現在の設定を確認
    ubootenv list

ファームウェア更新


tftpでメーカー製以外のファームウェアを受け付ける

  • デバッグモード有効後、telnetから
    ubootenv set accept_open_rt_fmt 1

USリージョンへ切替

Buffalo Professional Firmware、一部機種のdd-wrtを導入する際には必須。

  • デバッグモード有効後、debug画面のcommand:、またはtelnetから。デフォルトは「JP」
    ubootenv set region US

ファームウェアのバックアップ

  • /tmp/にバックアップして、ftpで転送する方法と、USBメモリに保存する方法がある。
  • /tmp/は容量が少なく、一気に全部はダンプできないため、gzip圧縮して1ファイルずつ送る等気をつける必要がある。
  • /proc/mtd の "linux" パーティションが純正ファームウェア
  • USBメモリにバックアップ
  1. FAT32でフォーマットしたUSBメモリを、ルータに刺す
  2. debugモードからtelnetdを有効にする
  3. telnetでログイン
    cd /mnt/usb0_0/
    
    # WZR-1750DHP2は空だった
    ubootenv list > ubootenv.txt
    
    cat /proc/mtd > mtd.txt
    
    # mtd.txtの中身に合わせて数を変える。WZR-1750DHP2は2、4でフリーズした
    for i in 0 1 2 3 4 5 6 7;do dd if=/dev/mtdblock/$i of=mtd$i.dd;done

WOL(Wake On Lan)


倍速(40MHz)モードを出す

  • デフォルトではFull(20MHz)モードのみ表示されているので、40MHzを出す方法。ただ干渉などによってからなずしも倍速モードで通信はされない模様
  • 機器による接続トラブルが発生する場合は戻せば良い
  • 3DS等で繋がらない場合は「BG-Mixed」に戻すと良い
  1. 無線LAN > 基本
  2. 無線LAN PHY動作モード:NG-Mixed
  3. 保存
  4. 無線チャンネル:Dynamic(20/40MHz) を選択
  5. 詳細にチェック
  6. Regulatory Domain: UNITED_STATES_(PUBLIC_SAFETY)
  7. 送信アンテナチェイン:1+3(1以上)
  8. 受信アンテナチェイン:1+2+3(1以上)
  9. 保存

Dynamic DNS

固定IPでない動的IPプロバイダの場合でも、サーバにドメインを割り当てる事ができるサービス。
IPが変わったら手動で変更する必要があるが、dd-wrtでは対応しているので自動更新も設定可能
または、Linuxサーバ上のプログラムでDicedもある

  • 対応サービス(Firmware: DD-WRT v24-sp2 (12/20/11) std)
    • DynDNS.org 有料,DiCE対応, 2011/12/28〜無料版が30日間のお試しになり、クレジットカードが必須に変更。旧アカウントはそのまま利用可能
    • freedns.afraid.org 無料,
    • ZoneEdit.com 無料,DiCE対応,MX,ワイルドカード,URL転送,独自ドメイン専用
    • No-IP.com 無料,DiCE対応,MX,URL転送,ドメイン21種
    • 3322.org
    • easyDNS.com 有料
    • TZO.com 有料
    • DynSIP.org
    • 手動
  1. No-IP.com アカウントを取得する
  2. Add Host
    Hostname: example [.no-ip.org]
  3. dd-wrtの管理画面にログイン
  4. [基本] > [DDNS]
  5. 設定ボタン
  6. 更新に成功すれば、以下のメッセージが出る
    :INADYN: Alias 'example.no-ip.org' to IP 'xxx.xxx.xxx.xxx' updated successfully.

特定サイト、キーワード、曜日、時間でアクセス制限

  • 特定サイト、キーワード、曜日、時間、プロトコル(P2P含む)、クライアント指定してアクセス制限が可能
  • 例:yaoo.co.jp, yahoo.comをブロック
  1. 管理画面にログイン
  2. [アクセス制限・タイマ]タブ
  3. [クライアントの指定]で新規ポリシーを作成。
  4. 状態: 有効
  5. ポリシー名: block_yahoo
  6. クライアントの指定: 特定PCのMACアドレスやIP、またはIPアドレスの範囲(全ての場合:192.168.1.2 - 192.168.1.254)
  7. フィルターにチェック
  8. [遮断するサービス] (httpを指定すると全てのサイト禁止)
    • None
  9. [特定のWebサイトを遮断(URLを指定)]にキーワードを追加
    • yahoo.com
    • yahoo.co.jp
  10. [設定ボタン]
  11. 実際にクライアントで http://www.yahoo.com/, http://www.yahoo.co.jp/ アクセスして、遮断されていればOK
  12. 一時的に無効にしたければ、「状態: 無効」して、[設定ボタン]すれば良い

広告のブロック


ポート開放

ポート開放したい機器は固定IPにしておく

  • 設定例
    • サーバ:192.168.1.2
      • ftp
      • ssh
    • WindowsPC:192.168.1.3
      • vnc
      • peercast
      • xlink kai
  • NAT / QoSタブ
    • アドレス変換(Port範囲)

dd-wrt-build16994-port.png


NTT Bフレッツの場合

  • 無線LANルータの説明書に書いてあるのでそちらを参照
  • 接続
  • Bフレッツ デフォルト
    • MTU 1454
    • RWIN 63630 byte

基本タブ

  • インターネット接続
  • ネットワーク設定
    • DHCP
      • DNSサーバー 1: 8.8.8.8 (Google Public DNS。Youtubeが遅い時は変更すると良い)
      • DNSサーバー 2: 8.8.4.4 (Google Public DNS)
  • 詳細設定
    • MTU:手動 1454

初期設定

必ず管理ユーザー無線LANセキュリティを行う事


Administration/管理タブ

  • Management/管理タブ
    • 管理ユーザー
      • 必ず変更
    • Language Selection: Japanese
      • Apply Settingsで設定適用。日本語になっていない時は、F5で更新してみる。
    • web管理インタフェース
      • プロトコル: HTTP, HTTPS
      • システム情報表示でも認証を行う:有効
    • Remote Access
      • インターネットからルータの管理画面に入れるかの設定。危険なので基本的に無効
  • 設定保存/復元
    • 設定の保存:設定したらバックアップとして保存しておく
    • 設定の復元

基本タブ

  • 時刻設定
    • タイムゾーン:Asia/Tokyo(UTC+9:00)
    • サマータイム設定(DST):なし
    • サーバIP:ntp.jst.mfeed.ad.jp

無線LANタブ

  • 2.4GHz帯域のIEEE802.11 b/g/nは混雑しており、WiFi?ポイントが同じチャンネルを使用すると干渉して繋がりにくくなる。空いているチャンネルを指定する事で速度が出たり、安定する場合もある。もしくは5GHz帯域のIEEE802.11 a/n/acを使う。
  • 基本
    • 2.4GHz無線チャンネル:自動, 1/6/11, 2/7/12, 3/8/13推奨(干渉を防ぐため5ch以上離す)。14chは日本独自なので繋がらない機器がある
    • 5GHz無線チャンネル:自動で良いが、New Fire TV Stick(W52の36, 40, 44, 48)等特定のチャンネルしか対応していない機器もある。その場合は固定する
    • 使用しているチャンネルは 機器診断 > 無線LAN > チャンネルで確認できる。
  • 詳細(Advanced Settings)
    • Regulatory Domain: Japan にするとSSIDが見えない端末があったので、UNITED_STATES_(PUBLIC_SAFETY) が良いかもしれない。
    • TX Power: 10 dBm
  • 無線LANセキュリティー
    • 無線LAN認証:WPA2 Personal
    • WPA アルゴリズム:AES
    • WPA 共有キー:必ず設定
  • MACアドレスフィルター
    • MACアドレスフィルター:有効
    • リストに登録されているクライアントの通信を許可する
    • MACアドレスの編集ボタン:通信させたい機器のMACアドレスを登録

ネットワークタブ

  • DD-WRT v3.0-r29739 std (05/19/16)
  • サーバ/サービス
    • Telnet: 無効(通信が暗号化されないため。必要ならSSHdの方が安全)
    • Secure Shell: SSHd 必要に応じて有効化 (Telnetより安全)
      • OK: RLogin v2.20.9
      • NG: Poderosa v4.3.16 接続エラー「接続先はSSHのサーバではありません。」
    • 管理 > Remote AccessでSSHdが無効な事を確認

ファームウェアの更新に失敗した場合

赤色LED2回点滅でファームウェアエラー。
TFTPかシリアル経由で更新する方法がある


添付ファイル: filedd-wrt-build16994-port.png 2218件 [詳細] filedd-wrt-build16994-hardware.png 1794件 [詳細] filedd-wrt-build16994-info.png 1433件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-09-15 (土) 07:31:38 (3d)