システムのロックダウンは、最も疲れ切ったシステム管理者の心に恐怖を与えるような大きなタスクや恐ろしいタスクである必要はありません。いいえ、Linuxサーバーを適切にロックダウンすることは直感的ではなく、必ずしも簡単ではありませんが、量子物理学でもありません。前回の記事「Sysadminセキュリティ:8つのLinuxロックダウンコントロール」では、機能に関係なく、すべてのLinuxシステムに加える必要のある8つの重要な変更について説明しました。この記事では、迅速かつ無料で実装できるその他のシステム制御について説明します。
これらのコントロールは、私自身の経験、DISA STIG、その他のシステム管理者など、さまざまなソースから発信されています。ここにリストされているコントロールは、重要性や重大度の特定の順序ではありません。
バナー
システムにグラフィカルユーザーインターフェイスがあるかどうかに関係なく、ログオン時にユーザーに表示されるバナーを作成する必要があります。バナーは、システムが<あなたの国の法律および規制>によって保護されていること、およびシステムの誤用は刑事犯罪であることをユーザーに警告する必要があります。バナーは、コンソールのユーザーとネットワーク経由でログインするユーザーに表示する必要があります。
/etc/issue
を編集します コンソールユーザーおよび/etc/issue.net
の場合 ネットワークユーザー向け。 /etc/ssh/sshd_config
で、バナーに使用しているファイルへのフルパスを必ず指定してください 次のようにファイルします:
Banner /etc/issue.net
任意のファイルを使用できますが、バナーパスを編集して、メッセージが含まれているファイルを指すようにする必要があります。
いいえ、バナーを設定しても、攻撃者がシステムを侵害するのを防ぐことはできません。それでも、攻撃者はシステムがプライベートで保護されたシステムであることを認識していなかったという防御の議論を破壊します。
パスワードの複雑さの強制
/etc/security/pwquality.con
のパラメータを変更することにより、パスワードを引き続き使用するシステムに対して、パスワードの複雑さを強制します。 ファイル(以下に表示)。このファイルには、システムに強力なパスワードを適用するための編集可能なパラメータのリストが含まれています。
# Configuration for systemwide password quality limits
# Defaults:
#
# Number of characters in the new password that must not be present in the
# old password.
# difok = 5
#
# Minimum acceptable size for the new password (plus one if
# credits are not disabled which is the default). (See pam_cracklib manual.)
# Cannot be set to lower value than 6.
# minlen = 9
#
# The maximum credit for having digits in the new password. If less than 0
# it is the minimum number of digits in the new password.
# dcredit = 1
#
# The maximum credit for having uppercase characters in the new password.
# If less than 0 it is the minimum number of uppercase characters in the new
# password.
# ucredit = 1
#
# The maximum credit for having lowercase characters in the new password.
# If less than 0 it is the minimum number of lowercase characters in the new
# password.
# lcredit = 1
#
# The maximum credit for having other characters in the new password.
# If less than 0 it is the minimum number of other characters in the new
# password.
# ocredit = 1
#
# The minimum number of required classes of characters for the new
# password (digits, uppercase, lowercase, others).
# minclass = 0
#
# The maximum number of allowed consecutive same characters in the new password.
# The check is disabled if the value is 0.
# maxrepeat = 0
推奨値は以下のとおりです。注:強制値を有効にするには、必ずパラメーター行のコメントを解除してください。
difok = 8
minlen = 15
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1
minclass = 4
maxrepeat = 3
maxclassrepeat = 4
これらのパラメータは、システムパスワードがデフォルト設定よりもはるかに安全であることを保証するのに役立ちます。システムアクセスのセキュリティを強化するには、パスワードではなく多要素認証を使用することをお勧めします。
注:minlen
(最小長)パラメーターは15以上の値に設定する必要があります。基準を満たす単語を1つ見つけるのではなく、パスフレーズを使用するようにユーザーに教えます。
パスワードの最小有効期間
一部の賢いユーザーは、システムのセキュリティを回避するためにパスワードを複数回変更します。パスワードの更新を余儀なくされると、システムのセキュリティを破るのに十分な回数パスワードを変更し、最終的にパスワードを元に戻します。 PASS_MIN_DAYS
/etc/login.defs
のパラメータ ファイルはこのアクティビティを防ぐことができます。値を1以上に設定します。デフォルトは0で、これがセキュリティの問題の原因です。
PASS_MIN_DAYS 1
このパラメーターを設定すると、ユーザーは新しいパスワードを再度変更する前に、少なくとも1日は保持する必要があります。値は任意の数値に設定できますが、ユーザーがすぐに複数回変更できないようにすると、問題が解決するようです。
パスワードの最大有効期間
おそらく、最小パスワード有効期間よりもさらに危険なのは、最大パスワード有効期間の設定です。デフォルトは99999です。これは、ユーザーがパスワードを変更する必要がないことを意味します。これは重大なセキュリティ違反です。
会社のポリシーとセキュリティのニーズに応じて、60〜90日の範囲でパスワードの変更を強制する必要があります。このようなシステム全体の変更を実施するには、PASS_MAX_DAYS
を編集します /etc/login.defs
での設定 ファイル。
PASS_MAX_DAYS 60
この設定により、ユーザーは60日ごとにパスワードを変更する必要があります。はい、特にPASS_MIN_DAYS
と組み合わせると、不平が聞こえます。 制限。セキュリティはユーザーの苦情に勝ちます。
Sudoerセキュリティ
多くの場合、システム管理者はsudo
を使用するようにユーザーアカウントを構成します パスワードなしのコマンド。これは重大なセキュリティ違反であり、機能に関係なく、どのシステムでもいかなる状況でも許可されるべきではありません。
/etc/sudoers
を編集します visudo
を含むファイル ファイル内のNOPASSWDのすべてのインスタンスを削除します。
さらに、/etc/sudoers
で「!authentication」のインスタンスを確認します ファイル。このエントリにより、sudo
を持つユーザーが許可されます sudo
を引き続き使用するためのアクセス 再認証なし。これはセキュリティ違反です。 /etc/sudoers
から「!authentication」のすべてのインスタンスを削除します ファイル。
ログイン遅延の失敗
ユーザーアカウントへのブルートフォース攻撃を阻止するには、ログイン失敗の遅延を少なくとも4秒に設定する必要があります。これはブルートフォース攻撃を阻止しますが、ユーザーが正しいパスワードを入力するのにも役立つ可能性があります。これは、長いパスワードやパスフレーズではより困難になります。
このパラメータは、/etc/login.defs
で設定されます ファイル。この数値は、ログイン試行が失敗した後、システムが新しいログインプロンプトを表示する前に一時停止する秒数です。
FAIL_DELAY 4
4秒は、誤って間違ったキーを押した可能性のあるユーザーを苛立たせるのに十分な長さですが、ボットによる繰り返しのログイン試行を防ぐのに十分な長さです。
デバイスの自動マウントを無効にする
ファイルシステムの自動マウントは、システムに接続されている可能性のある未知のデバイスからのセキュリティリスクをもたらします。つまり、攻撃者はUSBデバイスを接続して、デバイスが自動マウントされたときにペイロードを配信する可能性があります。 autofs
を停止して無効にすることにより、自動マウントを無効にします サービス。
$ sudo systemctl stop autofs
$ sudo systemctl disable autofs
新しいデバイスをシステムに接続した後にファイルシステムを手動でマウントする必要があるのは少し不便かもしれませんが、セキュリティの向上により、デバイスのマウントに必要な余分な3秒の労力が相殺されます。これにより、システム管理者は、許可されていないデバイスを無効化、ワイプ、またはイジェクトすることができます。
ファイル作成権限を制限する
/etc/login.defs
に戻ります システム全体の変更を行うためのファイル。ユーザーが新しいファイルを作成すると、通常、umask
の結果として644の権限が付与されます。 フィルタ設定は022です。セキュリティを強化するには、すべての新しいファイルをumask
で作成する必要があります。 077の場合、デフォルトのアクセス許可として600を持つ新しいファイルになります。
UMASK 077
ほとんどのユーザーにとってはそれほど重要ではないかもしれませんが、rootによって作成されたファイルの場合、この設定は必須です。システム全体に設定すると、一貫性が確保されます。
まとめ
システムセキュリティの強化は、システム管理者の主要なタスクの1つです。新しいシステム、継承されたシステム、およびニッチな機能を提供するシステムは、ネットワーク上で最も脆弱です。すべてのネットワークシステムを保護するために特別な注意を払う必要があります。多くの場合、攻撃者はネットワークの内部にいて、1つ以上のシステムを制御しているため、1つのシステムが侵害されると、さらに多くのシステムが侵害される可能性があります。
これらのセキュリティ制御の一部は手間がかかるように見えるかもしれませんが、違反後の回復と比較すると、それは今日の「通常」の一部にすぎません。
[セキュリティについてもっと知りたいですか? ITセキュリティとコンプライアンスのチェックリストを確認してください。 ]