レンタルサーバー・VPSサーバー

Cent OSにアンチウィルスソフトをインストール

Clam Antivirusのインストール

Clam Antivirusとはオープンソースで開発が行われている、Linux用アンチウィルスソフトです。

Clam Antivirus公式サイト

Linux用のアンチウィルスソフトはいくつかありますが、yumからインストール可能(ただし、公式パッケージではないので設定が必要)なので導入の敷居が低いと思います。

EPELリポジトリを追加する

CentOSにClam AntiVirus をインストールするには、EPEL リポジトリを追加する必要があります。

EPELリポジトリとは、CentOS標準のリポジトリでは提供されていないパッケージを、yumコマンドでインストール可能にするリポジトリのことです。

EPEL以外のサードパーティ製リポジトリには、Remi、RPMForgeがあります。

特徴としては、Remiは最新バージョンのパッケージを入手可能、RPMForgeは大量のパッケージを入手可能と言われているようです。
EPEL は、エンタープライズ向けのリポジトリなので、サードパーティー製リポジトリの中では信頼性の高いそうです。

EPELのインストール

CentOS6の64ビット版にEPELをインストールするには、以下のコマンドを実行します。

rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

このままだと、yum コマンドを実行する度にEPELも使用することになってしまうので、EPELを無効にして、必要時だけ使用するように下記コマンドで設定を変更します。

sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/epel.repo

epel-release のアップデートを行います。

yum --enablerepo=epel -y update epel-release

今後、EPEL リポジトリを利用する際には、以下のようにEPELリポジトリを使用することを指示してコマンド実行します。

yum --enablerepo=epel コマンド パッケージ名

Clam AntiVirusのインストール

EPELリポジトリの設定が完了したら、Clam AntiVirusを行います。

yum --enablerepo=epel -y install clamd

Clam AntiVirusの設定

Clam AntiVirusをroot権限で実行するように設定を変更します。

vi /etc/clamd.conf

User の先頭に#を付けてコメントアウトします。

#User clam

Clam AntiVirusの起動

以下のコマンドでClam AntiVirusを起動します。

service clamd start
Starting Clam AntiVirus Daemon: LibClamAV Warning: *****************************                                                                                                                               *********************
LibClamAV Warning: ***  The virus database is older than 7 days!  ***
LibClamAV Warning: ***   Please update it as soon as possible.    ***
LibClamAV Warning: **************************************************
                                                           [  OK  ]

データベースの内容が古いと言われたので、アップデートします。

freshclam

また、OS起動時にClam AntiVirusが起動するように設定します。

chkconfig clamd on

ウィルススキャン実行

サンプルのウィルスファイルをダウンロードし、ウィルスをスキャンします。

wget http://www.eicar.org/download/eicar.com
clamscan --infected --remove --recursive

以下、実行結果です。

/root/eicar.com: Eicar-Test-Signature FOUND
/root/eicar.com: Removed.

----------- SCAN SUMMARY -----------
Known viruses: 4161004
Engine version: 0.99
Scanned directories: 3
Scanned files: 10
Infected files: 1
Data scanned: 0.01 MB
Data read: 0.01 MB (ratio 1.50:1)
Time: 8.341 sec (0 m 8 s)

スケジュール指定によるウィルススキャンの設定

シェルスクリプトを作成します。

vi virusscan

以下の内容を貼り付けます。
ウイルスが検知された際は、指定のメールアドレスに送信します。

#!/bin/bash

PATH=/usr/bin:/bin

# clamd update
yum -y update clamd > /dev/null 2>&1

# excludeopt setup
excludelist=/root/clamscan.exclude
if [ -s $excludelist ]; then
    for i in `cat $excludelist`
    do
        if [ $(echo "$i"|grep \/$) ]; then
            i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
            excludeopt="${excludeopt} --exclude-dir=^$i"
        else
            excludeopt="${excludeopt} --exclude=^$i"
        fi
    done
