さくらVPSの初期設定まとめ

## step1. サーバに接続する

予め、さくらVPSの仮登録完了メールで下記3点を確認しておきます。

* IPアドレス: ***.***.***.***
* ユーザ名： root
* 初期パスワード： *****

手元にあるターミナルなどのアプリで接続します。

<pre>
ssh root@IPアドレス
</pre>

## step2. rootのパスワード変更

<pre>
passwd
</pre>

## step3. VPSサーバのアプリケーションを全て最新の状態にする

<pre>
yum update
</pre>

## step4. VPSを日本語化する

下記コマンドで設定ファイルを開く
<pre>
etc/sysconfig/i18n
</pre>

下記のように修正し、`wq`コマンドで設定ファイルを閉じる
<pre>
修正前： LANG="C"
修正後： LANG="ja_JP.UTF-8"
</pre>

## step5. 作業用ユーザの作成

<pre>
useradd hoge
passwd hoge
usermod -G wheel hoge
</pre>

## step6. 作業用ユーザにsudo権限を与える

<pre>
visudo
</pre>

下記のように修正し、`wq`コマンドでファイルを閉じる
<pre>
修正前： # %wheel        ALL=(ALL)       ALL
修正後： %wheel        ALL=(ALL)       ALL
</pre>

## step7. suコマンドをグループ内ユーザだけ使えるようにする

下記コマンドで、修正する。
<pre>
vim /etc/pam.d/su
</pre>

<pre>
修正前； #auth           required        pam_wheel.so use_uid
修正後：auth           required        pam_wheel.so use_uid
</pre>

## step8. 公開鍵認証の設定を行う。

* 8-1. ローカルで公開鍵と秘密鍵を作る

<pre>
cd ~
mkdir .ssh
ssh-keygen
</pre>

* 8-2. 公開鍵をサーバに置く


<pre>
ssh hoge@IPアドレス ← 一旦ターミナルから、先ほどの`hoge`ユーザでサーバに接続する
cd ~
mkdir .ssh
chmod 700 .ssh
vi .ssh/authorized_keys　←  ローカルで作ったid_rsa.pubの内容をコピペ
chmod 600 .ssh/authorized_keys
</pre>

## step9. SSHのポート番号を変更する

<pre>
sudo vi /etc/ssh/sshd_config

13行目の下記を修正
修正前 #Port 22
修正後 #Port 10230 ← 1024～65535の間の数値を指定する

sudo /etc/init.d/sshd restart ← sshを再起動し設定を反映させる
</pre>

## step10. ファイアーウォールの設定を行う

<pre>
sudo vi /etc/sysconfig/iptables ← 下記のiptablesの設定をコピペ
</pre>

* iptablesの設定内容
<pre>
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH, HTTP, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10230 -j ACCEPT ← ここの"10230"はstep9で設定したポート番号に書き換える！！！！
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
</pre>

* 設定反映
<pre>
sudo /etc/rc.d/init.d/iptables restart
</pre>

## Step11. WEBサーバとしての設定を行う

* 11-1. Apacheのインストール

<pre>
sudo yum -y install httpd
</pre>

* 11-2. chkconfigの設定

<pre>
sudo chkconfig httpd on
</pre>

* 11-3. WEBサーバのセキュリティ設定

一応バックアップをとっておく
<pre>
sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
</pre>

設定ファイルの変更
<pre>
sudo vim /etc/httpd/conf/httpd.conf

修正前： ServerTokens OS
修正後： ServerTokens Prod

修正前： ServerSignature On
修正後： ServerSignature Off

修正前： Options Indexes FollowSymLinks
修正後： Options -Indexes FollowSymLinks
</pre>

設定の反映
<pre>
sudo service httpd configtest ← 構文チェック
sudo service httpd start
</pre>

ブラウザにIPアドレスを入力して、Apacheの画面が出ればOKです。

### step12. PHPのインストール

そろそろ終盤です。
動的なWEBサーバにするために、PHPをインストールします。

* PHPインストール
<pre>
yum -y install php php-mbstring php-mysql php-gd
</pre>

* 設定ファイルを修正
<pre>
vim /etc/php.ini

■ エラーログの吐き出し場所を変更
修正前： ;error_log = php_errors.log
修正後： error_log = /var/log/php_errors.log

■ 日本語を扱えるようにする
修正前： ;mbstring.language = Japanese
修正後： mbstring.language = Japanese

修正前： ;mbstring.internal_encoding = EUC-JP
修正後： mbstring.internal_encoding = UTF-8

修正前： ;mbstring.http_input = auto
修正前： mbstring.http_input = auto

修正前: ;expose_php = On
修正後: expose_php = Off
</pre>

* 設定反映
<pre>
service httpd restart
</pre>

これでPHPが使えるようになります。

### step13. Mysqlのインストール

* インストール
<pre>
yum -y install mysql-server
</pre>

* 設定変更
<pre>
vi /etc/my.cnf

下記2行追加
default-character-set=utf8 
skip-character-set-client-handshake 
</pre>

* 設定反映
<pre>
/etc/rc.d/init.d/mysqld restart
</pre>

* 初期設定
<pre>
mysql_secure_installation

最初の`Enter current password for root(enter for none)`では、何も入れずにEnterを押す。

次の`Set root password? [Y/n]`でYを押す。
その後は、全てEnterでOK
</pre>

* Mysqlの自動起動
<pre>
/etc/rc.d/init.d/mysqld start
</pre>


### 番外編 ドメインを割り当てる

* ドメインを取得する

1. お名前.comなどでドメインを取得します。
2. お名前.comなどでDNSの設定を行います。ドメインと自分のサーバのIPアドレスをひもづける
3. vhost.confを作成する

* vhost.confの設定

```
vi /etc/httpd/conf.d/vhost.conf
```

設定ファイルを書く

```
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot ドキュメントルートのパス
ServerName 自分で取得したドメイン名
ServerAlias 自分で取得したドメイン名
<Directory "ドキュメントルートのパス">
AllowOverride All
</Directory>
</VirtualHost>
```

* Apacheの再起動

```
/etc/rc.d/init.d/httpd restart
```