前回の記事で、個人用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 *:bootpcnetstatのオプションは、多くの場合直感的です。たとえば、プロセス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
を実行したら コマンドを実行すると、アクティブに使用しているサービスのみがネットワークでリッスンしていることを確認することで、システムを保護するための手順を実行できます。
- 一般的に悪用されるポートとサービスを認識します。原則として、実際には使用していないポートを閉じてください。
- 一般的でないポート番号に注意し、システムで使用されている正当なポートを認識する方法を学びます。
- 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などのスニファーを使用してスケジュールされたタスクを実行できます。
サーバーには大量の個人データが格納されるため、個人サーバーのセキュリティを確保することがますます重要になっています。サーバーがインターネットに接続する方法を理解することで、デジタル時代の接続性の向上から利益を得ながら、マシンの脆弱性を減らすことができます。