fi

# virus scan
CLAMSCANTMP=`mktemp`
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \

# report mail send
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" from@example.com
rm -f $CLAMSCANTMP

スクリプト作成後、実行権限を与え、スクリプトのテストを行います。

chmod +x virusscan
./virusscan

すると以下のようなWorningが発生する場合があります。

LibClamAV Warning: fmap_readpage: pread fail: asked for 4091 bytes @ offset 5, got 0
WARNING: Can't open file /sys/module/i915/uevent: Permission denied
LibClamAV Warning: fmap_readpage: pread fail: asked for 4094 bytes @ offset 2, got 0

こういった場合、/sys /dev /proc を除外する必要があるため、以下のコマンドを実行し、clamscan.excludeというファイルに除外するフォルダを指定します。

echo "/proc/" >> /root/clamscan.exclude
echo "/sys/" >> /root/clamscan.exclude
echo "/dev/" >> /root/clamscan.exclude

再度、スクリプトを実行し、テスト用ウイルスパターンで、メールが届くことも確認できたら、以下のディレクトリに移動させれば、毎日定期スキャンを行ってくれます。


mv virusscan /etc/cron.daily/

WordPressでSFTPを利用出来るようにする

VPSサーバーなど、FTP接続を許可してないサーバーにWordpressをインストールすると、管理者画面からプラグインをアップデートする事が出来ません。

FTP接続が行えない場合は、SSHを用いた、SFTP接続でファイル転送を行い、Wordpressをインストールしたと思われますが、Wordpressの標準機能では、SFTPには対応していません。

この問題を解決するプラグインが「SSH SFTP Updater Support」です。

SSH SFTP Updater Supportのダウンロード

管理者画面上からプラグインをインストールする事ができないため、ブラウザ経由でダウンロードします。

SSH SFTP Updater Supportのダウンロード

SSH SFTP Updater Supportのダウンロード

ダウンロードしたファイルを解凍し、/wp-content/plugins/ フォルダの中にアップロードします。

SSH SFTP Updater Supportをフォルダごとアップロード

SSH SFTP Updater Supportをフォルダごとアップロード

管理者画面にログインし、プラグインを有効化します。

プラグインのインストール、更新時の画面

SSH SFTP Updater Supportをインストールしたら、今度はWordpressの管理者画面上で、プラグインのインストール・更新ができるか試して見ます。

SFTPでプラグインのインストール・更新を行う

SFTPでプラグインのインストール・更新を行う

  1. 今まで、プラグイン更新時に「FTP」もしくは「FTPS」しか記載がなかった場所にSSHが選択できるようになっていますので選択します
  2. ホスト名には、ドメイン名・もしくはIPアドレスを記載します。
  3. FTP/SSHユーザー名にはSSHでログインする場合に利用するユーザ名を入力
  4. 同じく、パスワードを入力
  5. 秘密鍵方式を採用している場合は、アップロードできます。
  6. 開始をクリックすると、プラグインのアップデートが行えます。

SFTPでのインストール・アップデートに失敗する場合

以下のエラーメッセージが出る場合、SElinuxの設定を促すエラーメッセージが出ますが、このエラーメッセージは実はSElinuxを導入していなくても、このエラーが発生します。

If SELinux is installed check to make sure that httpd_can_network_connect is set to 1

SFTPでのインストール・アップデートに失敗した場合

SFTPでのインストール・アップデートに失敗した場合

この症状は/etc/hosts にドメイン名が記載されておらず、名前解決ができないから失敗する場合でも、上記のようなエラーが発生します。

SElinuxの設定を見直す前に、/etc/hosts の設定を見直しましょう。

Ubuntuでパッケージのアップグレードに失敗する場合の対処方

Ubuntuでパッケージの更新を行う

Ubuntuサーバーを運用していると、まれにパッケージの更新に失敗する事があります。

