サーバー設定 · 5 min read · Dec 18, 2025

完璧なサーバー - Debian 9 (Stretch) と Apache、BIND、Dovecot、PureFTPD、ISPConfig 3.1 - ページ 2

10 Apache2、PHP、FCGI、suExec、Pear、phpMyAdmin、および mcrypt のインストール

Apache2、PHP5、phpMyAdmin、FCGI、suExec、Pear、および mcrypt は次のようにインストールできます:

apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-imap phpmyadmin php7.0-cli php7.0-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear php7.0-mcrypt mcrypt imagemagick libruby libapache2-mod-python php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl memcached php-memcache php-imagick php-gettext php7.0-zip php7.0-mbstring memcached libapache2-mod-passenger php7.0-soap

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

Web server to reconfigure automatically: <- apache2  
 Configure database for phpmyadmin with dbconfig-common? <- yes  
Enter the phpmyadmin application password? <-  Just press enter  

次に、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

サーバーが HTTPOXY 脆弱性を通じて攻撃されないようにするために、設定ファイル /etc/apache2/conf-available/httpoxy.conf を追加して、HTTP_PROXY ヘッダーを Apache 全体で無効にします。

nano /etc/apache2/conf-available/httpoxy.conf

次の内容をファイルに貼り付けます:


    RequestHeader unset Proxy early

次のコマンドを実行してモジュールを有効にします:

a2enconf httpoxy  
service apache2 restart

10.1 HHVM (HipHop Virtual Machine) のインストール

Debian 9 用の HHVM パッケージはまだ利用できません。HHVM はオプションの PHP モードであるため、サーバーはそれなしでも動作しますが、ウェブサイトに対して PHP モード HHVM を使用することはできません。

10.2 SuPHP

SuPHP はもう Debian 9 では利用できません。SuPHP 関数は古くなっており、ISPConfig からも削除されます。SuPHP の代わりに、利用可能な PHP モード PHP-FPM または PHP-FCGI を suexec と一緒に使用してください。

11 Let’s Encrypt のインストール

ISPConfig 3.1 は無料の SSL 証明書機関 Let’s Encrypt をサポートしています。Let’s Encrypt 機能を使用すると、ISPConfig 内からウェブサイト用の無料 SSL 証明書を作成できます。

これから Let’s Encrypt のサポートを追加します。

cd /usr/local/bin  
wget https://dl.eff.org/certbot-auto  
chmod a+x certbot-auto  
./certbot-auto --install-only

LE のインストール以外に必要な手順はありません。ウェブサイトの SSL 証明書は、ウェブサイトを追加するときに ISPConfig によって作成されます。

12 PHP-FPM のインストール

Apache で PHP-FPM を使用するには、デフォルトでインストールされている mod_proxy_fcgi Apache モジュールを有効にする必要があります。PHP-FPM を次のようにインストールできます:

apt-get -y install php7.0-fpm

モジュールを有効にして Apache を再起動することを確認してください:

a2enmod actions proxy_fcgi alias  
service apache2 restart

12.2 PHP Opcode Cache のインストール (オプション)

Opcache は PHP 中間コードをキャッシュおよび最適化するための無料の PHP opcode キャッシャーです。APCu は、Opcache 用の APC 互換関数を提供する互換モジュールであり、多くの CMS キャッシングシステムで使用されています。PHP ページを高速化するために、これらの PHP 拡張機能をインストールすることをお勧めします。

APCu は次のようにインストールできます:

apt-get -y install php7.0-opcache php-apcu

その後、Apache を再起動します:

service apache2 restart

13 Mailman のインストール

ISPConfig を使用すると、Mailman メーリングリストを管理(作成/変更/削除)できます。この機能を利用したい場合は、次のように Mailman をインストールします:

apt-get install mailman

少なくとも一つの言語を選択します。例:

Languages to support: <-- en (English)  
 Missing site list <-- Ok

Mailman を開始する前に、mailman という最初のメーリングリストを作成する必要があります:

