サーバー設定 · 6 min read · Oct 29, 2025

完璧なサーバー - Ubuntu 17.10 (Artful Aardvark) と Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot および ISPConfig 3.1 - ページ 2

8. Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear, および mcrypt のインストール

Apache2, PHP 7.1, phpMyAdmin, FCGI, suExec, Pear, および mcrypt は以下のようにインストールできます:

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

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

Web server to reconfigure automatically: <-- apache2   
Configure database for phpmyadmin with dbconfig-common? <-- Yes  
MySQL application password for phpmyadmin: <-- Press enter  

次に、Apache モジュール suexec, rewrite, ssl, actions, および include を有効にするために次のコマンドを実行します (WebDAV を使用する場合は dav, dav_fs, および auth_digest も追加します):

a2enmod suexec rewrite ssl actions include cgi
a2enmod dav_fs dav auth_digest headers

サーバーが HTTPOXY 脆弱性を通じて攻撃されないように、apache で HTTP_PROXY ヘッダーをグローバルに無効にします。nano で新しい httpoxy.conf ファイルを作成します:

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

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


    RequestHeader unset Proxy early

次のコマンドを実行して設定ファイルを有効にします:

a2enconf httpoxy

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

service apache2 restart

ISPConfig を通じて作成されたウェブサイトで拡張子 .rb の Ruby ファイルをホストしたい場合は、/etc/mime.types の application/x-ruby rb の行をコメントアウトする必要があります:

nano /etc/mime.types
[...]
#application/x-ruby                             rb
[...]

(これは .rb ファイルのみに必要です; 拡張子 .rbx の Ruby ファイルはそのままで動作します。)

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

service apache2 restart

8.1 PHP Opcode キャッシュ (オプション)

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

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

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

今、Apache を再起動します:

service apache2 restart

8.2 PHP-FPM

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

apt-get -y install php7.1-fpm

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

a2enmod actions proxy_fcgi alias   
service apache2 restart

10.1 HHVM (HipHop Virtual Machine) のインストール (オプション)

このステップでは、apt を使用して HHVM をインストールします。HHVM は Facebook によって開発された高速 PHP エンジンです。

apt-get -y install hhvm

9. Let’s Encrypt のインストール

ISPConfig 3.1 には、無料の SSL 証明書機関 Let’s Encrypt の組み込みサポートがあります。Let’s Encrypt 機能を使用すると、ISPConfig でウェブサイトのための無料の SSL 証明書を作成できます。

今、Let’s Encrypt のサポートを追加します。

apt-get -y install certbot

10. Mailman のインストール

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

apt-get -y install mailman

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

サポートする言語: <– en (英語)
不足しているサイトリスト <– Ok

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

newlist mailman

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

service postfix restart

最後に、Mailman の Apache 設定を有効にする必要があります:

ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf

これにより、すべての Apache vhosts に対して /cgi-bin/mailman/ のエイリアスが定義され、http:///cgi-bin/mailman/admin/ でリストの Mailman 管理インターフェースにアクセスでき、http:///cgi-bin/mailman/listinfo/ でメーリングリストのユーザー向けのウェブページが見つかります。

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

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

service apache2 restart

次に、Mailman デーモンを起動します:

service mailman start

11. PureFTPd と Quota のインストール

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

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

ファイル /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

国名 (2 文字コード) [AU]: <– あなたの国名を入力します (例: “DE”).
州または県名 (フルネーム) [Some-State]: <– あなたの州または県名を入力します。
市名 (例: city) []: <– あなたの市を入力します。
組織名 (例: company) [Internet Widgits Pty Ltd]: <– あなたの組織名 (例: 会社名) を入力します。
組織単位名 (例: section) []: <– あなたの組織単位名 (例: “IT 部門“) を入力します。
共通名 (例: YOUR name) []: <– システムの完全修飾ドメイン名を入力します (例: “server1.example.com”).
メールアドレス []: <– あなたのメールアドレスを入力します。

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).  
#  
#        
/dev/mapper/server1--vg-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1  
/dev/mapper/server1--vg-swap_1 none swap sw 0 0  
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

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

