既存のLinuxサーバーを管理する必要がある場合、それが安全かどうかを確認する最良の方法は何ですか?


9

安全なサーバーを新しくセットアップする方法については、多くのチュートリアルがあります。

しかし、誰かが以前にセットアップしたサーバーを管理する必要があり、その構成についてまだよく知らない場合はどうなりますか?

「通常の容疑者」を自動的にチェックするツールや、明らかなセキュリティホールが存在しないことを確認するために実行できるチェックリストはありますか?脆弱性をリモートでチェックするWebサービスはありますか?

回答:


13

Nessusをダウンロードして、ネットワークチェックを実行します。リモートで悪用可能な脆弱性について説明します。

また、Ossecをインストールします。それはその主な目的ではありませんが、いくつかの一般的な誤構成(不適切に構成されたアカウントなど)を見つけます。そして、その主要な機能であるホストベースの侵入検知は、誰かが脆弱性を悪用しようとしているかどうかを見つけるのに役立ちます。


5
Nessusはもはやオープンソースではありません。そのオープンソースのフォークはopenvasと呼ばれています。
匿名

1
知っている。しかし、それはまだビールとして自由なIIRCであり、ポスターは彼がF / OSSだけを望んでいると決して言っていません。
niXar 2009

+1 Nessusは非常に優れています。Nmapスキャンを実行して結果をNessusにロードすると、場合によってはさらにいくつかの脆弱性を見つけるのに役立つことがあります。
Mark Davidson、

1
OSSECの場合は+1。また、スタンドアロンで実行できるルートキット/システム監査モジュールもあります:ossec.net/rootcheck
sucuri

5

Center for Internet Securityの「ベンチマーク」チェックリストから始めます。これらは、さまざまなプラットフォームおよびソフトウェアパッケージ用にセキュリティ専門家がまとめたコンセンサスベースのチェックリストです。チェックリストに記載されている、またはセキュリティの問題を探すのに役立つ一般的に推奨されているいくつかのツール:

  • Nessus / OpenVAS(脆弱性スキャナー)
  • Nmap(ポートスキャナー)
  • TCPdump / Wireshark(libpcapパケットキャプチャ)
  • SNORT(侵入検知システム)

(tcpdumpは多くのLinuxシステムにデフォルトでインストールされているか、パッケージリポジトリから簡単にインストールでき、包括的なmanページがあります)

これが対象の会社に当てはまる場合は、セキュリティ分析が管理者によって承認されていること、およびスキャンによって停止やアプリケーションの問題が発生しないことを確認してください。はい、単純なポートスキャンは問題を引き起こす可能性があります-古いHP Laserjetプリンターをポートスキャンすると、大量の用紙が排出されます。


4

非常に迅速な最初のチェックとして:

走る

netstat -ltnp

ルートとして。これにより、ネットワークでリッスンしているすべてのサービスが表示されます。

これにより、すぐにシャットダウンしたいものが表示される場合があります。次に、他の回答の解決策を続行できます。

実行する必要があるが外部からアクセスできないサービス(ローカルDBサーバーなど)の場合は、localhost / 127.0.0.1でのみリッスンするように構成を変更することを検討してください。これにより、ローカルユーザーのみがアクセスできます。


4

私はhttp://www.bastille-unix.org/でBastille-Linuxをチェックアウトします。これは、実行可能なスクリプトのセットであり、システム設定、ファイルのアクセス許可、ユーザー設定などをチェックします。私自身のボックスで1回または2回、デフォルトのインストールで問題が見つかった場合(主にrsh / rsync utilsでr_x)。html / java + curses / flatテキストとして出力します。


3

どんなディストリビューション?

一般:

  • iptablesやファイアウォール設定を確認する
  • SSHD構成を確認する
  • 外部からアクセス可能なすべてのサービス構成を確認する
  • 利用可能な最新のソフトウェアを実行していることを確認します
  • カーネルの脆弱性をチェックします(uname -a、次にgoogle)
  • 編集可能なファイルのユーザー権限とグループ権限を確認する

特別配布なし/すべての配布
Daniel Rikowski、2009

また、インストールされているパッケージのリストを取得することもできます。Debianディストリビューション用のdpkg --get-selections> installed_pkgs.txtのようなもの。
David Rickman、

2
また、簡単なバックドアをなくすために、異常なsetuid / setgidファイル、パスワードが設定されているアカウント、ログインシェルの内容などを確認する必要がある場合もあります。
MAS

素晴らしい提案です、私はそれを完全に忘れました。それは潜在的に巨大な穴です。
David Rickman、

3

もう1つの適切な最初のチェックは、ネットワーク上の別のホストからnmapホスト名を実行することです。これにより、netstatがホスト上で示した内容を部外者が見ることができます。


3

あなたが心配しているなら、私はあなたが言及したそれらのチュートリアルに従ってサーバーを再構築することをお勧めします。特に、他の管理者が何か悪いものを残したと思う場合。新しい管理者は、とにかく再実行するサービスをデプロイする方法を知っている必要があります。

すべてを最初にバックアップすることを確認してください。すべてのパーティションをイメージ化して、本当に正しく機能することを確認できます。

あなたの上司があなたを許さないならば、それから他の誰もが私に良い音を出します:-)


+1:作成/構成が文書化されておらず、時間がある場合は、機会にそれを再構築してください。後日、強要してやる必要はありません。次に、それが安全であり、将来の参照用に文書化されることを確認できます。
ダンカーリー

2

ここで非常に良い応答のいくつかに加えて、http://www.sans.org/をチェックしてください。「徹底的な防御」をよりよく理解するために少し読んでも構わないと思っている場合は、非常に優れたドキュメントがいくつかあります。

非常に基本的な前提のいくつか:

  • サーバーにパッチを適用し続ける
  • 実行する必要があるサービスのみを実行する
  • サーバーへのユーザーアクセスを制限する

1
ネットワークからだけでなく、物理的なアクセスも制限することを忘れないでください。
iny 2009

1

また、chkrootkitも試してください。ほとんどのディストリビューションの標準リポジトリに含まれており、インストールは非常に簡単です。多くの既知の脆弱性、ルートキット、ワームについてシステムをチェックします。


1

あなたはシステムの感触を得るために何ができることの一つは、差分インストール/ etcフォルダ新鮮に対する(同じアップデートが適用されて。)これは、あなたがそこにあなたのセキュリティ上の問題を集中できるように変更された何を教えてくれます。


1

何を言ったかを詳しく説明するために、システム上のすべてのsetuidファイルとsetgidファイルを確認のために一覧表示する簡単なfindコマンドを次に示します。

find / -type f \( -perm -4000 -o -perm -2000 \) -print

もちろん、他の人が言ったように、これはすべてマシンにルートキットがまだないことを前提としています...


1

Chrootkit / rkhunterは、長くぶら下がっている果物です。ルートキットがインストールされている場合、報告されたすべての内容が危険にさらされるため、あまり役に立ちません。既知のソースからダウンロードしてください。ボックスにあるものは使用しないでください。別の良いトリックは、あなたが知っているカーネルをインストールすることです(パッケージから、または自分でロールする)。バックドアをチェックします(lsof -iおよび0 uid非rootアカウント)。ファイアウォールルールを検査すると、通常、以前の管理者の習慣について多くのことがわかります。それにwireshark / snortを置き、異常なものを見つけてみてください。ログの場所を確認します。異常なコマンドがないか、すべての.profile / .bashrcファイルを確認してください。.ssh / known_hostsで危険なホストを探します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.