外部ドライブを使用して DD-WRT ルーターをさらに活用する


あなたはルーターを DD-WRT で強化しました、あなたはそれを使用しています帯域幅の使用状況を監視する、それでももっとできることがあればいいのにと思います。まあ、それは可能です。今日は、ルーターに外部 USB ドライブを接続して使用する方法を見ていきます。

DD-WRT はデフォルトで非常に強力ですが、完璧ではありません。システムの大部分は読み取り専用で、編集可能な構成は nvram に保存されます。つまり、通常の Linux システムのように自由に調整できない Linux ルーターを使用していることになります。ただし、ルーターによっては、外部ストレージの接続に使用できる USB ポートを備えているものもあります。これを使用すると、読み取り専用ファイルシステムの一部を書き込み可能な外部ディスク上のディレクトリに置き換えることができます。

これを行うことの利点としては、書き込み可能な /etc/ によりソフトウェア構成が容易になること、新しいユーザーを追加できること、新しいソフトウェアをインストールする際に ipkg を簡単に使用できることが挙げられます。極端に聞こえるかもしれませんが、非常に安全です。ほぼすべての変更は外部ストレージに対して行われ、読み取り専用ファイルシステム経由でロードされます。元のデータは無傷で残されるため、ストレージデバイスを取り外して再起動することで、すべてを元に戻すことができます。

始める前に

このガイドの大部分では、ルーターが以下のモデルの 1 つであることを前提としています。USBサポートあり。このガイドでは、バッファロー WZR-HP-G300NHただし、USB ポートを備えた DD-WRT ルーターであれば動作するはずです。あなたのものがそうでなくても、心配しないでください。いくつかの代替案とその長所と短所についても説明します。

Linux または Linux ライブ CD (できればGParted ライブ CD)、外付けハードディスクや USB フラッシュ ドライブなどの何らかの種類のリムーバブル ストレージ、そして最も重要なことに、DD-WRT がインストールされたルーターが必要です。 G300NH を使用している場合は、何もする必要はありません。 DD-WRT はデフォルトでインストールされます。その他については、以下を参照してください。私たちのガイドまたはDD-WRT ウィキ

ドライブの準備

Live CD を起動して GParted を実行し、再フォーマットして使用する USB デバイスを接続します。自動的にマウントされる場合は、ドライブのアイコンを右クリックして「マウント解除」を選択します。 Gparted で、ウィンドウの右上にあるドロップダウンから適切なデバイスを選択します。括弧内のデバイス容量情報を確認して、正しいデバイスを使用していることを確認してください。選択すると、ウィンドウの残りの部分が更新され、選択したデバイスのパーティション情報が表示されます。

[デバイス] メニューで [パーティション テーブルの作成] を選択し、[適用] を押して新しい MS-DOS パーティション テーブルを作成します。 「未割り当て領域」を右クリックし、「新規」を選択します。最初のパーティションはスペースの大部分を占め、最後には少量 (約 64MiB) だけが残ります。この最初のパーティションはプライマリ パーティションである必要があり、ファイル システムは ext2 (フラッシュ ドライブの場合) または ext3 (外付けハード ディスクの場合) である必要があります。後で使用したファイルシステムの種類を知る必要があるので、今すぐメモしておいてください。ラベルは何でも構いません。

残りの未割り当て領域を右クリックし、2 番目の新しいパーティションを作成します。サイズは残りのすべてのスペース (64MiB)、プライマリ パーティション、ファイル システムは linux-swap である必要があります。一部のルーターでは追加メモリとしてスワップ スペースを利用できますが、他のルーターではできない場合があるため (G300NH はできない)、できない場合に備えてこの値を高く設定しすぎないようにしてください。

緑色のチェックボックスをクリックしてすべての変更を適用し、待ちます。それが完了すると、ドライブはルーターに接続された新しい生活の準備が整います。

ルーターのセットアップ

ドライブを使用する準備ができたので、ルーターを使用できるように準備する必要があります。そのためには、次の方法でいくつかの設定を変更します。ウェブインターフェース, そのため、新しいタブを起動してルーターの IP アドレスを入力します。ログインしたら、上部にある [サービス] リンクをクリックし、[Secure Shell] セクションまで下にスクロールします。 SSHd とパスワード ログインを有効にし、設定を保存します。

