GNU/Linux >> Linux の 問題 >  >> Debian

完璧なサーバー-Apache、BIND、Dovecot、PureFTPD、ISPConfig3.2を搭載したDebian10(Buster)

このチュートリアルでは、ISPConfig3.2のインストール用にDebian10サーバー(Apache2、BIND、Dovecotを使用)を準備する方法と、ISPConfigをインストールする方法を示します。 WebホスティングコントロールパネルISPConfig3を使用すると、Webブラウザを介して次のサービスを構成できます:Apacheまたはnginx Webサーバー、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最小イメージであるか、最小Debianサーバーチュートリアルを使用して基本システムをセットアップしている可能性があります。

以下のすべてのコマンドはrootユーザーとして実行されます。 rootユーザーとして直接ログインするか、通常のユーザーとしてログインしてからコマンドを使用します

su -

続行する前に、サーバーのrootユーザーになります。 重要 :「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-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.0.100   server1.example.com     server1

# The following lines are desirable for IPv6 capable hosts
::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

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

[email protected]:/tmp# hostname
server1
[email protected]:/tmp# hostname -f
server1.example.com

5Debianインストールを更新する

まず、/ etc / apt /sources.listにバスター/アップデートリポジトリが含まれていることを確認し(これにより、常に最新のセキュリティアップデートを取得できるようになります)、必要なパッケージの一部が有効になっていないため、contribリポジトリとnon-freeリポジトリが有効になっていることを確認します。メインリポジトリにあります。

nano /etc/apt/sources.list
deb 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 update

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

apt-get upgrade

最新のアップデートがある場合はそれをインストールします。

6。デフォルトのシェルを変更する

/ bin/shは/bin/ dashへのシンボリックリンクですが、/ bin/dashではなく/bin/bashが必要です。したがって、これを行います:

dpkg-reconfigure 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、MariaDBをMySQLの代替として、rkhunter、Binutilsを1つのコマンドでインストールできます:

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

次のように質問に答えてください:

Change the root password? [Y/n] <-- y
New password: <-- Enter a new MariaDB root password
Re-enter new password: <-- Repeat the MariaDB root password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Remove test database and access to it? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

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

nano /etc/postfix/master.cf

次のようにsubmissionセクションとsmtpsセクションのコメントを解除し、必要に応じて行を追加して、master.cfファイルのこのセクションが次のセクションとまったく同じになるようにします。 重要: これらの行の後の-o行だけでなく、smtpsとsubmissionで始まる行の前の#も削除してください!

[...]
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 postfix

MySQLには、ローカルホストだけでなく、すべてのインターフェイスでリッスンする必要があります。したがって、/ etc / mysql / mariadb.conf.d / 50-server.cnfを編集し、bind-address =127.0.0.1の行の前に#を追加してコメントアウトします。

nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#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パスワードをpasswordという単語で始まる行に2回設定します。

nano /etc/mysql/debian.cnf

追加する必要のあるMySQLルートパスワードは赤で表示されます。この例では、パスワードは「howtoforge」です。

