Linux 系统安全方案
硬件/BIOS安全 根据最小化权限原则,不需要的硬件最好直接拔掉排线,比如摄像头/麦克风。 有的BIOS可以选择禁用硬件,最好将不常用的摄像头、麦克风、蓝牙关闭。 安全启动 开启BIOS密码并把Linux设置为第一启动项。 很可惜的是Linux对微软提出的Security Boot支持并不好。 可选的开启grub密码。 磁盘加密与备份 开启全盘加密,这需要你先加密整个磁盘,并且你的内核支持luks、initramfs支持cryptsetup。 dm-crypt密钥有两种形式,口令或者文件。 我们需要生成一个高熵文件用作密钥。 dd if=/dev/urandom of=/etc/keys/enc.key bs=1 count=4096 推荐的做法是为cryptsetup打一个nuke patch。 https://github.com/offensive-security/cryptsetup-nuke-keys 这个patch由kali官方制作,提供一个nuke keys。输入key则覆盖磁盘的加密密钥。 导致磁盘无法解密。也就是自毁代码。 可以配合cryptsetup luksHeaderBackup使用,备份头部密钥。 Gentoo通过/etc/portage/patch使用补丁。 同样配置磁盘lvm,并使内核支持lvm,启动时需指定dolvm。 Mount 主要参数有nosuid, noexec, nodev 给/tmp禁止执行还是很有必要的。 Package校验 使用gpg对.DIGESTS文件进行校验。 gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys <key id> gpg --keyserver hkp://keys.gnupg.net --recv-keys 0xBB572E0E2D182910 gpg --verify <foo.DIGESTS.asc shaXsum -c <foo.DIGESTS.asc> 安装后package也可以校验完整性 qcheck同样还有equery check @world 日志 据说linux下传统log软件存在日志伪造攻击,systemd解决了这个问题,不知openrc如何处理。 这里没有选择常见的sysklogd,而是更加可配置的syslog-ng。 mark工具app-admin/logcheck Staying up-to-date 这不废话么。 gentoo有个GLSA项目,常常发布安全公告glsa-check --list glsa-check -t all检查有影响的公告...