これは、/boot パーティションの容量が一杯になって、パッケージの更新ができない。という可能性が高いので、カーネルイメージの削除を行い、/boot パーティションに空き容量を増やす方法を解説します。

パーティションの容量を確認

df コマンドはパーティションの容量を確認するコマンドです。通常はKBでの表示なので、-mでMB表示に切り替えます。

注目すべきは、一番下の/bootパーティションの空き容量です。今回は、82%使用しており、そのうちアップグレードに失敗する可能性があるため、不要なカーネルイメージを削除しておきます。

$ df -m
Filesystem                  1M-blocks  Used Available Use% Mounted on
/dev/mapper/ubuntu--vg-root    501567  7453    468614   2% /
none                                1     0         1   0% /sys/fs/cgroup
udev                              990     1       990   1% /dev
tmpfs                             201    32       169  16% /run
none                                5     0         5   0% /run/lock
tmpfs                            1001     0      1001   0% /run/shm
none                              100     0       100   0% /run/user
/dev/sda1                         236   183        41  82% /boot

使用しているカーネルイメージの確認

uname -aとコマンドを投入すると、現在使用しているカーネルイメージのバージョンが表示されます。

$ uname -a

dpkg –get-selections |grep linux-image とコマンドを投入すると、インストールされているカーネルイメージの一覧が表示されます。
この中で、使用しているカーネルイメージ以外は不要となるので、古いバージョンのものから、削除します。

dpkg --get-selections |grep linux-image
linux-image-3.16.0-30-generic                   install
linux-image-3.16.0-37-generic                   install
linux-image-3.16.0-38-generic                   install
linux-image-3.16.0-39-generic                   deinstall
linux-image-3.16.0-41-generic                   deinstall
linux-image-3.16.0-43-generic                   deinstall
linux-image-3.16.0-44-generic                   install
linux-image-3.16.0-45-generic                   install
linux-image-3.16.0-46-generic                   install
linux-image-3.16.0-51-generic                   install
linux-image-extra-3.16.0-30-generic             install
linux-image-extra-3.16.0-37-generic             deinstall
linux-image-extra-3.16.0-38-generic             deinstall
linux-image-extra-3.16.0-39-generic             deinstall
linux-image-extra-3.16.0-41-generic             deinstall
linux-image-extra-3.16.0-43-generic             deinstall
linux-image-extra-3.16.0-44-generic             install
linux-image-extra-3.16.0-45-generic             install
linux-image-extra-3.16.0-46-generic             deinstall
linux-image-extra-3.16.0-51-generic             deinstall

カーネルイメージの削除

以下のコマンドで不要なカーネルイメージを削除する事が出来ます。

sudo aptitude remove linux-image-*.*.*-**-generic
sudo apt-get autoremove

空き容量を再度確認

再び、df -mとコマンドを投入し、/boot パーティションの空き容量を確認します。
カーネルイメージを削除した事で、34%まで減少した事が分かります。

df -m
Filesystem                  1M-blocks  Used Available Use% Mounted on
/dev/mapper/ubuntu--vg-root    501567  6885    469182   2% /
none                                1     0         1   0% /sys/fs/cgroup
udev                              990     1       990   1% /dev
tmpfs                             201    32       169  16% /run
none                                5     0         5   0% /run/lock
tmpfs                            1001     0      1001   0% /run/shm
none                              100     0       100   0% /run/user
/dev/sda1                         236    75       150  34% /boot

パッケージの更新・インストールを実施

空き容量が確保出来たら、コマンドを投入して、パッケージの更新・インストールを行います。

Nginxでベーシック認証を行う際の注意点

nginxでベーシック認証を行う際の注意点

Nginxでベーシック認証を行う際、Apacheと同じように.htaccessを設定しても、効果はありません。

Nginxは.htaccessを使った制御は許可しておらず、confファイルを編集して設定する必要があります。

.htpasswdの生成

