LINUX安全運行メンテナンス之:ファイルシステムの権限修正と安全設定
システムのメンテナンス担当者は、rootユーザーによってファイルを変更または削除できない場合があります。この場合、ほとんどの原因は、このファイルがロックされている可能性があります。Linuxでファイルをロックするコマンドはchattrです。このコマンドでext 2、ext 3、ext 4ファイルシステムのファイル属性を変更できますが、このコマンドはスーパーユーザーrootで実行する必要があります。このコマンドに対応するコマンドはlsattrで、ファイルのプロパティをクエリーするために使用されます。
chattrコマンドでファイルまたはディレクトリのファイルプロパティを変更すると、システムのセキュリティが向上します。chattrとlsattrの2つのコマンドの使い方を簡単に説明します。
chattrコマンドの構文フォーマットは次のとおりです。chattr[-RV][-v version][mode]ファイルまたはディレクトリの主要パラメータの意味は以下の通りです。
-R:すべてのファイルおよびサブディレクトリを再帰的に変更します。
-V:修正内容を詳細に表示し、出力を印刷します。
modeセクションでは、ファイルのプロパティを制御するために使用されます。一般的なパラメータは次の表に示します。
パラメータの意味
+既存パラメータ設定に加え、パラメータを追加
-既存のパラメータ設定に基づいて、パラメータを除去
=指定したパラメータに更新
aすなわちappendは,このパラメータを設定すると,ファイルにデータを追加するだけで削除できない.サーバログファイルのセキュリティによく使用され、rootユーザーだけがこの属性cであるcompresseを設定し、ファイルが圧縮されてから格納されるかどうかを設定します。読み込み時には自動解凍操作iであるimmutableが必要であり、設定ファイルは修正、削除、名前変更、リンク設定などができず、同時に内容の書き込みや新規作成ができない。このパラメータは、ファイルシステムのセキュリティ設定にとって、sセキュリティのファイルまたはディレクトリの削除に大きく役立ちます。すなわち、ファイルが削除された後、ハードディスク領域がすべて回収されます。uはsパラメータとは逆に、uに設定された場合、システムはデータブロックを保持し、後で削除を再開することができます。これらのパラメータの中で、最もよく使われるのはaとiで、aパラメータはサーバーログファイルのセキュリティ設定によく使われていますが、iパラメータはより厳格で、rootユーザーlsattrがファイルの属性をクエリーするために使用しても、文法フォーマットは以下の通りです。
lsattr[-adlRvV]ファイルまたはディレクトリ
常用パラメータは下表の通りです。
パラメータの意味-aは、ディレクトリ内のすべてのファイルをリストする.先頭のファイル-d指定ディレクトリのプロパティを表示
-Rディレクトリの下にあるすべてのファイルおよびサブディレクトリ、および属性値を再帰的にリストする-vファイルまたはディレクトリバージョンを表示する
Linuxシステムでは、ユーザーがrootの権限でログインしたり、プロセスがrootの権限で実行されたりすると、その使用権限に制限はありません。従って、攻撃者がリモートまたはローカル攻撃手段によってシステムのroot権限を取得することは、災害である。この場合、ファイルシステムはシステムの安全を保護する最後の防御線となり、合理的な属性設定は攻撃者のシステムに対する破壊の程度を最大限に低減することができ、chattrコマンドを通じてシステムのいくつかの重要なファイルやディレクトリをロックすることは、ファイルシステムの安全を保護する最も直接的で、最も有効な手段である。
いくつかの重要なディレクトリとファイルに「i」プロパティを追加できます。一般的なファイルとディレクトリは次のとおりです。
chattr -R +i /bin /boot /lib /sbin
chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbinchattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/hosts
chattr +i /etc/resolv.conf
chattr +i /etc/fstab
chattr +i /etc/sudoers
いくつかの重要なログ・ファイルには、「a」プロパティを追加できます。一般的なものは次のとおりです。chattr +a /var/log/messages
chattr +a /var/log/wtmp
重要なファイルをロックすることで、サーバのセキュリティを向上させることができますが、ソフトウェアのインストール、アップグレード時にディレクトリとファイルに関するimmutableプロパティとappend-onlyプロパティを削除する必要がある場合があります。また、ログファイルにappend-onlyプロパティを設定すると、ログのローテーションができなくなる場合があります。したがって、chattrコマンドを使用する前に、immutableプロパティとappend-onlyプロパティを設定する必要があるかどうかをサーバのアプリケーション環境と組み合わせて比較する必要があります。
また、chattrコマンドでファイルプロパティを変更すると、ファイルシステムのセキュリティが向上しますが、すべてのディレクトリに適していません。chattrコマンドでは、/、/dev、/tmp、/varなどのディレクトリを保護できません。
ルートディレクトリに変更不可属性があるわけではありません。ルートディレクトリに変更不可属性がある場合、システムはまったく動作しません。/devが起動したとき、syslogは/dev/logソケットデバイスを削除して再構築する必要があります。変更不可属性が設定されている場合、問題が発生する可能性があります。/tmpディレクトリには、このディレクトリの下に一時ファイルを作成する必要があるアプリケーションやシステムプログラムが多く、変更できないプロパティを設定することはできません。/varはシステムとプログラムのログディレクトリであり、属性を変更できないように設定すると、システム書き込みログは実行できないため、chattrコマンドで保護することはできません。
chattrコマンドでは/dev、/tmpなどのディレクトリのセキュリティは保護できませんが、別の方法で実現できますので、詳しく説明します。
二、ファイル権限の検査と修正不正な権限設定はシステムの安全を直接脅かすため、運営者はこれらの不正な権限設定をタイムリーに発見し、すぐに修正し、未然に防ぐことができるはずです。以下に、システムの非セキュリティ権限を検索する方法をいくつか挙げます。
(1)ルックアップシステム内の任意のユーザが書き込み権限を持つファイルまたはディレクトリルックアップファイル:find/-type f-perm-2-o-perm-20|xargs ls-alルックアップディレクトリ:find/-type d-perm-2-o-perm-20|xargs ls-ld(2)ルックアップシステム内のすべてのsビットを含むプログラム
find/-type f-perm-4000-o-perm-2000-print|xargs ls-al「s」ビット権限を含むプログラムはシステムのセキュリティに大きな脅威を及ぼし、システム内のすべての「s」ビット権限を持つプログラムを検索することで、不要な「s」ビットプログラムを削除することができ、ユーザーが権限を乱用したり、権限を向上させる可能性を防ぐことができる。
(3)システム内のすべてのsuidおよびsgidファイルをチェックする
find / -user root -perm -2000 -print -exec md5sum {} \;find / -user root -perm -4000 -print -exec md5sum {} \;
検査の結果をファイルに保存し、以降のシステム検査で参考にすることができます。
(4)システムに所有者のファイルがないことを確認する
find / -nouser -o –nogroup
所有者がいない孤児ファイルは危険で、ハッカーが利用するツールになることが多いため、これらのファイルを見つけたら削除するか、ファイルの所有者を修正して安全な状態にします。
三、/tmp、/var/tmp、/dev/shm安全設定Linuxシステムでは、主に/tmpと/var/tmpの2つのディレクトリまたはパーティションが一時ファイルを格納するために使用されます。一時ファイルを格納するディレクトリまたはパーティションには、すべてのユーザーが読み書き可能で実行可能であるという共通点があり、システムにセキュリティ上の危険性が残っています。攻撃者は、ウイルスや木馬スクリプトを一時ファイルのディレクトリの下に配置して情報収集や偽装を行うことができ、サーバのセキュリティに深刻な影響を及ぼす。この場合、一時ディレクトリの読み書き実行権限を変更すると、システム上のアプリケーションの正常な動作に影響を与える可能性があるため、両者を両立させるには、この2つのディレクトリまたはパーティションに対して特別な設定が必要になる。
/dev/shmはLinuxの下の共有メモリデバイスであり、Linuxが起動するとシステムはデフォルトで/dev/shmをロードし、ロードされた/dev/shmはtmpfsファイルシステムを使用し、tmpfsはメモリファイルシステムであり、tmpfsファイルシステムに格納されたデータはRAMに完全に存在し、/dev/shmによってシステムメモリを直接操作することができ、これは非常に危険である。したがって、/dev/shmのセキュリティをどのように保証するかも重要です。
/tmpのセキュリティ設定については、/tmpが独立したディスクパーティションであるか、ルートパーティションの下のフォルダであるかを確認する必要があります。/tmpが独立したディスクパーティションである場合、設定は非常に簡単です。/etc/fstabファイルの/tmpパーティションに対応するマウント属性を変更し、nosuid、noexec、nodevの3つのオプションを加えると、変更後の/tmpパーティションマウント属性は次のようになります。
LABEL=/tmp/tmp ext 3 rw,nosuid,noexec,nodev 0のうち、nosuid,noexec,nodevオプションは、suidプログラムが許可されず、このパーティションでスクリプトなどのプログラムが実行できず、デバイスファイルが存在しないことを示す。
マウントプロパティの設定が完了したら、/tmpパーティションを再マウントし、設定が有効になることを保証します。
/var/tmpの場合、独立したパーティションであれば、インストール/tmpの設定方法は/etc/fstabファイルを変更すればよい。/varパーティションの下のディレクトリであれば、/var/tmpディレクトリの下のすべてのデータを/tmpパーティションに移動し、/varの下で/tmpへのソフト接続を行うことができます。つまり、次の操作を行います。
[root@server ~]# mv /var/tmp/* /tmp
[root@server ~]# ln -s /tmp /var/tmp
/tmpがルートディレクトリの下にあるディレクトリの場合、設定が少し複雑な場合は、Linuxカーネルのloopbackプロパティを使用してファイルシステムを/tmpにマウントし、マウント時にロード制限オプションを指定することで、loopbackファイルシステムを作成できます。簡単な操作例は次のとおりです。
[root@server ~]# dd if=/dev/zero of=/dev/tmpfs bs=1M count=10000[root@server ~]# mke2fs -j /dev/tmpfs
[root@server ~]# cp -av /tmp /tmp.old
[root@server ~]# mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp[root@server ~]# chmod 1777 /tmp
[root@server ~]# mv -f /tmp.old/* /tmp/
[root@server ~]# rm -rf /tmp.old
最後に、/etc/fstabを編集し、起動時にloopbackファイルシステムを自動的にロードするために、次の内容を追加します。
/dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0
マウント時にロード制限オプションが有効であることを確認するには、/tmpパーティションにshellファイルを作成します。次のようにします。
[root@tc193 tmp]# ls -al|grep shell
-rwxr-xr-x 1 root root 22 Oct 6 14:58 shell-test.sh[root@server ~]# pwd
/tmp
[root@tc193 tmp]# ./shell-test.sh
-bash: ./shell-test.sh:Permission deniedでは、ファイルには実行可能なプロパティがありますが、/tmpパーティションではファイルを実行できません。
最後に、/dev/shmのセキュリティ設定を変更します。/dev/shmは共有メモリデバイスであるため、/etc/fstabファイルの設定を変更することで実現することもできます。デフォルトでは、/dev/shmはdefaultsオプションでロードされ、セキュリティを保証するのに十分ではありません。/dev/shmのマウントプロパティを変更します。操作は次のとおりです。
tmpfs /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0
このようにして、suidプログラムを制限するとともに、/dev/shmの実行可能な権限を制限し、システムのセキュリティをさらに向上させる。読んでくれてありがとう。皆さんの役に立つことを望んでいます。引き続き注目してください。私たちはもっと優秀な文章を分かち合うように努力します。