AD統合Webメールサーバ(Web)
ずいぶんと久しぶりになってしまいましたが、AD統合したWebメールサーバを作ろうというのが動き出したので、その実験というかを実行。
さてさて。本を参考にして必要なものを列挙するわけですが。
参考にした本はコレ。
ActiveDirectoryとLinuxによるシステム構築ガイト
- 作者: 堀田元宣
- 出版社/メーカー: 秀和システム
- 発売日: 2005/07/28
- メディア: 単行本
- クリック: 33回
- この商品を含むブログ (10件) を見る
でも、「どういう考えで何が必要か」がわかるので、この本結構いい。
ともかく、
が必要との事。
順番にいれていこう。今日はWeb編。
Webサーバインストール
さてさて。WebサーバといえばApacheですが。
ここはApache2でいこうかと思います。
apt-get install apache2
さて。動作でも確認…っと。
「あなたの予想に反して、このページが見えているでしょうか?」
いつも思うのだが、このページの日本語を作った人間は本気で素晴らしいと思う。
というか、この「あなたの予想に反して」って聞いてニヤっとするかしないかで、その人のネットワーク度(というかサーバ度)が決まると思う。すでに合言葉レベル。
ともかく。
まぁ、動いたのでよしとしましょう。
SSL設定
Webメールサーバってのに、SSLも使わないのではセキュリティで突っ込まれること間違いなしなので、SSL化。
CAをOpenSSLで作る必要があるかなぁ、と思わせといて、Apache2ってコレが簡単にできるとしってちょっとびっくり。
まず、サーバ証明書の作成から。
apache2-ssl-certificate -days 365
このコマンドで実行されるわけですが、-daysオプションがないと、有効期限が10日の証明書になってしまうので注意。とりあえず、1年もので。
Country Name (2 letter code) [GB]:JP … 国コード State or Province Name (full name) [Some-State]:Tokyo Locality Name (eg, city) []:Tokyo Organization Name (eg, company; recommended) []:Roads-to-Nodes Organizational Unit Name (eg, section) []:3Min-Net … ここまでは所在地、会社名、組織なので任意 server name (eg. ssl.domain.tld; required!!!) []:debain3.rsn.local … 必須。そのサーバのFQDNで Email Address admin@r2n.local
これで、/etc/apache2/sslにapache.pemという公開鍵と秘密鍵が一緒になったサーバ証明書ができてるはず。
次に、SSLサイトを作る。Apache2ではこれをバーチャルホストで実現するわけです。
待ちうけポートが違うサイトって形で。
まず、設定ファイルのサンプルがあるので、それをコピー。
cp /usr/share/apache2/config/default-443 /etc/apache2/sites-available/ssl
でもってこれを編集。
このSSLバーチャルホストは、非SSLと同名のサイトになるわけです。
/etc/apache2/sites-availables/ssl <IfModule mod_ssl.c> NameVirtualHost *:443 … 追加 <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem … 先ほど作成した証明書に変更 SSLCertificateKeyFile /etc/apache2/ssl/apache.pem … 先ほど作成した証明書に変更 BrowserMatch "MSIE [1-4]" nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [5-9]" ssl-unclean-shutdown SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP ServerAdmin admin@r2n.local … アドミンのメールアドレス ServerName debian3.r2n.local … サーバのFQDN DocumentRoot /var/www … 非SSLサイトとおなじに変更 <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www> … DocumentRootとおなじ Options FollowSymLinks MultiViews … Indexesがあるので削除しておく AllowOverride None Order allow,deny allow from all </Directory> (ここにcgi-binの設定があるが、使用しないのですべてコメントアウト) ErrorLog /var/log/apache2/ssl-error.log … デフォルトではDocumentRootになってるので、 /var/logに変更 LogLevel warn CustomLog /var/log/apache2/ssl-access.log combined … デフォルトではDocumentRootに なってるので、/var/logに変更 ServerSignature On Alias /icons/ "/usr/share/apache2/icons/" Alias /manual/ "/usr/share/doc/apache2-doc/manual/" <Directory "/usr/share/apache2/icons"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> </IfModule>
変更すべきところだけ変更してあとはデフォルトで。
で、モジュールを有効化して。Apache再起動。
a2enmod ssl /etc/init.d/apache2 force-reload
作ったSSLサイトを有効化。
a2nensite ssl … このsslは/etc/apache2/sites-availablesに作ったファイル名
待ちうけポートを設定。SSLは443がデフォルト。
/etc/apache2/ports.conf Listen 80 Listen 443
Apache再起動。
/etc/init.d/apache2 restart
で、/var/wwwに適当なファイルを置いて、httpsで表示確認。
もちろん、トラストアンカのCAが発行した証明書を使ったSSLではないので、エラーがでるが。
まぁ、社内だからいいでしょう。