第2章 ネットワークのセキュリティー保護
2.1. ワークステーションのセキュリティー
2.1.1. ワークステーションセキュリティーの評価
- BIOS and Boot Loader Security - 承認されていないユーザーはマシンに物理的にアクセスして、パスワードなしで単一ユーザーまたはレスキューモードで起動できますか。
- Password Security - How secure the user account password on the machine?
- 管理 的コントロール - システムに関するアカウントと管理制御の量
- 利用可能なネットワークサービス: ネットワークからの要求をリッスンしているサービスと、それらが全く実行しているか?
- 個人ファイアウォール - 必要な場合はどの種類のファイアウォールが必要ですか?
- セキュリティー強化通信ツール - ワークステーション間の通信にどのツールを使用するか、どのツールもワークステーション間の通信に使用すべきか。
2.1.2. BIOS およびブートローダーのセキュリティー
2.1.2.1. BIOS パスワード
- BIOS 設定への変更を防止 する - 侵入者が BIOS にアクセスできる場合は、CD-ROM またはフラッシュドライブから起動するように設定できます。これにより、侵入者がレスキューモードまたはシングルユーザーモードに入り、システムで任意のプロセスを開始したり、機密データをコピーできるようになります。
- システムの起動 を防止する - BIOS の中には起動プロセスをパスワードで保護できるものもあります。これを有効にすると、攻撃者は BIOS がブートローダーを開始する前にパスワード入力を求められます。
2.1.2.1.1. x86 以外のプラットフォームのセキュリティー保護
2.1.2.2. ブートローダーのパスワード
- シングルユーザーモードへのアクセスを防止する - 攻撃者がシングルユーザーモードでシステムを起動できる場合は、root パスワードを求められることなく root として自動的にログインされます。警告
/etc/sysconfig/init
ファイルでSINGLE
パラメーターを編集してパスワードを使用してシングルユーザーモードへのアクセスを保護することは推奨されません。攻撃者は、GRUB のカーネルコマンドラインでカスタム初期コマンド(init=
パラメーターを使用して)を指定することで、パスワードをバイパスできます。で指定されている GRUB ブートローダーのパスワード保護が推奨され 「GRUB のパスワード保護」 ます。 - GRUB コンソールへのアクセスを防止 する - マシンが GRUB をブートローダーとして使用する場合、攻撃者は GRUB エディターインターフェースを使用して設定を変更したり、cat コマンドを使用して情報を収集したりできます。
- 非セキュアなオペレーティングシステムへのアクセスを防止する - デュアルブートシステムの場合、攻撃者は起動時にオペレーティングシステムを選択でき、アクセス制御やファイルのパーミッションを無視します。
2.1.2.2.1. GRUB のパスワード保護
/sbin/grub-md5-crypt
/boot/grub/grub.conf
ます。ドキュメントのメインセクションにあるファイル timeout を開き、以下の行を追加します。
password --md5 <password-hash>
/boot/grub/grub.conf
ファイルの異なる部分を編集する必要があります。
title
行を探し、その下の lock ディレクティブの行を追加します。
title DOS lock
/boot/grub/grub.conf
ファイルのメインセクションに password
行が存在する必要があります。それ以外の場合は、攻撃者は GRUB エディターインターフェースにアクセスし、ロック行を削除できます。
title DOS lock password --md5 <password-hash>
2.1.2.2.2. 対話的な起動の無効化
/etc/sysconfig/init
ファイルの PROMPT
パラメーターを無効にします。
PROMPT=no
2.1.3. パスワードセキュリティー
/etc/passwd
ファイルの一方向ハッシュとして保存されるため、システムがオフラインパスワードクラッキング攻撃に対して脆弱になります。侵入者が通常ユーザーとしてマシンにアクセスすることができる場合は、/etc/passwd
ファイルを自分のマシンにコピーして、任意の数のパスワードクラッキングプログラムを実行することができます。ファイルにセキュリティー保護されていないパスワードがある場合は、パスワード攻撃者が検出する前に時間がかかります。
/etc/shadow
、ファイルにパスワードハッシュを保存することで、この種の攻撃を防ぎます。これは、root ユーザーのみが読み取り可能です。
2.1.3.1. 強固なパスワードの作成
randomword1 randomword2 randomword3 randomword4
1!
」を追加することで、上記の推奨事項に続くパスフレーズを簡単に変更できます。このような変更により、パスフレーズのセキュリティーが大幅に強化される わけ ではないことに注意してください。
- 1 つの辞書単語、言語の単語、反転単語、または数字のみを使用します。
- パスワードまたはパスフレーズに 10 文字未満を使用します。
- キーボードレイアウトのキーシーケンスの使用
- パスワードを書き留めます。
- 写真日、匿名、ファミリーメンバー名、ペット名などのパスワードで個人情報を使用します。
- 複数のマシンで同じパスフレーズまたはパスワードを使用する。
2.1.4. 組織内におけるユーザーパスワードの作成
2.1.4.1. 強固なパスワードの強制
pam_cracklib.so
PAM モジュールを使用して実行します。Red Hat Enterprise Linux では、pam_cracklib
PAM モジュールを使用して、一連のルールに対してパスワードの強度を確認することができます。ユーザーのログイン用にカスタムルールセットを設定するために、/etc/pam.d/passwd
ファイルの password
コンポーネントにある他の PAM モジュールとともにスタックできます。のルーチン pam_cracklib
は 2 つの部分から構成されます。提供されたパスワードがディクショナリーで見つかったかどうかをチェックします。これがディクショナリーでない場合は、多くのチェックで続行されます。これらのチェックの一覧は、pam_cracklib(8) man ページを参照してください。
例2.1 パスワードの強度チェックの設定 pam_cracklib
/etc/pam.d/passwd
ファイルの password
セクションに以下の行を追加します。
password required pam_cracklib.so retry=3 minlen=8 minclass=4
/etc/pam.d/passwd
ファイルの password
セクションに以下の行を追加します。
password required pam_cracklib.so retry=3 maxsequence=3 maxrepeat=3
pam_passwdqc
などを追加できます。利用可能な PAM モジュールの一覧は、http://uw714doc.sco.com/en/SEC_pam/pam-6.html を参照して ください。PAM の詳細は、『 『シングルサインオンおよびスマートカードの管理』を参照して』 ください。
- john The Ripper - 高速で柔軟なパスワードクラッキングプログラムです。複数の単語一覧を使用でき、パスワードクラッキングをブルートフォースできます。これは http://www.openwall.com/john/ でオンラインで利用でき ます。
- crack- 最もよく知られているパスワードクラッキングソフトウェアである Crack も非常に高速ですが、Ripper として簡単に使用 できません。
- Slurpie - Slurpie は、Ripper と Crack と 似 ていますが、複数のコンピューターを同時に実行するように設計されており、分散パスワードクラッキング攻撃が発生します。このツールと、http://www.ussrback.com/distributed.htm でオンラインの分散型攻撃セキュリティー評価ツールが多数あり ます。
2.1.4.2. passphrases
2.1.4.3. パスワードの集約
-M
オプションは、パスワードが有効である日数を指定します。たとえば、ユーザーのパスワードが 90 日で期限切れになるようにするには、以下のコマンドを使用します。
chage -M 90
<username>
-M
オプションの 99999 後にの値を使用します(これは 273 年より少し類似しています)。
表2.1 chage コマンドラインオプション
オプション | 説明 |
---|---|
-d days | パスワードが変更された 2017 年 1 月 1 日からの日数を指定します。 |
-E 日付 | アカウントがロックされる日付を YYYY-MM-DD の形式で指定します。日付の代わりに、2017 年 1 月 1 日以降の日数を使用することもできます。 |
-I days | パスワードの有効期限からアカウントをロックするまでの非アクティブ日数を指定します。値がの場合 0 、パスワードが失効してもアカウントはロックされません。 |
-l | 現在のアカウントエージング設定を一覧表示します。 |
-m days | ユーザーがパスワードを変更する必要のある最小日数を指定します。値がの場合 0 、パスワードは期限切れではありません。 |
-M days | パスワードが有効である日数の最大数を指定します。このオプションで指定された日数と、オプションで指定した日数が現在の日よりも小さい場合 -d は、ユーザーはアカウントを使用する前にパスワードを変更する必要があります。 |
-W days | パスワードの有効期限の日数を指定して、ユーザーを警告します。 |
chage <username>
~]# chage juan Changing the aging information for juan Enter the new value, or press ENTER for the default Minimum Password Age [0]:10
Maximum Password Age [99999]:90
Last Password Change (YYYY-MM-DD) [2006-08-18]: Password Expiration Warning [7]: Password Inactive [-1]: Account Expiration Date (YYYY-MM-DD) [1969-12-31]:
- 初期パスワードを設定します。この手順には、デフォルトのパスワードを割り当てるか、null パスワードを使用できます。デフォルトのパスワードを割り当てるには、
root
で次のコマンドを実行します。passwd username
代わりに null パスワードを割り当てるには、以下のコマンドを使用します。passwd
-d
username可能な限り null パスワードを使用しないでください。任意のサードパーティーが最初にログインしてセキュアではないユーザー名を使用してシステムにアクセスするため、便利なパスワードを使用するのに便利です。必ずユーザーがログインできる状態であることを確認してから、null パスワードでアカウントをロックを解除してください。 root
で以下のコマンドを実行して、パスワードの有効期限を強制的に実行します。chage
-d
0
usernameこのコマンドは、パスワードが最後にエポック(1970 年 5 月 1 日)に変更された日付の値を設定します。この値により、パスワードエージングポリシー(ある場合)に関係なく、すぐにパスワードの有効期限が強制されます。
- パネルの system-config-users でコマンドを入力します。メニューをクリックして、以下を参照します。 をクリック し、ユーザーマネージャーを表示します。シェルプロンプト
- Users タブをクリックし、ユーザーリストで必要なユーザーを選択します。
- ツールバーをクリックして、ユーザープロパティーダイアログボックスを表示します(または メニュー で選択します)。
- Password Info タブをクリックし、パスワード有効期限の有効化 のチェックボックスを選択します。
- 必須 フィールドを変更する前に必要な値を Days に 入力し、をクリックし ます。
図2.1 パスワードエージングオプションの指定

