サーバー設定 · 2 min read · Oct 30, 2025

完璧なサーバー - Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)

このチュートリアルでは、ISPConfig 3.1のインストールのためにApache2、BIND、Dovecotを備えたDebian Jessieサーバーを準備する方法と、ISPConfigのインストール方法を示します。ウェブホスティングコントロールパネルISPConfig 3を使用すると、次のサービスをウェブブラウザを通じて構成できます:Apacheまたはnginxウェブサーバー、Postfixメールサーバー、CourierまたはDovecot IMAP/POP3サーバー、MySQL、BINDまたはMyDNSネームサーバー、PureFTPd、SpamAssassin、ClamAVなど。このセットアップでは、Apache(nginxの代わりに)、BIND、およびDovecot(Courierの代わりに)をカバーします。

1 予備ノート

このチュートリアルでは、ホスト名server1.example.comとIPアドレス192.168.1.100、ゲートウェイ192.168.1.1を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換えてください。さらに進む前に、Debian 8の最小インストールが必要です。これは、ホスティングプロバイダーからのDebian最小イメージか、Minimal Debian Serverチュートリアルを使用して基本システムをセットアップすることができます。

このバージョンのチュートリアルの新機能は?

  • 新しいISPConfig 3.1機能のサポート。
  • Let’s Encrypt SSL証明書のサポート。
  • PHPスクリプトを実行するためのHHVM(HipHop Virtual Machine)のサポート。
  • XMPP(メトロノーム)のサポート。
  • Postgreyによるメールグレイリスティングのサポート。
  • Bastilleの代わりにファイアウォールとしてUFW。
  • Squirrelmailの代わりにRoundCube Webmail。

2 SSHサーバーのインストール(オプション)

システムインストール中にOpenSSHサーバーをインストールしなかった場合は、今すぐインストールできます:

apt-get install ssh openssh-server

これ以降は、PuTTYなどのSSHクライアントを使用して、ワークステーションからDebian Jessieサーバーに接続し、このチュートリアルの残りの手順に従うことができます。

3 シェルテキストエディタのインストール(オプション)

このチュートリアルではnanoテキストエディタを使用します。一部のユーザーは古典的なviエディタを好むため、ここでは両方のエディタをインストールします。デフォルトのviプログラムはDebianおよびUbuntuで奇妙な動作をするため、これを修正するためにvim-noxをインストールします:

apt-get install nano vim-nox

viが好きなエディタである場合は、次のコマンドでファイルを編集する際にnanoをviに置き換えてください。

4 ホスト名の設定

サーバーのホスト名は「server1.example.com」のようなサブドメインである必要があります。「example.com」のようなサブドメイン部分のないドメイン名をホスト名として使用しないでください。そうすると、メール設定で問題が発生します。まず、/etc/hostsでホスト名を確認し、必要に応じて変更してください。行は次のようにする必要があります:「IPアドレス - スペース - ドメインを含む完全なホスト名 - スペース - サブドメイン部分」。私たちのホスト名server1.example.comの場合、ファイルは次のようになります:

nano /etc/hosts
127.0.0.1       localhost.localdomain   localhost
192.168.1.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

最後に、変更を適用するためにサーバーを再起動します:

reboot

再度ログインし、次のコマンドでホスト名が正しいか確認します:

hostname  
hostname -f

出力は次のようになります:

root@server1:/tmp# hostname  
server1  
root@server1:/tmp# hostname -f  
server1.example.com

5 Debianインストールの更新

まず、/etc/apt/sources.listにjessie/updatesリポジトリが含まれていることを確認してください(これにより、常に最新のセキュリティ更新を受け取ることができます)、およびcontribとnon-freeリポジトリが有効になっていることを確認してください(libapache2-mod-fastcgiなどの一部のパッケージはメインリポジトリには含まれていません)。

nano /etc/apt/sources.list
#deb cdrom:[Debian GNU/Linux 8.0.0 _Jessie_ - Official amd64 NETINST Binary-1 20150425-12:50]/ jessie main  
  
deb http://ftp.us.debian.org/debian/ jessie main contrib non-free  
deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free  
  
deb http://security.debian.org/ jessie/updates main contrib non-free  
deb-src http://security.debian.org/ jessie/updates main contrib non-free

実行します:

apt-get update

aptパッケージデータベースを更新するために

apt-get upgrade

