さくらのVPSでCentOS7のサーバーを構築する その2
投稿日:2017年04月13日
最終更新日:
本編の目次
- サーバーコントロールパネルへのログイン~サーバー起動まで(第1回)
- サーバーへログイン~初回起動時に行う設定
- SSHログインについて
- SELinuxの有効化(第2回)
- 一般ユーザーの作成
- sudoの有効化
- SSH経由でのrootログイン禁止設定(第3回)
- 公開鍵認証の導入
- ファイアウォール(Firewalld)の設定(第4回)
- SSHのポート番号変更とSELinux
- WEBサイト公開用ユーザーの作成とChrootの設定(第5回)
- Apacheのインストールと設定
- ユーザーのホームディレクトリ配下にあるpublic_htmlを公開する(第6回)
- バーチャルホストの設定
- PHPのインストールと設定(第7回)
- PHPのCGIモード化
- MySQLのインストールと設定(第8回)
- phpMyAdminのインストールと設定(第9回)
- WordPressを使うためのMySQLの設定(第10回)
- WordPressのインストール
SELinuxの有効化(第2回)
さくらのVPSの「標準OSインストール」で提供されるCentOS7では、最初からSELinuxが無効化されています。しかし、SELinuxを有効化することでサーバーのセキュリティは高まります。今回は外部のネットワークに接続するサーバーを構築するので、セキュリティはできるだけ高めておきたいところです。SELinuxを後から有効化するのも面倒なので、設定初期段階で有効化を済ませます。root権限でコマンドを実行できるユーザーでサーバーにログインし、以下のコマンドを実行して設定ファイルを開きます。 [VIM] vim /etc/selinux/config [/VIM]
開いたら、中身(7行目辺り)を以下のように書き換え、保存してください。 [VIM] #書き換え前 SELINUX=disabled #書き換え後 SELINUX=permissive [/VIM]
保存したら、以下のコマンドを実行してサーバーを再起動しましょう。再起動したらもう一回root権限でコマンドを実行できるユーザーでログインしてください。 [VIM] reboot [/VIM]
rebootコマンドを打ってからネットワーク経由となるSSHでログインできるようになるまでには多少時間がかかるので、少し待ちます。無事にログインできたら、以下のコマンドを実行してください。 [VIM] grep “SELinux is preventing” /var/log/messages [/VIM]
このように、実行しても何も表示されなければ成功です。次のステップに移りましょう。エラーが表示された場合は、エラーメッセージや第8章 トラブルシューティング – Red Hat Customer Portalなどを参考にがんばってください。
トラブルがなければ、また以下の設定ファイルを開きます。 [VIM] vim /etc/selinux/config [/VIM]
開いたら、中身(7行目辺り)を以下のように書き換え、保存してください。 [VIM] #書き換え前 SELINUX=permissive #書き換え後 SELINUX=enforcing [/VIM]
保存したら、以下のコマンドを実行してサーバーを再起動しましょう。再起動したらもう一回root権限でコマンドを実行できるユーザーでログインしてください。 [VIM] reboot [/VIM]
無事にログインできたら、以下のコマンドを実行してください。 [VIM] getenforce #以下の文字列が表示されればOK Enforcing [/VIM] ここまで完走できれば、SELinuxの有効化完了です。(参考リンク 5.4. SELinux の有効化および無効化)
一般ユーザーの作成
ここまでは、あらゆる作業をrootアカウントで行ってきました。しかし、rootアカウントはWindowsで言うところのAdministrator(管理者)アカウントであり、何でもかんでも好き放題に操作できてしまう恐ろしいアカウントです。これを悪意ある第三者に乗っ取られた日には、一瞬にして血祭りにあげられます。なので、ここからはネットワーク経由でのrootへの直接ログインを禁止し、安全にサーバーを運用できるようにするための準備を行います。その第一段階が、一般ユーザーの作成です。
まずは一般ユーザーを追加しましょう。以下のコマンドを実行してください(hogeと書かれたところには任意の半角英数字からなるユーザー名を打ち込む)。 [VIM] useradd hoge [/VIM] 続いてパスワードを設定します。パスワードはできるだけ強固なものにしましょう(rootになれるユーザーなので)。また、パスワードは漏洩しないよう、そして忘れないようにしましょう。 [VIM] passwd hoge [/VIM] このコマンドを打ち込んだ後、画面の指示に従ってパスワードを2回入力します。
パスワードの設定に成功しました。
蛇足ですが、ユーザーを削除する場合は以下のコマンドを実行します。 [VIM] userdel -r hoge [/VIM]
sudoの有効化
sudoコマンドは、rootでは無いユーザーがroot権限でコマンドを実行するためのコマンドです。以下に使用例を示します。 [VIM] sudo systemctl poweroff [/VIM] systemctl poweroff はサーバーをシャットダウンするコマンドですが、これを実行するためにはroot権限が必要です。実行したいコマンドの頭にsudoを付けることで、(設定を済ませてあれば)一般ユーザーでもroot権限が必要なコマンドを実行できるようになります。さくらのVPS標準OSインストールのCentOS7の場合はsudoが既に有効化されているので(自分で有効化する場合の手順はこちら)、先程追加したユーザーがsudoを使えるように設定を行います。以下のコマンドを実行し、管理用の一般ユーザーをWheelグループに加えてください。 [VIM] gpasswd -a hoge wheel [/VIM]
ここまでの操作で、hoge(一般ユーザー)はsudoコマンドを用いてroot権限を得ることが出来るようになりました。sudoを使いたいユーザーをwheelグループに追加すればOKです。
実際にsudoを使ったときの画面はこんな感じです。sudoしたユーザー本人のパスワードの入力を求められます。
suできるユーザーの制限
一般ユーザーがroot権限を得る方法には「sudo」コマンドがありますが、「su」コマンドでrootアカウントに切り替えるという手段もあります。sudoできないユーザーでも、rootのパスワードさえわかればsuコマンドでユーザーをrootに切り替えることができてしまうので、suでrootに切り替えられるユーザーを制限してしまいましょう。以下の設定ファイルを編集します。 [VIM] sudo vim /etc/pam.d/su [/VIM] 設定ファイルを開いたら、6行目辺りにある以下の記述を修正します。 [VIM] #編集前 #auth required pam_wheel.so use_uid #編集後(コメントアウトを外す) auth required pam_wheel.so use_uid [/VIM]
設定ファイルを保存すれば、制限完了です。