Linuxシステムでは、プロセスがroot権限で実行されるか、ユーザーがrootユーザーとしてログインすると、その権限に制限がなくなります。したがって、root権限がハッカーによって習得されると、システム障害の問題になります。 、この場合、ファイルシステム保護は、システムの最後の防御線になります。ファイルシステム保護を適切に設定すると、システムへの攻撃による被害を最小限に抑えることができます。
重要なファイルをロックする
システムに非常に重要なファイルがある場合は、chattr
コマンドでロックできるため、rootユーザーでもファイルを変更または削除できません。このコマンドは、ext2、ext3、およびext4ファイルシステムのファイル属性を変更できます。このコマンドは、rootユーザーのみが実行できます。これに対応して、lsattr
ファイル属性のクエリに使用できます。
chattrコマンドの構文は次のとおりです。
chattr [-RV] [-v version] [mode] /路径/文件
主なパラメータは次のとおりです。
- -R:すべてのファイルとサブディレクトリを再帰的に変更します
- -V:変更されたコンテンツを詳細に表示して印刷します
- モード:
- +:追加のパラメータ
- -:パラメータを削除します
- =:指定されたパラメータに更新
- a:追加、設定後、データの追加のみが可能で、データの削除はできません。rootユーザーのみがこの属性を設定できます。
- c:圧縮し、保存する前にファイルを圧縮するかどうかを設定します。読み取るときに自動的に解凍する必要があります。
- i:不変、設定ファイルの書き込み、変更、削除、名前変更、またはソフトリンクとハードリンクの設定はできません。
- s:ファイルが削除された後、安全に削除し、すべてのハードディスク領域を回復します。
- u:保持および削除します。システムは、データを復元するためにデータブロックを保持します。
lsattrコマンドの構文は次のとおりです。
lsattr [-adiRvV] /路径/文件
主なパラメータは次のとおりです。
- -a:「。」で始まるファイルを含むすべてのファイルを一覧表示します。
- -d:指定したディレクトリの属性を表示します
- -R:ディレクトリ内のすべてのファイルとサブディレクトリの属性を再帰的に一覧表示します
- -v:ファイルまたはディレクトリのバージョンを表示します。
保護のために、次のファイルをお勧めします。
$ chattr -R +i /bin /boot /lib/sbin
$ chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbin
$ chattr +i /etc/passwd
$ chattr +i /etc/shadow
$ chattr +i /etc/hosts
$ chattr +i /etc/resolv.conf
$ chattr +i /etc/fstab
$ chattr +i /etc/sudoers
$ chattr +s /var/log/messages
$ chattr +s /var/log/stmp
ファイルシステムを保護することでシステムのセキュリティを向上させることができますが、場合によっては不便を引き起こすこともあります。たとえば、一部のソフトウェアをインストールおよびアップグレードする場合、関連するディレクトリの不変属性と追加専用属性を削除し、を設定する必要があります。ログファイルappend-only属性を追加すると、ログローテーション(logrotate)が失敗する場合もあります。
したがって、chattrを使用する前に、サーバーのアプリケーション環境と組み合わせて保護を設定する方法を検討する必要があります。
さらに、chattrコマンドは/、/ dev、/ tmp、/ varなどのディレクトリを保護できません。
- ルートディレクトリが変更不可能な属性に設定されている場合、システムは機能しません
- / devが機能している場合、syslogは/ dev / logの下のソケットデバイスを削除して再確立する必要があります
- / tmpこのディレクトリに一時ファイルを作成するための多くのプログラムとシステムプログラムがあります
- / varは、システムとプログラムのログディレクトリです。変更できないように設定されている場合、システムはログを記録できません。
ファイルのアクセス許可チェック
ファイルのアクセス許可を誤って設定すると、セキュリティリスクが発生する可能性があります。これらのリスクを時間内に発見すると、リスクを防ぐことができます。
安全でない権限を見つけるいくつかの方法は次のとおりです。
- システム内のすべてのユーザーが書き込み権限を持っているファイルとディレクトリを検索します。
#对文件:
$ find / -type f -perm -2 -o -perm -20 |xargs ls -al
#对目录:
$ find / -type d -perm -2 -o -perm -20 |xargs ls -ld
- システムで「s」ビットのあるプログラムを見つけます。
$ find / -type f -perm -4000 -o -perm -2000 -print |xargs ls -al
- システム内のすべてのsuidファイルとsgidファイルを検索します
#suid
$ find / -user root -perm -2000 -print -exec md5sum () \;
#sgid
$ find / -user root -perm -4000 -print -exec md5sum () \;
- システムに所有者ファイルがないことを確認してください
$ find / -nouser -o -nogroup
/ tmp、/ var / tmp、/ dev / shmセキュリティ保護
Linuxシステムでは、ディレクトリ/tmp
と/var/tmp
ディレクトリは一時ファイルの保存に使用されますが、一時ファイルはすべてのユーザーが読み取り、書き込み、実行できるため、システムセキュリティにセキュリティ上のリスクがあります。これらのディレクトリには、攻撃者による悪意のあるスクリプトが残される可能性があります。情報収集または偽装を行います。ただし、一時ファイルの読み取りおよび書き込み権限を変更すると、システムおよびプログラムの通常の動作に影響を与える可能性があります。したがって、これらのディレクトリは特別な設定で保護する必要があります。
そして、/dev/shm
共有メモリ・デバイスは、Linuxでの起動時にデフォルトでロードされ/dev/shm
、/dev/shm
tmpfsのファイルシステムを使用して、ロード時、およびtmpfsファイルシステムは、メモリファイルシステムで、ファイルシステムがメモリにすべての主要なファイルになります。このようにし/dev/shm
て、システムメモリを直接制御できます。
保護の/tmp
方法:
- それは場合は
/tmp
、独立したディスクのパーティションがあり、修正し、次のように属性をマウントします。/etc/fstab
/tmp
LABEL=/tmp /tmp ext3 rw,nosuid,noexec,nodey 0 0
その中で、
* nosuid:suidプログラムは許可され
ていません* noexec:スクリプトプログラムは実行
できません* nodev:デバイスファイルは存在しません
/var
パーティションの下のディレクトリの場合は、最初にパーティション/var/tmp
内のデータを/tmp
パーティションに移動してから、/var
ポイントされた/tmp
ソフト接続を確立できます。
$ mv /vat/tmp/* /tmp
$ ln -s /tmp /var/tmp
/tmp
ルートディレクトリの下のディレクトリの場合は、Linuxカーネルのループバック機能を使用して、ループバックファイルシステムを作成することでファイルシステムをマウントし/tmp
、マウント時にマウントオプションを設定できます。
$ dd if=/dev/zero of=/dev/tmpfs bs=1M count=10000
$ mke2fs -j /dev/tmpfs
$ cp -av /tmp /tmp.old
$ mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp
$ chmod 1777 /tmp
$ mv -f /tmp.old/* /tmp/
$ rm -rf /tmp.old
次に/etc/fstab
、以下を編集して追加します。
/dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0
完了後、構成が有効かどうかを確認し、tmpフォルダーにシェルファイルを作成して実行することをお勧めします。
保護の/dev/shm
方法:
- / dev / shmはデバイスファイルであるため、変更し
/etc/fstab
て実装することもできます。mount/etc/fstab
属性を次のように変更します。
tmpfs /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0