[D]
スクリーンショットを更新する必要があります。
2.1.5. 非アクティブアカウントのロック
pam_lastlog
PAM モジュールは、最近ログインしていないユーザーのロックアウトや、ユーザーの最後のログイン試行に関する情報を表示するために使用されます。モジュールは root アカウントでチェックを実行しないため、ロックアウトされません。
/var/log/lastlog
および /var/log/wtmp
ファイルからそれぞれ読み込まれます。
- ユーザーのログインに最後に成功した前に失敗したログイン試行回数を表示するには、root で以下の行を
/etc/pam.d/login
ファイルのsession
セクションに追加します。session optional pam_lastlog.so silent noupdate showfailed
- 非アクティブが 10 日後にアカウントをロックアウトするには、root で以下の行を
/etc/pam.d/login
ファイルのauth
セクションに追加します。auth required pam_lastlog.so inactive=10
- GNOME デスクトップ環境のアカウントをロックアウトするには、root で
/etc/pam.d/gdm
ファイルのauth
セクションに以下の行を追加します。auth required pam_lastlog.so inactive=10
2.1.6. アクセス制御のカスタマイズ
pam_access
PAM モジュールを使用すると、管理者はログイン名、ホスト名、または IP アドレスに基づいてアクセス制御をカスタマイズできます。デフォルトでは、モジュールは、指定がない場合は、/etc/security/access.conf
ファイルからアクセスルールを読み取ります。これらのルールの形式の詳細な説明は、man ページの access.conf(5)
を参照してください。Red Hat Enterprise Linux では、デフォルトで pam_access
は /etc/pam.d/crond
および /etc/pam.d/atd
ファイルに含まれています。
/etc/pam.d/login
および/etc/pam.d/gdm-*
ファイルの両方のaccount
セクションに以下の行を追加します。account required pam_access.so
/etc/security/access.conf
ファイルに以下のルールを指定します。- : john : ALL
このルールは、任意の場所からユーザー john からのログインをすべて禁止します。
- の
account
セクションに以下の行を追加し/etc/pam.d/sshd
ます。account required pam_access.so
- /etc/security/access.conf ファイルに以下のルールを指定します。
+ : ALL EXCEPT john : 1.2.3.4
/etc/pam.d
ディレクトリーの各ファイルで pam_access
モジュールが必要になります。
*-auth
ファイル( /etc/pam.d
ディレクトリー)を呼び出すすべてのサービスの pam_access
モジュールを呼び出すことができます。
authconfig --enablepamaccess --update
pam_access
モジュールは認証設定ユーティリティーを使用して有効にできます。このユーティリティーを起動するには、トップメニュー → → からを選択します。 タブから、「ローカルアクセス制御オプションの有効化」を確認します。これにより、pam_access
モジュールがシステム全体の PAM 設定に追加されます。
2.1.7. 時間ベースのアクセス制限
pam_time
PAM モジュールは、1 日のある特定の時間内にアクセスを制限するために使用されます。週、ユーザー名、システムサービスの使用状況などに基づいてアクセスを制御するように設定することもできます。デフォルトでは、モジュールは /etc/security/time.conf
ファイルからアクセスルールを読み取ります。これらのルールの形式の詳細な説明は、time.conf(5)
man ページを参照してください。
/etc/pam.d/login
ファイルの account セクションに以下の行を追加します。account required pam_time.so
/etc/security/time.conf
ファイルに以下のルールを指定します。login ; tty* ; ALL ; !root ; !Wk1730-0800
- に以下の行を追加します。
/etc/pam.d/sshd file:
account required pam_time.so
/etc/security/time.conf
ファイルに以下のルールを指定します。sshd ; tty* ; john ; Wk0800-1730
pam_time
モジュールを /etc/pam.d
ディレクトリー内の対応するファイルに追加する必要があります。
2.1.8. アカウント制限の適用
pam_limits
PAM モジュールは、以下の目的で使用されます。
- ユーザーごとに同時ログインセッションの最大数などの、ユーザーログインセッションに制限を適用します。
- ulimit ユーティリティーで設定する制限を指定します。
- and は、nice ユーティリティーで設定する優先度を指定します。
/etc/security/limits.conf
ファイルから読み込まれます。これらのルールの形式の詳細な説明は、man ページの limits.conf(5)
を参照してください。さらに、特定のアプリケーションやサービス用に個別の設定ファイルを /etc/security/limits.d
ディレクトリーに作成できます。デフォルトでは、pam_limits
モジュールは/etc/pam.d/
ディレクトリー内の複数のファイルに含まれます。ユーザープロセスのデフォルトの制限は /etc/security/limits.d/90-nproc.conf
ファイルで定義され、フォークなど、サービス攻撃の悪意のある拒否を防ぐことができます。ユーザープロセスのデフォルトの上限を 50 に変更するには、ファイルでの形式を /etc/security/limits.d/90-nproc.conf
以下のように変更します。
* soft nproc 50
例2.2 ユーザーあたりの最大ログイン数の指定
- グループ内の各ユーザーに対して同時ログインの最大数を設定するには
office
、/etc/security/limits.conf
ファイルに以下のルールを指定します。@office - maxlogins 4
- にデフォルトで以下の行を追加する必要があり
/etc/pam.d/system-auth
ます。そうでない場合は、手動で追加します。session required pam_limits.so
2.1.9. 管理的コントロール
s
所有者セクションので示されます。
~]$ ls -l /bin/su
-rwsr-xr-x. 1 root root 34904 Mar 10 2011 /bin/su
s
は大文字または小文字になります。大文字として表示される場合は、基礎となるパーミッションビットが設定されていないことを意味します。
pam_console.so
、一部のアクティビティーは、物理コンソールでログインする最初のユーザーに対しては、再起動やリムーバブルメディアのマウントなど、root ユーザーのみに予約されています( pam_console.so
モジュールの詳細は、「『シングルサインオンの 管理」および「スマートカード』 の管理」を参照してください)。 ただし、ネットワーク設定の変更、新しいマウスの設定、ネットワークデバイスのマウントなど、その他の重要なシステム管理タスクは、管理者権限なしではできません。したがって、システム管理者は、ネットワーク上のユーザーアクセスの量を決定する必要があります。
2.1.9.1. Root アクセスの許可
- マシンの移行: root アクセスを持つユーザーはマシンを誤っ て設定し、問題の解決に支援を必要とする可能性があります。悪意あふれるとしても、それに気付いてもセキュリティーの欠陥が開く可能性があります。
- セキュアでないサービス - root アクセスを持つユーザーは、FTP、Telnet などのセキュアでないサーバーを実行すると、ユーザー名とパスワードが危険にさらされる可能性があります。これらのサービスは、プレーンテキストでネットワーク経由でこの情報を送信します。
- Email Attachments As Root の実行: Linux に影響するまれな電子メールウイルスが存在します。ただし、これらが脅威になる唯一のタイミングは、root ユーザーが実行している時です。
- 監査証跡をそのまま保持 する - ルートアカウントは複数のユーザーによって共有されることが多いため、複数のシステム管理者がシステムを管理できるため、指定した時点でどのユーザーが root であったかを特定することはできません。別のログインを使用する場合、ユーザーがでログインするアカウントと、セッション追跡目的で一意の番号がタスク構造に置かれます。これは、ユーザーが開始するすべてのプロセスが継承されます。同時ログインを使用する場合、一意の番号を使用してアクションを特定のログインを追跡できます。アクションが監査イベントを生成すると、ログインアカウントと、その一意の番号に関連付けられたセッションで記録されます。これらのログインおよびセッションを表示するには、aulast コマンドを使用します。aulast コマンドの
--proof
オプションを使用すると、特定のセッションで生成された監査可能なイベントを分離するための特定の ausearch クエリーが提案されます。
2.1.9.2. Root アクセスの拒否
- root シェルの変更
- ユーザーが root として直接ログインできないようにするには、システム管理者が
/etc/passwd
ファイル /sbin/nologin で root アカウントのシェルをに設定します。表2.2 Root Shell の無効化
影響 影響なし root シェルへのアクセスを阻止し、このような試行をログに記録します。以下のプログラムは、root アカウントにアクセスできません。- login
- gdm
- kdm
- xdm
- su
- ssh
- scp
- sftp
FTP クライアント、メールクライアント、および setuid プログラムなど、シェルを必要としないプログラム。以下のプログラムは、root アカウントにアクセスでき ません。- sudo
- FTP クライアント
- メールクライアント
- コンソールデバイス(tty)による root アクセスの無効化
- root アカウントへのアクセスをさらに制限するために、管理者は
/etc/securetty
ファイルを編集して、コンソールでの root ログインを無効にすることができます。このファイルは、root ユーザーがログインできるすべてのデバイスを一覧表示します。ファイルが存在しない場合は、root ユーザーは、コンソールまたは raw ネットワークインターフェースを使用して、システム上の通信デバイスを介してログインできます。ユーザーが Telnet を介して root としてマシンにログインできるため、ネットワーク上でパスワードをプレーンテキストで送信できるため、危険です。デフォルトでは、Red Hat Enterprise Linux の/etc/securetty
ファイルでは、root ユーザーはマシンに物理的に接続されているコンソールでのみログインできます。root ユーザーがログインしないようにするには、root で次のコマンドを実行します。echo > /etc/securetty
KDM、GDM、および XDM ログインマネージャーでsecuretty
サポートを有効にするには、以下の行を追加します。auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
以下に記載されているファイル。/etc/pam.d/gdm
/etc/pam.d/gdm-autologin
/etc/pam.d/gdm-fingerprint
/etc/pam.d/gdm-password
/etc/pam.d/gdm-smartcard
/etc/pam.d/kdm
/etc/pam.d/kdm-np
/etc/pam.d/xdm
警告空の/etc/securetty
ファイルは、認証後までコンソールを開くことができ ない ため、root ユーザーがツールの OpenSSH スイートを使用してリモートでログインできないようにする訳ではありません。表2.3 root ログインの無効化
影響 影響なし コンソールまたはネットワークを使用して root アカウントにアクセスできないようにします。以下のプログラムは、root アカウントにアクセスできません。- login
- gdm
- kdm
- xdm
- tty を開くその他のネットワークサービス
root としてログインせず、setuid またはその他のメカニズムを使用して管理タスクを実行します。以下のプログラムは、root アカウントにアクセスでき ません。- su
- sudo
- ssh
- scp
- sftp
- root SSH ログインの無効化
- SSH プロトコルを使用した root ログインを防ぐには、SSH デーモンの設定ファイルを編集して
/etc/ssh/sshd_config
、の行を変更します。#PermitRootLogin yes
以下で読み込むには、以下のコマンドを実行します。PermitRootLogin no
表2.4 root SSH ログインの無効化
影響 影響なし OpenSSH スイートを使用して root アクセスを阻止します。以下のプログラムは、root アカウントにアクセスできません。- ssh
- scp
- sftp
OpenSSH スイートに含まれないプログラム。 - PAM を使用したサービスへの root アクセスを制限する
/lib/security/pam_listfile.so
モジュールを介して PAM により、特定のアカウントを柔軟に拒否できます。管理者は、このモジュールを使用して、ログインが許可されないユーザーの一覧を参照できます。システムサービスへの root アクセスを制限するには、/etc/pam.d/
ディレクトリー内のターゲットサービスのファイルを編集し、pam_listfile.so
モジュールが認証に必要であることを確認します。以下は、/etc/pam.d/vsftpd
PAM 設定ファイルの vsftpd FTP サーバーでモジュールがどのように使用されているかの例になります(ディレクティブが 1 行目にある場合は、最初の行の最後にある\
文字は必要あり ません )。auth required /lib/security/pam_listfile.so item=user \ sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
これにより、PAM が/etc/vsftpd.ftpusers
ファイルを確認し、一覧表示されたユーザーのサービスへのアクセスを拒否するよう指示します。管理者はこのファイルの名前を変更でき、サービスごとに個別の一覧を保持することや、1 つの中央リストを使用して複数のサービスへのアクセスを拒否することができます。管理者が複数のサービスへのアクセスを拒否する場合は、メールクライアント/etc/pam.d/pop
や SSH クライアントなど、PAM 設定ファイルに同様/etc/pam.d/imap
の行/etc/pam.d/ssh
を追加できます。PAM の詳細は、『 『Red Hat Enterprise Linux Managing Single Sign-On and Smart Cards』 』の「 『Using Pluggable Authentication Modules(PAM)』 」の章を参照してください。表2.5 PAM を使用した root の無効化
影響 影響なし PAM 対応ネットワークサービスへの root アクセスを防ぎます。以下のサービスは、root アカウントにアクセスできません。- login
- gdm
- kdm
- xdm
- ssh
- scp
- sftp
- FTP クライアント
- メールクライアント
- PAM 対応サービス
PAM に対応していないプログラムやサービス
2.1.9.3. 自動ログアウトの有効化
root
としてユーザーがログインすると、無人ログインセッションによりセキュリティー上のリスクが大幅に低下する可能性があります。このリスクを軽減するには、一定期間後にアイドルユーザーを自動的にログアウトするようにシステムを設定できます。
- screen パッケージがインストールされていることを確認します。これを行うには、
root
で以下のコマンドを実行します。~]# yum
install
screen
Red Hat Enterprise Linux でパッケージをインストールする方法は、『 『Red Hat Enterprise Linux 6 デプロイメントガイド』の「 パッケージのインストール 」セクションを参照してください』。 root
で以下の行をファイルの先頭に追加し、この/etc/profile
ファイルの処理を中断しないようにします。trap "" 1 2 3 15
- ユーザーが仮想コンソールまたはリモートでログインするたびに screen セッションを開始するには、
/etc/profile
ファイルの末尾に以下の行を追加します。SCREENEXEC="screen" if [ -w $(tty) ]; then trap "exec $SCREENEXEC" 1 2 3 15 echo -n 'Starting session in 10 seconds' sleep 10 exec $SCREENEXEC fi
新しいセッションを開始するたびに、メッセージが表示され、ユーザーは 10 秒待機する必要があることに注意してください。セッションの開始前に待機する時間を調整するには、sleep コマンドの後に値を変更します。 /etc/screenrc
設定ファイルに以下の行を追加して、特定のアクティブでない期間の後に screen セッションを閉じます。idle 120 quit autodetach off
これにより、時間制限が 120 秒に設定されます。この制限を調整するには、idle
ディレクティブの後に値を変更します。代わりに、次の行を使用して、セッションのみをロックするようにシステムを設定できます。idle 120 lockscreen autodetach off
こうすることで、セッションのロックを解除するにはパスワードが必要になります。
2.1.9.4. ルートアクセスの制限
su(1)
および sudo(8)
man ページを sudo参照してください。
2.1.9.5. アカウントのロック
pam_faillock
により、システム管理者は、指定した回数失敗した試行後にユーザーアカウントをロックできます。ユーザーのログイン試行を制限することは主に、ユーザーのアカウントパスワードの取得先となるブルートフォース攻撃の防止を目的とするセキュリティー対策として機能します。
pam_faillock
モジュールを使用すると、失敗したログイン試行は /var/run/faillock
ディレクトリーの各ユーザーに対して別のファイルに保存されます。
even_deny_root
オプションが使用されると、root ユーザーアカウントを含むすべてのユーザーアカウントがロックされます。
- root 以外のユーザーを 3 回ロックして、そのユーザーが 10 分後にロックを解除した後にロックアウトするには、
/etc/pam.d/system-auth
および/etc/pam.d/password-auth
ファイルのauth
セクションに以下の行を追加します。auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth sufficient pam_unix.so nullok try_first_pass auth [default=die] pam_faillock.so authfail audit deny=3 unlock_time=600
- 以下の行を、直前の手順で指定されている両方のファイルの
account
セクションに追加します。account required pam_faillock.so
- root ユーザーにもアカウントロックを適用するには、
/etc/pam.d/system-auth
および/etc/pam.d/password-auth
ファイルのpam_faillock
エントリーにeven_deny_root
オプションを追加します。auth required pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=600 auth sufficient pam_unix.so nullok try_first_pass auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=600 account required pam_faillock.so
john
試みると、4 番目の試行時にアカウントがロックされます。
[user@localhost ~]$ su - john Account locked due to 3 failed logins su: incorrect password
pam_faillock
れる行の上に次の行を追加 /etc/pam.d/system-auth
し /etc/pam.d/password-auth
ます。また user1
、user2
、user3
を実際のユーザー名に置き換えます。
auth [success=1 default=ignore] pam_succeed_if.so user in user1:user2:user3
[root@localhost ~]# faillock
john:
When Type Source Valid
2013-03-05 11:44:14 TTY pts/0 V
faillock --user <username> --reset
system-auth
および password-auth
ファイルは、authconfig ユーティリティーの設定で上書きされます。これは、設定ファイルの代わりにシンボリックリンクを作成すると回避できます。これは、authconfig が認識し、上書きしません。設定ファイルでカスタム設定と authconfig を同時に使用するには、以下の手順に従ってアカウントのロックを設定します。
- 設定ファイルの名前を変更します。
~]# mv /etc/pam.d/system-auth /etc/pam.d/system-auth-local ~]# mv /etc/pam.d/password-auth /etc/pam.d/password-auth-local
- 以下のシンボリックリンクを作成します。
~]# ln -s /etc/pam.d/system-auth-local /etc/pam.d/system-auth ~]# ln -s /etc/pam.d/password-auth-local /etc/pam.d/password-auth
- この
/etc/pam.d/system-auth-local
ファイルには以下の行が含まれている必要があります。auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth include system-auth-ac auth [default=die] pam_faillock.so authfail silent audit deny=3 unlock_time=600 account required pam_faillock.so account include system-auth-ac password include system-auth-ac session include system-auth-ac
- この
/etc/pam.d/password-auth-local
ファイルには以下の行が含まれている必要があります。auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth include password-auth-ac auth [default=die] pam_faillock.so authfail silent audit deny=3 unlock_time=600 account required pam_faillock.so account include password-auth-ac password include system-auth-ac session include system-auth-ac
pam_faillock
設定オプションの詳細は、man ページの pam_faillock(8)
を参照してください。
2.1.10. セッションのロック
2.1.10.1. gnome-screensaver-command を使用した GNOME のロック
- で指定されているキーの組み合わせを押し Ctrl+Alt+L。→ → → → ます。デフォルトの組み合わせはです
- パネル→ でを選択します。
- コマンドラインインターフェースから以下のコマンドを実行します。
gnome-screensaver-command
-l
gnome-screensaver
プロセスを実行する必要があります。プロセスに関する情報を提供するコマンドを使用して、これが確認できるかどうかを確認できます。たとえば、ターミナルから以下のコマンドを実行します。
pidof gnome-screensaver
gnome-screensaver
プロセスが実行中の場合は、コマンドを実行した後に画面に識別番号(PID)を示す数字が表示されます。プロセスが現在実行していない場合は、コマンドで出力は表示されません。
gnome-screensaver-command(1)
man ページを参照してください。
2.1.10.1.1. スクリーンセーバーのアクティベーションの自動ロック
図2.2 スクリーン保存者設定の変更