# Automatically generated for Debian scripts. DO NOT TOUCH!
[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

エラーを防ぐには'受け入れエラー:開いているファイルが多すぎます '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

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

[email protected]:/home/administrator# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 16623/mysqld

9 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 postgrey

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

systemctl stop spamassassin
systemctl disable spamassassin

10ApacheWebサーバーと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の脆弱性を介して攻撃されないようにするために、構成ファイル/etc/apache2/conf-available/httpoxy.confを追加して、apacheのHTTP_PROXYヘッダーをグローバルに無効にします。

注: 脆弱性の名前はhttpoxy('r'なし)であるため、これを防ぐために構成を追加したファイルの名前はhttproxy.confではなくhttpoxy.confであるため、ファイル名に'r'がありません。

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

次のコンテンツをファイルに貼り付けます:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

そして、以下を実行してモジュールを有効にします:

a2enconf httpoxy
systemctl restart apache2

11Let'sEncryptをインストール

ISPConfigは、Let'sEncryptクライアントとしてacme.shを使用しています。次のコマンドを使用してacme.shをインストールします。

curl https://get.acme.sh | sh -s

12Mailmanをインストール

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

apt-get install mailman

少なくとも1つの言語を選択してください。例:

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

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

newlist mailman
[email protected]:~# 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

[email protected]:~#

後で/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を再起動します:

systemctl restart postfix

最後に、MailmanApache構成を有効にする必要があります。

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

これにより、すべてのApachevhostのエイリアス/cgi-bin / mailman /が定義されます。つまり、http://server1.example.com/cgi-bin/mailman/admin/にあるリストのMailman管理インターフェイスにアクセスできます。メーリングリストのユーザー向けのWebページは、http://server1.example.com/cgi-bin/mailman/listinfo/にあります。

http://server1.example.com/pipermailの下に、メーリングリストのアーカイブがあります。

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

systemctl restart apache2

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

systemctl restart mailman

13PureFTPdとクォータをインストールする

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

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

pure-ftpdの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
[...]

次に、FTPおよびTLSセッションを許可するようにPureFTPdを構成します。 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を再起動します:

systemctl restart pure-ftpd-mysql

/ etc/fstabを編集します。私の場合は次のようになります(マウントポイントのあるパーティションに、usrjquota =quote.user、grpjquota =quote.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).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=45576b38-39e8-4994-b8c1-ea4870e2e614 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# swap was on /dev/sda5 during installation
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 -avug

14BINDDNSサーバーのインストール

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

apt-get install bind9 dnsutils

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

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

# Generate static reports:
#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 goaccess

16Jailkitのインストール

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*

17fail2banとUFWファイアウォールをインストールする

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

apt-get install fail2ban

fail2banでPureFTPdとDovecotを監視するには、ファイル/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 fail2ban

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

apt-get install ufw

18PHPMyAdminデータベース管理ツールのインストール

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

提供されたサンプルファイルに基づいて、PHPMyaAdminの新しい構成ファイルを作成します。

cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php

nanoエディターで構成ファイルを開きます:

nano /usr/share/phpmyadmin/config.inc.php

安全なパスワード(blowfish secret)を設定します。このパスワードは32文字の長さである必要があります:

$cfg['blowfish_secret'] = 'bD3e6wva9fnd93jVsb7SDgeiBCd452Dh'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

私の例のフグの秘密を使用しないでください、あなた自身のものを設定してください!

次に、PHPMyAdminが一時ファイルを保存するために使用するディレクトリを設定する行を追加します。

$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

次に、nanoエディターで新しいファイルを開いてPHPMyAdminのApache構成ファイルを作成します。

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

次の設定をファイルに貼り付けて保存します。

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php

<IfModule mod_php7.c>
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 .
</IfModule>

</Directory>

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
Order Deny,Allow
Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Order Deny,Allow
Deny from All
</Directory>

構成をアクティブにして、Apacheを再起動します。

a2enconf phpmyadmin
systemctl restart apache2

次のステップでは、phpMyadmin構成ストア(データベース)を構成します。

rootユーザーとしてMariaDBにログインします:

mysql -u root -p

MariaDBシェルで、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ルートパスワードを入力します。

ここで行う必要があるのは、構成ファイルにphpmyadminユーザーの詳細を設定することだけです。 nanoエディターでファイルを再度開きます:

nano /usr/share/phpmyadmin/config.inc.php

下の行が表示されるまで下にスクロールして編集します:

/* User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = 'localhost';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'mypassword';

/* Storage database and tables */
$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ウェブメールをインストールします(オプション)

この章では、RoundCubeWebメールクライアントをインストールします。まず、RoundCube Debianインストーラーに現在問題があり、データベースの自動作成に失敗するため、Roundcubeのデータベースを手動で作成する必要があります。次のコマンドを実行してデータベースを作成します:

echo "CREATE DATABASE roundcube;" | mysql --defaults-file=/etc/mysql/debian.cnf

次に、次のコマンドを使用してRoundCubeをインストールします。

apt-get install roundcube roundcube-core roundcube-mysql roundcube-plugins

インストーラーは次の質問をします:

Configure database for roundcube with dbconfig.common? <-- yes
MySQL application password for roundcube: <-- press enter

次に、RoundCube /etc/roundcube/config.inc.phpファイルを編集し、いくつかの設定を調整します。

nano /etc/roundcube/config.inc.php

default_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.conf

また、apache/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をインストールした後、次の章)

RoundCube WebメールをISPConfigと統合するためのプラグインがいくつかあります。ここで、ISPConfigRoundCubeプラグインのインストール手順を確認してください。

20ISPConfig3をダウンロード

最新のリリースバージョンからISPConfig3をインストールするには、次のようにします。

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

21ISPConfigのインストール

次のステップは、ISPConfigインストーラーを実行することです。

php -q install.php

これにより、ISPConfig3インストーラーが起動します。インストーラーは、Postfix、Dovecotなどのすべてのサービスを構成します。 ISPConfig 2(完全なセットアップガイド)に必要な手動セットアップは必要ありません。

# php -q install.php

--------------------------------------------------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
--------------------------------------------------------------------------------

>> Initial configuration
Operating System: Debian 10.0 (Buster) or compatible
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with <ENTER>.
Tap in "quit" (without the quotes) to stop the installer.

