サーバー設定 · 1 min read · Nov 02, 2025
完璧なサーバー - Debian 8 Jessie (Apache2, BIND, Dovecot, ISPConfig 3)
このチュートリアルでは、ISPConfig 3のインストールのためにApache2、BIND、Dovecotを備えたDebian Jessieサーバーを準備する方法と、ISPConfig 3をインストールする方法を示します。ウェブホスティングコントロールパネルISPConfig 3を使用すると、ウェブブラウザを介して次のサービスを構成できます:Apacheまたはnginxウェブサーバー、Postfixメールサーバー、CourierまたはDovecot IMAP/POP3サーバー、MySQL、BINDまたはMyDNSネームサーバー、PureFTPd、SpamAssassin、ClamAVなど。このセットアップでは、Apache(nginxの代わりに)、BIND(MyDNSの代わりに)、Dovecot(Courierの代わりに)をカバーします。
1 前提条件
このチュートリアルでは、ホスト名server1.example.comとIPアドレス192.168.1.100、ゲートウェイ192.168.1.1を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換えてください。さらに進む前に、Debian 8の最小インストールが必要です。これはホスティングプロバイダーからのDebian最小イメージであるか、Minimal Debian Server Tutorialを使用して基本システムをセットアップすることができます。
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-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.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.com5 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 updateaptパッケージデータベースを更新するために
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 ntpdateこれでシステム時間は常に同期されます。
8 Postfix、Dovecot、MySQL、phpMyAdmin、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 sudoMySQLをMariaDBの代わりに好む場合は、上記のコマンドの「mariadb-client mariadb-server」パッケージを「mysql-client mysql-server」に置き換えてください。
次の質問が表示されます:
一般的なメール構成のタイプ:<– インターネットサイト
システムメール名:<– server1.example.com
MariaDB「root」ユーザーの新しいパスワード:<– yourrootsqlpassword
MariaDB「root」ユーザーのパスワードを再入力:<– yourrootsqlpassword
次に、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 restartMariaDBがlocalhostだけでなくすべてのインターフェースでリッスンするように、/etc/mysql/my.cnfを編集し、bind-address = 127.0.0.1の行をコメントアウトします:
nano /etc/mysql/my.cnf[...]
# スキップネットワーキングの代わりに、デフォルトは現在、localhostのみにリッスンすることです。
# これはより互換性があり、セキュリティが低下することはありません。
#bind-address = 127.0.0.1
[...]次に、MySQLを再起動します:
service mysql restartネットワーキングが有効になっていることを確認します。次を実行します:
netstat -tap | grep mysql出力は次のようになります:
root@server1:/tmp# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 27371/mysqld9 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-perlISPConfig 3のセットアップではamavisdを使用し、内部でSpamAssassinフィルタライブラリをロードするため、RAMを解放するためにSpamAssassinを停止できます:
service spamassassin stop
systemctl disable spamassassin新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。