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-configfirewall-cmd、および firewall-appletiptables と通信します。firewall-applet は、デフォルトの 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 におけるファイアウォール設定の詳細情報およびヘルプについては、『Red Hat Enterprise Linux 7 Security Guide』 を参照してください。こちらから入手できます http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/

2.11.1.1. firewalld への移行ルール

重要

Red Hat Enterprise Linux 7 を Red Hat Enterprise Linux OpenStack Platform などの別の Red Hat 製品と使用している場合は、firewalld に移行する代わりに iptables または ip6tables を引き続き使用することが適切なことがあります。
使用するファイアーウォールユーティリティーがわからない場合は、製品ドキュメントを参照するか、Red Hat サポートにお問い合わせください。
firewalld を無効にし、iptables または ip6tables を引き続き使用する方法については、https://access.redhat.com/articles/1229233 を参照してください。
Red Hat Enterprise Linux 6 では、以下の 2 つの方法でファイアウォールを設定していました。
  • グラフィカルの system-config-firewall ツールを使ってルールを設定する方法。このツールは設定詳細を /etc/sysconfig/system-config-firewall ファイルに保存し、/etc/sysconfig/iptables および /etc/sysconfig/ip6tables ファイルに iptablesip6tables サービスの設定を作成していました。
  • 手動で /etc/sysconfig/iptables および /etc/sysconfig/ip6tables ファイルを編集 (まったくのゼロから、もしくは system-config-firewall が作成した初期設定を編集) 。
Red Hat Enterprise Linux 6 のファイアウォールを system-config-firewall で設定している場合、システムをアップグレードして firewalld をインストールした後に、firewall-offline-cmd ツールを使って /etc/sysconfig/system-config-firewall の設定を firewalld のデフォルトゾーンに移行することができます。
$ firewall-offline-cmd
ただし、/etc/sysconfig/iptables もしくは /etc/sysconfig/ip6tables を手動で作成または編集している場合は、firewalld のインストール後に firewall-cmd または firewall-config で新設定を作成するか、firewalld を無効にして旧型の iptables および ip6tables サービスの使用を継続する必要があります。新設定の作成または firewalld の無効化についての詳細は、『Red Hat Enterprise Linux 7 Security Guide』 を参照してください。こちらから入手できます http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/

2.11.2. PolicyKit の変更

これまでは、PolicyKit は .pkla ファイル内のキーの値のペアを使って追加のローカル権限を定義してきました。Red Hat Enterprise Linux 7 では、JavaScript を使ってローカル権限を定義する機能が提供され、必要に応じて権限を書くことが可能になっています。
polkitd は、.rules ファイルを辞書式順序で /etc/polkit-1/rules.d および /usr/share/polkit-1/rules.d ディレクトリーから読み込みます。2 つのファイルが同じ名前を共有している場合、/etc にあるファイルが /usr にあるファイルよりも先に処理されます。古い .pkla ファイルの処理時には、最後に処理されたルールが優先されていました。新たな .rules ファイルでは、最初に合致するルールが優先されます。
移行後は、/etc/polkit-1/rules.d/49-polkit-pkla-compat.rules ファイルが既存ルールを適用します。このため、既存ルールよりも、/usr または /etc にあり、辞書式順序で 49-polkit-pkla-compat の先にくる名前が付いた .rules ファイルが優先されます。古いルールが無効にならないようにする一番簡単な方法は、他のすべての .rules ファイル名を 49 よりも大きい番号で始めることです。
PolicyKit についての詳細情報は、『Red Hat Enterprise Linux 7 Desktop Migration and Administration Guide』 を参照してください。こちらから入手できます http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/

2.11.3. ユーザー ID の変更

Red Hat Enterprise Linux 6 では、ベースユーザー ID は 500 でした。Red Hat Enterprise Linux 7 でのベースユーザー ID は、1000 となっています。この変更では、アップグレードプロセス中に /etc/login.defs ファイルが置き換えられます。
デフォルトの /etc/login.defs ファイルを修正していない場合、このファイルはアップグレード中に置き換えられます。ベースユーザー ID の番号が 1000 に変更され、新規ユーザーは 1000 またはそれを以上のユーザー ID が割り当てられます。この変更前に作成されたユーザーアカウントは、現行のユーザー ID を維持し、期待通りに機能し続けます。
デフォルトの /etc/login.defs ファイルを修正している場合は、このファイルはアップグレード中に置き換えられず、ベースユーザー ID 番号は 500 のままになります。

2.11.4. libuser の変更

Red Hat Enterprise Linux 7 では、libuser ライブラリは ldap および files モジュールの両方を含む設定、もしくは ldap および shadow モジュールの両方を含む設定をサポートしません。これらのモジュールを組み合わせるとパスワード処理に曖昧さが発生するので、そのような設定は初期化プロセス中に拒否されるようになっています。
LDAP のユーザーもしくはグループの管理に libuser を使用する場合は、files および shadow モジュールを設定ファイル (デフォルトでは /etc/libuser.conf ) の modules および create_modules ディレクティブから削除する必要があります。