Select language (en,de) [en]: <-- Hit Enter
Installation mode (standard,expert) [standard]: <-- Hit Enter
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: <-- Hit Enter
MySQL server hostname [localhost]: <-- Hit Enter
MySQL server port [3306]: <-- Hit Enter
MySQL root username [root]: <-- Hit Enter
MySQL root password []: <-- Enter your MySQL root password
MySQL database to create [dbispconfig]: <-- Hit Enter
MySQL charset [utf8]: <-- Hit Enter
Configuring Postgrey
Configuring Postfix
Generating a 4096 bit RSA private key
.......................................................................++
........................................................................................................................................++
writing new private key to 'smtpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: <-- Enter 2 letter country code
State or Province Name (full name) [Some-State]: <-- Enter the name of the  state
Locality Name (eg, city) []: <-- Enter your city
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter company name or press enter
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (e.g. server FQDN or YOUR name) []: <-- Enter the server hostname, in my case: server1.example.com
Email Address []: <-- Hit Enter
Configuring Mailman
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring BIND
Configuring Jailkit
Configuring Pureftpd
Configuring Apache
Configuring vlogger
[INFO] service Metronome XMPP Server not detected
Configuring Ubuntu Firewall
Configuring Fail2ban
[INFO] service OpenVZ not detected
Configuring Apps vhost
Installing ISPConfig
ISPConfig Port [8080]:
Admin password [admin]:
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- Hit Enter
Generating RSA private key, 4096 bit long modulus
.......................++
................................................................................................................................++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: <-- Enter 2 letter country code
State or Province Name (full name) [Some-State]: <-- Enter the name of the  state
Locality Name (eg, city) []: <-- Enter your city
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter company name or press enter
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (e.g. server FQDN or YOUR name) []: <-- Enter the server hostname, in my case: server1.example.com
Email Address []: <-- Hit Enter
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <-- Hit Enter
An optional company name []: <-- Hit Enter
writing RSA key

Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Detect IP addresses
Restarting services ...
Installation completed.

インストーラーは基礎となるすべてのサービスを自動的に構成するため、手動で構成する必要はありません。

その後、http(s)://server1.example.com:8080 /またはhttp(s)://192.168.0.100:8080 /でISPConfig3にアクセスできます(httpまたはhttpsは、インストール時に選択した内容によって異なります)。ユーザー名adminとパスワードadminでログインします(最初のログイン後にデフォルトのパスワードを変更する必要があります):

これで、システムを使用する準備が整いました。

21.1ISPConfig3マニュアル

ISPConfig 3の使用方法を学ぶために、ISPConfig3マニュアルをダウンロードすることを強くお勧めします。

300ページ以上で、ISPConfig(管理者、再販業者、クライアント)の背後にある概念をカバーし、ISPConfig 3をインストールおよび更新する方法を説明し、有効な入力の例とともにISPConfigのすべてのフォームとフォームフィールドのリファレンスを含み、チュートリアルを提供しますISPConfig 3の最も一般的なタスクについても説明します。また、サーバーをより安全にする方法を示し、最後にトラブルシューティングのセクションがあります。

22このチュートリアルの仮想マシンイメージのダウンロード

このチュートリアルは、VMWareおよびVirtualboxと互換性のあるovf/ova形式の仮想マシンイメージをすぐに使用できる状態で利用できます。仮想マシンイメージは、次のログイン詳細を使用します:

SSH/シェルログイン

ユーザー名:管理者
パスワード:howtoforge

ユーザー名:root
パスワード:howtoforge

ISPConfigログイン

ユーザー名:admin
パスワード:admin

MySQLログイン

ユーザー名:root
パスワード:howtoforge

VMのIPは192.168.0.100で、ファイル/ etc / network/interfacesで変更できます。仮想マシンを保護するために、上記のすべてのパスワードを変更してください。

  • Debian:http://www.debian.org/
  • ISPConfig:http://www.ispconfig.org/

Debian
  1. 完璧なサーバー-Apache、PHP、MySQL、PureFTPD、BIND、Postfix、Dovecot、ISPConfig3を搭載したUbuntu15.10(Wily Werewolf)

  2. 完璧なサーバー-Apache、PHP、MySQL、PureFTPD、BIND、Postfix、Dovecot、ISPConfig3.1を搭載したUbuntu16.10(Yakkety Yak)

  3. 完璧なサーバー-Apache、PHP、MySQL、PureFTPD、BIND、Postfix、Dovecot、ISPConfig3.1を搭載したUbuntu17.10(Artful Aardvark)

  1. 完璧なサーバー-Apache、PHP、MySQL、PureFTPD、BIND、Postfix、Dovecot、ISPConfig3を搭載したUbuntu15.04(Vivid Vervet)

  2. Apache、Postfix、Dovecot、Pure-FTPD、BIND、およびISPConfig3.1を備えたPerfectServer CentOS 7.2

  3. 完璧なサーバー-Apache、PHP、MySQL、PureFTPD、BIND、Postfix、Dovecot、ISPConfig3.1を搭載したUbuntu17.04(Zesty Zapus)

  1. Apache、Postfix、Dovecot、Pure-FTPD、BIND、およびISPConfig3.1を備えたPerfectServer CentOS 7.3

  2. Apache、Postfix、Dovecot、Pure-FTPD、BIND、ISPConfig3.1を搭載したPerfectServer CentOS 7.4

  3. Apache、PHP 7.2、Postfix、Dovecot、Pure-FTPD、BIND、およびISPConfig3.1を搭載したPerfectServer CentOS 7.6