次に、「USB」タブをクリックします。そこで、コア USB サポート、USB 2.0 サポート、USB ストレージ サポート、および ext2 / ext3 ファイル システム サポートを有効にする必要があります。ディスク マウント ポイントを /mnt/ に設定し、設定を適用します。

ルーターは USB ストレージを使用できるようになっているので、今すぐドライブを接続してください。

ドライブの取り付け

このガイドの残りの部分はコマンド ラインに大きく依存するため、CLI に慣れていない場合は、CLI に慣れておくとよいでしょう。コマンドラインの入門書。 SSH 経由でルーターに接続します (sshLinux および OS X の場合。パテを使用するか、キティWindows の場合)、ユーザー名 root とルーターのパスワードを使用してログインします。

入ったら、入力しますcd /dev/discs/;lsその後cdリストされているディレクトリ (おそらく disc0) にコピーします。別のls利用可能なパーティションがリストされます。part1 (ストレージ) とpart2 (スワップ領域) です。重要なので、ファイル名と、ここで取得するために使用したパス (/dev/discs/disc0/part1 など) をメモしておきます。

ドライブは接続されており、デバイス自体の場所はわかっていますが、ファイルシステムはまだどの場所にも接続 (またはマウント) されていないため、次にデバイス ファイルへのパスを使用してパーティションをマウントします。入力してくださいmount -t ext2 /dev/discs/disc0/part1 /mnt、必要に応じて ext2 を ext3 に置き換えます。タイプmount引数なしで再度実行すると、最後の行は次のようになります。/dev/discs/disc0/part1 on /mnt type ext2 (rw,data=ordered)それが成功した場合。

それが機能した場合、次のステップは、次のように入力して、起動時にパーティションをマウントすることです。nvram set rc_startup="mount -t ext2 /dev/discs/disc0/part1 /mnt/"(必要に応じて ext2 と /dev/ パスを変更することを忘れないでください。)

ファイルシステムの準備

これでドライブはマウントされましたが、ファイルシステムの大部分はまだ読み取り専用です。それを修正しましょう。最初のステップは、/mnt/ 内に通常のルート ファイルシステムに似たものを作成することです。ディレクトリを /mnt (cd /mnt) その後mkdir bin etc home jffs lib opt root sbin tmp usr var www; chmod 1777 tmp。これで、既存の読み取り専用の場所にマウントできるディレクトリが多数できました。作成されたすべてのディレクトリがこのガイドで使用されるわけではありません。追加のものは、後で必要になった場合に追加の調整を行うためのものです。

この目的の 1 つは、/etc を /mnt/etc に置き換えることですが、必要なファイルが存在しない限りこれは機能しません。cp -a /etc /mnt/; cd /mnt/etc//etc/ からすべてを /mnt/etc/ にコピーし、すべての属性を保持してから、そのディレクトリに切り替えます。次、mkdir passwd.d group.d; mv passwd passwd.d; mv group group.d

実践する

すべてが整いました。必要なのは単純なシェル スクリプトだけです。それでは、vi を起動します。 vi を知らなくても、好きでなくても、心配しないでください。長くは続かないでしょう。タイプvi /mnt/mount.shファイルの作成を開始するには、 を押します挿入モードに入り、これをファイルに入れます。

ここで Esc キーを押して挿入モードを終了し、:wq保存して終了します。ファイルを実行可能にしますchmod u+x /mnt/mount.shこれでスクリプトの準備が完了しました。で実行します/mnt/mount.sh元のファイルシステムに損傷を与えることなく、/opt、/jffs、/usr/local、/etc/、および root のホーム ディレクトリに書き込み可能なディレクトリが作成されます。

このままにしておくと、ルーターを再起動すると、ルーターはデフォルトのほとんど読み取り専用の状態に戻ります。書き込み可能なシステムと、構成やその他の部分に加えた変更が必要な場合は、mount.sh スクリプトを手動で再度実行する必要があります。この変更が気に入って自動にしたい場合は、次のコマンドを使用して、以前の自動マウントにその変更を追加できます。nvram set rc_startup="`nvram get rc_startup` && /mnt/mount.sh"

