サーバー設定 · 12 min read · Nov 03, 2025
完璧なサーバー - Debian 10 (Buster) と Apache、BIND、Dovecot、PureFTPD、ISPConfig 3.2

このチュートリアルでは、ISPConfig 3.2 のインストールのために Debian 10 サーバー (Apache2、BIND、Dovecot を使用) を準備する方法と、ISPConfig のインストール方法を示します。ウェブホスティングコントロールパネル ISPConfig 3 は、以下のサービスをウェブブラウザを通じて構成することを可能にします: Apache または nginx ウェブサーバー、Postfix メールサーバー、Courier または Dovecot IMAP/POP3 サーバー、MySQL、BIND または MyDNS ネームサーバー、PureFTPd、SpamAssassin、ClamAV など。今回のセットアップでは、Apache (nginx の代わりに)、BIND、および Dovecot をカバーします。
1 前提条件
このチュートリアルでは、ホスト名 server1.example.com と IP アドレス 192.168.0.100、ゲートウェイ 192.168.0.1 を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換えてください。さらに進む前に、Debian 10 の最小インストールが必要です。これは、ホスティングプロバイダーからの Debian ミニマルイメージであるか、Minimal Debian Server チュートリアルを使用してベースシステムをセットアップすることができます。
以下のすべてのコマンドは root ユーザーとして実行されます。直接 root ユーザーとしてログインするか、通常のユーザーとしてログインしてから次のコマンドを使用して、サーバー上で root ユーザーになります。
su -重要: ‘su -‘ を使用し、単に ‘su’ を使用しないでください。そうしないと、Debian によって PATH 変数が誤って設定されます。
2 SSH サーバーのインストール (オプション)
システムインストール中に OpenSSH サーバーをインストールしていない場合は、今すぐインストールできます:
apt-get install ssh openssh-serverこれ以降は、PuTTY などの SSH クライアントを使用して、ワークステーションから Debian 9 サーバーに接続し、このチュートリアルの残りの手順に従うことができます。
3 シェルテキストエディタのインストール (オプション)
このチュートリアルでは nano テキストエディタを使用します。一部のユーザーは古典的な vi エディタを好むため、ここでは両方のエディタをインストールします。デフォルトの vi プログラムは Debian および Ubuntu で奇妙な動作をするため、これを修正するために vim-nox をインストールします:
apt-get install nano vim-noxvi が好みのエディタである場合は、以下のコマンドでファイルを編集する際に nano を vi に置き換えてください。
4 ホスト名の設定
サーバーのホスト名は「server1.example.com」のようなサブドメインであるべきです。「example.com」のようなサブドメイン部分のないドメイン名をホスト名として使用しないでください。そうしないと、後でメール設定に問題が発生します。まず、/etc/hosts でホスト名を確認し、必要に応じて変更してください。行は次のようにする必要があります: 「IP アドレス - スペース - 完全なホスト名 (ドメインを含む) - スペース - サブドメイン部分」。私たちのホスト名 server1.example.com の場合、ファイルは次のようになります:
nano /etc/hosts127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1
# 以下の行は IPv6 対応ホストにとって望ましい
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters次に、/etc/hostname ファイルを編集します:
nano /etc/hostnameそこにはサブドメイン部分のみが含まれるべきで、私たちの場合は:
server1最後に、変更を適用するためにサーバーを再起動します:
systemctl reboot再度ログインし、次のコマンドでホスト名が正しいか確認します:
hostname
hostname -f出力は次のようになります:
root@server1:/tmp# hostname
server1
root@server1:/tmp# hostname -f
server1.example.com5 Debian インストールの更新
まず、/etc/apt/sources.list に buster/updates リポジトリが含まれていることを確認してください (これにより、常に最新のセキュリティ更新が受け取れます)。また、必要なパッケージの一部がメインリポジトリにないため、contrib および non-free リポジトリが有効になっていることを確認してください。
nano /etc/apt/sources.listdeb http://deb.debian.org/debian/ buster main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free次に実行します:
apt-get updateapt パッケージデータベースを更新するために
apt-get upgrade最新の更新をインストールします (もしあれば)。
6. デフォルトシェルの変更
/bin/sh は /bin/dash へのシンボリックリンクですが、/bin/bash が必要です。したがって、次のようにします:
dpkg-reconfigure dashデフォルトのシステムシェルとして dash を使用しますか (/bin/sh)? <– いいえ
これを行わないと、ISPConfig のインストールが失敗します。
7 システムクロックの同期
システムクロックをインターネット上の NTP ( n etwork t ime p rotocol) サーバーと同期させるのは良い考えです。単に次を実行します:
apt-get -y install ntpこれでシステム時間は常に同期されます。
8 Postfix、Dovecot、MariaDB、rkhunter、および Binutils のインストール
Postfix、Dovecot、MySQL の代替としての MariaDB、rkhunter、および Binutils を単一のコマンドでインストールできます:
apt-get -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo curl次の質問が表示されます:
一般的なメール構成のタイプ: <– インターネットサイト
システムメール名: <– server1.example.com
MariaDB のインストールを安全にし、テストデータベースを無効にするには、次のコマンドを実行します:
mysql_secure_installation質問には次のように答えます:
root パスワードを変更しますか? [Y/n] <-- y
新しいパスワード: <-- 新しい MariaDB root パスワードを入力
新しいパスワードを再入力: <-- MariaDB root パスワードを繰り返す
匿名ユーザーを削除しますか? [Y/n] <-- y
リモートからの root ログインを禁止しますか? [Y/n] <-- y
テストデータベースとそのアクセスを削除しますか? [Y/n] <-- y
特権テーブルを再読み込みしますか? [Y/n] <-- y次に、Postfix で TLS/SSL および送信ポートを開きます:
nano /etc/postfix/master.cf送信および smtps セクションのコメントを外し、必要に応じて行を追加して、この master.cf ファイルのこのセクションが以下のものと正確に一致するようにします。重要: smtps および送信で始まる行の前の # を削除し、これらの行の後の -o 行だけでなく、これらの行の前の行からも削除してください!
[...]
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
[...]その後、Postfix を再起動します:
systemctl restart postfixMySQL が localhost だけでなくすべてのインターフェースでリッスンするようにしたいので、/etc/mysql/mariadb.conf.d/50-server.cnf を編集し、bind-address = 127.0.0.1 の行の前に # を追加してコメントアウトします。
nano /etc/mysql/mariadb.conf.d/50-server.cnf[...]
# skip-networking の代わりに、デフォルトは現在 localhost のみでリッスンすることです。これはより互換性があり、セキュリティが低下することはありません。
#bind-address = 127.0.0.1
[...]MariaDB のパスワード認証方法をネイティブに設定し、後で PHPMyAdmin から root ユーザーとして接続できるようにします:
echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u rootファイル /etc/mysql/debian.cnf を編集し、MYSQL / MariaDB root パスワードをそこに 2 回設定します。
nano /etc/mysql/debian.cnf追加する必要がある MySQL root パスワードは赤で示されています。この例では、パスワードは「howtoforge」です。
# Debian スクリプト用に自動生成されました。触らないでください!
[client]
host = localhost
user = root
password = howtoforge
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password = howtoforge
socket = /var/run/mysqld/mysqld.sock
basedir = /usr‘ Error in accept: Too many open files ‘ エラーを防ぐために、MariaDB のオープンファイル制限を高く設定します。
エディタでファイル /etc/security/limits.conf を開きます:
nano /etc/security/limits.confファイルの最後に次の行を追加します。
mysql soft nofile 65535
mysql hard nofile 65535次に、mkdir コマンドで新しいディレクトリ /etc/systemd/system/mysql.service.d/ を作成します。
mkdir -p /etc/systemd/system/mysql.service.d/その中に新しいファイルを追加します:
nano /etc/systemd/system/mysql.service.d/limits.conf次の行をそのファイルに貼り付けます:
[Service]
LimitNOFILE=infinityファイルを保存して nano エディタを閉じます。
次に systemd をリロードし、MariaDB を再起動します:
systemctl daemon-reload
systemctl restart mariadbネットワーキングが有効になっているか確認します。次を実行します:
netstat -tap | grep mysql出力は次のようになります:
root@server1:/home/administrator# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 16623/mysqld9 Amavisd-new、SpamAssassin、および ClamAV のインストール
amavisd-new、SpamAssassin、および ClamAV をインストールするには、次を実行します:
apt-get install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip 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 libdbd-mysql-perl postgreyISPConfig 3 のセットアップでは amavisd を使用し、内部で SpamAssassin フィルタライブラリを読み込むため、RAM を解放するために SpamAssassin を停止できます:
systemctl stop spamassassin
systemctl disable spamassassin10 Apache ウェブサーバーと PHP のインストール
Apache2、PHP、FCGI、suExec、Pear、および mcrypt は次のようにインストールできます:
apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu libapache2-reload-perl次に、次のコマンドを実行して、Apache モジュール suexec、rewrite、ssl、actions、および include (WebDAV を使用する場合は dav、dav_fs、auth_digest も) を有効にします:
a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headers actions proxy_fcgi aliasサーバーが HTTPOXY 脆弱性を通じて攻撃されないように、apache で HTTP_PROXY ヘッダーをグローバルに無効にします。設定ファイル /etc/apache2/conf-available/httpoxy.conf を追加します。
*注意: 脆弱性は httpoxy (「r」なし) と呼ばれ、そのため、これを防ぐために設定を追加するファイルは httpoxy.conf と呼ばれ、ファイル名に「r」はありません。*
nano /etc/apache2/conf-available/httpoxy.conf次の内容をファイルに貼り付けます:
RequestHeader unset Proxy early
次に、次のコマンドを実行してモジュールを有効にします:
a2enconf httpoxy
systemctl restart apache211 Let’s Encrypt のインストール
ISPConfig は現在、Let’s Encrypt クライアントとして acme.sh を使用しています。次のコマンドを使用して acme.sh をインストールします:
curl https://get.acme.sh | sh -s12 Mailman のインストール
ISPConfig を使用すると、Mailman メーリングリストを管理 (作成/変更/削除) できます。この機能を利用したい場合は、次のように Mailman をインストールします:
apt-get install mailman少なくとも 1 つの言語を選択します。例:
サポートする言語: <-- en (英語)
不足しているサイトリスト <-- OkMailman を開始する前に、最初のメーリングリスト mailman を作成する必要があります:
newlist mailmanroot@server1:~# newlist mailman
リストを運営する人のメールアドレスを入力してください: <-- 管理者のメールアドレス、例: [email protected]
初期の mailman パスワード: <-- mailman リストの管理者パスワード
メーリングリストを作成するには、次の行を /etc/aliases (または同等の) ファイルに追加し、`newaliases` プログラムを実行する必要があります:
## mailman メーリングリスト
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
mailman の所有者に通知するには Enter を押してください... <-- ENTER
root@server1:~#その後、/etc/aliases を開きます…
nano /etc/aliases… 次の行を追加します:
[...]
## mailman メーリングリスト
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"次を実行します:
newaliasesそして Postfix を再起動します:
systemctl restart postfix最後に、Mailman の Apache 設定を有効にする必要があります:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.confこれにより、すべての Apache vhosts に対して /cgi-bin/mailman/ のエイリアスが定義され、メーリングリストの管理インターフェースには http://server1.example.com/cgi-bin/mailman/admin/ でアクセスでき、メーリングリストのユーザー用のウェブページは http://server1.example.com/cgi-bin/mailman/listinfo/ で見つけることができます。
http://server1.example.com/pipermail ではメーリングリストのアーカイブを見つけることができます。
その後、Apache を再起動します:
systemctl restart apache2次に、Mailman デーモンを開始します:
systemctl restart mailman13 PureFTPd と Quota のインストール
PureFTPd と quota は次のコマンドでインストールできます:
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatoolPureFTPd 用の dhparam ファイルを作成します:
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048ファイル /etc/default/pure-ftpd-common を編集します…
nano /etc/default/pure-ftpd-common… スタートモードがスタンドアロンに設定され、VIRTUALCHROOT=true に設定されていることを確認します:
[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]次に、PureFTPd を設定して FTP および TLS セッションを許可します。FTP は非常に安全でないプロトコルであり、すべてのパスワードとすべてのデータが平文で転送されます。TLS を使用することで、通信全体を暗号化できるため、FTP をはるかに安全にすることができます。
FTP および TLS セッションを許可する場合は、次を実行します:
echo 1 > /etc/pure-ftpd/conf/TLSTLS を使用するために、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]: <-- あなたの州または県名を入力してください.
市名 (例: city) []: <-- あなたの市を入力してください.
組織名 (例: company) [Internet Widgits Pty Ltd]: <-- あなたの組織名を入力してください (例: あなたの会社名).
組織単位名 (例: section) []: <-- あなたの組織単位名を入力してください (例: "IT 部門").
共通名 (例: あなたの名前) []: <-- システムの完全修飾ドメイン名を入力してください (例: "server1.example.com").
メールアドレス []: <-- あなたのメールアドレスを入力してください.SSL 証明書の権限を変更します:
chmod 600 /etc/ssl/private/pure-ftpd.pem次に、PureFTPd を再起動します:
systemctl restart pure-ftpd-mysql/etc/fstab を編集します。私のは次のようになっています (マウントポイント / のパーティションに usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 を追加しました):
nano /etc/fstab# /etc/fstab: 静的ファイルシステム情報.
#
# 'blkid' を使用してデバイスのユニバーサルユニーク識別子を印刷します; これは、UUID= を使用してデバイスを名前付けするより堅牢な方法として使用できます
# ディスクが追加または削除されても機能します。 fstab(5) を参照してください.
#
# <ファイルシステム> <マウントポイント> <タイプ> <オプション> <ダンプ> <パス>
# / はインストール中に /dev/sda1 にありました
UUID=45576b38-39e8-4994-b8c1-ea4870e2e614 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# スワップはインストール中に /dev/sda5 にありました
UUID=8bea0d1e-ec37-4b20-9976-4b7daaa3eb69 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0クォータを有効にするには、次のコマンドを実行します:
mount -o remount /quotacheck -avugm
quotaon -avug14 BIND DNS サーバーのインストール
BIND は次のようにインストールできます:
apt-get install bind9 dnsutilsサーバーが仮想マシンの場合、DNSSEC 署名のためのエントロピーを高めるために haveged デーモンをインストールすることを強くお勧めします。非仮想サーバーでも haveged をインストールできますが、問題はありません。
apt-get install havegedこのトピックに関する説明はここにあります。
15 Webalizer、AWStats、および GoAccess のインストール
Webalizer と AWStats は次のようにインストールできます:
apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perlその後、/etc/cron.d/awstats を開き…
nano /etc/cron.d/awstats… そのファイルのすべての行をコメントアウトします:
#MAILTO=root
#*/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.sh最新の GoAccess バージョンを GoAccess リポジトリから直接インストールします:
echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -
apt-get update
apt-get install goaccess16 Jailkit のインストール
Jailkit は、SSH ユーザーを chroot したい場合にのみ必要です。次のようにインストールできます:
apt-get install build-essential autoconf automake libtool flex bison debhelper binutilscd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit-2.20
echo 5 > debian/compat
./debian/rules binary次のように Jailkit.deb パッケージをインストールできます:
cd ..
dpkg -i jailkit_2.20-1_*.deb
rm -rf jailkit-2.20*17 fail2ban と UFW ファイアウォールのインストール
これはオプションですが推奨されます。なぜなら、ISPConfig モニターがログを表示しようとするからです:
apt-get install fail2banPureFTPd と Dovecot を監視するために fail2ban を作成するには、ファイル /etc/fail2ban/jail.local を作成します:
nano /etc/fail2ban/jail.local次の設定を追加します。
[pure-ftpd]
enabled = true
port = ftp
filter = pure-ftpd
logpath = /var/log/syslog
maxretry = 3
[dovecot]
enabled = true
filter = dovecot
logpath = /var/log/mail.log
maxretry = 5
[postfix-sasl]
enabled = true
port = smtp
filter = postfix[mode=auth]
logpath = /var/log/mail.log
maxretry = 3その後、fail2ban を再起動します:
systemctl restart fail2banUFW ファイアウォールをインストールするには、次の apt コマンドを実行します:
apt-get install ufw18 PHPMyAdmin データベース管理ツールのインストール
Debian 10 以降、PHPMyAdmin はもはや .deb パッケージとして利用できません。したがって、ソースからインストールします。
PHPMyAdmin 用のフォルダを作成します:
mkdir /usr/share/phpmyadmin
mkdir /etc/phpmyadmin
mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var/lib/phpmyadmin
touch /etc/phpmyadmin/htpasswd.setup/tmp ディレクトリに移動し、PHPMyAdmin ソースをダウンロードします:
cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gzダウンロードしたアーカイブファイルを解凍し、ファイルを /usr/share/phpmyadmin フォルダに移動し、/tmp ディレクトリをクリーンアップします。
tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz
mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/
rm phpMyAdmin-4.9.0.1-all-languages.tar.gz
rm -rf phpMyAdmin-4.9.0.1-all-languages提供されたサンプルファイルに基づいて PHPMyAdmin の新しい設定ファイルを作成します:
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.phpnano エディタで設定ファイルを開きます:
nano /usr/share/phpmyadmin/config.inc.phpセキュアなパスワード (ブローフィッシュシークレット) を設定します。これは 32 文字の長さでなければなりません:
$cfg['blowfish_secret'] = 'bD3e6wva9fnd93jVsb7SDgeiBCd452Dh'; /* COOKIE 認証のためにこれを入力する必要があります! */私の例のブローフィッシュシークレットを使用せず、自分のものを設定してください!
次に、PHPMyAdmin が一時ファイルを保存するために使用するディレクトリを設定する行を追加します:
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';次に、nano エディタで PHPMyAdmin の Apache 設定ファイルを作成します:
nano /etc/apache2/conf-available/phpmyadmin.conf次の設定をファイルに貼り付けて保存します。
# phpMyAdmin デフォルトの Apache 設定
Alias /phpmyadmin /usr/share/phpmyadmin
Options FollowSymLinks
DirectoryIndex index.php
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .
# セットアップのための認証
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
Require valid-user
# 不要なディレクトリへのウェブアクセスを禁止
Order Deny,Allow
Deny from All
Order Deny,Allow
Deny from All
設定を有効にし、Apache を再起動します。
a2enconf phpmyadmin
systemctl restart apache2次のステップでは、phpMyAdmin 設定ストア (データベース) を構成します。
MariaDB に root ユーザーとしてログインします:
mysql -u root -pMariaDB シェルで、PHPMyAdmin 用の新しいデータベースを作成します:
MariaDB [(none)]> CREATE DATABASE phpmyadmin;次に、新しいユーザーを作成します:
MariaDB [(none)]> CREATE USER 'pma'@'localhost' IDENTIFIED BY 'mypassword';上記および以下のコマンドで mypassword を安全なパスワードに置き換え、同じパスワードを両方で使用します。次に、ユーザーにこのデータベースへのアクセスを付与し、データベース権限を再読み込みします。
MariaDB [(none)]> GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;最後に、SQL テーブルをデータベースにロードします:
mysql -u root -p phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sql要求されたら MariaDB root パスワードを入力します。
今やるべきことは、設定ファイルで phpmyadmin ユーザーの詳細を設定することだけです。再度ファイルを nano エディタで開きます:
nano /usr/share/phpmyadmin/config.inc.php下にスクロールして、以下の行を見つけて編集します:
/* ストレージを操作するために使用されるユーザー */
$cfg['Servers'][$i]['controlhost'] = 'localhost';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'mypassword';
/* ストレージデータベースとテーブル */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';編集した行を赤でマークしました。mypassword を phpmyadmin ユーザーのために選んだパスワードに置き換えます。行の前の // が削除されていることに注意してください!
19 RoundCube Webmail のインストール (オプション)
この章では、RoundCube ウェブメールクライアントをインストールします。まず、Roundcube 用のデータベースを手動で作成する必要があります。現在、RoundCube Debian インストーラーには自動的にデータベースを作成する問題があります。このコマンドを実行してデータベースを作成します:
echo "CREATE DATABASE roundcube;" | mysql --defaults-file=/etc/mysql/debian.cnf次に、次のコマンドで RoundCube をインストールします:
apt-get install roundcube roundcube-core roundcube-mysql roundcube-pluginsインストーラーは次の質問をします:
roundcube 用のデータベースを dbconfig.common で構成しますか? <-- はい
roundcube 用の MySQL アプリケーションパスワード: <-- Enter を押す次に、RoundCube の /etc/roundcube/config.inc.php ファイルを編集し、いくつかの設定を調整します:
nano /etc/roundcube/config.inc.phpdefault_host を localhost に、smtp_server を設定します。
$config['default_host'] = 'localhost';
$config['smtp_server'] = 'localhost';
$config['smtp_port'] = 25;次に、Apache RoundCube 設定ファイル /etc/apache2/conf-enabled/roundcube.conf を編集します:
nano /etc/apache2/conf-enabled/roundcube.confApache /webmail エイリアスと /roundcube 用のエイリアス行を追加します。ファイルの最初に行を追加できます。注意: /mail をエイリアスとして使用しないでください。そうしないと、ispconfig メールモジュールが機能しなくなります!
Alias /roundcube /var/lib/roundcube
Alias /webmail /var/lib/roundcube次に、Apache をリロードします:
systemctl reload apache2次のように RoundCube にアクセスできます:
http://192.168.0.100/webmail
http://www.example.com/webmail
http://server1.example.com:8080/webmail (ISPConfig をインストールした後、次の章を参照)