newlist mailman
root@server1:~# newlist mailman  
Enter the email of the person running the list: <-- admin email address, e.g. [email protected]  
Initial mailman password: <-- admin password for the mailman list  
To finish creating your mailing list, you must edit your /etc/aliases (or  
equivalent) file by adding the following lines, and possibly running the  
`newaliases' program:  
   
## mailman mailing list  
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  
   
Hit enter to notify mailman owner... <-- ENTER  
   
root@server1:~#

その後、/etc/aliases を開きます…

nano /etc/aliases

… 次の行を追加します:

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

service postfix restart

最後に、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/ でリストの Mailman 管理インターフェースにアクセスでき、http://server1.example.com/cgi-bin/mailman/listinfo/ でメーリングリストのユーザー用のウェブページにアクセスできます。

http://server1.example.com/pipermail ではメーリングリストのアーカイブを見つけることができます。

その後、Apache を再起動します:

service apache2 restart

次に、Mailman デーモンを開始します:

service mailman start

14 PureFTPd と Quota のインストール

PureFTPd と quota は次のコマンドでインストールできます:

apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool

PureFTPd 用の dhparam ファイルを作成します:

openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048

ファイル /etc/default/pure-ftpd-common を編集します…

nano /etc/default/pure-ftpd-common

… スタートモードが standalone に設定され、VIRTUALCHROOT=true に設定されていることを確認します:

[...]  
STANDALONE_OR_INETD=standalone  
[...]  
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
Country Name (2 letter code) [AU]: <-- Enter your Country Name (e.g., "DE").  
State or Province Name (full name) [Some-State]: <-- Enter your State or Province Name.  
Locality Name (eg, city) []: <-- Enter your City.  
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter your Organization Name (e.g., the name of your company).  
Organizational Unit Name (eg, section) []: <-- Enter your Organizational Unit Name (e.g. "IT Department").  
Common Name (eg, YOUR name) []: <-- Enter the Fully Qualified Domain Name of the system (e.g., "server1.example.com").  
Email Address []: <-- Enter your Email Address.

SSL 証明書の権限を変更します:

chmod 600 /etc/ssl/private/pure-ftpd.pem

次に、PureFTPd を再起動します:

service pure-ftpd-mysql restart

/etc/fstab を編集します。私のは次のようになっています(マウントポイント / のパーティションに usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 を追加しました):

nano /etc/fstab
# /etc/fstab: static file system information.  
#  
# Use 'blkid' to print the universally unique identifier for a  
# device; this may be used with UUID= as a more robust way to name devices  
# that works even if disks are added and removed. See fstab(5).  
#  
#        
# / was on /dev/sda1 during installation  
UUID=f539c5cb-624f-4c27-a149-1446a251a453 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1  
# swap was on /dev/sda5 during installation  
UUID=8d3194e7-edb5-4492-937d-d066b4994baf none swap sw 0 0  
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

クォータを有効にするには、次のコマンドを実行します:

mount -o remount /
quotacheck -avugm  
quotaon -avug

15 BIND DNS サーバーのインストール

BIND は次のようにインストールできます:

apt-get install bind9 dnsutils

サーバーが仮想マシンの場合、DNSSEC 署名のためにより高いエントロピーを得るために haveged デーモンをインストールすることを強くお勧めします。非仮想サーバーでも haveged をインストールできますが、問題はありません。

apt-get install haveged

このトピックに関する説明はここにあります。

16 Webalizer と AWStats のインストール

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

# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

17 Jailkit のインストール

Jailkit は SSH ユーザーを chroot したい場合にのみ必要です。次のようにインストールできます:

apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /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*

18 fail2ban と UFW ファイアウォールのインストール

これはオプションですが推奨されます。なぜなら、ISPConfig モニターがログを表示しようとするからです:

apt-get install fail2ban

PureFTPd と 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-sasl  
logpath = /var/log/mail.log  
maxretry = 3

その後、fail2ban を再起動します:

service fail2ban restart

UFW ファイアウォールをインストールするには、次の apt コマンドを実行します:

apt-get install ufw
Share: X/Twitter LinkedIn

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

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