dd-wrt †
- At your own risk. 全ては自己責任
- ファームウェアの更新に失敗した場合は動作しなくなります
無線LANルーターのファームウェアを書き換えて、機能追加を行う。数万のルータと同様な機能を持たせることができる。
Memo/OpenWrtから派生
- 2021-11現在
- snapshot版だけで、stable版が無い。Changelogの更新がなく変更点がコミットログしか無いように見える。
- IPv4 over IPv6(MAP-E, DS-Lite)非対応
- メイン機能(*はハードウェア対応していれば)
- 200種類以上のデバイスをサポート
- 無線LAN規格 (802.11a/b/g/n*)をサポート
- VPN
- ホットスポット
- QoS(帯域幅管理)
- 多言語ユーザーインタフェース(日本語あり)
- SSH
- Syslog
- Samba(ファイル共有)
- SNMP
- DDNS
- Zabbix Client(DD-WRT 3.0)
ソースコード/リリースノート †
UPnPの無効化 †
WAN側のUPnPは脆弱性を利用したセキュリティ問題のため無効化した方が良い。
- dd-wrt:
- Firmware: DD-WRT v3.0-r29739 std (05/19/16): デフォルトで無効化
- NAT/QoS > UPnPタブ
- UPnP サービス: 無効化
DD-WRT NXT †
Zabbixでの監視 †
DD-WRT 3.0からzabbix clientが入っている。
DD-WRTでの作業
- ネットワーク > サーバ/サービス
- Zabbix
- client: 有効
- Zabbix Server IP: <zabbix server IP>
- 設定 > 再起動
DD-WRTのホストからZabbixテンプレートをWinSCP等でlocalにコピーする
- /etc/zabbix_template.xml
- /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での作業
- 設定 > テンプレート > インポート > zabbix_template.xmlを指定
- ホスト追加時に「Template_Linux_DDWRT」を指定する
Buffalo US公式 DD-WRT †
OpenSSL Heartbleed Bug †
デバッグモード †
パーティションのバックアップ、リージョン変更、telnetd開始等ができる
- BUFFALO の2016年のファームウェアから、bufpyユーザが無効化されている。ダウングレードすれば使えるようだ
- ブラウザでdebugモード用のURLを開く
- telnetdを開始
- 現在の設定を確認
ubootenv list
ファームウェア更新 †
tftpでメーカー製以外のファームウェアを受け付ける †
USリージョンへ切替 †
Buffalo Professional Firmware、一部機種のdd-wrtを導入する際には必須。
- デバッグモード有効後、debug画面のcommand:、またはtelnetから。デフォルトは「JP」
ubootenv set region US
ファームウェアのバックアップ †
- /tmp/にバックアップして、ftpで転送する方法と、USBメモリに保存する方法がある。
- /tmp/は容量が少なく、一気に全部はダンプできないため、gzip圧縮して1ファイルずつ送る等気をつける必要がある。
- /proc/mtd の "linux" パーティションが純正ファームウェア
- FAT32でフォーマットしたUSBメモリを、ルータに刺す
- debugモードからtelnetdを有効にする
- 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」に戻すと良い
- 無線LAN > 基本
- 無線LAN PHY動作モード:NG-Mixed
- 保存
- 無線チャンネル:Dynamic(20/40MHz) を選択
- 詳細にチェック
- Regulatory Domain: UNITED_STATES_(PUBLIC_SAFETY)
- 送信アンテナチェイン:1+3(1以上)
- 受信アンテナチェイン:1+2+3(1以上)
- 保存
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
- 手動
- No-IP.com アカウントを取得する
- Add Host
Hostname: example [.no-ip.org]
- dd-wrtの管理画面にログイン
- [基本] > [DDNS]
DDNSサービス名: No-IP.com
ユーザー名: No-IP.comのログインと同じ
パスワード: No-IP.comのログインと同じ
ホスト名: example.no-ip.org
IPが変更されても更新しない: いいえ
自動更新間隔: 1
- 設定ボタン
- 更新に成功すれば、以下のメッセージが出る
:INADYN: Alias 'example.no-ip.org' to IP 'xxx.xxx.xxx.xxx' updated successfully.
特定サイト、キーワード、曜日、時間でアクセス制限 †
- 特定サイト、キーワード、曜日、時間、プロトコル(P2P含む)、クライアント指定してアクセス制限が可能
- 例:yaoo.co.jp, yahoo.comをブロック
- 管理画面にログイン
- [アクセス制限・タイマ]タブ
- [クライアントの指定]で新規ポリシーを作成。
- 状態: 有効
- ポリシー名: block_yahoo
- クライアントの指定: 特定PCのMACアドレスやIP、またはIPアドレスの範囲(全ての場合:192.168.1.2 - 192.168.1.254)
- フィルターにチェック
- [遮断するサービス] (httpを指定すると全てのサイト禁止)
- [特定のWebサイトを遮断(URLを指定)]にキーワードを追加
- [設定ボタン]
- 実際にクライアントで http://www.yahoo.com/, http://www.yahoo.co.jp/ アクセスして、遮断されていればOK
- 一時的に無効にしたければ、「状態: 無効」して、[設定ボタン]すれば良い
広告のブロック †
ポート開放 †
ポート開放したい機器は固定IPにしておく
- 設定例
- サーバ:192.168.1.2
- WindowsPC:192.168.1.3
NTT Bフレッツの場合 †
- 無線LANルータの説明書に書いてあるのでそちらを参照
基本タブ †
- ネットワーク設定
- DHCP
- DNSサーバー 1: 8.8.8.8 (Google Public DNS。Youtubeが遅い時は変更すると良い)
- DNSサーバー 2: 8.8.4.4 (Google Public DNS)
初期設定 †
必ず管理ユーザー、無線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が見えない端末があった(恐らく14chのせい)。またTurboが効かないようだ。「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より安全)
- 管理 > Remote AccessでSSHdが無効な事を確認
ファームウェアの更新に失敗した場合 †
赤色LED2回点滅でファームウェアエラー。
TFTPかシリアル経由で更新する方法がある