Author Archives: rutoru

さくらVPSでdenyhosts

logwatchでログ監視してますが、結構いろいろなところからのアクセスがあります。
denyhostsはログを監視して、不正と思われるIPアドレスを/etc/deny.hostsに追加してくれるソフトです。

$ sudo yum -y install denyhosts
...
Installed:
 denyhosts.noarch 0:2.6-19.el6

Complete!
$ sudo service denyhosts start
Starting denyhosts: [ OK ]
$ sudo chkconfig denyhosts on

これでいいはず。

さくらのVPSでApacheのVirtualHostを使う

1台のマシンで複数のサイトを立ち上げたい場合、VirtualHostを使います。公開するドメインと、それ以外とを分けておきたいと思ったので、VirtualHostの設定を行いました。

まず、/etc/httpd/conf/httpd.confのVirtualHostのサンプル設定を消します(重要)。
その後、/etc/httpd/conf.d/virtualhost.confに以下を設定しました。
VirtualHost毎に設定を分けるとか、色々な方法があるみたいです。

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName hostname1.com:80
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www/html2
    ServerName hostname2.com:80
</VirtualHost>

SSLでもアクセス可能にする場合は、ポート443のNameVirtualHostを作ってあげる必要があります。で、VirtualHost毎に設定してあげると。

NameVirtualHost *:443

<VirtualHost *:443>
    DocumentRoot /var/www/html
    ServerName hostname1.com:443
    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLCertificateFile /etc/pki/tls/certs/hogehoge.crt
    SSLCertificateKeyFile /etc/pki/tls/certs/hogehoge.key
</VirtualHost>

<VirtualHost *:443>
    DocumentRoot /var/www/html2
    ServerName hostname2.com:80
    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLCertificateFile /etc/pki/tls/certs/hogehoge2.crt
    SSLCertificateKeyFile /etc/pki/tls/certs/hogehoge2.key
</VirtualHost>

さくらのVPSにアンチウィルスソフトClam AntiVirusを入れる

メールサーバの運用をしていることから、アンチウィルスソフトを入れなくてはと考えました。インストール方法は、ほぼすべてこちらに書いてある通りでオッケーです。素晴らしい。

$ sudo yum -y install clamd
$ sudo vi /etc/cram/cramd.conf
#User clam
#TCPSocket 3310
#メールサーバと連携させるため、TCPはオフにしておきます。

$ sudo freshclam

$ sudo service clamd start
$ sudo chkconfig clamd on

$ sudo clamscan --infected --remove --recursive

参考サイトにある一日一度のスキャン設定も入れておきました。

さくらのVPSをメールサーバとして利用する

さくらのVPSにドメインを割り当てたので、メールサーバの設定をすることにしました。しかし、いろいろとトラブルに見舞われました。

当たり前のことですが、設定内容をちゃんと理解してからメールサーバ設定をするようにすると、失敗が少なくなると思います。適当にあれこれ設定して、いろいろとミスしてしまいました。反省反省。

まずはメールの仕組みを把握することが重要です。これについては色々なサイトや本があるので、それを読んでおけばOKですね。中でも、SMTPで利用するSMTP AUTHの理解が重要です。こちらのサイトが非常によくまとまっています。設定については色々なサイトを参考にしましたが、特にこちらこちらのサイトが参考になりました。

仕組みを理解したら設計します。
プライベートなので、頭の中で設計してもいいと思います。どのような構成にするかを考えます。特にセキュリティ。以下の構成にしました。

・送信サーバ=Postfixを利用。SMTP AUTHで認証。SASLでSASL独自のパスワードデータベースを利用します。サブミッションポートを使い、通信はTLSで暗号化。
・受信サーバ=Dovecotを利用。IMAP。Linuxユーザとパスワードで認証。通信はTLSで暗号化。

TLSを使うと決めたからには、まずは証明書を作成します。
make  mail.pemしたら、促されるままにいろいろと設定すればオッケー。

$ cd /etc/pki/tls/certs
$ sudo make hogehoge.pem

続いてPostfixの設定をします。SASLとTLSを使うと。私はmaster.cfの設定が間違っていて(TLSをONにしていなかった)、かなりハマってしまいました。気をつけましょう。

$ sudo vi /etc/postfix/master.cf
 submission inet n - n - - smtpd
 -o smtpd_tls_security_level=encrypt
 -o smtpd_sasl_auth_enable=yes
 smtps inet n - n - - smtpd
 -o smtpd_tls_wrappermode=yes
 -o smtpd_sasl_auth_enable=yes