Nginxでベーシック認証を行う場合、.htaccessを用意する必要はありませんが、.htpasswdは用意しておく必要があります。

コマンドを投入して作成してもよいのですが、htpasswdファイル生成(作成)でファイルを生成し、FTPで特定のフォルダにアップする。というやり方の方が手軽です。

Nginx用confファイルの編集

.htpasswdを用意した後は、実際にconfファイルを編集し、ベーシック認証用の設定を記述する必要があります。

以下のように locationディレクティブに設定する事で反映させる事が出来ます。

location / {
    auth_basic            "Local Security Test"; #表示したいメッセージを記入。
    auth_basic_user_file /var/www/html/.htpasswd; #.htpasswdのパス
}

Nginxを再起動

上記内容を編集した後、Nginxの再起動を行い、設定を反映させます。

sudo service nginx restart

Nginxを再起動しても反映されない場合

私の場合、Ngixnを上記のコマンドで再起動しても設定が反映されませんでした。
一度、Nginxを停止させてから、再度、起動させると無事反映させる事が出来ました。

sudo service nginx stop
sudo service nginx start

GMO VPSでOSが起動しなくなった場合の対処方

GMOクラウドVPSでOSの再インストール

GMOクラウドVPSでサーバー環境をうっかり破壊してしまった場合、いくつかの対応策があるため、記載しておきます。

リカバリーモードの活用

OSが起動しなくなった場合、リカバリーモードでVPSサーバーを起動し、メンテナンスを行う事が出来ます。OSはCentOS5.6を使用します。

サーバーステータスが「OFF」になっているのを確認し、アイコンをリカバリーモードの枠内にドラッグアンドドロップで移動させます。

GMOクラウドVPSでリカバリーモードの起動

GMOクラウドVPSでリカバリーモードの起動

サーバーをリカバリーモードで起動します。
ユーザー名は"root"、パスワードは"仮想サーバーのrootパスワード"でログインできます。

というダイアログが出るので、「実行」をクリック。

サーバーにログインするには、ユーザー名:root、パスワードは契約時のパスワードでコンソールからログインが可能です。SSH接続も出来ます。

リカバリーモードの詳細は、GMOクラウド VPS コンソールガイド:リカバリーモードに詳しく記載されています。

OSの再インストール

リカバリーモードではどうしようもない場合、OSを再インストールすることで、契約直後の状態に戻すことが出来ます。VPSコンソールのステータスが「OFF」になっている事を確認し、「OSの再インストール」の枠内にアイコンをドラッグ&ドロップしてください。

こちらでは基本、何もすることはありませんが、時間は30分~1時間程度かかるので気長に待ちましょう。

定期的にステータスがチェックされ、「PENDINNG」となっていればまだ作業中です。作業完了時は「OFF」になります。

GMOクラウドVPSでOSの再インストール

ステータスがLOCKEDになり、再インストールが終わらない

OSの再インストール中、ステータスが「LOKED」になり、停止することも出来ず、一切の操作を受け付けないという状況に陥りました。

この状態になると、こちらでは対処する方法がありません。

メニューの「サポート」をクリックし、「技術的なお問い合わせ」欄にある、「メールによるお問い合わせ」か記載された電話番号に連絡し、解除してもらいましょう。

こういったサポート窓口は、総じて電話はつながらない、メールの返事は遅い。という印象がありますが、私がメールで連絡した際には、1時間もしないうちに対応報告のメールが来ました。

「LOCKED」のステータスが「OFF」にないってるのを確認し、再度、OSの再インストールを実施しましょう。

アカウントマネージャーを開いてもエラーになる

OSのロック解除のついでに、アカウントマネージャーにアクセス出来ない現象があったので、ついでにサポートに問い合わせました。

GMO クラウドVPSでアカウントマネージャーにアクセスするとエラーになる

GMO クラウドVPSでアカウントマネージャーにアクセスするとエラーになる

