着信ポートのブロック

着信ポートのブロック

私は Scientific Linux 6 システムに LabView をインストールし、セキュリティ担当者からポート 3580 が開いてリッスンしていて、これがセキュリティ問題であるというメッセージをすぐに受け取りました。明らかに、このポートは次の目的に使用されます。Web監視および構成サーバー閉じることはできません。私が誤解している可能性がありますが、そうでない場合:#%&!*#@

リスニングポートを表示するには、次のように入力します。

$ netstat -anp | grep 3580
> (Not all processes could be identified, non-owned process info
>  will not be shown, you would have to be root to see it all.)
> tcp        0      0 0.0.0.0:3580                0.0.0.0:*                   LISTEN      -

次のようにポートを閉じようとしていますiptables

$ iptables -A INPUT -p tcp --destination-port 3580 -j DROP

ところで、上記のコマンドを再入力すると、開いているnetstatポートが表示されます。もちろん、私はiptablesそれがどのように動作するか誤解しました。誰かが私が間違っていることを教えてもらえますか?

ベストアンサー1

netstatは、そのポートで何か(おそらくLabview)がリッスンしていることを示します。 iptablesラインは、コンピュータの外部からそのポートに到着するパケットをブロックするので、問題はありません。プログラムがListenしていてnetstatを実行すると、ポートは開いていますが、外部からパケットが到着していないため、外部からそのポートにアクセスできないことがわかります。コンピュータ自体がパケットをブロックする必要がある場合は可能ですが、LabViewの機能に影響を与える可能性があります。

メモ:

  • 他のファイアウォールルールがないと思うので、誰かがあなたのファイアウォールルールを検出できる可能性はまだあります。iptables -L -n -v行ってみてください。他の規則に従ってDROPまたはREJECTを使用しようとしています。パケットが承認されると、REJECTを使用してポートでリッスンしているプログラムがないことをシミュレートします。編集:TCPポート接続には4つの可能な結果があります。

    1. 接続はTCP SYN / ACKパケットで開きます。これは、ポートでリッスンしているプログラムがあり、接続がファイアウォールによってブロックされていない場合に発生する可能性があります。
    2. TCP RSTパケットによって接続が拒否/リセットされました。これは、ポートでリッスンするプログラムがない場合、またはファイアウォールがRSTを返す場合に発生する可能性があります(iptablesはこれを実行するために-j REJECTを使用します)。
    3. パケットをまったく返しません。これは、パケットが失われた場合、またはファイアウォールがパケットを破棄した場合に発生する可能性があります(iptablesはこれを実行するために-j DROPを使用します)。
    4. TCP パケットは返されませんが、ファイアウォールが ICMP パケットを返す場合は一般的ではありません。

    これにより、システム外では、セキュリティスタッフはTCP RSTとパケットがないことの違いを簡単に検出できます。 1行を除いてファイアウォールがない場合は、すぐにRSTを-j REJECT使用してインターネットに接続されているサーバーの場合、ポートスキャンを使用して悪意のある人にできるだけ多くの時間を費やすことをお勧めします-j DROPが、状況は非常に異なるようです!-j DROP

  • 提供した iptables 行は、再起動後に消えます。/etc/sysconfig/iptables手動で変更するか、/sbin/service iptables save設定が正しい後に実行する必要があります。

  • iptablesラインはセキュリティ担当者の指示に従ってパケットをブロックしますが、設定を調べて必要なものだけを許可し、ステートフル設定を介して他のすべてを許可しないでください。 LabViewまたは他のプログラムは、他のポートを完全に開くことができます。このトピックは、この短い答えに比べて大きすぎます!

  • 私はすでにLabviewであることを知っていますが、netstatコマンドを見ると、ポートでリッスンしている項目を確認する方が良いことがわかりますlsof(たとえば、インストールされていない可能性があります)。lsof -i :3580何よりも最善のことは、どのプログラムが聞いているのかを教えてくれます。 netstatと同様に、すべてを見るにはrootまたはsudoを使用する必要があります(iptablesを実行するにはrootである必要があるため、問題にならないようです)。

おすすめ記事