ja:documentation:pandorafms:technical_annexes:15_security_architecture

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ja:documentation:pandorafms:technical_annexes:15_security_architecture [2024/08/21 06:32] – [Apache web サーバの保護] junichija:documentation:pandorafms:technical_annexes:15_security_architecture [2024/10/12 08:01] (現在) – [概要] junichi
行 9: 行 9:
 ===== 概要 ===== ===== 概要 =====
  
-The security elements of each component of **Pandora FMS** are described, according to regulations such as PCI/DSS, ISO 27001, ENS, LOPD and similar.+The security elements of each **Pandora FMS** component are described, according to regulations such as PCI/DSS, ISO 27001, ENS, LOPD and similar.
  
 **Pandora FMS** の各コンポーネントのセキュリティ要素を、PCI/DSS、ISO 27001、ENS、LOPD などの規制に従って説明しています。 **Pandora FMS** の各コンポーネントのセキュリティ要素を、PCI/DSS、ISO 27001、ENS、LOPD などの規制に従って説明しています。
行 545: 行 545:
 <wrap #ks4_8 /> <wrap #ks4_8 />
  
-==== システムサビスの最小化 ====+==== PHP アプリケションエンジン ====
  
-This techniquewhich can be very exhaustivesimply consists of eliminating everything that is not necessary in the system. This way we avoid possible problems in the future with misconfigured applications that we do not really needTo simplify the approach to this practice, we will consider only those applications that have an open port on the machine, for this, we will run the following command:+To secure the application engine on which Pandora FMS runsit may be necessary, in some particularly security-sensitive environments, to secure access to the application so that session //cookies// are only transmitted with SSL.
  
-この手法は非常に網羅的であり、システムに不要なものをすべて排除するだけです。 このようにして、際には必要のない、誤って設定されアプリケーションで将来発生する可能性のある問題回避します。 この方法へのアプローチを単純化するために、シン上にポトを開いて待ち受けているアプリケーションの対象としまのため、次のコマンドを実行します。+Pandora FMS がされアプリケーションエンジン保護するために、特にセキュリティが重要な環境では、セッン //クッキ// が SSL でのみ送信されようにアプリケーションアクセス保護とが必要なる場合があります。
  
-<code> +<WRAP center round important 90%>
-netstat -tulpn+
  
-</code>+This will cause the application to not work when used over HTTP (without encryption).
  
-It should return a result for each listening port, something similar to this, but not the same:+</WRAP>
  
-次のように、リスニングポートごとに結果が返されます。ただし、環境によって異なります。+<WRAP center round important 90%>
  
-<code> +これにより、HTTP (暗号化なし) 経由で使用した場合にアプリケーションが動作しなくなります。
-Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name +
-tcp        0      0 127.0.0.1:25            0.0.0.0:              LISTEN      996/master +
-tcp        0      0 0.0.0.0:443             0.0.0.0:              LISTEN      75171/httpd +
-tcp        0      0 0.0.0.0:31122           0.0.0.0:              LISTEN      872/sshd +
-tcp        0      0 127.0.0.1:3306          0.0.0.0:              LISTEN      75097/mysqld +
-tcp        0      0 0.0.0.0:80              0.0.0.0:              LISTEN      75171/httpd +
-tcp        0      0 0.0.0.0:6099            0.0.0.0:              LISTEN      7721/Xvfb +
-tcp6            0 :::4444                 :::                   LISTEN      7726/java +
-tcp6            0 :::34599                :::*                    LISTEN      7726/java +
-tcp6            0 :::6099                 :::                   LISTEN      7721/Xvfb+
  
-</code>+</WRAP>
  
-If we have disabled IPv6 we should not see tcp6 lines unless they are services that were started in ipv6 mode and have been left without restarting after making a change in the system with sysctl.+To do this, the following configuration tokens must be included in the ''php.ini'' file:
  
-IPv6 無効した場合tcp6 行は、sysctl 使用してシステム変更をえた後、再起動せずに残されたサービスでない限、表示されないはずです。+これ行う設定を ''php.ini'' ファイルする必要があす。
  
-We should investigate each port and know the application behind itIn this case, 443, 80 seems to be from the ''http'' service, but to be sure we will analyze which system processes are using each port. To do this we will use the **lsof** command, which will have to be installed with **yum** because it is not installed by default.+<code> 
 +session.cookie_httponly = 1 
 +session.cookie_secure = 1
  