解答としては、Firefoxではアカウントマネージャーは利用出来ないとの事で、アカウントマネージャーにアクセスする際はFirefox以外で作業する必要があるので、注意が必要です。

コンソールで作業する際はGoogle Chome 以外じゃないと作業が出来ないなど、ブラウザ関連のトラブルが多いのがGMOクラウドVPSの残念な所です。

GMO VPSでコンソールログイン出来ない時の対処方

コンソールの起動

GMO クラウドVPSでいざという時のために、コンソールで作業をするために起動を確認しようとしたら、とんでもなくはまってしまったので、同様の悩みで困ってる方に向けて記事にしました。

Google Chomeでは利用出来ない

私はメインブラウザにGoogle Chomeを利用していますが、どうやら、現在のChomeではJavaはサポートされてないようです。

Javaの公式サイトにもこのような記載があります。

バージョン42以降のChromeブラウザ。Chromeバージョン42 (2015年4月リリース)以降、Chromeはブラウザがプラグインをサポートする標準的な方法を無効化しました。

仕方なく、Chomeの使用はあきらめて、Firefoxを利用することにしました。

ポップアップがブロックされる

Chomeも同様の現象が起こっていましたが、Firefoxでもポップアップブロックの機能が有効になっていたため、コンソールウィンドを開こうとしても、ブラウザ側で閉じてしまいます。

Javaはバージョン7でないと動作しない

現在、Javaはバージョン8が最新版ですが、コンソールでGMO VPSクラウドにアクセスしようとするとJava7が必要になります。

まずは、現在、Java8がインストールされているか確認しましょう。インストール済みなら事前に削除しておきます。

また、Firefoxは2015年6月現在、32bit版となっているので、これにあわせて、32bit版のJava7を以下のページからダウンロードします。

java バージョン7のダウンロードページ

Windows版 Java バージョン7をダウンロード

Windows版 Java バージョン7をダウンロード

ダウンロードした、Java バージョン7をインストールします。Firefoxが起動していれば再起動させます。

Javaのセキュリティ設定

ひとまず、VPSコンソールから、コンソールを起動させます。

コンソールの起動

コンソールの起動

おそらく、以下の画像のようなエラーが表示されると思います。この時、URLをコピーしておきます。(.com/)まででかまいません。

コンソール起動時のエラー

コンソール起動時のエラー

コントロールパネルから、Java(32ビット)を選択します。

Java (32ビット)

Java (32ビット)

ポップアップウィンドウが開きます。「セキュリティ」のタブをクリックし、「サイト・リストの編集」をクリックしてください。

Javaのセキュリティ設定

Javaのセキュリティ設定

再度、ポップアップウィンドウが開くので、「追加」をクリックし、先ほどコピーしておいたURLを「場所」の入力欄にペーストし、「OK」をクリック。元のウィンドウも「OK」を押して閉じてください。

Javaの実行を許可するURLを入力

Javaの実行を許可するURLを入力

もう一度、VPSコンソールから、コンソールを立ち上げると今度はきちんとJavaが起動するので、「実行」をクリックすると、ログイン画面が表示されます。

Javaを実行

Javaを実行

GMO VPSを契約してUbuntu 12.04 LTSを使ってみる

GMO VPSポータルログイン

今回、初めてGMOクラウドVPSを利用してみました。

管理者画面でつまずく事はありましたが、サーバー、回線、サポート面ではおおむね満足しています。

登録から基本的な設定までを解説したいと思います。尚、GMOクラウドVPS以外でも12.04 LTSから14.04 LTSのアップグレードなど他のVPSやVirtualBoxでも流用出来ると思います。

登録からサーバー起動まで

登録までは順調にいけるのでつまづく事はないでしょう。