ISPConfig と RoundCube Webmail を統合するためのいくつかのプラグインが存在します。ISPConfig RoundCube プラグインのインストール手順については、こちらをご覧ください。
20 ISPConfig 3 のダウンロード
20 ISPConfig の安定版をダウンロード (推奨)
最新リリース版の 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/21 ISPConfig のインストール
次のステップは、ISPConfig インストーラーを実行することです。
php -q install.phpこれにより、ISPConfig 3 インストーラーが開始されます。インストーラーは、Postfix、Dovecot などのすべてのサービスを自動的に構成します。ISPConfig 2 に必要な手動セットアップは必要ありません。
# php -q install.php
--------------------------------------------------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/
__/ |
|___/
--------------------------------------------------------------------------------
>> 初期設定オペレーティングシステム: Debian 10.0 (Buster) または互換性のあるものこれからいくつかの質問が行われるので、注意してください。
デフォルト値は [ブラケット] 内にあり、 で受け入れることができます。
インストーラーを停止するには、「quit」と入力してください (引用符なしで)。
言語を選択 (en,de) [en]: <-- Enter を押すインストールモード (standard,expert) [standard]: <-- Enter を押すサーバーの完全修飾ホスト名 (FQDN)、例: server1.domain.tld [server1.example.com]: <-- Enter を押すMySQL サーバーのホスト名 [localhost]: <-- Enter を押すMySQL サーバーのポート [3306]: <-- Enter を押すMySQL root ユーザー名 [root]: <-- Enter を押すMySQL root パスワード []: <-- あなたの MySQL root パスワードを入力作成する MySQL データベース [dbispconfig]: <-- Enter を押すMySQL 文字セット [utf8]: <-- Enter を押すPostgrey の構成
Postfix の構成
4096 ビット RSA プライベートキーを生成中
.......................................................................++
........................................................................................................................................++
新しいプライベートキーを 'smtpd.key' に書き込んでいます
-----
証明書要求に組み込まれる情報を入力するよう求められます。
入力する内容は、識別名または DN と呼ばれます。
いくつかのフィールドがありますが、いくつかは空白のままにできます。
いくつかのフィールドにはデフォルト値があります。
'.' を入力すると、そのフィールドは空白のままにされます。
-----
国名 (2 文字コード) [AU]: <-- 2 文字の国コードを入力
州または県名 (フルネーム) [Some-State]: <-- 州名を入力
市名 (例: city) []: <-- あなたの市を入力
組織名 (例: company) [Internet Widgits Pty Ltd]: <-- 会社名を入力するか、Enter を押します
組織単位名 (例: section) []: <-- Enter を押す
共通名 (例: サーバー FQDN またはあなたの名前) []: <-- サーバーのホスト名を入力します。私の場合: server1.example.com
メールアドレス []: <-- Enter を押す
Mailman の構成
Dovecot の構成
Spamassassin の構成
Amavisd の構成
Getmail の構成
BIND の構成
Jailkit の構成
Pureftpd の構成
Apache の構成
vlogger の構成
[INFO] サービス Metronome XMPP サーバーが検出されませんでした
Ubuntu ファイアウォールの構成
Fail2ban の構成
[INFO] サービス OpenVZ が検出されませんでした
アプリ vhost の構成
ISPConfig のインストール
ISPConfig ポート [8080]:管理者パスワード [admin]:ISPConfig ウェブインターフェースへの安全な (SSL) 接続が必要ですか (y,n) [y]: <-- Enter を押す4096 ビットの RSA プライベートキーを生成中
.......................++
................................................................................................................................++
e は 65537 (0x10001)
証明書要求に組み込まれる情報を入力するよう求められます。
入力する内容は、識別名または DN と呼ばれます。
いくつかのフィールドがありますが、いくつかは空白のままにできます。
いくつかのフィールドにはデフォルト値があります。
'.' を入力すると、そのフィールドは空白のままにされます。
-----
国名 (2 文字コード) [AU]: <-- 2 文字の国コードを入力
州または県名 (フルネーム) [Some-State]: <-- 州名を入力
市名 (例: city) []: <-- あなたの市を入力
組織名 (例: company) [Internet Widgits Pty Ltd]: <-- 会社名を入力するか、Enter を押します
組織単位名 (例: section) []: <-- Enter を押す
共通名 (例: サーバー FQDN またはあなたの名前) []: <-- サーバーのホスト名を入力します。私の場合: server1.example.com
メールアドレス []: <-- Enter を押す次の 'extra' 属性を入力してください
証明書要求と共に送信されます
チャレンジパスワード []: <-- Enter を押す
オプションの会社名 []: <-- Enter を押す
RSA キーを書き込み中
DBServer の構成
ISPConfig crontab のインストール
root 用の crontab はありません
getmail 用の crontab はありません
IP アドレスを検出中
サービスを再起動しています ...
インストールが完了しました。インストーラーはすべての基盤となるサービスを自動的に構成するため、手動構成は必要ありません。
その後、http(s)://server1.example.com:8080/ または http(s)://192.168.0.100:8080/ で ISPConfig 3 にアクセスできます (http または https は、インストール中に選択したものに依存します)。ユーザー名 admin とパスワード admin でログインします (初回ログイン後にデフォルトのパスワードを変更する必要があります):


