はじめに
この記事は,Linuxを一切触ったことがない自称プログラマが,死に物狂いでCentOSサーバを立ち上げるまでの流れを書いたものです.
Cent OS7のインストール
詳しい流れは割愛します.
画像付きでインストール手順が記載されているのは,CentOS 7インストールでしょうか.
私は,「ソフトウェアの選択」を「サーバー (GUI 使用)」にしています.
セキュリティの設定
最初,ブルートフォースアタックを受けてました.
なので,きっちりとセキュリティはしないといけないことがわかりました.
なお,以下全ては「スーパユーザ」の権限で行っていると想定しています.
左上メニューの「アプリケーション」の「お気に入り」の中にある「端末」を起動してください.
そしてスーパユーザに入ります.
スーパユーザとは,管理者権限の更に上を行く,そのPCの神のようなものでしょうか(雑).
「端末」で次のコマンドを実行してください.
# su -
ここでパスワードを聞かれます.
パスワードはインストール時に設定したものを使います.
Firewallの起動とその設定
まずは,Firewallを起動しましょう.
次のコマンドを実行してください.
これによってFirewallが立ち上がります.
# systemctl start firewalld
次に,再度メニューの
[アプリケーション] > [諸ツール] > [ファイアウォール]
を選択してください.
そして,public項目の「http」と「https」だけにチェックを入れます.
デフォルトで入ってるものは,一旦消しても大丈夫です.
設定が終わったら「端末」で,
# systemctl restart firewalld
を実行します.
対策その1:狙われにくいポート番号に変更する
「端末」で以下のコマンドを実行します.
# vi /etc/ssh/sshd_config
するとviエディタで,sshd_configの中身が表示されます.
その中の,
#Port 22
となっている行(おそらく17行目)を,
Port 47382
のように書き換えます.
なお,viの使い方ですが,
aキーで,編集モードになり,文字の挿入,削除が可能になります.
escキーで,編集モードを終了します.
:wで変更を保存します.escキーで編集モードを終了していなければなりません.
:qでviを終了します.escキーで編集モードを終了していなければなりません.
:q!で変更を無視してviを終了します.escキーで編集モードを終了していなければなりません.
今回の場合ですと,
1. 矢印キー(↑↓)で17行目付近の「#Port 22」までカーソルを持って行き,
2. aキーを押し,編集モードに以降し,
3. 矢印キー(←→)を駆使し,「#」をDelete(又はBackSpace)キーで削除し,
4. 「22」の値を変更し,
5. escキーを押して編集モードを終了し,
6. :wとタイプし,Enterキーを押す
という流れになります.
対策その2:外部からのrootログインを拒否する
外部から,最高管理者権限(スーパユーザ)へ入れなくします.
対策その1と同様のファイルを編集します.
viが起動している人は以下のコマンドは実行しなくても大丈夫です.
この節から始める方は,viを起動してください.
# vi /etc/ssh/sshd_config
viの使い方は「対策その1」に簡単に載せています.
大体49行目の
#PermitRootLogin yes
を
PermitRootLogin no
に変更します.
対策その3:パスワードログインを拒否する
例えば
ssh USER ID@SERVER ADDRESS
で接続が来た時,ユーザ名とパスワードが正しければだれでもログインできてしまいます,
なので,パスワードでのログインを拒否し,鍵認証(公開鍵・秘密鍵認証)のみでのアクセスにしましょう.
viが起動している人は以下のコマンドは実行しなくても大丈夫です.
この節から始める方は,viを起動してください.
# vi /etc/ssh/sshd_config
viの使い方は「対策その1」に簡単に載せています.
大体79行目辺りの
#PasswordAuthentication yes
を
PasswordAuthentication no
に書き換えてください.
何気に困った!Cent OS7のネット接続
右上,時計の左横のコンピュータのマークをクリックすると,ネット接続のON/OFFを切り替えられます.
デフォルトでONになっていると思ったら大間違い!(これで2時間位悩んだ人)
Apache(httpd)のインストール
さて,ネットワークに繋がったらhttpd(Apache)をインストールしましょう.
スーパユーザにログインしている「端末」ソフトから,以下のコマンドを実行してください.
# yum -y install httpd
これで最新のhttpdがインストールされます.
PHPもインストールしておく?
デフォルトではPHPは入っていないようなので,ついでにインストールしておきましょう.
# yum -y install php php-mbstring
サーバ(httpd)の起動
スーパユーザにログインしている「端末」ソフトから,以下のコマンドを実行します.
# systemctl start httpd
これでサーバが立ち上がります,
おなじみの
http://localhost/
にアクセスすると,It works!……ではなく,テストページが表示されると思います.
これでもう,IPアドレスからページにアクセスできると思います.
ルータの設定は……申し訳ない.最初からしてあったのでここでは触れません.わかりません.
Webページを配置するフォルダは何処?
/var/www/html/
の中になります.
GUIで見る場合は,左上メニューの
[場所] > [コンピュータ] > [var] > [www] > [html]
の中になります.
なお,デフォルトでは所有者が「root:root」となっており,ファイルなどをコピーできません.(確認は# ls -all
などでできます)
Webページを配置するフォルダ(htmlフォルダ)の権限をよこせ!
chownコマンドで権限を奪い取りましょう.
スーパユーザにログインした「端末」ソフトから,以下のコマンドを実行してください.
# chown あなたのユーザID:apache /var/www/html/
すると,htmlフォルダの権限があなたに移ります.
この時点で,ファイルをhtmlフォルダに配置し, http://localhost/ から見ることができます.
Webページを配置するフォルダはやはりユーザフォルダの中がいい!
要は, http://localhost/~ユーザID でアクセスできるあれですね.
htmlフォルダの中に入れるのが嫌!っという人向けです.
スーパユーザにログインした「端末」ソフトで,以下のコマンドを実行してください.
vi /etc/httpd/conf.d/userdir.conf
viエディタでuserdir.confの中身が表示されます.
そのおよそ17行目付近の
UserDir disable
をコメントアウト(先頭に#をつける)しましょう.
↓
#UserDir disable
次におおよそ25行目付近の
#UserDir public_html
の先頭の「#」を外します.
↓
UserDir public_html
自分のhomeディレクトリに「public_html」フォルダを作ってください.
端末を使います.
# mkdir /home/あなたのユーザID/public_html/
最後に,アクセス権を与え,httpdを再起動します.
端末を使います.
# chmod 701 /home/あなたのユーザID/public_html
これでアクセスできますでしょうか?
403エラー(Forbidden)が表示される場合は,少し設定が必要です.
次の章で説明します.
403エラーが出る場合,または,phpなどでファイルが作れない場合
スーパユーザにログインした端末ソフトで,以下のコマンドを実行してください.
vi /etc/selinux/config
そしておおよそ7行目の
SELINUX=enforcing
を
SELINUX=disabled
またはSELINUX=permissive
と書き換えてください.
間違っても12行目辺りの物を書き換えないように!
CentOSが起動しなくなります!!(私が3回ほど書き換えて,全てクリーンインストールを行いました……間違いに早く気づきたかった……)
# sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
を実行すると,自動で書き換えてくれるそうです.
最後に# reboot
してください.
おわりに
とりあえず,最低限の機能は使えるようになりました.
何か別に,もっと簡単で,わかりやすく,そして最強のセキュリティなどがある場合はぜひご教授ください.