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


step1. サーバに接続する

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

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

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


ssh root@IPアドレス

step2. rootのパスワード変更


passwd

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


yum update

step4. VPSを日本語化する

下記コマンドで設定ファイルを開く


etc/sysconfig/i18n

下記のように修正し、wqコマンドで設定ファイルを閉じる


修正前: LANG="C"
修正後: LANG="ja_JP.UTF-8"

step5. 作業用ユーザの作成


useradd hoge
passwd hoge
usermod -G wheel hoge

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


visudo

下記のように修正し、wqコマンドでファイルを閉じる


修正前: # %wheel        ALL=(ALL)       ALL
修正後: %wheel        ALL=(ALL)       ALL

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

下記コマンドで、修正する。


vim /etc/pam.d/su

修正前; #auth           required        pam_wheel.so use_uid
修正後:auth           required        pam_wheel.so use_uid

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

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

cd ~
mkdir .ssh
ssh-keygen
  • 8-2. 公開鍵をサーバに置く

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

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


sudo vi /etc/ssh/sshd_config

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

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

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


sudo vi /etc/sysconfig/iptables ← 下記のiptablesの設定をコピペ
  • iptablesの設定内容

    
    *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
    
  • 設定反映

    
    sudo /etc/rc.d/init.d/iptables restart
    

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

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

sudo yum -y install httpd
  • 11-2. chkconfigの設定

sudo chkconfig httpd on
  • 11-3. WEBサーバのセキュリティ設定

一応バックアップをとっておく


sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org

設定ファイルの変更


sudo vim /etc/httpd/conf/httpd.conf

修正前: ServerTokens OS
修正後: ServerTokens Prod

修正前: ServerSignature On
修正後: ServerSignature Off

修正前: Options Indexes FollowSymLinks
修正後: Options -Indexes FollowSymLinks

設定の反映


sudo service httpd configtest ← 構文チェック
sudo service httpd start

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

step12. PHPのインストール

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

  • PHPインストール

    
    yum -y install php php-mbstring php-mysql php-gd
    
  • 設定ファイルを修正

    
    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

  • 設定反映
    
    service httpd restart
    

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

step13. Mysqlのインストール

  • インストール

    
    yum -y install mysql-server
    
  • 設定変更

    
    vi /etc/my.cnf

下記2行追加
default-character-set=utf8
skip-character-set-client-handshake

  • 設定反映

    
    /etc/rc.d/init.d/mysqld restart
    
  • 初期設定

    
    mysql_secure_installation

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

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

  • Mysqlの自動起動
    
    /etc/rc.d/init.d/mysqld start
    

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

  • ドメインを取得する
  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