お見せしました ルーターの「ポートノッキング」によってWOLをリモートでトリガーする方法 。この記事では、VPNサービスを保護するためにそれを使用する方法を示します。
による画像 Aviad Raviv & bfick 。
序文
使用したことがある場合
DD-WRTに組み込まれた機能
VPNの場合、または
別のVPNサーバー
ネットワークでは、ノックシーケンスの背後に隠すことで、ブルートフォース攻撃からネットワークを保護できることを高く評価するかもしれません。これを行うことにより、ネットワークにアクセスしようとしているスクリプトキディを除外します。そうは言っても、前の記事で述べたように、ポートノッキングは適切なパスワードやセキュリティポリシーの代わりにはなりません。十分な忍耐力があれば、攻撃者はシーケンスを発見してリプレイ攻撃を実行できることを忘れないでください。
また、これを実装することの欠点は、VPNクライアントが接続するときに、ノックシーケンスをトリガーする必要があることです。
予め
また、何らかの理由でシーケンスを完了できない場合は、VPNをまったく実行できません。
概要概要
* VPNサービスを保護するために、まず、1723のインスタンス化ポートをブロックして、VPNサービスとの可能なすべての通信を無効にします。この目標を達成するために、iptablesを使用します。これは、ほとんどの最新のLinux / GNUディストリビューション、特にDD-WRTで通信がフィルタリングされる方法であるためです。 iptablesのチェックアウトに関する詳細情報が必要な場合は、 wikiエントリ 、そして見てください 前回の記事 件名に。サービスが保護されると、VPNインスタンス化ポートを一時的に開き、設定された時間が経過すると、すでに確立されているVPNセッションを接続したまま、自動的に閉じるノックシーケンスを作成します。
注:このガイドでは、例としてPPTPVPNサービスを使用しています。そうは言っても、同じ方法を他のVPNタイプにも使用できます。ブロックされたポートや通信タイプを変更するだけで済みます。
前提条件、前提条件、および推奨事項
- あなたが持っていることが想定/必須です Opkg対応DD-WRTルーター 。
- 「」の手順をすでに実行していることを前提としています。 ネットワークにノックインする方法(DD-WRT) 」ガイド。
- ある程度のネットワーク知識があることを前提としています。
ひびが入りましょう。
デフォルト DD-WRTの「新しいVPNをブロックする」ルール
以下の「コード」のスニペットは、Linux / GNUディストリビューションを使用するすべての自尊心のあるiptablesでおそらく機能しますが、そこには非常に多くのバリエーションがあるため、DD-WRTでの使用方法のみを示します。必要に応じて、VPNボックスに直接実装することを妨げるものは何もありません。ただし、その方法は、このガイドの範囲を超えています。
ルーターのファイアウォールを強化したいので、「ファイアウォール」スクリプトに追加するのは論理的です。これを行うと、ファイアウォールが更新されるたびにiptablesコマンドが実行されるため、拡張機能が維持されます。
DD-WRT Web-GUIから:
-
「管理」->「コマンド」に移動します。
-
以下の「コード」をテキストボックスに入力します。
inline = "$(iptables -L INPUT -n | grep -n" state RELATED、ESTABLISHED "| awk -F:{'print $1'})"; inline = $(($ inline-2 + 1)); iptables -I INPUT "$ inline" -p tcp --dport 1723 -j DROP - 「ファイアウォールの保存」をクリックします。
- 完了。
この「ブードゥー」コマンドとは何ですか?
上記の「ブードゥーマジック」コマンドは次のことを行います。
- すでに確立された通信が通過できるようにするiptable回線がどこにあるかを検索します。これを行うのは、A。DD-WRTルーターでは、VPNサービスが有効になっている場合、VPNサービスはこの線のすぐ下に配置され、B。すでに確立されているVPNセッションがその後も存続できるようにするという目標に不可欠です。ノッキングイベント。
- 情報列のヘッダーによって引き起こされたオフセットを考慮して、listingコマンドの出力から2を差し引きます。それが完了したら、上記の番号に1を追加して、挿入するルールが、すでに確立された通信を許可するルールの直後に来るようにします。この非常に単純な「数学の問題」は、「ルールに追加するのではなく、ルールの場所から減らす必要がある理由」の論理を明確にするために、ここに残しました。
KnockD構成
新しいVPN接続を作成できるようにする新しいトリガーシーケンスを作成する必要があります。これを行うには、ターミナルで発行して、knockd.confファイルを編集します。
vi /opt/etc/knockd.conf
既存の構成に追加します。
9000003
シーケンス= 02,02,02,01,01,01,2010,2010,2010
seq_timeout = 60
start_command = iptables -I INPUT 1 -s%IP%-p tcp --dport 1723 -j ACCEPT
cmd_timeout = 20
stop_command = iptables -D INPUT -s%IP%-p tcp --dport 1723 -j ACCEPT
この構成は次のようになります。
- シーケンスを完了する機会のウィンドウを60秒に設定します。 (これはできるだけ短くすることをお勧めします)
- ポート2、1、および2010での3回のノックのシーケンスを聞いてください(この順序は、ポートスキャナーをトラックから外すために意図されています)。
- シーケンスが検出されたら、「start_command」を実行します。この「iptables」コマンドは、ファイアウォールルールの上部に「ノックが発生したポート1723宛てのトラフィックを受け入れる」を配置します。 (%IP%ディレクティブはKnockDによって特別に処理され、ノックオリジンのIPに置き換えられます)。
- 「stop_command」を発行する前に、20秒待ちます。
- 「stop_command」を実行します。この「iptables」コマンドが上記の逆を実行し、通信を許可するルールを削除する場合。
著者 のヒント
あなたはすべて準備ができているはずですが、私が言及する必要があると感じるいくつかのポイントがあります。
- トラブルシューティング。問題が発生した場合は、最後にある「トラブルシューティング」セグメントを覚えておいてください。 最初の記事 最初に立ち寄る必要があります。
- 必要に応じて、「開始/停止」ディレクティブに、セミコレン(;)またはスクリプトで区切ることにより、複数のコマンドを実行させることができます。そうすることで、気の利いたことができるようになります。たとえば、シーケンスがトリガーされた場所とその場所を知らせる*メールをノックして送信しました。
- それを忘れないでください そのためのアプリがあります 」と、この記事には記載されていませんが、取得することをお勧めします StavFX のAndroid ノッカープログラム 。
- Androidについては、通常、メーカーからOSに組み込まれているPPTPVPNクライアントがあることを忘れないでください。
- 最初に何かをブロックし、その後継続してすでに確立された通信を許可する方法は、実質的にすべてのTCPベースの通信で使用できます。実際には DD-WRT 1〜6をノック 映画では、昔、ポート3389を例として使用するリモートデスクトッププロトコル(RDP)を使用していました。