全部で5通メールが届きます。

  • 【GMOクラウド VPS】新規お申込み受付完了のお知らせ
  • 【GMOクラウド】サービス申込み受付のお知らせ/申し込んだドメイン名
  • 【GMOクラウド】ゾーン情報作成完了のお知らせ/申し込んだドメイン名
  • 【GMOクラウドVPS】使い方ガイド ≪VPSコンソールとセキュリティー対策≫
  • GMOクラウド VPSサーバー設定完了のお知らせ:申し込んだドメイン名

約30分後に【GMOクラウド VPSサーバー設定完了のお知らせ】というメールが来れば管理者画面にログインします。

ただし、ID/パスワードは一番最初の、【GMOクラウド VPS】新規お申込み受付完了のお知らせに記載されていますので、注意してください。

VPSポータルへログイン

VPSポータルにログインするには、VPSポータルログインからログインします。

GMO VPSポータルログイン

GMO VPSポータルログイン

ログインすると、ダッシュボードが表示されます。使用期間中は「トライアル契約」と表示されています。

VPSコンソール ダッシュボード

VPSコンソール ダッシュボード

画面上の「VPSコンソール」をクリックすると、サーバーの操作画面に移動します。

サーバーを起動するには、画面左のオレンジのアイコンを、「起動」の枠の中にドラッグ&ドロップで移動させます。

VPSコンソール

VPSコンソール

「サーバーを起動してもよろしいですか?」というダイアログが出てくるので、「実行」をクリックします。

サーバーが起動すれば、SSHでログイン可能ですが、まずはコンソールでの作業を先に済ませておきます。

一般ユーザーの作成

GMOクラウドVPSにログインしたら、まず最初に一般ユーザーのアカウントを作成しSudoグループに追加します。

以下の例は、ユーザー名として、foo というユーザーを作成する例です。

#adduser foo
Adding user `foo' ...
Adding new group `foo' (1000) ...
Adding new user `foo' (1000) with group `foo' ...
Creating home directory `/home/foo' ...
Copying files from `/etc/skel' ...

ここまでサーバーが自動出力、パスワードの入力と確認を求められます。

Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for foo
Enter the new value, or press ENTER for the default

#のこりはEnter連打でOKです。
        
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

一般ユーザーでは出来る事が少ないので、管理者権限として実行するため、sodoグループに追加

# gpasswd -a foo sudo

SSHでルートログインの禁止

次にルートユーザーがSSHでログイン出来ないようにし、ついでにポートも変更します。

#vi /etc/ssh/sshd_config
#Port 22
port xxxx

#PermitRootLogin yes
PermitRootLogin no

編集が終了したら以下のコマンドを実行

#service ssh restart

SSHを再起動したら、まず一般ユーザーでログインが出来る事と、ルートでのログインが禁止されることを確認してください。
以降、一般ユーザーで作業を行います。

パッケージのアップデート

Ubuntuでは簡単にプログラムをインストールするaptitudeというツールがあります。apt-getの方がよいなどの意見もありますが、私はaptitudeを利用しています。

$sudo aptitude update
$sudo aptitude upgrade

この2つがパッケージの更新に必要です。updateで最新のパッケージリストを読み込み、upgradeで実際にインストールを行います。

パッケージの一覧がずらーっと表示されるので、Yを選択。

しばらくすると、以下の画像のような画面に切り替わるので、「install the package maintainer’s version」を選択してください。

ふたたび$が表示されればアップデート完了です。

grubのアップグレード

grubのアップグレード

高負荷に悩まない!wpXクラウドがオススメな3つの理由

wpxクラウド

WordPressでホームページを公開する上で重要な事の1つに、どのサーバー会社を利用するかという事があげられます。アクセスが増え、表示速度が遅くなったと感じても、初心者にはサーバーの移行自体大変だからです。

今回3カ月ほど、wpXクラウドを利用してみました。

当初はクセのある仕様に戸惑いはしたものの、圧倒的な速度とアクセス数による高負荷の心配をしないでいいというのはとても快適で、特に初心者や高負荷に悩むサイト運営者にオススメなサービスだと感じたので、レビューしてみることにしました。

続きを読む