Linuxでネットワークのパフォーマンス、セキュリティ、およびトラブルシューティングを監査する方法 – パート12

A sound analysis of a computer network begins by understanding what are the available tools to perform the task, how to pick the right one(s) for each step of the way, and last but not least, where to begin.

これはLFCELinux Foundation Certified Engineer)シリーズの最後の部分で、ネットワークのパフォーマンスを調査しセキュリティを向上させるためのいくつかのよく知られたツールを見直し、予期しないことが起こった場合の対処方法について検討します。

Linux Foundation Certified Engineer – Part 12
Linux Foundation 認定プログラムの紹介

このリストは包括的であることを意図していませんので、もし見逃している便利なユーティリティを追加したい場合は、この投稿にコメントしてください。

実行中のサービスとその理由は何ですか?

システム管理者が各システムについて知る必要がある最初のことの1つは、実行中のサービスとその理由です。その情報を手に入れたら、厳密に必要なもの以外はすべて無効にし、同じ物理マシンに多くのサーバーをホストしないことが賢明です。

たとえば、ネットワークが必要としない場合はFTPサーバーを無効にする必要があります(ところで、ネットワーク上でファイルを共有するより安全な方法があります)。さらに、Webサーバーとデータベースサーバーを同じシステムに配置することを避けるべきです。1つのコンポーネントが侵害されると、他のコンポーネントも侵害されるリスクがあります。

ssを使用してソケット接続を調査する

ssはソケットの統計情報をダンプし、他のツールよりもTCPおよび状態情報を表示できます。さらに、古くなったnetstatの代わりとして、man netstatにリストされています。

ただし、この記事ではネットワークセキュリティに関連する情報に焦点を当てます。

例1:サーバー上で開いているすべてのTCPポート(ソケット)を表示する

デフォルトポートで実行されているすべてのサービス(つまり、httpは80、mysqlは3306)は、それぞれの名前で示されます。その他のサービス(ここではプライバシーの理由で非表示)は、数値形式で表示されます。

# ss -t -a
Check All Open TCP Ports

最初の列は状態を示し、2番目と3番目の列は現在受信および送信用にキューイングされているデータ量を表示します。4番目と5番目の列は、各接続のソースおよび宛先ソケットを示します。
余談ですが、(D)DoS攻撃に気付くために、オープンなTCP接続の数と状態を確認する必要があるため、可能なTCP状態についての記憶をリフレッシュするためにRFC 793をチェックすることをお勧めします。

例2:タイマー付きのすべてのアクティブなTCP接続を表示する
# ss -t -o
Check all Active Connections

上記の出力では、確立されたSSH接続が2つあることがわかります。 タイマーの2番目のフィールドの値に注目すると、最初の接続で36分という値が表示されます。これは、次のキープアライブプローブが送信されるまでの時間です。

接続が維持されている接続であるため、これは非アクティブな接続であると安全に仮定し、そのを見つけた後にプロセスを終了できます。

Kill Active Process

2番目の接続については、現在使用中であることがわかります(onと表示されているため)。

例3:ソケットによる接続のフィルタリング

ソケットごとにTCP接続をフィルタリングしたいとします。サーバーの観点からは、ソースポートが80である接続をチェックする必要があります。

# ss -tn sport = :80

結果は..

Filter Connections by Socket

NMAPによるポートスキャンからの保護

ポートスキャンは、ネットワーク上のアクティブなホストやオープンポートを特定するためにクラッカーによって使用される一般的な手法です。脆弱性が発見されると、システムにアクセスするために悪用されます。

A wise sysadmin needs to check how his or her systems are seen by outsiders, and make sure nothing is left to chance by auditing them frequently. That is called “defensive port scanning”.

例4:オープンポートに関する情報の表示

次のコマンドを使用して、システムまたはリモートホスト上でオープンポートをスキャンできます:

# nmap -A -sS [IP address or hostname]

上記のコマンドは、ホストをOSおよびバージョンの検出、ポート情報、およびトレースルートのスキャン(-A)にスキャンします。最後に、-sSは、TCP SYNスキャンを送信し、nmapが3ウェイのTCPハンドシェイクを完了することを防ぎ、したがって通常はターゲットマシンにログを残しません。

次の例に進む前に、ポートスキャンは違法行為ではありません。違法なのはその結果を悪用することです。

たとえば、地元の大学のメインサーバーに対して上記のコマンドを実行した場合、次のような結果が返されます(簡潔さのために結果の一部のみを表示):

Check Open Ports

ご覧の通り、この地元の大学のシステム管理者に報告すべきいくつかの異常を発見しました。

この特定のポートスキャン操作は、他のコマンドでも取得できるすべての情報を提供します。

次のテキストを日本語に翻訳します:

例5:ローカルまたはリモートシステムの特定のポートに関する情報を表示する

# nmap -p [port] [hostname or address]
例6:トレースルートを表示し、サービスおよびOSタイプ、ホスト名のバージョンを調べる
# nmap -A [hostname or address]
例7:複数のポートまたはホストを同時にスキャンする

次のように、複数のポート(範囲)またはサブネットをスキャンすることもできます:

# nmap -p 21,22,80 192.168.0.0/24 

注意:上記のコマンドは、そのネットワークセグメント内のすべてのホストでポート21、22、および80をスキャンします。

他の種類のポートスキャンを実行する方法の詳細については、manページを確認できます。Nmapは確かに非常に強力で多目的なネットワークマッパーユーティリティであり、外部からの悪意のあるポートスキャンによる攻撃に対して責任を持つシステムを守るために、それに非常に精通している必要があります。

Source:
https://www.tecmint.com/audit-network-performance-security-and-troubleshooting-in-linux/