mount -o remount /
quotacheck -avugm  
quotaon -avug

次の出力が表示されます:

root@server1:/# quotacheck -avugm  
quotacheck: Scanning /dev/mapper/server1--vg-root [/] done  
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.  
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.  
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.  
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.  
quotacheck: Checked 19755 directories and 117639 files  
quotacheck: Old file not found.  
quotacheck: Old file not found.  
root@server1:/opt/metronome# quotaon -avug  
/dev/mapper/server1--vg-root [/]: group quotas turned on  
/dev/mapper/server1--vg-root [/]: user quotas turned on

12. BIND DNS サーバーのインストール

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

apt-get -y install bind9 dnsutils haveged

haveged デーモンを有効にして起動します:

systemctl enable haveged  
systemctl start haveged

13. Vlogger, Webalizer, および AWStats のインストール

Vlogger, Webalizer, および AWStats は以下のようにインストールできます:

apt-get -y install vlogger webalizer awstats geoip-database libclass-dbi-mysql-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

14. Jailkit のインストール

Jailkit は SSH ユーザーを chroot したい場合にのみ必要です。以下のようにインストールできます (重要: Jailkit は ISPConfig の前にインストールする必要があります - 後からインストールすることはできません!):

apt-get -y install build-essential autoconf automake1.11 libtool flex bison debhelper binutils
cd /tmp   
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz   
tar xvfz jailkit-2.19.tar.gz   
cd jailkit-2.19   
echo 5 > debian/compat

現在の Jailkit 2.19 バージョンには、コンパイルを妨げる構文エラーがあります。それを修正するために、nano でファイル debian/changelog を開きます:

nano debian/changelog

そして、5 行目に次の行を追加し、その後に空行を追加します:

 -- Olivier   Wed, 18 Nov 2015 20:38:44 +0100

その結果、ファイルの最初の部分は次のようになります (挿入された行は赤色):

jailkit (2.19-1) UNRELEASED; urgency=medium
* somehow a bug URL was pasted into the ini file location in the sourcecode for jk_chrootsh in the 2.18 release. Fixed.
-- Olivier  Wed, 18 Nov 2015 20:38:44 +0100
jailkit (2.18-1) UNRELEASED; urgency=medium
* maintenance release, fix uid_t printing for very high uid numbers  
* minor improvements to jk_init.ini  
* add possibility to force --login in jk_chrootsh
-- Olivier  Wed, 18 Nov 2015 20:38:44 +0100

次のコマンドを実行して jailkit パッケージをビルドします:

./debian/rules binary

次に、以下のように Jailkit.deb パッケージをインストールできます:

cd ..  
dpkg -i jailkit_2.19-1_*.deb  
rm -rf jailkit-2.19*

15. fail2ban および UFW のインストール

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

apt-get -y install fail2ban

PureFTPd と Dovecot を監視するために fail2ban を設定するには、ファイル /etc/fail2ban/jail.local を作成します:

nano /etc/fail2ban/jail.local
[pureftpd]
enabled  = true
port     = ftp
filter   = pureftpd
logpath  = /var/log/syslog
maxretry = 3

[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

[postfix-sasl]
enabled  = true
port     = smtp
filter   = postfix-sasl
logpath  = /var/log/mail.log
maxretry = 3

次に、次の 2 つのフィルターファイルを作成します:

nano /etc/fail2ban/filter.d/pureftpd.conf
[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex =
nano /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 =

postfix-sasl ファイルに不足している ignoreregex 行を追加します:

echo "ignoreregex =" >> /etc/fail2ban/filter.d/postfix-sasl.conf

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

service fail2ban restart

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

apt-get install ufw
Share: X/Twitter LinkedIn

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

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