Search for:
  • ブログ
    • IT・プログラミング
    • デジタルマーケティング
    • 起業・スタートアップ
    • 自由気ままな移住と生活&働き方
うずらのヤドリギ(旧Uzublo) - 海外移住して起業した自由人エンジニアのブログ
うずらのヤドリギ - 海外移住して起業した自由人エンジニアのブログ
  • ブログ
    • IT・プログラミング
    • デジタルマーケティング
    • 起業・スタートアップ
    • 自由気ままな移住と生活&働き方

Blog

【エンジニア向け】百害あって一利なし。SELinuxの無効化のススメ

access_time2019年4月4日
perm_identity Posted by Hisashi
folder_open ITインフラ・ネットワーク

3月末から4月にかけて、自社のHPと当ブログのサーバー構築しなおしていたのだが、その際にSELinuxという機能でドはまりしてしまった。
今回は、SELinuxの問題とその対策についてお伝えする。

百害あって一利なし。SELinuxとは?

SELinuxとは、Linuxに組み込まれているセキュリティ対策機能の1つだ。正式には、

Security-Enhanced Linux (SELinux) は、アメリカ国家安全保障局 (NSA) がGPL下で提供している、Linuxのカーネルに強制アクセス制御 (MAC) 機能を付加するモジュールの名称。 名前から勘違いされることが多いが、Linuxディストリビューションの一つではない(Wikipedia)

と言われている。
SELinuxは、

rootユーザーのパスワードが漏洩した場合を想定して、rootに権限が集中することを防ぐ

ことを目的として設計されている。
具体的には、主に2つの機能を実装している。

TE(Type Enforcement)

全てのプロセスに対して「ドメイン」と呼ばれるラベルを付加する。またリソースに対しても同じく「タイプ」と呼ばれるラベルを付与する。それら「ドメイン」「タイプ」に対して「読み込み」や「書き込み」をセキュリティポリシー(アクセス許可ルール)によって制御可能とするのがTEと呼ばれる機能だ。

RBAC(Roll Based Access Control)

「ロール」と呼ばれるいくつかのドメインを束ねたものを設定し、それをユーザに付与するのがRBACだ。
そうすることで、仮にあるユーザのパスワードが漏洩しても、被害を受けるのはそのユーザが持つ権限に対してのみであり、被害を最小限に押さえることができる。

だが、このSELinux。中々のじゃじゃ馬である。
設定を誤ったり、デフォルトの設定のまま運用してしまうと、

  • サーバーOSが起動しなくなる(カーネルパニック)
  • 特定のリソース(プロセスやファイルなど)が参照できなくなる
  • アクセス許可制御が非常に複雑になる

といった数多くの弊害を生み出してしまうのだ。
その結果、WEBサイトが見えなくなったり、データベースサーバーが動作しなくなったりすることもある。
実際に、日本では利用実績が少ない。それどころか、サーバー構築時に、OSインストール直後にSELinuxを無効化することが常態化している。

絶対にやるなよ!SELinuxがらみの設定ミス

では、なぜここまでSELinuxが毛嫌いされるのか?
私が今回やらかしたケースを元に解説する。

SELinuxを無効化しようとしてやらかしたミス

SELinuxを無効化する際は、大抵のLinuxディストリビューションならば、/etc/selinux/configを変更することになる。

[root@hoge01 ~]# vi /etc/selinux/config
1
2 # This file controls the state of SELinux on the system.
3 # SELINUX= can take one of these three values:
4 # enforcing – SELinux security policy is enforced.
5 # permissive – SELinux prints warnings instead of enforcing.
6 # disabled – No SELinux policy is loaded.
7 SELINUX=enforcing ①
8 # SELINUXTYPE= can take one of these two values:
9 # targeted – Targeted processes are protected,
10 # mls – Multi Level Security protection.
11 SELINUXTYPE=targeted ②

先に結論をお伝えすると、①のSELINUXをdisabledに設定するのが正解だ。
ところが、私は②のSELINUXTYPEをdisabled(無効化)して再起動してしまったため、

