【お名前.com】WordPressを共用SDサーバーからVPS(KVM)へ乗り換える その4

CentOS + Nginx でのサーバ構築。1から始める初心者向けです。
なお、筆者もばりばりの初心者です。

<その3>ではSSHの設定とファイヤウォール設定を行いました。

<その4>ではVPSの設定をもう少し見なおして、root宛のメールの転送設定を行います。


不要なサービスを停止する

サービスとは何かというと、Windowsでも馴染み深いものです。

Windowsでは、ユーザや実行中のソフトウェアの求めに応じて即座に何らかの機能を提供できるよう、背景(バックグラウンド)に常駐して稼動し続けるプログラムのことをサービスと呼ぶ。
IT用語辞典 e-Words

バックグラウウンドで常に動き続けているプログラムで、OSの起動時に同時に自動起動するものです。

自動起動は設定で止めておくこともできます。
「Windows高速化」的な事をしたことのある方は、必ず一度は見たことがあると思います。
「エラーリポートの自動送信を止める」とか「FAX機能を止めておく」とかそういったものです。

今回もこちらを参考にさせて頂きました。

karakaram-blog

まず「CentOS」で現在起動しているサービスの確認をしてみます。

sudo service --status-all

たくさん出てきましたがひとまず無視して、この中でも自動起動されるサービスだけを確認します。

sudo chkconfig --list | grep 3:on

私の場合、24項目が出てきました。
サービスには「絶対に停止してはいけないもの」と「個人の使い方によっては不要」というものがありますので、止めても絶対に大丈夫なものだけ停止してみます。怖いので今回は2個だけにしておきました。

lvm2-monitor

「論理ボリュームマネージャー(LVM)利用時の障害監視」のためのサービスだそうです。
今回はOSのインストール時にHDD構成を全て基本に振ったため不必要なので停止します。

ip6tables

IPv6でパケットフィルタを行うサービスだそうです。
IPv6を使用しないので停止します。

それぞれ、以下のように入力すると停止できます。

sudo chkconfig lvm2-monitor off
sudo chkconfig ip6tables off
サーバの時刻を合わせる

ntpd」で時刻合わせをします。

「ntpdate」という方法もあるようですが、今回は「ntpd」の設定をしておくことにしました。
この2つは似ていますがちょっと動きが違うものです。

はじめからインストールされているようですが、念の為以下を打ってみました。

sudo yum install ntpd

すると、

already installed and latest version Nothing to do

と返ってきました。「すでにインストールされており最新版だよ」という意味です。
次に時刻合わせに同期するサーバーを設定します。

sudo vi /etc/ntp.conf

エディタが立ち上がり「ntp.conf」の中身が開きました。
同期には「日本標準時プロジェクトの公開サーバ」を使用しました。

日本標準時プロジェクト

開いた「ntp.conf」から下記の行を探して、

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

下のように書き換えます。

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
server -4 ntp.nict.jp iburst
server -4 ntp.nict.jp iburst
server -4 ntp.nict.jp iburst

「Tera Term」で編集する際の「コピー&ペースト」は「Ait + C」「Alt +V」で可能です。
「Ctrl + C」と「Ctrl + V」ではないのでご注意下さい。

ntpd

保存して終了したら再起動します。

sudo service ntpd restart

再起動したら、同期できているか確認します。

sudo ntpq -p

下のような表が出ます。

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================
*ntp-b3.nict.go. .NICT.           1 u   48   64  377    2.343    0.042   0.032
+ntp-a2.nict.go. .NICT.           1 u   40   64  377    1.736    0.089   0.050
+ntp-b2.nict.go. .NICT.           1 u   46   64  377    2.303    0.087   0.089

「remote」の項目に「*」が付いていれば同期できているようです。
再起動直後だと同期できていない場合があるので少し時間を置いてから確認します。

date

で、現在の時刻が表示されます。

この「ntpd」の脆弱性を付いたDDoS攻撃があったようなので注意喚起されているバージョンと自分のものを比べてみました。下記入力でバージョン確認ができます。

sudo ntpq -c rv

注意喚起されているバージョンは「4.2.7p26 以前のもの」。
表示されたのは「4.2.6p5」、これではいけないようです。

インストールできる最新版を調べます。

yum list ntp

ここでの表示は「4.2.6p5」ですので、現状のアップデートでは対応できません。
そこでとりあえず攻撃に利用されるモニターリストを無効にします。

sudo vi /etc/ntp.conf

1番下に「disable monitor」という1行を追加します。

disable monitor
dismoni

保存して終了したら再起動します。

sudo service ntpd restart

ひとまず様子見です。

kernel panic が起きたら自動起動する

ここも参考サイトさまをそのまま真似させて頂きました。

kernel」というのはOSの中核部分のことだそうです。
何かが起きてOSがパニックを起こして止まったら自動で再起動しますよ、という意味だと思われます。

sudo vi /etc/sysctl.conf

上記を入力するとエディタが開くので一番下まで移動して末尾に

kernel.panic = 10

と入力します。この数字の場合「10秒で再起動します」という意味です。

そこから20行程にある以下の部分を探します。

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

この3行はipv6に関連しているらしく、先程サービスを停止したことで設定反映時にエラーが出るためコメントアウトしておきます。

# Disable netfilter on bridges.
#net.bridge.bridge-nf-call-ip6tables = 0
#net.bridge.bridge-nf-call-iptables = 0
#net.bridge.bridge-nf-call-arptables = 0

保存して終了し、設定反映させます。

sudo sysctl -p

「error」を返す行が無ければひとまず成功です。
設定を確認します。

