Linux でネットワーク パフォーマンス、セキュリティ、トラブルシューティングを監査する方法 - パート 12
コンピュータ ネットワークの健全な分析は、タスクを実行するために利用可能なツールは何か、各ステップで適切なツールを選択する方法、そして最後にどこから始めるべきかを理解することから始まります。
これは LFCE (Linux Foundation Certified Engineer) シリーズの最後の部分です。ここでは、ネットワークのパフォーマンスを調べてセキュリティを強化するためのいくつかのよく知られたツールを確認します。 、期待通りに物事が進まない場合の対処法。
Linux Foundation 認定プログラムの紹介
このリストは包括的なものではないことに注意してください。そのため、不足している可能性のある別の便利なユーティリティを追加したい場合は、下部にあるフォームを使用してこの投稿にコメントしてください。
どのようなサービスが実行されているのか、またその理由は何ですか?
システム管理者が各システムについて最初に知っておく必要があることの 1 つは、どのようなサービスが実行されているのか、またその理由は次のとおりです。この情報を活用して、厳密には必要のないサーバーをすべて無効にし、同じ物理マシン内で多数のサーバーをホストしないようにするのは賢明な決定です。
たとえば、ネットワークでFTP サーバーが必要ない場合は、FTP サーバーを無効にする必要があります (ちなみに、ネットワーク上でファイルを共有するためのより安全な方法があります)。さらに、Web サーバーとデータベース サーバーを同じシステム内に配置することは避けてください。 1 つのコンポーネントが侵害されると、残りのコンポーネントも侵害されるリスクがあります。
ss を使用したソケット接続の調査
ss はソケット統計をダンプするために使用され、netstat と同様の情報を表示しますが、他のツールよりも多くの TCP および状態情報を表示できます。さらに、廃止された netstat の代替として、man netstat にリストされています。
ただし、この記事では、ネットワーク セキュリティに関連する情報のみに焦点を当てます。
例 1: サーバー上で開いているすべての TCP ポート (ソケット) を表示する
デフォルトのポート (つまり、http は 80、mysql は 3306) で実行されているすべてのサービスは、それぞれの名前で示されます。その他 (プライバシー上の理由からここでは隠されています) は数値形式で示されています。
ss -t -a
最初の列はTCP の状態を示し、2 番目と 3 番目の列は現在受信と送信のためにキューに入れられているデータの量を表示します。 4 番目と 5 番目の列には、各接続の送信元ソケットと宛先ソケットが表示されます。
余談ですが、(D)DoS 攻撃を認識するには、開いている TCP 接続の数と状態も確認する必要があるため、RFC 793 を確認して、考えられる TCP 状態について記憶を更新するとよいでしょう。
例 2: すべてのアクティブな TCP 接続とそのタイマーの表示
ss -t -o
上記の出力では、2 つの SSH 接続が確立されていることがわかります。 timer: の 2 番目のフィールドの値に注目すると、最初の接続の値が 36 分であることがわかります。これは、次のキープアライブ プローブが送信されるまでの時間です。
これは維持されている接続であるため、非アクティブな接続であると想定して問題なく、PID を見つけた後にプロセスを強制終了できます。
2 番目の接続については、現在使用中であることがわかります (オンで示されます)。
例 3: ソケットによる接続のフィルタリング
TCP 接続をソケットごとにフィルタリングするとします。サーバーの観点からは、送信元ポートが 80 である接続を確認する必要があります。
ss -tn sport = :80
その結果..
NMAP によるポート スキャンからの保護
ポート スキャンは、ネットワーク上のアクティブなホストと開いているポートを識別するためにクラッカーによって使用される一般的な手法です。脆弱性が発見されると、システムにアクセスするために悪用されます。
賢明なシステム管理者は、自分のシステムが部外者からどのように見られているかを確認し、頻繁に監査することで何もかもが放置されていないことを確認する必要があります。それは「防御ポートスキャン」と呼ばれます。
例 4: 開いているポートに関する情報の表示
次のコマンドを使用して、システムまたはリモート ホストで開いているポートをスキャンできます。
nmap -A -sS [IP address or hostname]
上記のコマンドは、OS と バージョン の検出、ポート情報、およびtraceroute (-A) についてホストをスキャンします。最後に、-sS は TCP SYN スキャンを送信し、nmap が 3 ウェイ TCP ハンドシェイクを完了できないようにするため、通常はターゲット マシンにログが残りません。
次の例に進む前に、ポート スキャンは違法な行為ではないことに留意してください。違法なのは、結果を悪意のある目的に使用することです。
たとえば、地元の大学のメイン サーバーに対して実行された上記のコマンドの出力は、次の結果を返します (簡潔にするために、結果の一部のみを示しています)。
ご覧のとおり、この地元の大学のシステム管理者に報告する必要があるいくつかの異常を発見しました。
この特定のポート スキャン操作では、次のような他のコマンドでも取得できるすべての情報が提供されます。
例 5: ローカルまたはリモート システムの特定のポートに関する情報を表示する
nmap -p [port] [hostname or address]
例 6: サービスのバージョンと OS タイプ、ホスト名へのtraceroute を表示し、確認する
nmap -A [hostname or address]
例 7: 複数のポートまたはホストを同時にスキャンする
次のように、複数のポート (範囲) またはサブネットをスキャンすることもできます。
nmap -p 21,22,80 192.168.0.0/24
注: 上記のコマンドは、そのネットワーク セグメント内のすべてのホストのポート 21、22、および 80 をスキャンします。
他のタイプのポート スキャンを実行する方法の詳細については、マニュアル ページを確認してください。 Nmap は確かに非常に強力で多用途のネットワーク マッパー ユーティリティであり、部外者による悪意のあるポート スキャン後に発生した攻撃から担当システムを守るためには、Nmap についてよく理解しておく必要があります。