システムは今や使用可能です。
21.1 ISPConfig 3 マニュアル
ISPConfig 3 の使い方を学ぶために、ISPConfig 3 マニュアルをダウンロードすることを強くお勧めします。
300 ページ以上にわたり、ISPConfig の背後にある概念 (管理者、リセラー、クライアント) を説明し、ISPConfig 3 のインストールと更新方法を説明し、ISPConfig のすべてのフォームとフォームフィールドのリファレンスを有効な入力の例と共に含み、ISPConfig 3 の最も一般的なタスクのチュートリアルを提供します。また、サーバーをより安全にする方法を説明し、最後にトラブルシューティングセクションを提供します。
22 このチュートリアルの仮想マシンイメージのダウンロード
このチュートリアルは、VMWare および Virtualbox と互換性のある ovf/ova 形式のすぐに使用できる仮想マシンイメージとして利用可能です。仮想マシンイメージは次のログイン詳細を使用します:
SSH / シェルログイン
ユーザー名: administrator
パスワード: howtoforge
ユーザー名: root
パスワード: howtoforge
ISPConfig ログイン
ユーザー名: admin
パスワード: admin
MySQL ログイン
ユーザー名: root
パスワード: howtoforge
VM の IP は 192.168.0.100 で、/etc/network/interfaces ファイルで変更できます。上記のすべてのパスワードを変更して、仮想マシンを保護してください。
23 リンク
- Debian: http://www.debian.org/
- ISPConfig: http://www.ispconfig.org/
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。