4

シンプルなポート ノッキング セットアップ用の Linux クライアント スクリプトを作成しようとしています。私のサーバーには、アクセスを開くために特定のポートへの特定のシーケンスの TCP SYN を要求するように構成された iptables があります。telnet を使用するか、netcat を手動で呼び出す (コマンドを実行した直後に Ctrl-C キーを押す) ことで正常にノックできますが、自動ノック スクリプトを作成できません。

自動化されたポート ノッキング スクリプトに対する私の試みは、単純に「nc -w 1 xxxx 1234」コマンドで構成されています。このコマンドは、xxxx ポート 1234 に接続し、1 秒後にタイムアウトします。ただし、問題は、自動化された SYN 再試行を行うカーネル (?) にあるようです。ほとんどの場合、nc が接続を試行する 1 秒間に複数の SYN が送信されます。これは tcpdump で確認しました。

それで、SYNの再試行を防ぎ、netcatが接続/ノックの試行ごとにSYNを1つだけ送信するようにする方法を知っている人はいますか? 仕事をする他のソリューションも大歓迎です。

4

4 に答える 4

2

ええ、私はあなたが nc も使用できることを確認しました!:

$ nc -z example.net 1000 2000 3000; ssh example.net

魔法は (-z: ゼロ I/O モード) から来ます...

于 2015-10-19T18:29:02.750 に答える
1

ポートノッキング (SYN) には nmap を使用できます。実行するだけです:

for p in 1000 2000 3000; do 
  nmap -Pn --max-retries 0 -p $p example.net;     
done
于 2015-10-19T18:18:46.307 に答える
0

これを試してください(ルートとして):

echo 1 >  /proc/sys/net/ipv4/tcp_syn_retries

またはこれ:

int sc = 1;
setsockopt(sock, IPPROTO_TCP, TCP_SYNCNT, &sc, sizeof(sc));
于 2013-10-10T13:55:06.983 に答える
0

TCP/IP スタックが明示的に設計されていることを実行するのを防ぐことはできません。

于 2012-07-18T22:22:35.597 に答える