脆弱性のあるサービスが有効になっていると外部からの攻撃によってシステムに危害が及ぶリスクがあります。使用していないサービスはOS起動時に自動起動しないように設定します。
下記資料を参考にしました。
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』
※目次をクリックすると目次の下部にコンテンツが表示されます。
起動時に自動起動されるサービスを確認
下記コマンドで各サービスが自動起動となっているか確認出来ます。
各ランラベル毎に自動起動のON/OFFが表示されます。
各ランラベル毎に自動起動のON/OFFが表示されます。
$ chkconfig --list | grep :on : crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off haldaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off :
※ランレベルの確認
OS起動時のランレベルは、/etc/inittabに設定されています。
id:3:initdefault:
自動起動をOFFに設定するには?
下記コマンドで自動起動をOFFに出来ます。
# chkconfig サービス名 off
# chkconfig サービス名 off
必要なサービスかチェックする
上記参考サイトで気になったサービスをリストアップします。
①firstboot
インストール後に一度設定すればよいので有効にする必要はないようです。
※firstbootとは?
・RedHatエンタープライズ6についての資料は下記にありました。
https://access.redhat.com/site/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/ch-firstboot.html
・OSインストール後に各種設定をステップ毎にまとめて実施できるようにしたツール。
・GUIのツールなのでデスクトップとX Window Systemを含まないテキストモードでの環境では表示できないようです。
・主に下記についての設定を順に行っていくようです。
ライセンスの情報
ソフトウェア更新の設定
ユーザーの作成
認証の設定
日付と時刻の設定
Kdumpの設定
②mdmonitor
mdmonitorは、ソフトウェアRAIDをモニターするサービスなのでソフトウェアRAIDを使用していない場合は無効にします。
●mdmonitorとは?
・mdadmというRPMパッケージで提供されるツール。
・起動スクリプトは、”/etc/rc.d/init.d/mdmonitor”で、mdadmベースのソフトウェアRAIDをモニター、管理するサービスの開始、停止、再起動などを行う。
・mdadmコマンドでソフトウェアRAIDを構築できるようです。
下記サイトに詳しく記載されていました。
http://www.maruko2.com/mw/CentOS%E3%81%A7%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2RAID%E3%81%AE%E6%A7%8B%E7%AF%89
・設定ファイルは、/etc/mdadm.conf
・mdadmパッケージには、”raid-check”というツールもあってデフォルトでcronに登録されていました。(設定ファイル:/etc/cron.d/raid-check)
・cron設定
# more /etc/cron.d/raid-check
# Run system wide raid-check once a week on Sunday at 1am by default
0 1 * * Sun root /usr/sbin/raid-check
③messagebus(D-Bus)
上記参考サイトでは、特別に必要とする場合以外は、D-Busとそれに依存するすべてのサービスを無効にする事を推奨しています。
●D-Bus (Desktop Bus)とは?
・メッセージバスと呼ばれる、アプリケーション間でやりとりを行うための、プロセス間通信(IPC)実装のひとつ。
・X Window、Bluetooth、Avahiなど多くのサービスがD-Busを使用している。
・D-BusのRPMパッケージ名:dbus
※dbusについては以下の記事を参照。
Linuxのdbus-daemonプロセスの概要
④haldaemon(HALデーモン)
HALは攻撃者にとって、権限のある操作を中継するかっこうの起点となりうるので必要がなければ無効にします。
●HALデーモンとは?
・HAL(Hardware Abstraction Layer) とは、アプリケーションソフトとハードウェアの間に入り、ハードウェアごとの振る舞いの違いを吸収するソフトウェアのこと。
・HALデーモンは、システム上のハードウェアに関していくつかのソースから情報を集めたり管理したりするデーモン
・HALデーモンのRPMパッケージ名:hal
※halについては以下の記事を参照。
Linuxのhaldプロセスの概要
①firstboot
インストール後に一度設定すればよいので有効にする必要はないようです。
※firstbootとは?
・RedHatエンタープライズ6についての資料は下記にありました。
https://access.redhat.com/site/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/ch-firstboot.html
・OSインストール後に各種設定をステップ毎にまとめて実施できるようにしたツール。
・GUIのツールなのでデスクトップとX Window Systemを含まないテキストモードでの環境では表示できないようです。
・主に下記についての設定を順に行っていくようです。
ライセンスの情報
ソフトウェア更新の設定
ユーザーの作成
認証の設定
日付と時刻の設定
Kdumpの設定
②mdmonitor
mdmonitorは、ソフトウェアRAIDをモニターするサービスなのでソフトウェアRAIDを使用していない場合は無効にします。
●mdmonitorとは?
・mdadmというRPMパッケージで提供されるツール。
・起動スクリプトは、”/etc/rc.d/init.d/mdmonitor”で、mdadmベースのソフトウェアRAIDをモニター、管理するサービスの開始、停止、再起動などを行う。
・mdadmコマンドでソフトウェアRAIDを構築できるようです。
下記サイトに詳しく記載されていました。
http://www.maruko2.com/mw/CentOS%E3%81%A7%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2RAID%E3%81%AE%E6%A7%8B%E7%AF%89
・設定ファイルは、/etc/mdadm.conf
・mdadmパッケージには、”raid-check”というツールもあってデフォルトでcronに登録されていました。(設定ファイル:/etc/cron.d/raid-check)
・cron設定
# more /etc/cron.d/raid-check
# Run system wide raid-check once a week on Sunday at 1am by default
0 1 * * Sun root /usr/sbin/raid-check
③messagebus(D-Bus)
上記参考サイトでは、特別に必要とする場合以外は、D-Busとそれに依存するすべてのサービスを無効にする事を推奨しています。
●D-Bus (Desktop Bus)とは?
・メッセージバスと呼ばれる、アプリケーション間でやりとりを行うための、プロセス間通信(IPC)実装のひとつ。
・X Window、Bluetooth、Avahiなど多くのサービスがD-Busを使用している。
・D-BusのRPMパッケージ名:dbus
※dbusについては以下の記事を参照。
Linuxのdbus-daemonプロセスの概要
④haldaemon(HALデーモン)
HALは攻撃者にとって、権限のある操作を中継するかっこうの起点となりうるので必要がなければ無効にします。
●HALデーモンとは?
・HAL(Hardware Abstraction Layer) とは、アプリケーションソフトとハードウェアの間に入り、ハードウェアごとの振る舞いの違いを吸収するソフトウェアのこと。
・HALデーモンは、システム上のハードウェアに関していくつかのソースから情報を集めたり管理したりするデーモン
・HALデーモンのRPMパッケージ名:hal
※halについては以下の記事を参照。
Linuxのhaldプロセスの概要
-
OpenSSH
- レンタルサーバー(VPS)にSSHでログイン
- VPS(レンタル)サーバー上のssh初期設定確認
- SSH接続の仕組み
- OpenSSHの設定ファイル
- OpenSSHの設定をよりセキュアに
- CentOS Stream9のSSH設定(OpenSSH)
- WinSCPを使ってファイル転送
ネットワーク、ポート番号
rpmパッケージ、サービス
パーミッション
ログイン、認証、パスワード、アカウント制御
auditdでシステム監査
ツール
トラブルシューティング
-
ネットワーク、ポート番号
- iptablesを使ってCentOSのファイアウォール設定
- CentOS6のTCPラッパーの概要と設定方法
- nmapでオープンしているポート番号とバージョンを確認
- yumコマンドで最新のパッケージにアップデート
- 更新可能なRPMパッケージのリストをメールで送信する
- CentOSで不要なサービスは起動しないようにする
- RPMパッケージのインテグリティチェック
- cronで使用するファイルのパーミッション設定
- CentOSのumaskの設定
- ユーザーホームディレクトリ内の権限設定をセキュアにする
- CentOSのパスワードファイルのパーミッション設定
- findコマンドでファイル書込権限をいっせいにチェック
- findコマンドでセットユーザ(グループ)IDが不要にセットされていないかチェック
- findコマンドで所有者、グループが存在しないファイルを抽出
- ログイン時などに表示されるシステムバナーを変更するには?
- CentOSのユーザーアカウントのパスワードポリシーを設定
- pam_cracklibモジュールでパスワードポリシーを設定
- pam_unix.soモジュールを使って過去のパスワード再使用を制限する
- システムコンソールでのrootログインを制限する方法
- suコマンドによるrootへのスイッチを制限する
- root権限でのコマンド実行、sudoだと監査ログが取得できる
- デーモン用アカウントなどに対しシェルを使用を無効にする
- パスワード認証を失敗時にアカウントをロックアウトする設定
- rootアカウントのPATH環境変数のセキュリティについて
- NTPのセキュリティを考慮した設定
- セキュリティを考慮してX Windowsを設定または削除する方法
- ファイルの改ざん対策用にTripwireを導入
- CentOSにホスト型侵入検知ソフトAIDE(Advanced Intrusion Detection Environment)を導入
- アイドルのシェルを自動で強制終了させるには?
- CentOSでコアダンプを無効にする方法
- Linuxのbash脆弱性CVE-2014-6271、Shellshockを修整
- CentOSでバッファーオーバーフロー脆弱性に対する防御機能が有効になっているか確認する
yum、rpmパッケージ、サービス
パーミッション
ログイン、認証、パスワード、アカウント制御
ツール
トラブルシューティング