最新の更新をインストールします(もしあれば)。

6 デフォルトシェルの変更

/bin/shは/bin/dashへのシンボリックリンクですが、/bin/bashが必要であり、/bin/dashではありません。したがって、次のようにします:

dpkg-reconfigure dash

デフォルトのシステムシェルとしてdashを使用しますか? <- いいえ

これを行わないと、ISPConfigのインストールが失敗します。

7 システムクロックの同期

システムクロックをインターネット上のNTP(network time protocol)サーバーと同期させるのは良いアイデアです。単に実行します。

apt-get install ntp

これで、システム時間は常に同期されます。

8 Postfix、Dovecot、MySQL、rkhunter、およびBinutilsのインストール

Postfix、Dovecot、MySQL、rkhunter、およびbinutilsを1つのコマンドでインストールできます:

apt-get 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

MySQLをMariaDBの代わりに好む場合は、上記のコマンドの「mariadb-client mariadb-server」を「mysql-client mysql-server」に置き換えてください。

次の質問が表示されます:

一般的なメール構成のタイプ: <– インターネットサイト
システムメール名: <– server1.example.com
MariaDB「root」ユーザーの新しいパスワード: <– yourrootsqlpassword
MariaDB「root」ユーザーのパスワードを繰り返す: <– yourrootsqlpassword

MariaDB / MySQLインストールを保護し、テストデータベースを無効にするには、このコマンドを実行します:

mysql_secure_installation

インストール中に新しいパスワードを設定したため、MySQL rootパスワードを変更する必要はありません。質問には次のように答えます:

rootパスワードを変更しますか? [Y/n] <-- n  
匿名ユーザーを削除しますか? [Y/n] <-- y  
リモートでのrootログインを禁止しますか? [Y/n] <-- y  
テストデータベースとそのアクセスを削除しますか? [Y/n] <-- y  
特権テーブルを再読み込みしますか? [Y/n] <-- y

次に、PostfixでTLS/SSLおよび送信ポートを開きます:

nano /etc/postfix/master.cf

送信およびsmtpsセクションのコメントを解除し、必要に応じて行を追加して、master.cfファイルのこのセクションが以下のものと正確に一致するようにします。

[...]
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を再起動します:

service postfix restart

MariaDBが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を再起動します:

service mysql restart

ネットワーキングが有効になっているか確認します。実行します。

netstat -tap | grep mysql

出力は次のようになります:

root@server1:/# netstat -tap | grep mysql  
tcp6 0 0 [::]:mysql [::]:* LISTEN 16806/mysqld

9 Amavisd-new、SpamAssassin、およびClamAVのインストール

amavisd-new、SpamAssassin、ClamAVをインストールするには、次のコマンドを実行します。

apt-get 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 postgrey

ISPConfig 3のセットアップではamavisdを使用しており、内部でSpamAssassinフィルタライブラリをロードするため、RAMを解放するためにSpamAssassinを停止できます:

service spamassassin stop  
systemctl disable spamassassin

9.1 Metronome XMPPサーバーのインストール(オプション)

このステップでは、XMPPプロトコルに対応したチャットサーバーを提供するMetronome XMPPサーバーをインストールします。このステップはオプションであり、チャットサーバーが必要ない場合はこのステップをスキップできます。他のISPConfig機能はこのソフトウェアに依存していません。

DebianにProsodyパッケージリポジトリを追加します。

echo "deb http://packages.prosody.im/debian jessie main" > /etc/apt/sources.list.d/metronome.list  
wget http://prosody.im/files/prosody-debian-packages.key -O - | sudo apt-key add -

パッケージリストを更新します:

apt-get update

そして、aptでパッケージをインストールします。

apt-get install git lua5.1 liblua5.1-0-dev lua-filesystem libidn11-dev libssl-dev lua-zlib lua-expat lua-event lua-bitop lua-socket lua-sec luarocks luarocks
luarocks install lpc

Metronome用のシェルユーザーを追加します。

adduser --no-create-home --disabled-login --gecos 'Metronome' metronome

/optディレクトリにMetronomeをダウンロードし、コンパイルします。

cd /opt; git clone https://github.com/maranda/metronome.git metronome  
cd ./metronome; ./configure --ostype=debian --prefix=/usr  
make  
make install

Metronomeは現在/opt/metronomeにインストールされました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。