サーバー設定 · 4 min read · Dec 17, 2025
Debian SqueezeにおけるISPConfig 3を使用した専用Web & MySQL、メール & DNSサーバーを持つ仮想マルチサーバー環境 - ページ 2
5 仮想サーバーの作成
OVZ Webパネルを使用して仮想サーバーを作成します。パネルにログインし、IPアドレスの下にIPを追加します。次に、localhostとOSテンプレートをクリックします。
仮想サーバー用のテンプレートをダウンロードする必要があります。新しいOSテンプレートをインストール -> 貢献をクリックし、debian-6.0-amd64-minimalを選択します。
再びlocalhostに戻り、仮想サーバーを作成をクリックします。以下のフィールドを埋めます:
- サーバーID (VEID): 数字(IPの最後の部分を選ぶと良いでしょう、最初の場合は2)
- OSテンプレート: すでに正しいものが選択されています
- サーバーテンプレート: 無制限
- IPアドレス: 192.168.1.2
- ホスト名: web.example.tld
- DNSサーバー: 8.8.4.4 8.8.8.8(GoogleのDNSです)
- 残りはそのままにして、ディスクスペース、RAM、CPUをお好みで割り当てます…
このステップをすべての仮想サーバーに対して繰り返します(最終的に4回: Web, Mail, 2x DNS)。
5.1 仮想サーバーの準備
すべての仮想サーバーにログインし、以下のコマンドを実行する必要があります:
apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade
apt-get -y install nano wget ntp ntpdate
これにより、最新バージョンにアップグレードし、いくつかの不足しているパッケージがインストールされます。
6 専用サーバーのインストール
6.1 Web/DBサーバーのインストール
hostsファイルを編集し、すべてのサーバーのIPアドレスとホスト名を追加します。ホスト名とIPアドレスは、設定に合わせて調整する必要があります。
nano /etc/hosts
127.0.0.1 localhost
192.168.1.2 web.example.tld
192.168.1.3 mail.example.tld
192.168.1.4 ns1.example.tld
192.168.1.5 ns2.example.tld
# 以下の行はIPv6対応ホストにとって望ましいです
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhostsサーバーのホスト名を設定します:
echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start
MySQLサーバーをインストールします。ISPConfigがサーバー間の設定を同期するために、すべてのサーバーにMySQLサーバーインスタンスが必要です。
apt-get -y install mysql-client mysql-server
インストーラーから要求されたときに新しいMySQLのパスワードを入力します。
MySQLがマスターサーバーのすべてのインターフェースでリッスンするようにしたいので、localhostだけではなく、/etc/mysql/my.cnfを編集し、bind-address = 127.0.0.1の行をコメントアウトします:
nano /etc/mysql/my.cnf
[...]
# skip-networkingの代わりに、デフォルトは現在localhostのみにリッスンすることです。
#bind-address = 127.0.0.1
[...] その後、MySQLを再起動します:
/etc/init.d/mysql restart
次に、Apache2、PHP5、phpMyAdmin、FCGI、suExec、Pear、およびmcryptを以下のようにインストールします:
apt-get -y install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby sudo zip wget
次の質問が表示されます:
Webサーバーを自動的に再構成しますか: <– apache2
次に、Apacheモジュールのsuexec、rewrite、ssl、actions、headers、expires、およびincludeを有効にするために、次のコマンドを実行します:
a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest headers expires
PureFTPdは次のコマンドでインストールできます:
apt-get -y install pure-ftpd-common pure-ftpd-mysql
ファイル/etc/default/pure-ftpd-commonを編集します…
vi /etc/default/pure-ftpd-common
… そしてvirtualchrootがVIRTUALCHROOT=trueに設定されていることを確認します:
[...]
VIRTUALCHROOT=true
[...] 次に、PureFTPdを構成してFTPおよびTLSセッションを許可します。FTPは非常に安全でないプロトコルであり、すべてのパスワードとすべてのデータが平文で転送されます。TLSを使用することで、通信全体を暗号化できるため、FTPははるかに安全になります。
FTPおよびTLSセッションを許可したい場合は、次のコマンドを実行します。
echo 1 > /etc/pure-ftpd/conf/TLS
TLSを使用するために、SSL証明書を作成する必要があります。私は/etc/ssl/private/に作成するので、まずそのディレクトリを作成します:
mkdir -p /etc/ssl/private/
その後、次のようにSSL証明書を生成できます:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
国名(2文字コード)[AU]: <– あなたの国名を入力します(例:「DE」)。
州または省名(フルネーム)[Some-State]: <– あなたの州または省名を入力します。
市名(例:都市)[]: <– あなたの都市を入力します。
組織名(例:会社)[Internet Widgits Pty Ltd]: <– あなたの組織名を入力します(例:会社名)。
組織単位名(例:セクション)[]: <– あなたの組織単位名を入力します(例:「IT部門」)。
一般名(例:あなたの名前)[]: <– システムの完全修飾ドメイン名を入力します(例:「web.example.tld」)。
メールアドレス[]: <– あなたのメールアドレスを入力します。
SSL証明書の権限を変更します:
chmod 600 /etc/ssl/private/pure-ftpd.pem
vlogger、webalizer、およびawstatsをインストールします:
apt-get -y install vlogger webalizer awstats
その後、/etc/cron.d/awstatsを開きます…
vi /etc/cron.d/awstats
… そしてそのファイル内の両方のcronジョブをコメントアウトします:
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh
# 静的レポートを生成します:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.shJailkitをインストールします:JailkitはSSHユーザーをchrootしたい場合にのみ必要です。次のようにインストールできます(重要:JailkitはISPConfigの前にインストールする必要があります - 後からインストールすることはできません!):
apt-get -y install build-essential autoconf automake1.9 libtool flex bison debhelper
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./debian/rules binary
cd ..
dpkg -i jailkit2.14-1.deb
rm -rf jailkit-2.14
fail2banをインストールします:これはオプションですが推奨されます。なぜなら、ISPConfigモニターがログを表示しようとするからです:
apt-get install fail2ban
fail2banがPureFTPdを監視するようにするには、ファイル/etc/fail2ban/jail.localを作成します:
vi /etc/fail2ban/jail.local
[pureftpd]
enabled = true
port = ftp
filter = pureftpd
logpath = /var/log/syslog
maxretry = 3次に、次のフィルターファイルを作成します:
vi /etc/fail2ban/filter.d/pureftpd.conf
[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex = その後、fail2banを再起動します:
/etc/init.d/fail2ban restart
次に、ISPConfig 3をインストールします。最新のISPConfig 3の安定版リリースのダウンロードURLを取得するには、ISPConfigのウェブサイトを訪問してください:http://www.ispconfig.org/ispconfig-3/download/
このサーバーは、ISPConfigコントロールパネルインターフェースを実行する私たちのセットアップのマスターサーバーです。インストール中に他のMySQLインスタンスがこのノードのMySQLデータベースに接続できるようにするために、すべてのスレーブサーバーのホスト名とIPアドレスのMySQLルートユーザーのレコードをマスターデータベースに追加する必要があります。これを行う最も簡単な方法は、すでにインストールしたウェブベースのphpmyadmin管理ツールを使用することです。ウェブブラウザでURL http://192.168.1.2/phpmyadminを開き、MySQLルートユーザーとしてログインし、次のMySQLクエリを実行します:
CREATE USER ‘root’@’192.168.1.3’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.1.3’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’192.168.1.4’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.1.4’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’192.168.1.5’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.1.5’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
上記のSQLコマンドでは、IPアドレス(192.168.1.3 - 192.168.1.5)をサーバーのIPアドレスに置き換え、mail.example.tld、ns1.example.tld、ns2.example.tldをサーバーのホスト名に置き換え、myrootpasswordを希望するルートパスワードに置き換えます。
権限を再読み込みボタンをクリックするか、MySQLを再起動します。その後、phpmyadminを閉じます。
web.example.tldのシェルに戻り、最新のISPConfig 3の安定版リリースをダウンロードします:
cd /tmp
wget
http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
次に、インストールスクリプトを開始します:
php -q install.php
言語を選択(en,de)[en]: <– en
インストールモード(standard,expert)[standard]: <– expert
サーバーの完全修飾ホスト名(FQDN)、例 server2.domain.tld [web.example.tld]: <– web.example.tld
MySQLサーバーホスト名 [localhost]: <– localhost
MySQLルートユーザー名 [root]: <– root
MySQLルートパスワード []: <– ここにMySQLルートパスワードを入力します
作成するMySQLデータベース [dbispconfig]: <– dbispconfig
MySQL文字セット [utf8]: <– utf8
このサーバーは既存のISPConfigマルチサーバーセットアップに参加しますか(y,n)[n]: <– n
メールを構成しますか(y,n)[y]: <– n
Jailkitを構成しますか(y,n)[y]: <– y
FTPサーバーを構成しますか(y,n)[y]: <– y
DNSサーバーを構成しますか(y,n)[y]: <– n
Apacheサーバーを構成しますか(y,n)[y]: <– y
ファイアウォールサーバーを構成しますか(y,n)[y]: <–n
ISPConfig Webインターフェースをインストールしますか(y,n)[y]: <–y
ISPConfigポート [8080]: <– 8080
ISPConfig WebインターフェースのSSLを有効にしますか(y,n)[y]: <– y
国名(2文字コード)[AU]: <– ENTER
州または省名(フルネーム)[Some-State]: <– ENTER
市名(例:都市)[]: <– ENTER
組織名(例:会社)[Internet Widgits Pty Ltd]: <– ENTER
組織単位名(例:セクション)[]: <– ENTER
一般名(例:あなたの名前)[]: <– ENTER
メールアドレス []: <– ENTER
チャレンジパスワード []: <– ENTER
オプションの会社名 []: <– ENTER
インストールディレクトリをクリーンアップします:
cd /tmp
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz
6.2 メールサーバーのインストール
hostsファイルを編集し、すべてのサーバーのIPアドレスとホスト名を追加します。ホスト名とIPアドレスは、設定に合わせて調整する必要があります。
nano /etc/hosts
127.0.0.1 localhost
192.168.1.2 web.example.tld
192.168.1.3 mail.example.tld
192.168.1.4 ns1.example.tld
192.168.1.5 ns2.example.tld
# 以下の行はIPv6対応ホストにとって望ましいです
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhostsサーバーのホスト名を設定します:
echo mail.example.tld > /etc/hostname
echo mail.example.tld > /etc/mailname
/etc/init.d/hostname.sh start
postfix、dovecot、およびMySQLを1つのコマンドでインストールします:
apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d
インストーラーから要求されたときに新しいMySQLのパスワードを入力し、次の質問には以下のように回答します:
一般的な構成タイプは? <– インターネットサイト
メール名は? <– mail.example.tld
amavisd-new、SpamAssassin、およびClamAVをインストールするには、次のように実行します:
apt-get -y install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
サーバーでメールリストを使用したい場合は、mailmanをインストールします。このステップはオプションです。mailmanはApache Webサーバーを必要とするため、メールサーバーでApacheインスタンスを実行したくない場合は、mailmanをインストールしないでください。
apt-get -y install mailman
mailmanのaptインストーラーは、その後、メールリストの言語を選択するように求めます。mailmanで使用したいすべての言語を有効にします。次に、「mailman」メールリストを作成します。
newlist mailman
メールリスト管理者のメールアドレスと新しいパスワードを入力します。これがmailmanインストールの最後のステップです。次のコマンドでPHPをインストールする必要がありますが、これはすべてのサーバーで実行する必要があります。mailmanをインストールしたかどうかに関係なく。
次に、ISPConfig用のPHPベースのシェルスクリプトを実行できるようにするために、PHPのコマンドラインバージョンをインストールします:
apt-get -y install php5-cli php5-mysql php5-mcrypt mcrypt
fail2banをインストールします:これはオプションですが推奨されます。なぜなら、ISPConfigモニターがログを表示しようとするからです:
apt-get install fail2ban
fail2banがPureFTPdとDovecotを監視するようにするには、ファイル/etc/fail2ban/jail.localを作成します:
vi /etc/fail2ban/jail.local
[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5次に、次のフィルターファイルを作成します:
vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P\S*),.*
ignoreregex = その後、fail2banを再起動します:
/etc/init.d/fail2ban restart
今、私はこのサーバーにISPConfig 3をインストールします。最新のISPConfig 3の安定版リリースのダウンロードURLを取得するには、ISPConfigのウェブサイトを訪問してください:http://www.ispconfig.org/ispconfig-3/download/
最新のISPConfig 3の安定版リリースをダウンロードします:
cd /tmp
wget
http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
次に、インストールスクリプトを開始します:
php -q install.php
言語を選択(en,de)[en]: <– en
インストールモード(standard,expert)[standard]: <– expert
サーバーの完全修飾ホスト名(FQDN)、例 server1.domain.tld [mail.example.tld]: <– mail.example.tld
MySQLサーバーホスト名 [localhost]: <– localhost
MySQLルートユーザー名 [root]: <– root
MySQLルートパスワード []: <– ここにMySQLルートパスワードを入力します
作成するMySQLデータベース [dbispconfig]: <– dbispconfig
MySQL文字セット [utf8]: <– utf8
このサーバーは既存のISPConfigマルチサーバーセットアップに参加しますか(y,n)[n]: <– y
MySQLマスターサーバーホスト名 []: <– web.example.tld
MySQLマスターサーバールートユーザー名 [root]: <– root
MySQLマスターサーバールートパスワード []: <– マスターサーバーのルートパスワードをここに入力します
MySQLマスターサーバーデータベース名 [dbispconfig]: <– dbispconfig
メールを構成しますか(y,n)[y]: <– y
国名(2文字コード)[AU]: <– DE(ここに住んでいる国のISOコードを入力します)
州または省名(フルネーム)[Some-State]: <– Niedersachsen(ここに住んでいる州を入力します)
市名(例:都市)[]: <– Lueneburg(ここに都市を入力します)
組織名(例:会社)[Internet Widgits Pty Ltd]: <– ENTER
組織単位名(例:セクション)[]: <– ENTER
一般名(例:あなたの名前)[]: <– ENTER
メールアドレス []: <– ENTER
Jailkitを構成しますか(y,n)[y]: <– n
FTPサーバーを構成しますか(y,n)[y]: <– n
DNSサーバーを構成しますか(y,n)[y]: <– n
Apacheサーバーを構成しますか(y,n)[y]: <– n
ファイアウォールサーバーを構成しますか(y,n)[y]: <–n
ISPConfig Webインターフェースをインストールしますか(y,n)[y]: <–n
実行…
rm -f /var/www/ispconfig
… /var/wwwディレクトリ内のISPConfigインターフェースリンクを削除します。
インストールディレクトリをクリーンアップします:
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。