[D]
2.1.10.1.2. リモートセッションのロック
ssh -X <username>@<server> "export DISPLAY=:0; gnome-screensaver-command -l"
2.1.10.2. vlock を使用した仮想コンソールのロック
~]# yum install vlock
vlock -a
-a
オプションにより、他の仮想コンソールへの切り替えができなくなります。
vlock(1)
man ページを参照してください。
2.1.11. 利用可能なネットワークサービス
2.1.11.1. サービスへのリスク
- サービス拒否(DoS): リクエストによりサービス拒否(DoS)により、各リクエストのログと応答を試みるため、サービス拒否攻撃 によりシステムが使用できなくなる可能性があります。
- 分散型サービス拒否(DDoS)- DoS 攻撃の 1 つで、複数の不正なマシン(数千個以上のマシン)を使用して、サービス上で調整された攻撃を指示し、要求で改ざんして使用不可能にします。
- Script Vulnerability Ackscks - サーバーがスクリプトを使用してサーバー側のアクション(Web サーバー)を一般的に実行すると、攻撃者は誤って書き込まれたスクリプトを攻撃できます。このスクリプトの脆弱性攻撃により、バッファーオーバーフロー状態が発生したり、攻撃者がシステム上のファイルを変更したりする可能性があります。
- bufferOverflow Ackscks - 番号 が付けられたポート 0 から 1023 までのポートに接続するサービスは、管理ユーザーとして実行する必要があります。アプリケーションに悪用可能なバッファーオーバーフローがある場合、攻撃者はデーモンを実行しているユーザーとしてシステムにアクセスできる可能性があります。悪用可能なバッファーオーバーフローが存在するため、攻撃者は自動ツールを使用して脆弱性のあるシステムを特定し、アクセス権限が大きいと、自動ルートキットを使用してシステムへのアクセスを維持します。
2.1.11.2. サービスの特定と設定
- cupsd : Red Hat Enterprise Linux のデフォルトプリントサーバー
- lpd : 代替のプリントサーバーです。
- xinetd : やなど、さまざまな下位サーバーへの接続を制御するスーパーサーバーです gssftp telnet。
- sendmail : Sendmail メール転送エージェント ()MTA)はデフォルトで有効になっていますが、からの接続のみをリッスンします。 localhost.
- sshd : OpenSSH サーバー。これは、Telnet の安全な代替です。
図2.3 Services Configuration Tool

