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

Linuxサーバーのネットワーク接続をnetstatで表示する

前回の記事で、個人用Linuxサーバーの管理に役立ついくつかの重要な最初のステップを共有しました。リスニングポートのネットワーク接続の監視について簡単に説明しましたが、 netstatを使用してこれを拡張したいと思います。 Linuxシステム用のコマンド。

サービスの監視とポートスキャンは、業界の標準的な慣行です。プロセスの自動化に役立つPrometheusや、システムアクセスのコンテキスト化と保護に役立つSELinuxなどの非常に優れたソフトウェアがあります。ただし、サーバーが他のネットワークやデバイスに接続する方法を理解することは、サーバーの正常な状態のベースラインを確立するための鍵であり、バグや侵入を示唆する可能性のある異常を認識するのに役立つと思います。初心者として、私は netstat コマンドは、監視とネットワークのトラブルシューティングの両方のために、サーバーに関する重要な洞察を提供します。

net-toolsパッケージにグループ化されたNetstatおよび同様のネットワーク監視ツールは、アクティブなネットワーク接続に関する情報を表示します。開いているポートで実行されているサービスは悪用されやすいことが多いため、定期的なネットワークモニタリングを実施すると、疑わしいアクティビティを早期に検出するのに役立ちます。

netstatをインストール

Netstatは、Linuxディストリビューションにプリインストールされることがよくあります。 netstatがサーバーにインストールされていない場合は、パッケージマネージャーを使用してインストールしてください。 Debianベースのシステムの場合:

  $ sudo apt-get install net-tools  

Fedoraベースのシステムの場合:

  $ dnf install net-tools  

netstatを使用する

それ自体で、 netstat コマンドは、確立されたすべての接続を表示します。 netstatを使用できます 上記のオプションを使用して、目的の出力をさらに指定します。たとえば、すべてのリスニング接続と非リスニング接続を表示するには、-allを使用します (- 略して)オプション。これは多くの結果を返すので、この例では出力を headにパイプします 出力の最初の15行だけを表示するには:

 $ netstat --all | head -n 15 
アクティブなインターネット接続(サーバーおよび確立済み)
ProtoRecv-QSend-Qローカルアドレス外部アドレス
tcp 0 *:27036 /> TCP 0 0はlocalhost:27060 *:* LISTEN
TCP 0 0 *:16001 *:* LISTEN
TCP 0 0はlocalhost:6463 *:* LISTEN
TCP 0 0 *:SSH *: * LISTEN
TCP 0 0はlocalhost:57343 *:* LISTEN
TCP 0 0 *:IPP *:* LISTEN
TCP 0 0 *:4713 *:* LISTEN
TCP 0 0 10.0.1.222:48388 syd15s17-in-f5.1e:https ESTABLISHED
tcp 0 0 10.0.1.222:48194 ec2-35-86-38-2.us:http s ESTABLISHED
tcp 0 0 10.0.1.222:56075 103-10-125-164.va:27024 ESTABLISHED
tcp 0 10.0.1.222:46680 E /> tcp 0 0 10.0.1.222:52730 syd09s23-in-f3.1e:https ESTABLISHED

TCPポートのみを表示するには、-allを使用します および--tcp オプション、または -at 略して:

 $ netstat -at | head -n 5 
アクティブなインターネット接続(サーバーおよび確立済み)
ProtoRecv-QSend-Qローカルアドレス外部アドレス状態
tcp 0 0 *:27036 *:* tcp 0 0 *:16001 *:* UDPポートのみを表示するには、-allを使用します および--udp オプション、または -au 略して:

 $ netstat -au | head -n 5 
アクティブなインターネット接続(サーバーおよび確立済み)
ProtoRecv-QSend-Qローカルアドレス外部アドレス
udp 0 *:27036 p *:* <0 0 10.0.1.222:44741 224.0.0.56:46164 ESTABLISHED
udp 0 0 *:bootpc

netstatのオプションは、多くの場合直感的です。たとえば、プロセスID(PID)と数値アドレスを持つすべてのリスニングTCPおよびUDPポートを表示するには:

 $ sudo netstat --tcp --udp --listening --programs --numeric 
