iPhone、iPad、MacからのMikroTikポートノッキング
RouterOSにはノックデーモンはありませんが、ファイアウォールではアドレスリストを使ってノックを段階的に処理できます。各一致パケットによって送信元がリストに追加され、最後のリストでWinboxまたはSSHが開きます。Secret Knockは、ポートとpingサイズの両方のMikroTikノックを送信します。
ポートでノック
順番に3回接続を試行すると、アドレスがリストからリストへ移動します。最後のリストにあるアドレスだけがWinbox(8291)に到達できます。これらのルールは、入力トラフィックをドロップするルールより上に配置してください。
/ip firewall filter
add chain=input protocol=tcp dst-port=4311 action=add-src-to-address-list \
address-list=knock-1 address-list-timeout=10s comment="knock 1"
add chain=input protocol=tcp dst-port=5822 src-address-list=knock-1 \
action=add-src-to-address-list address-list=knock-2 address-list-timeout=10s comment="knock 2"
add chain=input protocol=udp dst-port=6133 src-address-list=knock-2 \
action=add-src-to-address-list address-list=knocked address-list-timeout=1h comment="knock 3"
add chain=input protocol=tcp dst-port=8291 src-address-list=knocked action=accept comment="Winbox after the knock"
add chain=input protocol=tcp dst-port=8291 action=drop comment="Winbox for everyone else" pingサイズでノック
RouterOSでは、ICMPエコー要求のサイズにも一致させられます。packet-sizeはIPv4パケット全体のサイズです。IPヘッダ20バイト、ICMPヘッダ8バイト、pingデータで構成されるため、100バイトのデータは128バイトとして到着します。Secret KnockのPINGエディタではデータサイズを入力します。結果として得られるICMP、IPv4、IPv6のパケットサイズが表示され、パケットがフラグメント化される可能性がある1280バイトを超える場合は警告されます。
/ip firewall filter
add chain=input protocol=icmp packet-size=128 action=add-src-to-address-list \
address-list=ping-1 address-list-timeout=10s comment="ping 100 bytes of data"
add chain=input protocol=icmp packet-size=308 src-address-list=ping-1 \
action=add-src-to-address-list address-list=knocked address-list-timeout=1h comment="ping 280 bytes of data"
add chain=input protocol=tcp dst-port=8291 src-address-list=knocked action=accept
add chain=input protocol=tcp dst-port=8291 action=drop アプリにドアを追加
- 1新しいドア › テンプレートから開始 › MikroTik — ポートシーケンス、またはMikroTik — pingサイズ。どちらも確認するポートとしてWinbox(8291)を設定します。
- 2ポート、またはpingのデータサイズと回数を入力します。
- 3ノックして、ドアが少し開いていますと表示されるまで待ってから、Winboxを開きます。
GitHubですべての例を見る → このページのすべての設定をコピーしてすぐに使えます:github.com/mobilcomm/secretknock-examples(パブリックドメイン)。
よくある質問
MikroTikノックで開かないのはなぜですか?
ルールの順序(ノックルールはドロップルールより前に置く必要があります)、アドレスリストのタイムアウト、ルーターがノックの送信元アドレスを認識していることを確認してください。Secret Knockではホーム画面にそのアドレスが表示されます。