タグ: VPS

  • DTIサーバー構築28 「みんな見て!」

    メールサーバーの構築が大体出来たので、WEBサーバーの設定を行っていく。
    といっても、SSLの設定は既にやったので、その他の基本的な部分。

    Apacheのバージョンが1から2になったのは、もう何年も前。
    昔はApache2と、2を強調しないといけなかったが、最近は、Apacheといえばバージョン2の事。

    まずは、基本設定ファイルの編集。

    $ sudo vi /etc/httpd/conf/httpd.conf
    サーバーのOSを隠して、ソフト名だけを伝える。

    #ServerTokens OS
    ServerTokens Prod
    接続状態の確認機能をON。

    #KeepAlive Off
    KeepAlive On

    サーバーの管理者メールを変更。

    #ServerAdmin root@localhost
    ServerAdmin webmaster@yourdomain.dom
    サーバー名を変更。
    ただし、VirtualHost機能を使うときは、コメントのままに。

    ServerName yourdomain.com:80
    フォルダのインデックス表示は、やめておく。

        :
    #    Options Indexes FollowSymLinks
        Options FollowSymlinks
        :
    ログのIPをDNSでホスト名に変換する。でも、処理が重いのでOffでいいかも。

    #HostnameLookups Off
    HostnameLookups On
    NotFoundなどのページにサーバー名を入れないように。

    #ServerSignature On
    ServerSignature Off
    アイコンフォルダもインデックス表示なしに。

    #    Options Indexes MultiViews FollowSymLinks
        Options MultiViews FollowSymLinks
        :

    日本語の優先度を上げる。

    #LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
    LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

    あと、余計な設定を読み込まないように改名。

    $ sudo mv -i /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org
     とりあえず。

  • DTIサーバー構築27 「コソコソ」

    Postfixで、SASLを使おう。
    SASLとは、
    http://www.ipa.go.jp/security/rfc/RFC2222JA.html
    文章だけでは理解するのに一苦労。

    まず、Postfixがdovecotを使ったSASLに対応しているかを確認。

    $ postconf -a
    cyrus
    dovecot
    postconfのマニュアルを一部コピっとく。

           -a     List  the available SASL server plug-in types.  The SASL plug-in
                  type is selected with the smtpd_sasl_type configuration  parame-
                  ter by specifying one of the names listed below.
                  cyrus  This  server  plug-in  is available when Postfix is built
                         with Cyrus SASL support.
                  dovecot
                         This  server  plug-in  uses  the  Dovecot  authentication
                         server,  and  is available when Postfix is built with any
                         form of SASL support.
                  This feature is available with Postfix 2.3 and later.

    ということで、dovecotが表示されたので、対応可能ということで。

    Dovecot SASLを使う場合は、Cyrus-SASLを停止させて問題ない。

    $ sudo service saslauthd stop
    saslauthd を停止中:                                        [  OK  ]
    自動起動もしないように変更。

    $ sudo chkconfig saslauthd off

    Postfixの設定に追記して、SASLを可能に変更。

    $ sudo vi /etc/postfix/main.cf
    以下を追加する。

    smtpd_sasl_auth_enable = yes
    smtpd_sasl_authenticated_header = no
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_security_options = noanonymous
    smtpd_recipient_restrictions =
        permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

    broken_sasl_auth_clients = no
     broken_sasl_auth_clients

    broken_sasl_auth_clients (デフォルト: no)
    古いバージョンの AUTH コマンド (RFC 2554) を実装した SMTP クライアントとの相互運用性を有効にします。このようなクライアントには MicroSoft Outlook Express バージョン 4 や MicroSoft Exchange バージョン 5.0 といった例があります。
    標準的でない方法の AUTH サポートを Postfix に案内させるには、 “broken_sasl_auth_clients = yes” を指定します。

    SASLとは関係ないが、セキュリティ上、以下の設定も追加。

    disable_vrfy_command = yes
    smtpd_helo_required = yes

    次に、Dovecot側の設定を変更。

    $ sudo vi /etc/dovecot/conf.d/10-master.conf
    unix_listener部分を変更。

    service auth {
      # auth_socket_path points to this userdb socket by default. It’s typically
      # used by dovecot-lda, doveadm, possibly imap process, etc. Its default
      # permissions make it readable only by root, but you may need to relax these
      # permissions. Users that have access to this socket are able to get a list
      # of all usernames and get results of everyone’s userdb lookups.
      unix_listener auth-userdb {
        #mode = 0600
        #user =
        #group =
      }
      # Postfix smtp-auth
      unix_listener /var/spool/postfix/private/auth {
        mode = 0666
        user = postfix
        group = postfix
      }
      # Auth process is run as this user.
      #user = $default_internal_user
    }

    続いて以下のファイルも編集。

    $ sudo vi /etc/postfix/master.cf

    コメントを外す!

    submission inet n       –       n       –       –       smtpd
    #  -o smtpd_tls_security_level=encrypt
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    #  -o milter_macro_daemon_name=ORIGINATING
    smtps     inet  n       –       n       –       –       smtpd
      -o smtpd_tls_wrappermode=yes
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    #  -o milter_macro_daemon_name=ORIGINATING

    最後に、サーバーを再起動。

    $ sudo service dovecot restart
    Dovecot Imap を停止中:                                     [  OK  ]
    Dovecot Imap を起動中:                                     [  OK  ]
    $ sudo service postfix restart
    postfix を停止中:                                          [  OK  ]
    postfix を起動中:                                          [  OK  ]
    次は、STLかな。

  • DTIサーバー構築26 「まだ信用してもらえないなんて」

    DTIサーバー構築26 「まだ信用してもらえないなんて」

    信用されていない証明書を使っていると、不都合が起こる。
    Google様に信用してもらえずに、Google AppsのメールでPOPしてもらえないのがその一例。
    Dovecotで、サンプルの証明書をそのまま使っていると、

    Unable to establish secure SSL connection
    Unable to establish secure SSL connection

    Unable to establish secure SSL connection to YOURDOMAIN.COM [ Help ]
    Server returned error: “SSL error: self signed certificate”
    と、怒られる。まあ、これは仕方ない。
    設定を編集して、StartSSLで取得した証明書を使うように変更する。

    $ sudo vi /etc/dovecot/conf.d/10-ssl.conf
    と設定ファイルを開いて、次の部分を編集する。

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

    あと、秘密鍵にパスワードがかかっているので、以下の部分にそのパスワードを入れる。

    ssl_key_password = PASSWORD
    保存して再起動すれば、もう怒られないはず、

    $ sudo service dovecot start
    だった。
    だが、HTTPSで成功したStartSSLの証明書を使っていても、

    Unable to establish secure SSL connection
    Unable to establish secure SSL connection

    Unable to establish secure SSL connection to YOURDOMAIN.COM [ Help ]
    Server returned error: “SSL error: unable to verify the first certificate”
    と、怒られる。
    で、対処法は、自分の証明書にStartSSLの証明書をくっつける。
    まず、
    http://www.startssl.com/certs/ca-bundle.pem
    からStartSSLの証明書をダウンロード。
    適当なフォルダにファイルをアップロード。
    面倒なら、エディタでペースト。

    $ sudo vi ca-bundle.pem
    その後に、自分の証明書と、StartSSLの証明書をくっつける。

    $ sudo cat /etc/pki/tls/certs/domain.pem ca-bundle.pem > domain.bundled.pem
    続いて設定ファイルの編集。

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

    次の部分を少し変える。

    #ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
    #ssl_key = </etc/pki/dovecot/private/dovecot.pem
    #ssl_cert = </etc/pki/tls/certs/domain.pem
    ssl_cert = </etc/pki/tls/certs/domain.bundled.pem
    ssl_key = </etc/pki/tls/private/domain.pem

    以上で、再起動後はGoogleさんも認めてくれるはず。

    $ sudo service dovecot start
    これでもダメなら、、、わかりません。

  • DTIサーバー構築25 「信じてもらえると思ってた」

    DTIサーバー構築25 「信じてもらえると思ってた」

    StartSSLの証明書をやっとこさ取ったので、サーバーに入れてみる。
    一度CAcertの証明書でやっているので、それと同じ。

    $ sudo vi /etc/httpd/conf.d/ssl.conf
    以下の部分を取得した秘密鍵と証明書に変更します。

    SSLCertificateFile /etc/pki/tls/certs/domain.pem
    SSLCertificateKeyFile /etc/pki/tls/private/domain.pem
    Apacheを再起動して、

    $ sudo service httpd restart
    httpd を停止中:                                            [  OK  ]
    httpd を起動中:                                            [  OK  ]

    さて、ブラウザで開いてみよう。

    https://yourdomain.com/

    待ちに待った「この証明書は有効です。」!!
    この証明書は有効です。
    この証明書は有効です。
    良かったね〜。

  • DTIサーバー構築24 「まだまだ、だよ」

    DTIサーバー構築24 「まだまだ、だよ」

    さて、ログインが出来るようになったら、ドメインの認証をする。
    あなたが所有するドメインを入力。

    すると、whois情報を手がかりに、認証で利用するためのメールアドレスが一覧で表示されるので、どれかを選択。
    (前にも書いたが、Google Appsを利用してる場合は、デフォルトでpostmasterが利用できない。グループを作ればいけるけどね。)

    で、メール内のコードをコピーして

    貼り付ける。

    成功!

    さて、秘密鍵を作成しようか。
    既に作成済みならスキップできる。
    なるべく長いパスワードで自衛しよう。

    秘密鍵はテキストで表示されるので、コピーして大切に大事にこっそり保存しておこう。

    ドメインを指定して、

    証明書のサブドメインを指定。
    ちなみにマルチサブドメイン(*)は、無料では作れない。ケチ!

    準備が完了

    やっと証明書ができたよ。
    大事に保存してね。

    さて、続いてClass2の証明書を有料で、、、取ってね。

    それでは、サーバーに入れましょうかね。