ネットワークに接続する方法(DD-WRT)
秘密のノックが認識されたときにのみ「ドアを開く」ようにするために、ルーターでその特別な「寮のノック」をしたいと思ったことはありませんか。 How-To GeekがDD-WRTにKnockデーモンをインストールする方法を説明します.
BfickとAviad Ravivによるイメージ
まだ読んでいないのであれば、シリーズの前の記事を確認してください。
- あなたのホームルーターをDD-WRTでスーパーパワードルーターに変える
- ホームルーターに追加のソフトウェアをインストールする方法(DD-WRT)
- DD-WRTでPixelservを使って広告を削除する方法
あなたがそれらのトピックに精通していると仮定して、読んでください。このガイドはもう少し技術的なので、初心者はルーターを改造するときに注意する必要があります。.
概要
伝統的に、デバイス/サービスと通信することができるためには人は開始しなければならないでしょう いっぱい それとネットワーク接続。しかしそうすることで、セキュリティ時代にいわゆる攻撃面が露呈します。 Knockデーモンは、事前に設定されたシーケンスが観察されたときに反応する可能性がある一種のネットワークスニファです。ノックデーモンが設定されたシーケンスを認識するために接続が確立される必要がないので、攻撃面は所望の機能を維持しながら減少する。ある意味では、ルーターには 欲しい 「2ビット」応答(貧弱なRogerとは違って…).
この記事では、
- ローカルネットワーク上のコンピュータにルーターWake-On-Lanを持たせるためのKnockdの使い方.
- Androidアプリケーションとコンピューターの両方からKnockシーケンスをトリガーする方法を示します.
注:インストール手順はもはや関係ありませんが、私が作成した一連の映画を見れば、ノッキングに設定することの全体的な概要を見ることができます。 (粗いプレゼンテーションはお許しください).
セキュリティへの影響
「Knockdはどれほど安全なのか」という議論は長く、何千年も前からさかのぼります(インターネット時代)。
ノックはあいまいさによるセキュリティの層です。 強化する 暗号化のような他の手段であり、それ自体では使用すべきではありません。.
前提条件、前提および推奨事項
- Opkg対応のDD-WRTルーターがあると仮定します。.
- これには少し時間がかかります.
- 外部(通常は動的)IP用のDDNSアカウントを取得することを強くお勧めします。.
割れることができます
インストールと基本設定
ルーターへの端末を開いて以下を発行してKnockデーモンをインストールします。
opkgの更新opkg install knockd
Knockdがインストールされたので、トリガーされたときに実行されるトリガーシーケンスとコマンドを設定する必要があります。これを行うには、テキストエディタで“ knockd.conf”ファイルを開きます。ルータではこれは次のようになります。
vi /opt/etc/knockd.conf
内容を次のようにします。
[オプション]
logfile = /var/log/knockd.log
UseSyslog
[覚醒]
sequence = 56,56,56,43,43,43,1443,1443,1443
seq_timeout = 30
command = / usr / sbin / wol aa:bb:cc:dd:ee:22 -i $(nvram get lan_ipaddr | cut -d。-f 1,2,3).255
tcpflags =同期
上記を説明しましょう。
- 「オプション」セグメントを使用すると、デーモンのグローバルパラメータを設定できます。この例では、ログをsyslogとファイルの両方に保存するようにデーモンに指示しました。両方のオプションを組み合わせて使用しても害はありませんが、どちらか一方だけを使用することを検討してください。.
- “ wakelaptop”セグメントは、aa:bb:cc:dd:ee:22のMACアドレスを持つコンピューターに対して、LANへのWOLコマンドをトリガーするシーケンスの例です。.
注:上記のコマンドは、クラスCサブネットを持つというデフォルトの動作を想定しています。.
さらにシーケンスを追加するには、単に「wakelaptop」セグメントをコピーして貼り付け、新しいパラメータやルーターによって実行されるコマンドで調整します。.
起動
ルータが起動時にデーモンを呼び出すようにするには、OPKGガイドの「geek-init」スクリプトに以下を追加します。
knockd -d -c /opt/etc/knockd.conf -i "$(nvram get wan_ifname)"
これにより、ルーターの「WAN」インターフェース上でKnockデーモンが起動し、インターネットからのパケットを受信できるようになります。.
Androidからノック
移植性の時代には、「そのためのアプリを用意する」ことがほぼ不可欠です…そのため、StavFXはタスク用に1つ作成しました:)
このアプリは、あなたのAndroidデバイスからノッキングシーケンスを実行し、ホームスクリーンにウィジェットを作成することをサポートします。.
- AndroidマーケットからKnockerアプリケーションをインストールしてください(また親切にして、評価をつけてください).
- デバイスにインストールしたら、起動します。あなたは次のようなもので迎えられるべきです:
- アイコンの例を長押しして編集するか、「メニュー」をクリックして新しいエントリを追加します。新しいエントリは次のようになります。
- 線を追加して、Knockingに必要な情報を入力します。上記のWOL設定の例では、これは次のようになります。
- 必要に応じて、ノック名の横にあるアイコンを長押ししてアイコンを変更します。.
- ノックを保存.
- それをアクティブにするには、メイン画面で新しいノックをシングルタップ.
- 必要に応じてホーム画面にウィジェットを作成します.
各ポートに3つのグループで設定ファイルの例を設定しましたが(下記のTelnetセクションのため)、このアプリケーションではポートの繰り返し数(制限があるとしても)に制限はありません。.
StavFXが寄付したアプリを使って楽しんでください:-)
Windows / Linuxからノックする
最も単純なネットワークユーティリティa.k.a“ Telnet”でKnockingを実行することは可能ですが、MicrosoftはTelnetが“セキュリティ上のリスク”であると判断したため、最近のウィンドウにデフォルトでインストールすることはもうありません。あなたが私に尋ねるならば:彼らは少し一時的な安全を得るために本質的な自由を放棄することができる、自由にも安全にも値しない。 〜ベンジャミン・フランクリン」.
各ポートに対してシーケンスの例を3のグループに設定したのは、telnetが目的のポートに接続できない場合、自動的にもう2回再試行するためです。これはtelnetがあきらめる前に実際に3回ノックすることを意味します。そのため、ポートグループの各ポートに対してtelnetコマンドを1回実行するだけです。また、次のポートグループを実行するまで各ポートに対するtelnetのタイムアウトを待たなければならないため、30秒のタイムアウト間隔が選択されているのもその理由です。テスト段階が終了したら、簡単なBatch / Bashスクリプトを使ってこの手順を自動化することをお勧めします。.
私たちの例のシーケンスを使うとこれは次のようになります。
- Windowsの場合は、MSの指示に従ってTelnetをインストールしてください。.
- コマンドラインに行って発行します。
telnet geek.dyndns-at-home.com 56
telnet geek.dyndns-at-home.com 43
telnet geek.dyndns-at-home.com 1443
すべてうまくいけば、それはそれであるはずです.
トラブルシューティング
ルータがシーケンスに反応しない場合は、次の2つのトラブルシューティング手順を実行してください。
- ログを表示する - Knockdは、ノッキングシーケンスがデーモンに届いたかどうか、およびコマンドが正しく実行されたかどうかを確認するためにリアルタイムで表示できるログを保持します。.
あなたが少なくとも上記の例のようにログファイルを使っていると仮定して、それをリアルタイムで見るためには、ターミナルで発行してください:tail -f /var/log/knockd.log
- ファイアウォールに注意する - 時々あなたのISP、職場またはインターネットカフェはあなたのためにコミュニケーションをブロックすることの自由を取ってください。このような場合、ルーターが待機している間に、チェーンのどの部分でブロックされているポートをノックしてもルーターに到達せず、それらに反応するのに苦労します。もっとランダムなポートを試す前に、80、443、3389などのよく知られたポートを使用する組み合わせを試すことをお勧めするのはそのためです。繰り返しますが、ログを表示して、どのポートがルーターのWANインターフェイスに到達しているかを確認できます。.
- シーケンスを内部的に試す - チェーンの他の部分で発生する可能性がある上記の複雑さに巻き込まれる前に、シーケンスを内部的に実行して、A. Aがルータにヒットしたことを確認することをお勧めします。期待どおりsです。これを実現するには、LANインタフェースにバインドした状態でKnockdを起動します。
knockd -d -i "$(nvram get lan_ifnameq)" -c /opt/etc/knockd.conf
上記が実行されると、Knockingクライアントをその外部IPアドレスではなくルーターの内部IPアドレスに向けることができます。.
ヒント:knockdはIPレベルではなく「インターフェース」レベルでlistenしているため、LANインターフェース上で常にKnockDのインスタンスを実行したい場合があります。 「Knocker」は2つのホストをノックすることをサポートするように更新されたので、それはあなたのノッキングプロファイルを単純化し統合するためにそうなるでしょう. - どちら側にいるかを覚えておいてください - 上記の設定では、LANインターフェイスからWANインターフェイスをノックすることはできません。 「自分の側」に関係なくノックできるようにしたいのであれば、この記事のように1回WANにバインドされ、上のデバッグ手順のように1回LANにバインドされたデーモンを2回実行するだけです。同じgeek-initスクリプトに上からコマンドを追加するだけで、両方を組み合わせて実行しても問題はありません。.
備考
上記の例は他のさまざまな方法でも実行できますが、より高度な処理を実行する方法を学習するために使用できることを願っています。この記事の後半部分では、VPNサービスを攻撃の背後に隠しています。.Knockingにより、動的にポートを開く、サービスを無効にする/有効にする、リモートでWOLコンピュータなどを使用することができます。