ログ日記

作業ログと日記とメモ

WebminとVirtualminのインストールと設定

※ 4/8 まとめ直した。


6年ぶりにWebminを使ってみる。
昔はバーチャルドメインの設定ができなくて設定ファイルも変に書き換えられていたものが、今では使いやすくなっている模様。
squeezeにパッケージでインストールした。


まず必要なサーバをインストールして設定する。

aptitude install bind9 postfix apache2-mpm-prefork apache2-suexec-custom \
  webalizer spamassassin procmail clamav mysql-server postgresql proftpd dovecot-pop3d dovecot-imapd quota


sudo -u postgres createuser -P root

a2enmod suexec
# /etc/apache2/suexec/www-data に /home を追加
a2enmod actions
# echo "ServerName host.example.com" >> /etc/apache2/httpd.conf # あとで消す
/etc/init.d/apache2 restart

echo "virtual_alias_maps = hash:/etc/postfix/virtual" >> /etc/postfix/main.cf
chgrp -v root /usr/bin/procmail
chmod 6755 /usr/bin/procmail

Postfixドメイン名はこれから最初に設定する新しいドメイン名にする。



webminとvirtualminをインストールする。

wget http://downloads.sourceforge.net/project/webadmin/webmin/1.510/webmin_1.510_all.deb?use_mirror=jaist
dpkg -i webmin_1.510_all.deb
aptitude install

wget http://download.webmin.com/download/virtualmin/webmin-virtual-server_3.77.gpl_all.deb
dpkg -i webmin-virtual-server_3.77.gpl_all.deb


virtualminのテーマを入れる。

wget http://download.webmin.com/download/virtualmin/webmin-virtual-server-theme_7.7_all.deb
dpkg -i webmin-virtual-server-theme_7.7_all.deb

httpsでポート10000にアクセスして設定。

  • 「Webmin」→「Change Language and Theme」→ 日本語のUTF-8設定 → 再読込。
  • 新しいサーバをインストールした後は以下を実行してWebminに認識させる
    • 「Webmin」→「Webmin 設定」→「モジュールのリフレッシュ」
  • 「サーバ」→「MySQL データベース サーバ」パスワードの設定
  • 「サーバ」→「Postfixの設定」→「ローカル配信」
  • 「サーバ」→「Apache Webサーバ」→「モジュール設定」でpidファイルを /var/run/apache2.pid と指定する。
  • 「ネットワーク」→「ネットワーク設定」→「DNS クライアント」ローカルホストのDNSを使うためにIPを設定する。
  • 「サーバ」→「ProFTPD サーバ」
    • バーチャルサーバのデフォルトサーバ」→「ファイルとディレクトリ」chrootをホームに設定する。
    • 「ネットワークオプション」
      • クライアントアドレスのDNS逆引きをしますか? をいいえにする。
      • リモートのIdentユーザ名を参照しますか? をいいえにする。
    • 「認証」→ 正当なシェルのユーザのログインだけを許可しますか? いいえ # SSH拒否のバーチャルドメインユーザもFTPログインできるようにする
  • 「サーバ」→「Dovecot IMAP/POP3 Server」→「SSL Configuration」Disallow plaintext authentication in non-SSL mode? を いいえ にする。
  • 「システム」→「ディスクの割り当て」クォータを有効 → 失敗?
    • rm /path/aquota.*
    • quotacheck -gucm /path
    • quotaon -ug /path
    • 「システム」→「ディスクの割り当て」再表示させて「ユーザクォータの編集」と「グループクォータの編集」が表示されていれば成功。
  • 「サーバ」→「Virtualmin Virtual Servers (GPL)」設定
  • 「サーバ」→「Virtualmin Virtual Servers (GPL)」
    • 「Server Templates」→「Default Settings」→「Pro FTPd virtual FTP」Group を nogroup にする。
    • 「Features and Plugins」ProFTPd virtual FTPSpam filtering と Virus filtering をオン。
    • proftpdのテンプレートでグループをftpからnogroupに変更してFTPをオン。
  • 「Webmin」→「言語とテーマの変更」Virtualmin Flamed Theme に変更 → 再読込
  • 「System Settings」→「モジュール設定」→「Networking Settings」NAT変換している場合は Default IP address for DNS records にグローバルIPを設定する。
  • 「System Settings」→「Server Templates」→「Default Settings」→「BIND DNS Domain」Master DNS server hostname をレジストラに登録したネームサーバホスト名にする。
  • 「System Settings」→「モジュール設定」→「Defaults for new domains」example.comexample.net を同時に使う(可能性がある)場合は Domain name style in username を Full domain name にする。
  • ユーザ権限で動くPHPを有効にする

最初のドメインを追加する。

  • 「Create Virtual Server」
    • 「Enabled features」の Setup IP-based virtual FTP? のチェックを外す。
  • 「Services」→「DNS Domain」→「アドレス」
    • レコード名:レジストラに登録したネームサーバのホスト名
    • アドレス:レジストラに登録したIPアドレス
    • 「Services」→「DNS Domain」ゾーンパラメータのメールアドレスを使えるアドレスにする。
  • Webminの方の画面で「サーバ」→「Postfix の設定」
    • 「仮想ドメイン」今追加したドメインをローカル用にするために削除する。
    • 「一般オプション」メールを受信するドメイン に今追加したドメインを加え、このメール システムのインターネット ホスト名 にも設定する。メールを受信するドメインが/etc/mailname と同じになっていることを確認する。

これで各サーバのテストができるところまで出来たはず。



二個目のドメインからは「Enabled features」の Setup IP-based virtual FTP? のチェックを外してCreateするだけで良い。
途中でエラーが出て失敗したときは、deluserなどで途中まで設定されていたものを手動で削除する。
DNS SOAのメールアドレスはテンプレートに設定が見つからなかった。
/usr/share/webmin/virtual-serve/feature-dns.pl には

                local $master = $tmaster ||
                                $bconfig{'default_prins'} ||
                                &get_system_hostname();
                $master .= "." if ($master !~ /\.$/);
                local $email = $bconfig{'tmpl_email'} ||
                               "root\@$master";
                $email = &bind8::email_to_dotted($email);
                local $soa = "$master $email (\n".
                             "\t\t\t$serial\n".
                             "\t\t\t$zd{'refresh'}$zd{'refunit'}\n".
                             "\t\t\t$zd{'retry'}$zd{'retunit'}\n".
                             "\t\t\t$zd{'expiry'}$zd{'expunit'}\n".
                             "\t\t\t$zd{'minimum'}$zd{'minunit'} )";
                &bind8::create_record($file, "@", undef, "IN",
                                      "SOA", $soa);

と書いてあって、root@master-dnsが固定されているようだ。
hostmaster@ にしたいからSOAレコードもバーチャルドメイン作成後に手動で編集することにする。
あとデフォルトではメールユーザのログイン名が username.domain になっているので、これもテンプレートの設定で username@domain に変更した。



2013/01/30追記
Webalizerの画像が文字化けするので日本語TTFを入れてwebalizer.confに

TrueTypeFont /usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf

などと書く。
でも文字が切れていたり表示が変だったりするので英語の方がいいかもしれない。