これはまだ永続的なものではなく、USB ストレージを取り外してルーターを再起動することで、いつでも元の読み取り専用状態に戻すことができます。

ここまで進んだので、変更したシステムで何ができるかを知りたいと思います。ルートのホーム ディレクトリは RAM ではなくリムーバブル ドライブ上で利用できるようになったので、ファイルとユーザー設定を保存し、再起動時にリセットされないようにすることができます。同様に、/etc は編集可能であるため、システム構成を変更できます。これを利用すると、ソフトウェアのインストールが簡単になります。

echo PATH=/usr/local/bin:/usr/local/sbin:$PATH > .profile

次回ルーターにログインすると、/usr/local/bin と /usr/local/sbin が検索パスの先頭に表示されるので、そこに独自のスクリプトを置くことができます (忘れずにスクリプトを作成してください)実行可能ファイル)を選択し、名前を指定して実行します。これの用途の 1 つは、DD-WRT で配布される ipkg スクリプトの問題を修正することです。スクリプトは、--passive-ftpwget で切り替えますが、DD-WRT ビルトインはそれを受け入れず、全体が壊れたままになります。cp /bin/ipkg /usr/local/binこれで、スクリプトを編集して、--passive-ftpスイッチ。

ファイルを編集しているときは、/etc/ipkg.conf を確認する必要があります。提供されているパッケージ リストはおそらく古いもので、特定のチップセット (mipsel) でのみ使用できるため、リポジトリの変更が必要になる場合があります。たとえば、Buffalo ルーターを使用している場合、Atheros チップセットが使用されているため、デフォルトのwhiterussian リリースのパッケージは使用できません。これらの行を # でコメントアウトして追加しますsrc kamikaze https://downloads.x-wrt.org/xwrt/kamikaze/snapshots/atheros/packagesG300NHの代わりに。

ipkg を修正して構成したら、次を実行します。ipkg update。これを使用してパッケージを一覧表示、検索、インストールできるようになりました。 vi ファンではない場合、最初にインストールするのはおそらく nano になるでしょう。 (emacs 愛好家の方には申し訳ありませんが、利用できないようです) swapon をインストールしてその小さなスワップ パーティションを利用することもできるかもしれませんが、すべてのチップセットで動作するわけではなく、このガイドではテストできませんでした。 。

新しいユーザー アカウントを作成することもできますが、htpasswd コマンドにアクセスする必要があり、passwd ファイルを手動で編集して追加する必要があります。 htpasswd がインストールされているシステムでは、-n スイッチを使用して htpasswd を実行し、暗号化されたパスワードを /etc/passwd ファイル内の適切な場所に貼り付けることができます。何をしているのかをよく理解せずに新しいユーザーを追加すると、セキュリティ上のリスクが生じる可能性があるため、パスワードファイルユーザーを追加する前に。

ユーザーの追加に関する特別な注意: マウント スクリプトを実行すると、/mnt/etc/passwd.d/ 内のすべてのファイルが読み取られ、そこから新しい passwd ファイルが作成されます。新しいユーザーを追加する場合は、起動時にファームウェアによって作成されたユーザーに問題が発生しないように、そこに新しいファイルを作成します。

ルーターのハードウェアに応じて、現在追加できるソフトウェアは多岐にわたりますが、その中には編集可能な /etc を必要とするものもあります。テキストベースのブラウザ、IRC クライアントとサーバー、画像操作ツールなどがあります。ルーターは非常に強力になりました。ハッピーハッキング!

しかし、私のルーターには USB がありません。

ルーターに USB ポートが備わっていない場合でも、まだ希望はあります。次のようにしてもルーターの電源を入れることができますJFFS のセットアップ手順そして、「ファイルシステムの準備」以降のすべてを適応させます。ただし、これにはルータのフラッシュ メモリが大幅に消耗するという欠点があるため、お勧めできません。代わりに、USBをサポートするルーター現在のものを交換するとき。