-各ポートを調査し、その背後にあるアプリケーションを知る必要があります。 この場合、443、80 は ''http'' サービスからのもののようですが、どのシステムプロセスが各ポートを使用しているかを確実に分析します。 これを行うには、**lsof** コマンドを使用します。これは、デフォルトではインストールされないため、**yum** とともにインストールする必要があります。+</code>
  
-Those services that listen on **localhost** (''127.0.0.1'') are more secure than those that listen to all IP addresses (''0.0.0.0'') and some of them, if they are listening in open, we should try to secure them to listen only to localhost. In this example screen it has been done for example for MySQL (''3306'').+<wrap #ks4_9 />
  
-**localhost** ('' 127.0.0.1'') でリッンするサービスは、すべての IP アドレス (''0.0.0.0'') および一部のサービス(オープンでリッスンしている場合)をリッスンするサービスよりも安全です。 、ローカルホストのみをリッスンするようにセキュリティで保護する必要があります。 こ画面例では、たとえば MySQL('' 3306'')に対して実行されています。+==== シテムサービスの最小化 ====
  
-For examplewe see that the main **postfix** process is runningAs we do not need this servicewe uninstall it from the system:+This techniquewhich can be very thorough, consists of removing everything unnecessary on the systemThis avoids possible problems in the future with misconfigured applications that are not really needed. To simplify the approach to this practiceconsider only those applications that have an open port on the machine, for this run''netstat -tulpn''.
  
-たとえば、メインの **postfix** プロセが実行されことがわかります。 このサービスは必要ないため、システムからアインストーします。+手法は非常に網羅的であり、シテムに不要なものをすべ排除すだけです。 このようにして、実際には必要ない、誤って設定されたアプリケーションで将来発生する可能性のある問題を回避します。 この方法へのアプローチを単純化するためシン上にポーを開いて待ち受けているアプリケションのみを対象とします。このために、''netstat -tulpn'' を実行します。
  
-<code> +Each port should be investigated and the application behind it should be known. To do this you can use the **lsof** command, which must be installed with **dnf** or **apt**.
-yum remove postfix+
  
-</code>+各ポートを調査し、その背後にあるアプリケーションを把握する必要があります。これを行うには、**dnf** または **apt** でインストールできる **lsof** コマンドを使用できます。
  
