はじめに
※この記事を始めて読む方へ!!
こちらの記事は6記事に渡るシリーズものの1記事になります。まだ手元に自分のLinux環境がない方は、ぜひ以前の記事も読んでみてください!!
仮想マシンについて:
⇒「2022年最新版【初心者】が自前のLinux環境を準備するまで ~第0章~仮想マシンとは」
仮想化ソフトウェアのインストールについて:
⇒「2022年最新版【初心者】が自前のLinux環境を準備するまで ~第1章~仮想化ソフトウェア(VMware Workstation Player)のインストール」
⇒「2022年最新版【初心者】が自前のLinux環境を準備するまで〜第1章〜仮想化ソフトウェア(VirtualBox)のインストール」
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
こんにちは。日本ビジネスシステムズ株式会社の2021年度新卒の岩間です。
Big Data Platformをメインにとり扱う部署でLinux/Hadoop基盤の構築を担当しています。
本記事はLinux環境構築のために必要な技術知識と手順を記載した解説記事です。 IT系キャリア志望の方や情報系の学生、あるいはLinuxに馴染みのないエンジニアの方々といった、Linuxを1から始めたい人が自前のLinux環境(OSはCentOSを使用)を準備して、「Webサーバーを構築」できるようになることを目標としています。
ここまでの記事で自分のLinux VMの作成が完了しているかと思います!
今回の記事では今後の作業で必要になってくる、「SELinux / firewalldの停止」という作業についてご紹介します。できるだけ分かりやすく丁寧に解説したいと思っておりますので、ぜひトライしてみてください!
※Webサーバー構築までの解説で1記事で収まらなかったので、章立てにして全部で5回に渡って解説していく予定となっています。
- ~第0章~仮想マシンとは
- ~第1章~仮想化ソフトウェアインストール
- ~第2章~Linux VM作成(今後の環境構成図、ハードウェア設定、rootユーザー作成、パーティション作成)
- ~第3章~SElinux / firewalldの停止★本記事
- ~第4章~ネットワーク設定(静的プライベートIP作成、ホストPCからNAT経由でインターネット接続)
- ~第5章~Webサーバー構築(Apache Webインストール、各種設定、確認作業)
※本シリーズの記事ではVMware Workstation Playerという仮想化ソフトウェアを使用した手順を紹介していきます。
※本記事は初心者の方が自前のLinux環境を構築することを第一目標としているため、各種設定項目についての説明を省略しています。今後それらについての説明記事を書く可能性もありますが、ぜひ皆様の方でも個別に調べてみてください!
SELinux / firewalldとは
SELinuxとは
SELinxとは「Security-Enhanced-Linux」の略で、Linuxのセキュリティ機能を強化するモジュールです。
SELinuxのアクセス制御では各ユーザーや各アプリケーションが「できること」をあらかじめルールで決めておくことで、そのルールに反する操作を全て禁止することができます。
このSELinuxがあることで、仮にLinuxマシンのrootユーザー(最高権限ユーザー)が乗っ取られたとしても、rootユーザーができる操作がルールによって制限されているため、悪意のある操作を禁止することができます。
しかし、実はこのSELinuxは無効化してLinuxを運用しているケースも少なくありません。
というのもSELinuxは米国国家安全保障局(NSA)によって開発された、Linux のセキュリティをより強固なものにするための機能になり、
仕様はとても難解で立ち入ることが難しく、root権限ユーザの操作が制限される関係で意図した形でプログラムが動かなくなったりする事もあります。
この機能は管理者が編集することも可能ですが、難解ゆえにかなりの手間であるため、セキュリティ対策は別途用意しつつこのSELinuxを無効化して運用する場合があります。
本記事でもこのSELinuxを無効化します。(デフォルトで有効になっています)
firewalldとは
先ほどのSELinuxは「侵入された後にアクセスできる範囲を最小限に抑えるための仕組み」でしたが、firewalldはLinuxマシンに対するアクセスを「ルールに則って拒否/許可する事ができるサービス(デーモン)」になります。
例えば、「Linuxマシンの"X"というソフトウェアは、IPアドレスが"A"というマシンからのアクセスのみ受け付ける」というルールを設定しておくことで、仮に"B"というマシンから"X"というマシンにアクセスがあったとしてもfirewalldが阻止してくれます。
このfirewalldですが、第5章で実施予定のwebサーバーへの接続に必要なhttpプロトコルをデフォルトで禁止しています。
httpプロトコルの禁止を解除することも設定可能なのですが、今回は検証と言う事もあるのでfirewalldサービス自体を無効化していきたいと思います。
SELinux / firewalldの停止
ここからは実際に無効化する方法を紹介していきます。手元のLinuxサーバーを起動して、以下の手順をよく読んで実行してみてください。
SELinuxの停止
SELinuxの設定ファイルを開く
以下のコマンドを入力
# vi /etc/selinux/config
設定ファイルの編集モードに入る
キーボードで「i」を入力する
画面左下が「-- INSERT --」に切り替わる
SELinuxの自動起動をオフにするように設定ファイルを書き換える
十字キーでカーソルを移動し、「SELINUX=permissive」を「SELINUX=disabled」に書き換える
設定ファイルの編集を保存し、編集モードを終了する
Escキーを押して画面左下の「-- INSERT --」が消えたことを確認し、「:wq」を入力してEnterキーを押す
設定を反映させるためにLinux VMを再起動する
以下のコマンドを入力
# reboot
SELinuxの起動状態を最終確認する
以下のコマンドを入力
# getenforce
「Disabled」と表示される
firewalldの停止
firewalldの現在の起動状態を確認する
以下のコマンドを入力
# systemctl status firewalld
「Active」の欄に「active (running)」と表示される。⇒firewalldが起動中ということ
firewalldを停止する
以下のコマンドを入力
# systemctl stop firewalld
firewalldの起動状態を再確認する
以下のコマンドを入力
# systemctl status firewalld
「Active」の欄に「inactive (dead)」と表示される。⇒firewalldが停止したということ
firewalldの自動起動状態を確認する
以下のコマンドを入力
# systemctl is-enabled firewalld
「enabled」と表示される
firewalldを恒久的に停止する。⇒自動起動を無効化する
以下のコマンドを入力
# systemctl disable firewalld
以下の内容が表示される
firewalldの自動起動状態を再確認する
以下のコマンドを入力
# systemctl is-enabled firewalld
「disabled」と表示される
※おまけ:SELinuxを一時的に停止したい場合の手順
※さきほど紹介したSELinuxの停止方法は恒久的に停止する方法でしたが、仮に一時的に停止したい方は以下の手順をご参考ください。(再起動が必要ないため、手軽に停止可能です)
SELinuxの現在の起動状態を確認する
以下のコマンドを入力
# getenforce
「Enforcing」と表示される
SELinuxを停止する
以下のコマンドを入力
# setenforce 0
SELinuxの起動状態を再確認する
以下のコマンドを入力
# getenforce
「Permissive」と表示される
さいごに
今回は今後のwebサーバー構築時に備えた準備作業である「SELinux / firewalldの停止」方法について紹介させていただきました。
この記事では初学者の方がとりあえず扱える環境を作り上げるというのを第一の目標としているため、SELinux / firewalldの説明は最小限にとどまっています。
一度環境を構築できた後であったり、余裕ができた時には再度自分でSELinux / firewalldについても調べてみてください!