カテゴリー: 未分類

  • 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かな。

  • そろそろSource Treeを使ってみようか? 2

    そろそろSource Treeを使ってみようか? 2

    レポジトリができたとしてのお話。
    それでは、テキストファイルをレポジトリ内に1つ作ってみましょうか。
    テキストエディットを起動して、新規書類を作成、[フォーマット]-[標準テキストにする]を選択。

    テキストエディット
    テキストエディット

    とりあえず、次のような文章を書いてみる。

    sample.txt
    sample.txt

    sample.txtファイルをレポジトリ内に保存する。前回作ったレポジトリだと、

    /Users/[あなた]/Repogitory/Test/sample.txt
    となる。
    この状態で、Source Treeを起動して、Testレポジトリを開いてみる。

    Test (Mercurial)
    Test (Mercurial)

    今作ったファイルが表示されている。
    選択すると、右側に中身が表示される。
    ファイル名の左側のアイコンが「?」の状態だと、まだレポジトリで管理された状態ではない。
    管理してもらうには「追加」が必要。「追加」アイコンをクリックしよう。

    追加
    追加

    もし、ファイルの表示が消えたなら、それは表示するファイルが絞られているから。
    「すべて表示」に変更しよう。

    追加予定
    追加予定

    ファイル左のアイコンが、今度は「+」になっているはず。
    このファイルは追加する予定という事。
    予定ということは、この状態ではまだ追加されていない。
    変更を確定するには、コミットが必要。「コミット」アイコンをクリックしよう。

    コミット
    コミット

    すると、コミットされていない変更が一覧表示される。今回はファイル1つの追加だけ。
    ファイルを選択すると、右側にはそのファイルの変更点が表示される。今回は、2行の追加。

    コミットメッセージ
    コミットメッセージ

    コミットメッセージには、未来の自分や、一緒に作業をしている人のために、変更内容を書いておく。
    なお、このコミットの作業は、変更内容ごとに分けて行うほうが良い。
    「コミット」ボタンをクリックすると、初めてレポジトリにファイルの追加が完了された状態となる。

    プッシュ
    プッシュ

    ファイル名の左に「√」が表示されているはず。
    なお、「プッシュ」アイコンに①と表示されるが、他のレポジトリと接続して、変更を送ることができる。今はとりあえずローカルレポジトリのみなので、また今度。

    では、ここからが本領発揮。
    ファイル名をダブルクリックして、ファイルを次のように変更してみる。

    変更後
    変更後

    保存してSource Treeに戻ると、次のようにファイル名の左に、「…」アイコンが付く。

    …
    右側には、変更内容が表示される。
    2行目が削除されて、同じく2行目に追加されたという内容だ。
    追加の時と同じく、変更を「コミット」しよう。コミットメッセージも忘れずに。

    2行目変更したよ
    2行目変更したよ

    コミットが終わったら、ファイルのメニューから「選択したファイルのログ…」を選択してみよう。

    選択したファイルのログ...
    選択したファイルのログ…

    2回のコミットの変更内容が、ログとして閲覧可能だ。

    Log: sample.txt
    Log: sample.txt

    レポジトリ内の全ての変更を見るには、ブランチを見てみよう。

    ブランチ
    ブランチ

    あとは「アップデート」が必要かな。
    特定のブランチやリビジョンにローカルの状態を更新できる。
    その他いろいろな機能があるが、ほかのサイトに任せようかな。。。

  • 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
    これでもダメなら、、、わかりません。

  • そろそろSource Treeを使ってみようか? 1

    そろそろSource Treeを使ってみようか? 1

    CVSからSVNに変わって、そこで停滞していた私の環境。
    そろそろGitを使ってみようかと、GUIソフトを探してみる。
    と、Macでは超メジャーなSource Treeが候補に上がる。
    最近Windowsにも対応したらしいので、「面白い!やってみよう!」。

    まずは、インストール。
    MacもWindowsも同じページからダウンロード可能。

    Download Source Tree Free
    Download Source Tree Free

    Macの場合は、App Storeからもインストール可能。

    SourceTree (Git/Hg)
    SourceTree (Git/Hg)

    ただし、既にApp Storeからの提供は終了してしまっているようだ。

     SourceTree is no longer distributed through the App Store
    SourceTree is no longer distributed through the App Store

    というわけで、ダウンロードしてインストールして、終わったら起動してみよう。

    SourceTree
    SourceTree

    初回起動時には次のような設定画面が開く。

    ようこそ
    ようこそ

    本名とあるが、ローカルで作業するときは特にどうでもよい。

    ただし、複数人で作業するときは、区別できる恥ずかしくない名前にしておこう。
    「次へ」をクリックすると、インターネット上にあるサービスを利用するための設定がある。ただ、そのまま次へ行っても後から設定できるので、ご安心を。
    オンラインサービスに接続します
    オンラインサービスに接続します
    次の画面はローカルレジストリの検索だが、今から作るので必要なし!
    ローカルレジストリを検索します
    ローカルレジストリを検索します
    「完了」を押すと、ブックマーク画面が開く。
    ブックマーク
    ブックマーク
    まずはローカルにレポジトリを作成する。
    Gitクライアントでその中のファイルや更新履歴をゴニョゴニョすることができるのだ。

    CVS,SVNではレポジトリ自体は一種のデータベースで、フォルダ内に複数のファイルで構成され、それらは作業フォルダとは別物だった。
    だがしかし、Gitではレポジトリそのものが作業フォルダとなる。
    ただ、作業フォルダにはデータベースフォルダが作成される。

    間違ってたらごめんなさい。

    まず、ごちゃごちゃにならないように、グループを作成。

    新しいグループ
    新しいグループ

    そしていよいよレポジトリの作成。

    リポジトリを作成
    リポジトリを作成

    だが、しかし、ここで問題が!
    SVNよりもっと新しいMercurialなる物が、幅を効かせてきているらしいではないか。
    ううむ。。。
    悩むフリだけしてMercurialを選択。新しいものには それなりに改良された何かがあるはずだ。
    (新しいものが好きなだけ?)
    リポジトリ保存先には、適当なフォルダを入れて、とりあえず”Test”リポジトリを作ってみる。
    今回は、“/Users/[あなた]/Repogitory/Test”で。

    Testリポジトリ
    Testリポジトリ

    ブックマークに追加されたレポジトリをダブルクリックで開いてみる。

    Test (Mercurial)
    Test (Mercurial)

    さて、とりあえずゴニョゴニョできそうだ。

    ただ、SourceTreeは無料だが、引き続き使用するには登録が必要になっている。
    メニューから「登録…」を選択して登録へ。

     使用期限がいつまでか分からないが、今すぐ登録する。

     メールアドレスを入力して、OK。

     個人情報を書き込んで、登録すると、ちょっと待たされて登録が終わる。

    これで心置きなく使用できる。

    では、レポジトリを、、、今日は時間が来たようなので、それは、また、別の、話。

  • 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/

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