-By investigating the PID of each of the processes in doubt (see previous stepwe will see the process that is on that port:+Those services listening on **localhost** (''127.0.0.1''are more secure than those listening to all IP addresses (''0.0.0.0.0'') and some of them, if they are listening on open port, you should try to correct them to listen only to **localhost**.
  
-疑わし各プロセの PID を調査ることにより(前述のステップを参照)、そのポートにあプロセを確認します。+**localhost** (''127.0.0.1'') で待ち受けてるサービは、べての IP アドレス (''0.0.0.0.0''で待ち受けているサービスよりも安全です。また開いているポートで待ち受けていサービがある場合は、**localhost** のみで待ち受けるように修正する必要があります。
  
-<code> +By means of the Pandora FMS process inventory system, it should be verified that no new processes are started over time.
-ps aux | grep 7726 root 7726 0.1 8.5 3258724 248608 ? Sl Mar09 60:01 /usr/bin/java -jar /usr/lib/pwr/selenium-server-standalone-2.53.1.jar -host 185.247.117.28 -port 4444 -firefoxProfileTemplate /opt/firefox_profile root 79041 0.0 0.0 112716 960 pts/4 S+ 11:54 0:00 grep --color=auto 7726+
  
-</code>+Pandora FMS プロセスインベントリシステムを使用して、時間の経過とともに新しいプロセスが開始されていないことを確認します。
  
-And if we are not using that service, we can remove it.+<wrap #ks5 />
  
-また、そのサービスを使用していない場合は、削除できます。+===== 追加設定 =====
  
-This process of "investigation" of processes must be exhaustive and repetitive over time. By means of the Pandora FMS process inventory system, we should verify that no new processes are started along the time. A listening port in a server is something very significant from the security point of view, it would be like a window in the front of the building. We may believe that it is closed and secure, but a window will always be a possible entry point for a qualified and motivated intruder. +<wrap #ks5_1 />
- +
-プロセスの "調査" のためのこの処理は、時間をかけて徹底的かつ反復的に行う必要があります。Pandora FMS プロセスインベントリシステムを使用して、時間の経過とともに新しいプロセスが開始されていないことを確認する必要があります。 サーバの待ち受けポートは、セキュリティの観点から非常に重要なものであり、建物の正面にある窓のようなものです。 私たちはそれが閉じていて安全であると信じているかもしれませんが、窓は常に権限のある人や、やる気のある侵入者の入り口となります。 +
- +
-===== 追加設定 =====+
  
 ==== NTP 時刻同期 ==== ==== NTP 時刻同期 ====
  
-It is recommended to configure the time synchronization of the system:+It is recommended to configure system time synchronization on a RHEL system:
  
-システムの時刻同期を設定することをお勧めします。+RHEL システムの時刻同期を設定することをお勧めします。
  
-<code> +<code bash
-yum install ntpdate+dnf install ntpdate
 echo "ntpdate 0.us.pool.ntp.org"> /etc/cron.daily/ntp echo "ntpdate 0.us.pool.ntp.org"> /etc/cron.daily/ntp
 chmod 755 /etc/cron.daily/ntp chmod 755 /etc/cron.daily/ntp
  
 </code> </code>
 +
 +<wrap #ks6 />
  
 ===== ローカル監視 ===== ===== ローカル監視 =====
  
-The system should have [[:en:documentation:02_installation:01_installing#pandora_fms_agent_installation|Pandora FMS Software Agent]] installed and launched against our server. For MS Windows® operating system, from version 761 onwards, the installation executables are signed. +The system should have an [[en:documentation:pandorafms:installation:01_installing#ks2|Pandora FMS Software Agent]] installed and executed in the PFMS server. For MS Windows® operating system, from version 761 onwards, the installation executables are digitally signed.
- +
-システムには、[[:ja:documentation:02_installation:01_installing#pandora_fms_agent_installation|Pandora FMS ソフトウエアエージェント]]をインストールして起動します。MS Windows® オペレーティングシステムの場合、バージョン 761 以降、インストール実行ファイルは署名されています。+
  
-{{  :wiki:pfms-software_agent-ms_windows.png  }}+システムには、[[:ja:documentation:pandorafms:installation:01_installing#pandora_fms_エージェントインストール|Pandora FMS ソフトウエアエージェント]]をインストールして起動します。MS Windows® オペレーティングシステムの場合、バージョン 761 以降、インストール実行ファイルは署名されています。
  
 The following active checks are recommended in addition to the standard checks: The following active checks are recommended in addition to the standard checks:
行 639: 行 624:
 標準チェックに加えて、次のアクティブチェックをお勧めします。 標準チェックに加えて、次のアクティブチェックをお勧めします。
  
-  * Active security plugin.+  * Security plugin active.
   * Complete system inventory (especially users and installed packages).   * Complete system inventory (especially users and installed packages).
-  * Collection of system and security logs:+  * System log collection and security:
  
   * セキュリティプラグイン   * セキュリティプラグイン
行 648: 行 633:
  
 <code> <code>
- +module_plugin grep_log_module /var/log/messages Syslog \.\* 
- module_plugin grep_log_module /var/log/messages Syslog \.\* +module_plugin grep_log_module /var/log/secure Secure \.\*
- module_plugin grep_log_module /var/log/secure Secure \.\*+
  
 </code> </code>
行 659: 行 643:
  
   * Description.   * Description.
-  * IP address (if you have several, put all of them).+  * IP address (if you have several, enter them all).
   * Group.   * Group.
   * Department, responsible and physical location (custom fields).   * Department, responsible and physical location (custom fields).
行 667: 行 651:
   * グループ   * グループ
   * 部門、責任者および物理的な場所(カスタムフィールド)   * 部門、責任者および物理的な場所(カスタムフィールド)
 +
 +<wrap #ks7 />
  
 ===== GNU/Linux におけるセキュリティ監視 ===== ===== GNU/Linux におけるセキュリティ監視 =====
  
-The [[https://pandorafms.com/library/linux-security-plugin|official plugin]] allows to proactively monitor the security in the agent, in each execution, almost in real time, offering some checks that can alert us of some relevant events in a proactive way.+The [[https://pandorafms.com/library/linux-security-plugin|official plugin]] allows to proactively monitor security in the agent, at each execution, almost in real time, offering some checks that can alert of some relevant events.
  
 [[https://pandorafms.com/library/linux-security-plugin|公式プラグイン]]を使用すると、実行のたびに、ほぼリアルタイムでエージェントのセキュリティをプロアクティブに監視でき、関連するイベントの警告を発することができます。 [[https://pandorafms.com/library/linux-security-plugin|公式プラグイン]]を使用すると、実行のたびに、ほぼリアルタイムでエージェントのセキュリティをプロアクティブに監視でき、関連するイベントの警告を発することができます。
  
-This plugin is intended to run **only** on modern GNU/Linux computersIt is prepared to run on 64 and 32 bits. +This plugin is intended to run **only** on modern GNU/Linux machines. It contains a custom build of John the ripper 1.8 + Contrib patches with static 32-bit and 64-bit binaries. The main concept of the plugin is to be monolithic, detect what can be hardened and try to resolve differences between distributions without asking anything to the administrator, so the deployment could be the same for any system, ignoring versions, distro or architecture.
- +
-このプラグインは、最新の GNU/Linux コンピュータで**のみ**実行することを目的としています。 64ビットと 32ビットで実行できるように準備されています。 +
- +
-It contains a custom build of John the ripper 1.8 + Contrib patches with 32 and 64 static binaries. The main concept of the plugin is to be monolithic, detect what can be hardened and try to resolve differences between distros without asking anything to the administrator, so the deployment could be the same for any system, ignoring versions, distro or architecture.+
  
-これには、32および 64bit 版の John the ripper 1.8 + Contrib パッチのカスタムビルドが含まれています。プラグインの主な概要は、モノリシックであり、強化ポイントを検出し、管理者に何も尋ねることなくディストリビューション間の違いを解決しようとすることです。そのため、バージョン、ディストリビューション、またはアーキテクチャに関係なく、どのシステムでも同じように展開することができます。+このプラグインは、最新の GNU/Linux マシンで**のみ**実行することを目的としています。これには、32および 64bit 版の John the ripper 1.8 + Contrib パッチのカスタムビルドが含まれています。プラグインの主な概要は、モノリシックであり、強化ポイントを検出し、管理者に何も尋ねることなくディストリビューション間の違いを解決しようとすることです。そのため、バージョン、ディストリビューション、またはアーキテクチャに関係なく、どのシステムでも同じように展開することができます。
  
 This plugin will check: This plugin will check:
行 686: 行 668:
 このプラグインは以下をチェックします。 このプラグインは以下をチェックします。
  
-  * User password audit check, using the dictionary (provided) with the 500 most common passwords. This usually takes no more than a few seconds. If you have hundreds of users, you probably need to customize the plugin run to run only every 2-6 hours. You can customize the password dictionary by simply adding your organization's typical password to the "basic_security/password-list" file. +  * Auditing user passwords, using the dictionary (provided) with the 500 most common passwords. If you have hundreds of users, you will probably need to customize the //plugin// to run only every 2 to 6 hours. You can customize the password dictionary by adding your organization's typical password in the "basic_security/password-list" file. 
-  * Check that SSH does not run on the default port. +  * SSH does not run on the default port. 
-  * Check that FTP does not run on the default port. +  * SSH does not allow **root** access
-  * Check that SSH does not allow **root**  access. +  * That FTP does not run on the default port
-  * Check if there is a MySQL running without the **root**  password defined. +  * Check if there is a MySQL server running without the **root** password defined. 
-  * Other checks.+  * Other checkups.
  
   * 最も一般的な 500個のパスワードを含む辞書(あらかじめ提供)を使用したユーザパスワードの監査チェック。 通常、これには数秒しかかかりません。 数百人のユーザがいる場合は、プラグインの実行を 2〜6時間ごとにのみ実行するようにカスタマイズする必要があります。 組織の一般的なパスワードを "basic_security/password-list" ファイルに追加するだけで、パスワード辞書をカスタマイズできます。   * 最も一般的な 500個のパスワードを含む辞書(あらかじめ提供)を使用したユーザパスワードの監査チェック。 通常、これには数秒しかかかりません。 数百人のユーザがいる場合は、プラグインの実行を 2〜6時間ごとにのみ実行するようにカスタマイズする必要があります。 組織の一般的なパスワードを "basic_security/password-list" ファイルに追加するだけで、パスワード辞書をカスタマイズできます。
   * SSH がデフォルトのポートで実行されていないことの確認。   * SSH がデフォルトのポートで実行されていないことの確認。
-  * FTB がデフォルトのポートで実行されていないことの確認。 
   * SSH が **root** アクセスを許可していないことの確認。   * SSH が **root** アクセスを許可していないことの確認。
 +  * FTP がデフォルトのポートで実行されていないことの確認。
   * MySQL が **root** パスワード無しで実行されているかどうかの確認。   * MySQL が **root** パスワード無しで実行されているかどうかの確認。
   * その他チェック。   * その他チェック。
  
 [[ja:documentation:start|Pandora FMS ドキュメント一覧に戻る]] [[ja:documentation:start|Pandora FMS ドキュメント一覧に戻る]]
 +
  • ja/documentation/pandorafms/technical_annexes/15_security_architecture.1724221978.txt.gz
  • 最終更新: 2024/08/21 06:32
  • by junichi