sudo cat /proc/sys/kernel/panic

上記を打って「10」と返答があれば設定終了です。

logrotate の設定

logrotate」とは、ログの世代交代(ローテーション)をしてくれるツールのことだそうです。

システムのログやアクセスログ、エラーログなどなどサーバを管理する上で大事な各種のログですが放っておくと容量が肥大化する一方となりいずれ不具合を引き起こしてしまいます。

そこで、特定の日時でそれまでのログを区切って過去ログとしてバックアップに回します。そうすることでログ管理と解析を一定量のログから行えると共に、コンピュータへの負担も軽減します。

参考ブログ様によるとデフォルトではローテートしないログがあるので設定で追加されているそうです。
私も同じく設定してみます。

sudo vi /etc/logrotate.conf

エディタが開いたら一番下まで移動して、最終行「# system-specific logs may be also be configured here.」の下に追加で

# system-specific logs may be also be configured here. ←この行の下から追加
/var/log/boot.log {
             missingok
             notifempty
             yearly
}
 
/var/log/lastlog{
             missingok
             notifempty
             monthly
}

このように入れておくと良いようです。
起動時とシャットダウン時のログだと思われます。

ログは以下を入力で確認することができます。

sudo ls -l /var/log/

ローテートは時刻合わせに関係している「Cron」によりスケジュール管理・実行が行われているそうです。
ログの管理はデフォルトのままにしておきましたが、設定変更は「logrotate.conf」から行えます。
下記の数字を変えたり、追加もできるようです。

# see "man logrotate" for details
# rotate log files weekly
weekly  //週に一度ログを置き換える

# keep 4 weeks worth of backlogs
rotate 4  //ログを4世代残しておく。上がweeklyなら4週間分残る

# create new (empty) log files after rotating old ones
create  //新規ログファイルを作成する

# use date as a suffix of the rotated file
dateext  //ファイル名の末尾に日付を付ける

# uncomment this if you want your log files compressed
#compress  //ファイルを圧縮する、デフォルトではコメントアウトされています
必要であれば vim をインストールする

vim」というのは「vi」の上位互換ソフトです。
いわゆる「メモ帳」に対する、「さくらエディタ」や「SublimeText」 や「TeraPad」のような存在です。

使いこなせば大変便利という事なのでインストールしておきます。

sudo yum install vim-enhanced

これで今まで「vi」と打っていたところを「vim」に変えるとテキストエディタが「vim」で立ち上がるようになります。色分けがされており便利です。

また、便利なオプションコマンドも豊富ということです。

メールを送信してみる
お名前.comのVPS無料お試し期間中はメールの送信を行うための「25番ポート」が制限されています。
この項目は後日、料金を払って本サービスに切り替えた後に確かめたものです。

メールの送受信には「postfix」というソフトを使うようです。
そして、このソフトははじめからインストールされていますので確認だけ行います。

メールを送受信するためのソフトをMTA(メールサーバソフトウェア)と呼ぶようです。
はじめに自分の環境で現在設定されている「MTA」が何かを確認しておきます。

sudo alternatives --display mta

上記コマンドを打ってみると

リンクは現在 /usr/sbin/sendmail.postfix を指しています。

このように返ってきましたので「postfix」になっています。

テスト送信

ポートさえ使えるようになっていれば、この時点でメールを送ることができます。
自分の確認できるメールアドレス宛にテスト送信を行ってみましょう。

sendmail test@example.com

「test@example.com」の部分は自分で確認できるメールアドレスを入れます。
上記コマンドを入れるとコンソールが改行するので、続けて

from:test@example.com
to:test@example.com
subject:test

hello
.

メールの内容を書きます。

■ from
■ to
■ subject

はそれぞれ適当で大丈夫です。書いたものがそのまま送られるだけです。
最終行に「.」を入れて「Enter」を押すと送信されます。

無事受信を確認しました。

root 宛のメールを転送するようにしておく

「root」には様々なメールが送られてきます。
「root」宛のメールはできるだけ早く確認できるように、普段から確認しやすいメールアドレスへ転送設定をしておきます。

sudo vi /etc/aliases

エディタが開くので、一番下の項目まで進みます。
「person who should get root’s mail」の下の行を書き換えます。

# Person who should get root's mail
root:test@example.com ← コメントアウトを解除してアドレスを記入する

設定を反映させるために下記コマンドを実行します。

sudo newaliases
sudo /etc/init.d/postfix restart

設定反映を行ったらroot宛にテスト送信を行います。

sendmail root
from:root
to:root
subject:root test

hello root
.

こちらも「from」などの記述はなんでもOKです。
無事転送されてきましたら「MTA」の設定はひとまず完了です。

自分の持っているドメインを使ったメールの送受信については非常に苦労したので、別のページにまとめたいと思います。「postfix + dovecot + postfixadmin」を使用してSMTP送信とimap受信ができる環境にしたのですが、上記の転送設定では「root宛のメール」が届かなくなってしまい困った顛末などを書く予定です。


<その5>ではリポジトリという各種倉庫のようなものを設定します。

その5 … リポジトリの設定へ

コメント

 DISQUSコメントシステムとは?
DISQUSコメントシステムFacebook Twitter Google などのアカウントを使用してコメントを残すことができます。
また、それらを使いたくない場合でも メールアドレスのみ でコメントが可能で、その際のアドレスはもちろん非公開です。
YouTubeTweet などはURLを貼ると自動で埋め込み表示されますし、画像をアップすることもできます。
お気軽にコメント頂けると嬉しいです。

New Post



Random


CLOSE