Wan側のtelnetポート8023からの着信telnet要求を拒否するために、Linuxマシンで実装を行っています。この機能は、以下のiptablesルールを使用して実現されます。 NATポート8023から23へのDNAT着信tcpフレームへの事前ルーティングチェーンの最初のルール、およびtcp-resetを使用してポート23でこれらのtcpフレームを拒否する2番目のルール
iptables -t nat -A PREROUTING -i wan+ -p tcp --dport 8023 -j DNAT --to-destination :23
iptables -A INPUT -i wan+ -p tcp --dport 23 -j REJECT --reject-with tcp-reset
これらのルールを追加すると、WANマシンの新しいセッションが終了します。
[root@ROOT ~]# telnet 192.168.3.252 8023
Trying 192.168.3.252...
Connected to 192.168.3.252.
Escape character is '^]'.
Connection closed by foreign Host.
ただし、WANマシンからのトランザクション全体のwiresharkキャプチャを確認すると、次のシーケンスが観察されています。
TCP sequence:
SYN -->
<-- SYN/ACK
ACK -->
<-- RST
ワイヤーシャークキャプチャーも付属しています。
以下のように、iptablesのルールで最初のSYNリクエストのRSTを送信できますか?
TCP sequence:
SYN -->
<-- RST
誰かがこの点で助けてもらえますか...よろしくお願いします。
面白い。
私はそれをテストしましたが、私のシステムでは期待どおりに機能します。あまり使用されていないローカルサーバーのポート25でテストしました。
[。 1729] :INPUT ACCEPT [12:1729] :OUTPUT ACCEPT [110:7484] :POSTROUTING ACCEPT [110:7484] -事前設定- p tcp -m tcp --dport 225 -j DNAT --to-destination:25 COMMIT #2014年8月22日金曜日14:34:49に完了 #生成者iptables- 2014年8月22日金曜日14:34:49にv1.4.12を保存 * filter :INPUTACCEPT [888:1187686] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [883:134630] -AINPUT -p tcp -m tcp --dport 25 -j REJECT --reject-with tcp-reset COMMIT #2014年8月22日金曜日14:34:49に完了 telnet XXX.XXX.XXX.XXX 225 Trying XXX.XXX.XXX.XXX ... telnet:リモートホストに接続できません:接続が拒否されました
私は接続を確立しません、そしてあなたのようにリセットします。
Linux3.2.0-67とiptablesv1.4.12を使用しています
tcpdump -vvvv tcp port 225 tcpdump:eth0でリッスン、リンクタイプEN10MB(イーサネット)、キャプチャサイズ65535バイト 14:48:29.178049 IP(tos 0x10、ttl 64、id 50487、オフセット0、フラグ[DF]、proto TCP(6)、長さ60) xx.39444> xxxxx.225:フラグ[S]、cksum 0x2c0d(正解)、シーケンス47731887、勝利14600、オプション[mss 1460、sackOK、TS val 665686424 ecr 0、nop、wscale 5]、長さ0 14:48:29.178089 IP(tos 0x0、ttl 64、 id 0、オフセット0、フラグ[DF]、proto TCP(6)、長さ40) xxxxx.225> xx.39444:フラグ[R。]、cksum 0x3745 (不正解-> 0x8628)、seq 0、ack 47731888、win 0、length 0