アクティブなインターネット接続(サーバーのみ)
ProtoRecv-QSend-QローカルアドレスForeignAddrState PID /プログラム名
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1 / systemd
tcp * s 0 0/50 /> 0 192.168.12 2.1 0 0.0.0.0:22 0.0.0.0:* LISTEN 1726 / sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* 0 0.0:* 4023 / SSHDを聴く:タックス@
にtcp6 0 :::111 :::* 1 / systemdに
にtcp6 0 LISTEN :::22 :::* 1726 / sshdの
tcp6 0 0 ::1:631 :::* LISTEN 1721 / cupsd
tcp6 * s * s 0 ::1:6010 0 0 0.0.0.0:40514 0.0.0.0:* 1499 / avahi-daemon:
udp 0 0 192.168.122.1:53 0.0.0.0:* 0 /> 0.0 dn <2500 / 0.0.0.0:* 2500 / DNSMASQ
UDP 0 0.0.0.0:111 0.0.0.0:* 1 / systemdに
UDP 0 0.0.0.0:5353 0.0.0.0:* 1499 /のavahiデーモン:
UDP6 0 :::111 :::* 1 / systemdに
UDP6 0 :::44235 :::* 1499 /のavahi-デーモン:
UDP6 0 :::5353 :::* 1499 / avahi-daemon:

この一般的な組み合わせの短いバージョンは、 -tulpnです。 。

特定のサービスに関する情報を表示するには、 grepでフィルタリングします :

 $ sudo netstat -anlp | grepのカップ
TCP 0 127.0.0.1:631 0.0.0.0:* LISTEN 1721 /のcupsdにtcp6 0 ::1:631 :::* LISTEN 1721 / cupsdの
UNIX 2 [ACC] STREAM聴取27251 1 / systemd /var/run/cups/cups.sock
unix 2 [] DGRAM DGRAM 59530 s靴下

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

次のステップ

netstatを実行したら コマンドを実行すると、アクティブに使用しているサービスのみがネットワークでリッスンしていることを確認することで、システムを保護するための手順を実行できます。

  1. 一般的に悪用されるポートとサービスを認識します。原則として、実際には使用していないポートを閉じてください。
  2. 一般的でないポート番号に注意し、システムで使用されている正当なポートを認識する方法を学びます。
  3. SELinuxエラーに細心の注意を払ってください。システムに加えた正当な変更に一致するようにコンテキストを更新するだけでよい場合もありますが、エラーを読んで、SELinuxが疑わしいアクティビティや悪意のあるアクティビティについて警告していないことを確認してください。

ポートが疑わしいサービスを実行していることがわかった場合、または単に使用しなくなったポートを閉じたい場合は、次の手順に従ってファイアウォールルールを介してポートアクセスを手動で拒否できます。

Firewall-cmdを使用している場合 、次のコマンドを実行します:

 $ sudo Firewall-cmd –remove-port=<ポート番号>/tcp 
$ sudo Firewall-cmd –runtime-to-permanent

UFWを使用している場合は、次のコマンドを実行します。

  $ sudo ufwdeny<ポート番号> 

次に、 systemctlを使用してサービス自体を停止します :

  $ systemctl stop   

netstatを学ぶ

Netstatは、サーバーのネットワーク接続に関する情報をすばやく収集するための便利なツールです。定期的なネットワーク監視は、システムを理解する上で重要な部分であり、システムを安全に保つのに役立ちます。この手順を管理ルーチンに組み込むには、netstatやssなどのネットワーク監視ツールや、NmapなどのオープンソースポートスキャナーやWiresharkなどのスニファーを使用してスケジュールされたタスクを実行できます。

サーバーには大量の個人データが格納されるため、個人サーバーのセキュリティを確保することがますます重要になっています。サーバーがインターネットに接続する方法を理解することで、デジタル時代の接続性の向上から利益を得ながら、マシンの脆弱性を減らすことができます。


Linux
  1. tcpdumpを使用してネットワークのトラブルシューティングを行う

  2. Linuxサーバー時間をネットワークタイムサーバーと同期する

  3. LinuxサーバーにDockerを使用してNextcloudをインストールする方法

  1. Linuxサーバーを保護するための6つの必須のオープンソースツール

  2. Linuxサーバーのネットワーク接続を確認してください

  3. Linuxでのネットワーク接続の確認

  1. LinuxでNetworkManagerを使い始める

  2. LynisでLinuxセキュリティをスキャンする

  3. KaliLinuxでFluxionを使用してネットワークの邪悪なツインを作成する