main.cfではMaildir方式を用い、メールを10MBに制限します。

$ sudo vi /etc/postfix/main.cf
 broken_sasl_auth_clients = yes
 disable_vrfy_command = yes
 home_mailbox = Maildir/
 inet_interfaces = all
 message_size_limit = 10485760

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
 mydomain = ほげほげ.com
 myhostname = mail.ほげほげ.com
 myorigin = $mydomain
 smtpd_banner = $myhostname ESMTP unknown
 smtpd_client_restrictions = permit_mynetworks,reject_unknown_client,permit
 smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
 smtpd_sasl_auth_enable = yes
 smtpd_sasl_local_domain = $mydomain
 smtpd_sasl_security_options = noanonymous
 smtpd_sender_restrictions = reject_unknown_sender_domain

smtpd_tls_cert_file = /etc/pki/tls/certs/mail.pem
 smtpd_tls_key_file = /etc/pki/tls/certs/mail.pem
 smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
 smtpd_use_tls = yes

Dovecotをインストールし、各種設定を行います。

$ sudo  yum -y install dovecot

$ sudo vi /etc/dovecot/dovecot.conf
protocols = imap pop3
#imapsとかpop3sの設定は不要です。入れると起動時にワーニングが出ます。

$ sudo vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login

$ sudo vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir

$ sudo vi /etc/dovecot/conf.d/10-master.conf
#ポート番号を適切に設定(コメントアウトを外す)

$ sudo vi /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = </etc/pki/tls/certs/hogehoge.pem
ssl_key = </etc/pki/tls/certs/hogehoge.pem

Maildir形式を使うので、スケルトンを作りつつ、既存ユーザ(sampleuser)に対してはMaildirを作ってあげます。

$ sudo mkdir /etc/skel/Maildir
$ sudo chmod 700 /etc/skel/Maildir
$ sudo mkdir /home/sampleuser/Maildir
$ sudo chmod 700 /home/sampleuser/Maildir
$ sudo chown sampleuser:sampleuser /home/sampleuser/Maildir

SMTP AUTHパスワードの設定。SASL独自のパスワードデータベースsasldbを使うので、「auxprop」を指定します。

$ sudo vi /etc/sasl2/smtpd.conf
pwcheck_method: auxprop
mech_list: cram-md5 digest-md5 plain login

パスワード設定。

$ sudo saslpasswd2 -u ほげほげ.com -c sampleuser
$ sudo sasldblistusers2

sasldbのパーミッションを変更し、postfixグループとします。

$ sudo chmod 640 /etc/sasldb2
$ sudo chgrp postfix /etc/sasldb2

 起動させる。

$ sudo chkconfig postfix on
$ sudo chkconfig saslauthd on
$ sudo chkconfig dovecot on
$ sudo service postfix start
$ sudo service saslauthd start
$ sudo service dovecot start

あとはテストです。
当たり前ですが、メーラを正しく設定しておかないとメール送受信できません。
SMTP AUTHを使うとか、TLSを使うとか、自分で決めたとおりにメーラに設定して送受信試験を行います。これもいろいろと間違っていて、時間かかってしまいました・・・。
MacだとAirmailがオススメです。テストボタンもあるし、試験しやすいので。

やはり、メールのセットアップは大変です。これだけでも大変なのですが、まだまだやることがあります。それはまた今度の機会に。

さくらのVPS再起動時にApacheが起動しない問題((98)Address already in use: make_sock: could not bind to address 0.0.0.0:80)

さくらのVPSを再起動した際に、Apacheが起動しない問題があって悩んでいました。
起動させようとしてコマンドを打つと、以下のエラーが出て起動しないのです。

