2.11. 安全性和访问控制
本部分介绍了 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 间的安全性、访问控制和相关配置工具的更改。
2.11.1. 新防火墙(firewalld) 复制链接链接已复制到粘贴板!
在 Red Hat Enterprise Linux 6 中,防火墙功能由 iptables 程序提供,并通过命令行或通过图形配置工具 system-config-firewall 进行配置。在 Red Hat Enterprise Linux 7 中,防火墙功能仍由 iptables 提供。但是,管理员现在通过动态防火墙守护进程、firewalld 及其配置工具: firewall-config、firewall-cmd 和 firewall-applet 与 iptables 交互,这些守护进程没有包括在 Red Hat Enterprise Linux 7 的默认安装中。
由于 firewalld 是动态的,因此可以随时更改其配置,并且会立即实施。防火墙不需要重新载入,因此现有网络连接不会意外中断。
Red Hat Enterprise Linux 6 和 7 中防火墙之间的主要区别是:
-
firewalld 配置详情不会存储在
/etc/sysconfig/iptables中。相反,配置详情保存在/usr/lib/firewalld和/etc/firewalld目录中的各种文件中。 -
在 Red Hat Enterprise Linux 6 中,防火墙系统在每次进行配置更改时被删除并重新应用所有规则,
firewalld只应用配置差异。因此,firewalld可以在运行时更改设置,而不会丢失现有连接。
有关在 Red Hat Enterprise Linux 7 中配置防火墙的详情和帮助,请参阅 安全指南。
2.11.1.1. 将规则迁移到 firewalld 复制链接链接已复制到粘贴板!
如果您将 Red Hat Enterprise Linux 7 与另一个红帽产品(如 Red Hat Enterprise Linux OpenStack 平台)搭配使用,则最好继续使用 iptables 或 ip6tables,而不是移至 firewalld。
如果您不能确定要使用哪个防火墙工具,请参阅您的产品文档或联系红帽支持团队。
有关如何禁用 firewalld 并继续使用 iptables 或 ip6tables 的说明 :https://access.redhat.com/articles/1229233。
Red Hat Enterprise Linux 6 提供了两个防火墙配置方法:
-
使用图形化 system-config-firewall 工具来配置规则。此工具将配置详情保存在
/etc/sysconfig/system-config-firewall文件中,并在/etc/sysconfig/和iptables/etc/sysconfig/文件中为 iptables 和 ip6tables 服务创建配置。ip6tables -
手动编辑
/etc/sysconfig/iptables和/etc/sysconfig/ip6tables文件(从头开始),或编辑 system-config-firewall创建的初始配置。
如果您使用 system-config-firewall 配置了 Red Hat Enterprise Linux 6 防火墙,在升级系统并安装 firewalld 后,您可以使用 firewall-offline-cmd 工具将 /etc/sysconfig/system-config-firewall 中的配置迁移到 firewalld 的默认区。
firewall-offline-cmd
$ firewall-offline-cmd
但是,如果您手动创建或编辑 /etc/sysconfig/iptables 或 /etc/sysconfig/ip6tables,在安装 firewalld 后,您必须使用 firewall-cmd 或 firewall-config 创建新的配置,或者禁用 firewalld 并继续使用旧的 iptables 和 ip6tables 服务。有关创建新配置或禁用 firewalld 的详情,请参阅 安全指南。
2.11.2. 对 PolicyKit 的更改 复制链接链接已复制到粘贴板!
在以前的版本中,PolicyKit 在 .pkla 文件中使用键值对来定义额外的本地授权。Red Hat Enterprise Linux 7 引进了使用 JavaScript 定义本地授权的功能,允许您在必要时编写授权。
polkitd 从 /etc/polkit-1/ 和 rules. d/usr/share/polkit-1/rules.d 目录中以字典顺序读取 .rules 文件。如果两个文件共享相同的名称,/etc 中的文件将在 /usr 中的文件之前处理。当处理旧的 .pkla 文件时,最后的规则具有优先权。使用新的 .rules 文件时,第一个匹配的规则具有优先权。
迁移后,您的现有规则由 /etc/polkit-1/rules.d/49-polkit-pkla-compat.rules 文件应用。因此,它们可以被 /usr 或 /etc 中的 .rules 文件覆盖,其名称为 49-polkit-pkla-compat in lexicographic order。请确定旧规则没有被覆盖的最简便方法是开始所有其他 .rules 文件的名称,它大于 49。
有关此问题的详情,请查看 桌面迁移和管理指南。
2.11.3. 更改用户标识符 复制链接链接已复制到粘贴板!
在 Red Hat Enterprise Linux 6 中,基本用户标识符为 500。在 Red Hat Enterprise Linux 7 中,基本用户标识符为 1000。这个更改涉及在升级过程中替换 /etc/login.defs 文件。
如果您还没有修改默认的 /etc/login.defs 文件,则会在升级过程中替换该文件。基本用户标识符号被更改为 1000,新用户将在 1000 及以上分配用户标识符。在此更改前创建的用户帐户会保留其当前用户标识符,并继续按预期工作。
如果您修改了默认的 /etc/login.defs 文件,则文件不会在升级过程中替换,且基本用户标识符号则是 500。
2.11.4. 对 libuser 的更改 复制链接链接已复制到粘贴板!
从 Red Hat Enterprise Linux 7 开始,libuser 库不再支持包含 ldap 和 files 模块的配置,或者 ldap 和 shadow 模块。组合这些模块会在密码处理中造成不确定性,这些配置现在在初始化过程中被拒绝。
如果使用 libuser 管理 LDAP 中的用户或组,则必须从模块中删除 文件和 shadow 模块,并 在配置文件中 创建_modules 指令(默认为/etc/libuser.conf )。
2.11.5. 对 opencryptoki 密钥存储的更改 复制链接链接已复制到粘贴板!
以前版本的 Red Hat Enterprise Linux 使用 opencryptoki 密钥存储版本 2,它使用硬件中的安全密钥加密私有令牌对象。Red Hat Enterprise Linux 7 使用版本 3,它会在软件中使用明确密钥加密私有令牌对象。这意味着,在可与版本 3 一起使用之前,必须迁移版本 2 创建的私有令牌对象。
要迁移私有令牌对象,请执行以下步骤:
更新软件,确保您的 opencryptoki 版本是最新的。
yum update -y opencryptoki
# yum update -y opencryptokiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证您的令牌的插槽号使用
pkcsconf来确定令牌的插槽号。作为 root 运行以下命令:pkcsconf -s pkcsconf -t
# pkcsconf -s # pkcsconf -tCopy to Clipboard Copied! Toggle word wrap Toggle overflow 记录您的令牌的插槽号。插槽描述以
(CCA)结尾。information 字段将令牌标识为IBM CCA Token。停止接口访问,停止
pkcsslotd服务和任何opencryptoki进程。systemctl stop pkcsslotd.service
# systemctl stop pkcsslotd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令来确定进程通过
kill实用程序停止,然后终止适当的进程。ps ax | grep pkcsslotd
# ps ax | grep pkcsslotdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 备份迁移前的数据存储,备份您的令牌存储(您的令牌存储在的目录,通常为
/var/lib/opencryptoki/ccatok)。例如,生成目录的一个副本。cp -r /var/lib/opencryptoki/ccatok /var/lib/opencryptoki/ccatok.backup
# cp -r /var/lib/opencryptoki/ccatok /var/lib/opencryptoki/ccatok.backupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行迁移实用程序,切换到
/var/lib/opencryptoki/ccatok目录,然后运行迁移实用程序。cd /var/lib/opencryptoki/ccatok pkcscca -m v2objectsv3 -v
# cd /var/lib/opencryptoki/ccatok # pkcscca -m v2objectsv3 -vCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在提示时,提供您的 Security Officer(SO)PIN 和 User PIN。
删除过时的共享内存文件,删除
/dev/shm/var.lib.opencryptoki.ccatok文件,或者重启系统。rm /dev/shm/var.lib.opencryptoki.ccatok
# rm /dev/shm/var.lib.opencryptoki.ccatokCopy to Clipboard Copied! Toggle word wrap Toggle overflow 返回到操作接口访问,再次启动
pkcsslotd服务。systemctl start pkcsslotd.service
# systemctl start pkcsslotd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您在迁移时遇到问题,请检查以下内容:
-
确保您以 root 用户身份运行命令,并且 root 是
pkcs11组的成员。 -
确保
pkcsconf实用程序位于/usr/lib/pkcs11/methods/目录中,或者/usr/sbin/目录。 -
确保令牌数据存储位于
/var/lib/opencryptoki/ccatok/目录中。 - 确保您已提供一个插槽号,并且插槽号正确。
- 请确定您的 Security Officer (SO) PIN 和 User PIN 是正确的。
- 确定您有对当前目录的写入权限。