[D]
2.1.11.3. 安全ではないサービス
- 暗号化されていないネットワーク上でのユーザー名およびパスワードの送信 - Telnet や FTP などの古いプロトコルは認証セッションを暗号化せず、可能な限り使用しないようにしてください。
- 暗号化されていないネットワーク上で機密データを送信 する - 多くのプロトコルは、暗号化されていないネットワーク上でデータを転送します。これらのプロトコルには、Telnet、FTP、HTTP、SMTP などがあります。NFS や SMB などの多くのネットワークファイルシステムも、暗号化されていないネットワーク上で情報を送信します。送信されるデータのタイプを制限するために、これらのプロトコルを使用する場合のユーザーの責任です。リモートメモリーダンプサービスは、ネットワーク経由で暗号化されていない状態でメモリーの内容を netdump送信します。メモリーダンプには、パスワードや、さらにはデータベースエントリー、およびその他の機密情報が含まれることがあります。システムのユーザーに関する情報 rwhod など finger、その他のサービスに通知します。
- finger
- authd (これは、以前の Red Hat Enterprise Linux リリース identd で知られていました。)
- netdump
- netdump-server
- nfs
- rwhod
- sendmail
- smb (Samba)
- yppasswdd
- ypserv
- ypxfrd
2.1.12. 個人ファイアウォール
2.1.13. セキュリティーの強化通信ツール
- OpenSSH - ネットワーク通信を暗号化する SSH プロトコルを自由に実装します。
- GNU Privacy Guard(GPG): データを暗号化する PGP(Pretty プライバシー)暗号化アプリケーションのフリー実装。
- ssh : セキュアなリモートアクセスアクセスクライアント
- scp : セキュアなリモートコピーコマンド
- sftp : 対話式のファイル転送セッションを可能にするセキュアな擬似ソフトp クライアント。
2.1.14. リムーバブルメディアの読み取り専用マウントの強制
udev
ルールを使用してリムーバブルメディアを検出し、blockdev ユーティリティーを使用して読み取り専用にマウントするよう設定できます。Red Hat Enterprise Linux 6.7 以降、ファイルシステムの読み取り専用マウントを強制するために、特別なパラメーターを udisks
ディスクマネージャーに渡すこともできます。
udev
ルールは、物理メディアの読み取り専用マウントに十分なものですが、udisks
パラメーターを使用して、読み書きされたメディアにファイルシステムの読み取り専用マウントを実施することができます。
blockdev を使用した、リムーバブルメディアの読み取り専用マウントの強制
80-readonly-removables.rules
含まれる /etc/udev/rules.d/
ディレクトリー(例:)に新しい udev
設定ファイルを作成します。
SUBSYSTEM=="block",ATTRS{removable}=="1",RUN{program}="/sbin/blockdev --setro %N"
udev
ルールは、blockdev ユーティリティーを使用して、新たに接続されたリムーバブルブロック(ストレージ)デバイスを自動的に読み取り専用として設定します。
udisk を使用したファイルシステムの読み取り専用マウントの強制
udev
で特別な udisks
パラメーターを設定する必要があります。以下の内容を含む /etc/udev/rules.d/
ディレクトリーにという名前の新規 80-udisks.rules
の udev
設定ファイルを作成します(または、すでに存在する場合は以下の行を追加します)。
ENV{UDISKS_MOUNT_OPTIONS}="ro,noexec" ENV{UDISKS_MOUNT_OPTIONS_ALLOW}="noexec,nodev,nosuid,atime,noatime,nodiratime,ro,sync,dirsync"
80-udisks.rules
ファイルは、/lib/udev/rules.d/
ディレクトリーの udisks パッケージとともにインストールされていることに注意してください。このファイルには上記のルールが含まれていますが、コメントアウトされています。
udev
ルールは、udisks
ディスクマネージャーに対し、ファイルシステムの読み取り専用マウントのみを許可するよう指示します。また、noexec
パラメーターは、マウントされたファイルシステム上のバイナリーを直接実行するのを禁止します。このポリシーは、実際の物理デバイスがマウントされる方法に関わらず適用されます。つまり、ファイルシステムは、読み取り/書き込みのマウントされたデバイスでも読み取り専用でマウントされます。
新しい udev および udisk 設定の適用
udev
ルールを適用する必要があります。udev
サービスは設定ファイルの変更を自動的に検出しますが、新しい設定は既存のデバイスには適用されません。新たに接続されたデバイスのみが、新しい設定の影響を受けます。したがって、接続されているリムーバブルメディアをすべてアンマウントして、新たに設定をプラグインしたときにそれらに適用されるようにする必要があります。
udev
が既存のデバイスにすべてのルールを再適用するよう強制するには、root
で次のコマンドを実行します。
~#
udevadm trigger
udev
が上記のコマンドを使用してすべてのルールを再適用するように強制すると、すでにマウントされているストレージデバイスには影響しないことに注意してください。
udev
がすべてのルールを再読み込みするように強制するには、(何らかの理由で新しいルールが自動的に検出されない場合)、次のコマンドを使用します。
~#
udevadm control --reload
このページには機械翻訳が使用されている場合があります (詳細はこちら)。