(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

# service httpd start
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs   [FAILED]

Googleで調べると、こちらのサイトに解決策が載っていました。
以下のようにします。

# /usr/sbin/lsof -i | grep http
httpd 1646 root 4u IPv6 10967 0t0 TCP *:http (LISTEN)
httpd 1646 root 6u IPv6 10971 0t0 TCP *:https (LISTEN)
# kill 1646
# service httpd start

それにしても原因は何だろうなあと、調査を続けたところ、こちらのサイトに原因が書いてありました。証明書にパスフレーズを設定しているのが原因らしい。解決策としては、パスフレーズを抜くか、SSLPassPhraseDialogを設定してパスフレーズを渡してやればいいみたい。少し悩んだのですが、SSLPassPhraseDialogを使う場合は、スクリプトファイルにパスフレーズを記載しなければならず、それはそれでセキュリティ的にどうなのかなあと思ったので、さくっとパスフレーズを削除することにしました。

# cp server.key server.key.backup
# openssl rsa -in server.key -out new.server.key
# mv new.server.key server.key
# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

これでさくらのVPSを再起動したときにも、Apacheが自動で起動するようになりました。

さくらのVPSにownCloudを設定する(自己署名証明書には気をつけて)

ownCloudという、プライベートストレージを構築できる素晴らしいソフトがあります。

インストールも超簡単。
あえてここに書くまでもありません(Google先生に聞いてください)。

問題は自己署名証明書です。
MacにはMac用のクライアントソフトが用意されています。自己署名証明書をMacに読み込ませない状態で、クライアントソフトを起動すると、ownCloudに全くつながりません!エラーが出て終わりです。ハマりました・・・。

エラーを解決できなかったので、ownCloudの導入をあきらめて、WebDAV環境を作ったのですが、その作業の中でMacに自己署名証明書をインストール(登録)したのでした。もしかして・・・と思って、証明書インストール後にownCloudクライアントを立ち上げて起動したらうまくいった次第であります。

くれぐれも自己証明書には気をつけましょう。端末にインストール(登録)するのを忘れずに!

あ、あと、ownCloudを入れる際ですが、ユーザ名とパスワードを入れるだけでOKみたいです。下手にMySQLのユーザとかを入れようとするとうまく行きませんでした。どなたかの参考になればと、書いておきます。

さくらのVPSにWebDAV環境を作る(自己署名証明書には気をつけて)

以下のサイトを参考にしました。

【オレオレ証明書】自作WebDAVサーバーにWindows7で接続する【MacもOK】

ここの情報をもとに設定すればうまく行きました。

Macからの接続ですが、自己署名証明書(上記サイトでは「オレオレ証明書」と言っています)を使う場合、事前に自己署名証明書をサーバからダウンロードして、それをダブルクリックして、Macに登録しておかなければなりません。MacでWebブラウザを使わずに、FinderでWebDAV接続する場合に必須となります。WebDAVの試験を兼ねて、まず自己署名証明書をWebDAVフォルダにコピーして、ブラウザでWebDAV接続して証明書をMacのローカルフォルダにダウンロード。その後、証明書をダブルクリックして、Macに登録すると良いでしょう。

これを忘れると、ハマるのでお気をつけを・・・。

ESET FAMILY SECURITY 2014のMacとWindowsへのインストール

APPLE MacBook Pro with Retina Display(13.3/2.4GHz Dual Core i5/8GB/256GB/Iris Graphics) ME865J/Aを使っていますが、いくらMacとはいえ、ウィルス対策はするべきかなあと思っておりました。先日Macを購入したときのヤマダ電機ポイントも残っていたし、買おうと思って、ウィルス対策ソフトを探しに秋葉原に行きました。

MacとWindows(MacでVMware Fusion使ってWin7動かしているので)に使えるものを探しました。カルペルスキー(Kaspersky)が「カスペルスキー 2014マルチプラットフォーム セキュリティ」を出していて、3年使えて、なーんとインストール台数に制限がありません。これにしようと思って、ヨドバシカメラからヤマダ電機に移動しました。秋葉原のヤマダ電機は小さいので、商品を見る際はヨドバシカメラの方が良いのであります。

ヤマダ電機に行ったところ、カルペルスキーがヨドバシより1,000円ほど高かった。うーん、いくらポイントを使うとは言え、それは損だなあ・・・と思って、ふと目を右手にやると、「ESET FAMILY SECURITY 2014」が目に入りました。ESETは前に使っていたことがあります。カルペルスキーよりもお安く、5台にインストール出来て3年使える。おー、いいじゃないかー、ということで、ESETにしたのでした。MacはMarvericksまで対応していると明記してあったのもマル。日本語版に限る、と書いてあったのが若干不安でしたが(英語の勉強のために、Macを英語にして使っているので)、購入を決めました。

帰宅してインストール。

・・・が、Macにインストールできない。Setupをダブルクリックしてもソフトが起動しません。日本語に戻したらうまくいくかなあと思って、日本語にしたあとにSetupをダブルクリックしたら起動しました。Macを英語にしている人が、ESETを入れる場合は、まず日本語にする必要があるようです。ESETのプログラムファイル(dmg)をダウンロードしたところで、英語に戻し、dmgをダブルクリックしたら、英語のままできれいにインストールできました。今も動かしていますが、何の問題もありません。

VMware Fusion上のWin7にもインストールしましたが、こちらも問題なくインストール完了。

MacにもWinにも使える。オススメであります。