Kernel panic – not syncing: Attempted to kill init!

とカーネルパニックを引き起こしてしまったのだ。

復旧方法は?

手順は、いたってシンプルだ。「SELINUX カーネルパニック」でググると、数多くのエンジニアがハマっているのがよくわかる笑

  1. デフォルトOS起動のカウントダウン画面で何かキーを押下
  2. GRUBメニューで起動OSを上下で選び、「e」キーを押下
  3. 「kernel」行を上下で選び、「e」キーを押下
  4. 末尾に「 enforcing=0」を追加(enforgincの前に空白を1つ入れる、イコールの入力は「^」キーを押せば入る)
  5. エンターキーで「kernel」を選んだ画面に戻る
  6. 「b」キーを押下し、OSを起動する。
  7. 起動後、/etc/selinux/configを確認・修正

AWS上のLinuxは、この復旧方法が使えない

ところが、私の場合、この手段が使えなかった。
カーネルパニックを引き起こす場合は、復旧方法はサーバーに接続されているモニター(コンソール)上で操作を行う必要がある。
ところが、AWSはモニター(コンソール)上は提供されておらず、あくまで遠隔操作のみである。
従って、上記の復旧手段が使えなかったのだ。

結論:設定ミスをせずに、可及的速やかに、確実に、SELinuxを無効化すべし

結果として、設定ミスをしてしまったEC2インスタンスをあきらめ、1からサーバーを構築せざるをえないはめになった。
とはいえ、SELinuxを無効化していなかったら、サーバー構築後に様々な弊害を生み出す可能性がある。
従って、Linuxサーバーを構築したのちは、設定ミスをせずに、可及的速やかに、確実に、SELinuxを無効化することを強く推奨する。

関連

Tags: LinuxSELinuxセキュリティ
Newer プログラミングの学び方(6) - 読みやすいコードとは?
Older 【フリーランス希望者向け】完全リモートワークを実現するのに必要な努力とブランディング

返信をキャンセルする。

コメントを残すにはログインしてください。

CAPTCHA


プロフィール

Hisashi

インフラメインのIT屋。一応某社Founder & Director & CEO。現在は時間場所に依存しない悠々自適な引きこもり生活を実現。
 
>>> 詳しいプロフィールはこちら

★Twitter☆
@freelife_man007

★LINE☆
友だち追加

Search for:
カテゴリから探す
  • ブログ
    • IT・プログラミング
      • AWS(Amazon Web Service)
      • ITインフラ・ネットワーク
      • Laravel(PHP)
      • Wordpress
      • デジタルマーケティング
      • プログラミング学習
    • 会社設立
    • 政治・社会
    • 自由気ままな移住と生活&働き方
    • 起業・スタートアップ
タグから探す
5G Amazon LightSail Amazon Web Service Instagram ITリテラシー PDCA PHP SEO SNS Web Webマーケティング Wordpress きっかけ アフィリエイト インフルエンサー インフルエンサーマーケティング エンジニア カリブ キャッシュフロー キャリア キラキラ起業女子 クアラルンプール コンテンツマーケティング コンバージョン システムエンジニア セキュリティ ソースコード デザインパターン ノマドワーカー ノービザでいける国 ビザ(査証) フリーランス フルスタックエンジニア プログラミング プログラミング学習 マレーシア マレーシア移住 リモートワーク 仕事の自由 場所の自由 時間の自由 海外移住 物販 独立 起業
Menu
  • プロフィール
  • プライバシーポリシ
  • 免責事項
About me

日本と東南アジアを往来しながら、
プログラミングしたり、
ネットワーク構築したり、
AWSをもてあそんでいます。

ブログは、気が向いたら更新。
晴耕雨読の生活を楽しんでいます。

オンラインサロンも立ち上げる予定なので、興味のある方は是非のぞいてみてください。

Ads
Twitter
Tweets by freelife_man007
Uzula Business All Rights Reserved.
keyboard_arrow_up