GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでポートを閉じる方法は?

ポートを閉じる際に質問があります。奇妙なことがあると思います。

executeを使用する場合

nmap --top-ports 10 192.168.1.1

23/TCPポートが開いていることを示しています。

しかし、私が実行すると

nmap --top-ports 10 localhost

23/tcpポートが閉じていることを示しています。

それらのどれが本当ですか?システム全体でこのポートを閉じたいのですが、どうすればよいですか?

承認された回答:

Nmapは優れたポートスキャナーですが、より信頼できるものが必要な場合もあります。 netstat を使用して、どのプロセスがどのポートを開いているかをカーネルに問い合わせることができます。 ユーティリティ:

[email protected]:~$ sudo netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address   Foreign Address   State    PID/Program name
tcp        0      0 127.0.0.1:53    0.0.0.0:*         LISTEN   1004/dnsmasq    
tcp        0      0 0.0.0.0:22      0.0.0.0:*         LISTEN   380/sshd        
tcp        0      0 127.0.0.1:631   0.0.0.0:*         LISTEN   822/cupsd       
tcp6       0      0 :::22           :::*              LISTEN   380/sshd        
tcp6       0      0 ::1:631         :::*              LISTEN   822/cupsd       

私が与えたオプションは次のとおりです:

  • -t TCPのみ
  • -l <​​/ code> リスニングポートのみ
  • -n サービス名やホスト名を検索するのではなく、番号を表示するだけです
  • -p プロセス情報を表示する(root権限が必要)

この場合、 sshdであることがわかります。 任意のインターフェースでリッスンしています( 0.0.0.0 )ポート22、および cupsd ループバックをリッスンしています( 127.0.0.1 )ポート631。出力に telnetdと表示される場合があります。 192.168.1.1:23のローカルアドレスがあります 、つまり、ループバックアダプタの接続に応答しません(たとえば、 telnet 127.0.0.1 はできません) 。

同様の情報を表示する他のツールがあります(例: lsof または/proc )が、netstatが最も広く利用可能です。 Windowsでも動作します( netstat -anb )。 BSD netstatは少し異なります。代わりに、sockstat(1)を使用してプロセス情報を取得する必要があります。

プロセスIDとプログラム名を取得したら、ポートを閉じたい場合は、プロセスを見つけて強制終了することができます。よりきめ細かい制御のために、ファイアウォール(Linuxではiptables)を使用して、特定のアドレスのみへのアクセスを制限できます。サービスの起動を無効にする必要がある場合があります。 LinuxでPIDが「-」の場合、それはおそらくカーネルプロセス(これはたとえばNFSで一般的です)なので、それが何であるかを見つけて頑張ってください。

注:ネットワークの状態やファイアウォールに邪魔されていないため、「信頼できる」と言いました。コンピューターを信頼するなら、それは素晴らしいことです。ただし、ハッキングされた疑いがある場合は、コンピュータ上のツールを信頼できない可能性があります。標準のユーティリティ(場合によってはシステムコール)を特定のプロセスまたはポートを非表示にするユーティリティ(ルートキット)に置き換えることは、攻撃者の標準的な方法です。この時点での最善の策は、ディスクのフォレンジックコピーを作成し、バックアップから復元することです。次に、コピーを使用して、彼らがどのように侵入したかを判断し、それを閉じます。

関連:LinuxまたはMacでAVR Ravenをプログラムする方法は?
Linux
  1. LinuxでBusyBoxを使用する方法

  2. LinuxにPythonをインストールする方法

  3. LinuxにJavaをインストールする方法

  1. Linuxでcronを使用する方法

  2. Linuxでディスクをパーティション分割する方法

  3. Linuxで開いているすべてのポートのリストを見つける方法

  1. Linuxを3つのステップでインストールする方法

  2. Linuxでファイルを移動する方法

  3. Linux/Unix サーバーで開いているポートを一覧表示する方法