DTIサーバー構築17「人に見せるもんじゃないだろ!」

SSL証明書を作る前に、秘密鍵(domain.pem)を作りましょう。
さらに鍵を作る前に、乱数の種(seed.dat)を作りましょう。
さらにさらに乱数の種を作る前に、、、いや、もうありません。

$ sudo openssl md5 /var/log/* > seed.dat
ログフォルダのハッシュ値を種として使います。

次のコマンドで秘密鍵が生成されます。とても大事な誰にも見せてはいけない物です。

$ sudo openssl genrsa -rand seed.dat -des3 -out /etc/pki/tls/private/domain.pem 2048
1492 semi-random bytes loaded
Generating RSA private key, 2048 bit long modulus
……………………………..+++
……………………………………………………………….+++
e is 65537 (0x10001)
Enter pass phrase for /etc/pki/tls/private/domain.pem: ←ここで秘密鍵自体を暗号化するためのパスワードを入力
Verifying – Enter pass phrase for /etc/pki/tls/private/domain.pem: ←更に同じパスワードを入力(忘れるとどうにもなりません。)

さらに、rootしか見れないように、権限も厳しくしておきます。

$ sudo chmod 600 /etc/pki/tls/private/domain.pem

さて、秘密鍵の作成は完了です。
次はこれを元に証明書作成のためのファイルを作りましょうか。

DTIサーバー構築16 「報告します!」

ビッグデータが流行っているが、サーバー内にもそれは眠っている。
ログファイルがそれである。
そのままエディターで調べるなんて、ほぼ不可能。
なので、お手軽にLogWatchを使う。

まずは、インストール

$ sudo yum install logwatch
 :(なんだかんだ表示されて)
Installed size: 11 M
Is this ok [y/N]: y
 :(なんだかんだ表示されて)
Installed:
  logwatch.noarch 0:7.3.6-49.el6
Dependency Installed:
  perl-Date-Manip.noarch 0:6.24-1.el6                 perl-YAML-Syck.x86_64 0:1.07-4.el6
Complete!
設定ファイルがそのままでも、root宛に1日1通メールでまとめを送ってくれます。
でも、念の為、見ておきましょう。

$ sudo vi /usr/share/logwatch/default.conf/logwatch.conf
メールが来るのが待てないので、強制的に実行

$ sudo logwatch

こんな感じのメールが来ます。

 ################### Logwatch 7.3.6 (05/19/07) ####################
        Processing Initiated: Fri Aug 23 19:50:43 2013
        Date Range Processed: yesterday
                              ( 2013-Aug-22 )
                              Period is day.
      Detail Level of Output: 0
              Type of Output: unformatted
           Logfiles for Host: yourdomain.com
  ##################################################################
 ——————— Disk Space Begin ————————
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/d1             50G  50G   50G   99% /

 ———————- Disk Space End ————————-

 ###################### Logwatch End #########################
 さて、この情報を基に、どうするか?
それは、あなた次第です。

DTIサーバー構築15 「俺だ!俺だよ!」

Linuxのユーザー管理には、グループと言う概念がありまして。
CentOSでは、ユーザー名と同じ名前のグループ名が自動的に作成されるそうです。
セキュリティを向上させるために、こちらで色々やりまして、自分の一般ユーザーでしかログインできなくし、sudoで管理者権限が必要なコマンドを実行するという一般的な形にしていたのですが、、、やってしまいました。

sudoersから自分を消してしまいました。。。

あ〜〜

さて、リセット!!

DTIサーバー構築14 「まだ来ないね〜」

POP3,IMAPサーバーとなるDovecotを入れてみる。
まずはインストール。

$ sudo yum install dovecot
 :(色々表示されて)
Installed:
  dovecot.x86_64 1:2.0.9-5.el6                                            

Complete!
完了。

次に設定ファイルを編集。

$ sudo vi /etc/dovecot/dovecot.conf

IPv4,IPv6の両方に対応するには、

listen = *, :: 

IPv4のみなら、

listen = *

IMAPとPOP3の両方に対応させるには、

protocols = imap pop3

LMTP (Local Mail Transfer Protocol、RFC 2033 で定義)にも対応してるけど、それはまたの機会に。

login_greeting = POP3 ready.

ハッカーの攻撃から多少守れるかも。
(と言いつつ、ブログを書いている時点で、すんごい脅威な気がする。)

次に受け付けるポートを設定する。

$ sudo vi /etc/dovecot/conf.d/10-master.conf
設定ファイル中の次の箇所を編集しよう。

service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}

service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}

メールのフォルダ位置を設定する。

$ sudo vi /etc/dovecot/conf.d/10-mail.conf

開いたら、次のように絶対パスで指定。

mail_location = maildir:~/Maildir

続いてSSLの設定。

$ sudo vi /etc/dovecot/conf.d/10-ssl.conf

次の部分を有効に。

ssl = yes
証明書は、とりあえず元々入っているサンプルを使ってみるので、設定の変更はなし。

ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

以上でメール受信が可能になったはず。

$ sudo service dovecot start
と、起動して、メーラーから受信してみる。

POP3の受信メールサーバー:
 mail.yourdomain.com
ポート番号:995
ユーザー名:VPSにログインする際に利用しているユーザー名
パスワード:VPSにログインする際に利用しているパスワード
あとは、SSLでの接続に設定。

最後に自動起動するように設定する。

$ sudo chkconfig dovecot on
よし!

DTIサーバー構築13 「だめ絶対」

メールサーバーを構築したら、絶対にチェックしておきたいのが、第三者のメール送信中継ができないかどうか。

第三者中継チェック RBL.jp

上記ページで、構築したメールサーバーのホストを入力すると、チェックしまくってくれて、

第三者中継テストの結果
全てのテストが行われました, no relays accepted.
と表示されればOK。
そうじゃなかったら、一旦メールサーバーを停止して、設定を確認しましょう。