Web制作メモ -トップへ-

[さくらのVPS設定(1/3)] CentOSの設定からApacheの設定まで

Ruby2016.01.20 14:45

Rails用のVPSはさくらのVPSの一番安いプランを契約しました。

契約するとサーバーのIPアドレスとrootのパスワードがメールで届きます。

サーバーを起動すると、初期状態でCentOSが入っているので、それを使って設定していきます。

OSの基本設定

まずはCentOSのバージョンでも確認します。

# cat /etc/redhat-release
CentOS release 6.7 (Final)

64ビット版か32ビット版かも確認しておきます。

# uname -m
x86_64
※64ビット版でした

rootのパスワードを変更します。

# passwd
Changing password for user root.
New password: (パスワード入力)
Retype new password: (パスワード入力)
passwd: all authentication tokens updated successfully.

作業用ユーザーを作成します。

# useradd XXXX(任意のユーザー名)
# passwd XXXX(上で追加したユーザー名)
Changing password for user XXXX.
New password: (パスワード入力)
Retype new password: (パスワード入力)
passwd: all authentication tokens updated successfully.

wheelグループのユーザーはsudo出来るようにします。

# visudo
---------------------------------------------------
以下の行を探して、
## Allows people in group wheel to run all commands
# %wheel        ALL=(ALL)       ALL
コメントアウトを除去
## Allows people in group wheel to run all commands
%wheel        ALL=(ALL)       ALL
---------------------------------------------------

作業用ユーザーをwheelグループに追加します。

# usermod -G wheel XXXX

ログインできるユーザーを制限

# vi /etc/ssh/sshd_config 
---------------------------------------------------
以下の行を探して、
#PermitRootLogin yes
コメントアウトを除去して、yesをnoに変更する。
PermitRootLogin no
※これでrootでのログインができなくなる。

ついでに最終行に下記の設定を追加
AllowUsers XXXX
※ここで指定したユーザー以外ログイン不可となる
---------------------------------------------------

SSHのポート番号を変更

# vi /etc/ssh/sshd_config
---------------------------------------------------
以下の行を探して、
#Port 22
コメントアウトを除去して使用するポート番号を設定
Port 12345
---------------------------------------------------

SSHを再起動して設定を有効にする

# /etc/rc.d/init.d/sshd restart
Stopping sshd: [  OK  ]
Starting sshd: [  OK  ]

iptablesの設定
※さくらで紹介されている設定通り→iptablesの設定方法|さくらインターネット公式サポートサイト

# iptables -L(何も設定されていないことを確認)
# iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -p icmp -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 12345(変更したSSH用のポート番号) -j ACCEPT
# iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -P INPUT DROP
# iptables -P OUTPUT ACCEPT
# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
# cat /etc/sysconfig/iptables
# iptables -L(設定されたことを確認)

システムをアップデートする(全て最新だった)

# yum update

Webサーバーの設定

WebサーバーはApacheを使います。

Apacheをインストールします。

# yum install httpd

自動起動をONにします。

# chkconfig httpd on

Apacheを起動する

# service httpd start
httpd を起動中: [  OK  ]
複数のドメインが使えるようにバーチャルホストを有効にする
# vi /etc/httpd/conf/httpd.conf
---------------------------------------------------
以下の行を探して、
#NameVirtualHost *:80
コメントアウトを除去
NameVirtualHost *:80
---------------------------------------------------

公開用のディレクトリを作成する

# mkdir /sakura/html

作業用ユーザーを所有者にする
※ファイルのアップロード等はこのユーザーで行う

# chown -R XXXX:XXXX /sakura/html

バーチャルホストの設定(1):ドメイン名を使わずIP指定で来たアクセスなどはすべて拒否

# vi /etc/httpd/conf.d/httpd-ip.conf
---------------------------------------------------
下記の設定でファイルを新規作成します。
<VirtualHost *:80>
    ServerName any
    <Location />
        Require all denied
    </Location>
</VirtualHost>
---------------------------------------------------

バーチャルホストの設定(2):ドメイン名を指定して来たアクセス

# vi /etc/httpd/conf.d/httpd-sakura.conf
---------------------------------------------------
下記はXXXX.vs.sakura.ne.jpというドメインの場合です。
※ディレクトリなどは必要に応じて変更してください。
<VirtualHost *:80>
  ServerName XXXX.vs.sakura.ne.jp
  ErrorLog logs/sakura_error_log
  CustomLog logs/sakura_access_log combined env=!no_log
  DocumentRoot /sakura/html
  <Directory /sakura/html>
    AllowOverride all
    Options -MultiViews
    Options -Indexes FollowSymLinks
  </Directory>
</VirtualHost>
---------------------------------------------------
※他にも使用するドメインがあれば同様に記述します。

余計な情報を出力しないよう設定します。

# vi /etc/httpd/conf/httpd.conf
---------------------------------------------------
以下の設定値を探して、
ServerTokens OS
ServerSignature On
KeepAlive Off
以下の値に変更する
ServerTokens Prod
ServerSignature Off
KeepAlive On
---------------------------------------------------

Apacheを再起動して設定を有効にします。

# service httpd restart

ついでにバージョンも見ておきます。

# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Dec 15 2015 15:50:14