ddおよびfdiskコマンドからデバイスを保護する

ddおよびfdiskコマンドからデバイスを保護する

dd特定のデバイスがコマンドの出力ファイルとコマンドのターゲットになるのを防ぐ方法があるかどうか疑問に思いますfdisk。私は現在、これら2つのタスクを使用してSDカードに書き込むブートローダ、カーネル、およびルートファイルシステムを設定しています。と混同されるかと常に/dev/sdd心配です。キーボードの近くにいる場合は、次の形式のコマンドを使用しないようにする方法を見つけたいと思います。sddsdbsdaAD

dd if=/dev/sd[a-zA-Z0-9]* of=/dev/sd[ab]

または

fdisk /dev/sd[ab]

ベストアンサー1

セカンダリHDDに十分に一意の名前を提供するために、udevルールを作成してみてください。

もう1つの考え方:セキュリティ要件は、「誰が行うのではなく、どのように行うのか」と説明できるたびにタイプの強制について話しており、ほとんどのLinuxディストリビューションではTE MACレベルで行われます。私のMAC経験のほとんどは「SELinux」で行われました。

DACレベルでロックできない、またはデバイスでI / Oを実行することはできません(セキュリティモデルとしてDACが必ずしも失敗するわけではなく、現在のDACポリシーが完全にIDベースであるため、特定のIDで実行されているすべてのプログラムは、追加の管理表現なしで同じ権限を取得することができます一般的なユーザー空間コンポーネントはブロックファイルで何もできませんが、ルートユーティリティとプラットフォームの特定の部分は実行できるようにMACレベルでロックすることができます。デバイスfixed_disk_device_tはSELinuxタイプとgrubとして表示されますbootloader_exec_t

[root@localhost ~]# ls -lhZ $(which grub2-install)
-rwxr-xr-x. root root system_u:object_r:bootloader_exec_t:s0 /sbin/grub2-install
[root@localhost ~]# ls -lhZ /dev/sda
brw-rw----+ root disk system_u:object_r:fixed_disk_device_t:s0 /dev/sda
[root@localhost ~]# sesearch --allow | egrep bootloader | grep fixed
   allow bootloader_t fixed_disk_device_t : lnk_file { read getattr } ; 
   allow bootloader_t fixed_disk_device_t : chr_file { ioctl read write getattr lock append open } ; 
   allow bootloader_t fixed_disk_device_t : blk_file { ioctl read write getattr lock append open } ; 
[root@localhost ~]# 

そしてdd一般的なbin_tタグがあります:

[root@localhost ~]# ls -lhZ $(which dd)
-rwxr-xr-x. root root system_u:object_r:bin_t:s0       /bin/dd

bin_t(明らかに)それでもブロックデバイスに書き込むことは可能ですが、fdisk新しいファイルコンテキストタイプを作成し、dd新しいタイプのアクセスを許可しないselinuxルールを作成することはfixed_disk_device_tそれほど難しくありません。一般ユーザーの役割はできませんが、その権限を持つユーザーはできるだけ設定sysadm_tできます。その後、newrole -r root:sysadm_rディスクを再分割するか、ddブロックデバイスで作業を実行する前に作業を実行する必要があることに注意してください。 be)毎日一日中走るわけではないので、あまり問題ではありませんfdisk

必要以上に多くの作業が必要な場合がありますが、TEは直面する一般的な問題を解決するためのメカニズムです。個人的には、このudev規則はおそらく最も安全な選択です。このような多くの問題を解決することに興味がある場合にのみ、TEについて言及します。

おすすめ記事