web-dev-qa-db-ja.com

誰がvnc経由で私のマシンに接続されているかを知る方法は?

現在自分のマシンに接続されているvnc接続またはさまざまなユーザーの数を確認するにはどうすればよいですか? Wiresharkを介してのみ?そして、vncを介して接続されている他のユーザーを殺すにはどうすればよいですか?

2
tux_drummer

Linuxでは、

_ss sport = :5900
_

ポート5900で現在確立されているTCP接続)を教えてくれます。

それ以外の場合は、何十も存在するため、使用しているVNCサーバーを知る必要があります。

VNCサーバーコマンドの名前がわかっている場合は、

_lsof -ai tcp -c that-command
_

(VNCサーバーを実行しているユーザーまたはrootとして)また、現在確立されているTCP接続はそのVNCサーバーによって処理されます(ポート5900にない場合)。

一般的な場合、TCP接続を閉じる方法には、次のものがあります。

  • tcpkilldsniffパッケージから)は、接続を閉じるTCPパケットを偽造します。
  • iptstate(Linux)。ステートフルファイアウォールを使用している場合。 Linux接続トラッカーテーブルから接続を削除できます(xiptstate)で、通常は新しいパケットが無視されます(ファイアウォールがTCP SYN)の新しい接続のみを受け入れるように構成されている場合)。接続が切断されることはありません。 、ただし、非アクティブにするだけです。
  • ファイアウォールルールを追加して、その接続で送受信されたパケットをさらに拒否します(Linuxの場合、ターゲット「REJECT」でiptables、送信元と宛先で一致TCP OUTPUTのポートとIPアドレスおよびINPUTフィルターチェーン)
  • gdbを実行中のvncサーバーに接続し、call close(fd)を実行します。ここで、fdは、対応するソケット(lsofで確認できます)のファイル記述子であり、その後にdetach(それはvncサーバーを混乱させるかもしれません、shutdownの代わりにcloseを呼び出す方が安全かもしれません)。
7

VncサーバーがXvncであると仮定して、次のワンライナーを試してください。

lsof -Pni | grep Xvnc | grep -v LISTEN

これにより、アクティブな接続が一覧表示され、プロセスのPIDとIPアドレスが表示されます。

0
Jeremy

この記事 によると、次のコマンドは「VNCコマンドライン」を含むプロセスへの接続を表示します。

# Sudo netstat -p | grep <name of VNC command-line>

更新

netstatコマンドはrootとして実行する必要があることに注意してください

0
HeatfanJohn