【Cent OS7】Ceont OS7でサーバを立ち上げて動作させるまでの流れ

# はじめに
この記事は，Linuxを一切触ったことがない自称プログラマが，死に物狂いでCentOSサーバを立ち上げるまでの流れを書いたものです．




# Cent OS7のインストール
詳しい流れは割愛します．
画像付きでインストール手順が記載されているのは，[CentOS 7インストール](http://centossrv.com/centos7.shtml)でしょうか．
私は，「ソフトウェアの選択」を「**サーバー (GUI 使用)**」にしています．




# セキュリティの設定
最初，ブルートフォースアタックを受けてました．
なので，きっちりとセキュリティはしないといけないことがわかりました．
なお，以下全ては「スーパユーザ」の権限で行っていると想定しています．

左上メニューの「アプリケーション」の「お気に入り」の中にある「**端末**」を起動してください．
そして**スーパユーザ**に入ります．
スーパユーザとは，管理者権限の更に上を行く，そのPCの神のようなものでしょうか（雑）．

「端末」で次のコマンドを実行してください．
`# su -`
ここでパスワードを聞かれます．
パスワードは[インストール時に設定](http://centossrv.com/centos7.shtml)したものを使います．



## Firewallの起動とその設定
まずは，Firewallを起動しましょう．
次のコマンドを実行してください．
これによってFirewallが立ち上がります．
`# systemctl start firewalld`


次に，再度メニューの
**[アプリケーション] > [諸ツール] > [ファイアウォール]**
を選択してください．
![q1.png](https://qiita-image-store.s3.amazonaws.com/0/63338/2cafe5e9-2da7-b270-eb63-7b3293518720.png)
そして，public項目の**「http」と「https」だけにチェック**を入れます．
デフォルトで入ってるものは，一旦消しても大丈夫です．


設定が終わったら「端末」で，
`# systemctl restart firewalld`
を実行します．


## 対策その１：狙われにくいポート番号に変更する
「端末」で以下のコマンドを実行します．
`# vi /etc/ssh/sshd_config`

するとviエディタで，sshd_configの中身が表示されます．
その中の，
`#Port 22`
となっている行（おそらく17行目）を，
`Port 47382`
のように書き換えます．
![q2.png](https://qiita-image-store.s3.amazonaws.com/0/63338/5e3ab116-22a2-d1e8-ad35-d789b012c787.png)

なお，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`
に変更します．
![q3.png](https://qiita-image-store.s3.amazonaws.com/0/63338/7e2d09e8-19e9-ae08-23f2-f28d5796b9f2.png)



## 対策その3：パスワードログインを拒否する
例えば
`ssh USER ID@SERVER ADDRESS`
で接続が来た時，ユーザ名とパスワードが正しければだれでもログインできてしまいます，
なので，パスワードでのログインを拒否し，鍵認証（公開鍵・秘密鍵認証）のみでのアクセスにしましょう．

viが起動している人は以下のコマンドは実行しなくても大丈夫です．
この節から始める方は，viを起動してください．
`# vi /etc/ssh/sshd_config`
viの使い方は「対策その1」に簡単に載せています．

大体79行目辺りの
`#PasswordAuthentication yes`
を
`PasswordAuthentication no`
に書き換えてください．
![q4.png](https://qiita-image-store.s3.amazonaws.com/0/63338/155a96b5-5bf4-05de-4c9e-ad40287f3941.png)




# 何気に困った！Cent OS7のネット接続
右上，時計の左横のコンピュータのマークをクリックすると，ネット接続のON/OFFを切り替えられます．
デフォルトでONになっていると思ったら大間違い！（これで2時間位悩んだ人）
![q5.png](https://qiita-image-store.s3.amazonaws.com/0/63338/cd8ea78e-daad-c3b2-17aa-3b35d4f8e98a.png)





# 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`してください．




# おわりに
とりあえず，最低限の機能は使えるようになりました．
何か別に，もっと簡単で，わかりやすく，そして最強のセキュリティなどがある場合はぜひご教授ください．