GNU/Linux >> Linux の 問題 >  >> Cent OS

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

このチュートリアルでは、CentOS 8(64ビット)サーバーへのISPConfig3.2のインストールについて説明します。 ISPConfigは、Webブラウザを介して次のサービスを構成できるWebホスティングコントロールパネルです:Apache Webサーバー、PHP、Postfixメールサーバー、MySQL、BINDネームサーバー、PureFTPd、SpamAssassin、ClamAV、Mailmanなど。

>

1要件

このようなシステムをインストールするには、次のものが必要です。

  • Centos8の最小限のサーバーシステム。これは、Centos 8の最小限のサーバーチュートリアルで説明されているように最初からインストールされたサーバー、または最小限のCentos8セットアップがインストールされているホスティング会社の仮想サーバーまたはルートサーバーの場合があります。
  • 高速インターネット接続。

2予備メモ

このチュートリアルでは、ホスト名server1.example.comとIPアドレス192.168.0.100およびゲートウェイ192.168.0.1を使用します。これらの設定はユーザーによって異なる場合があるため、必要に応じて置き換える必要があります。

3サーバーを準備します

キーボードレイアウトを設定する

サーバーのキーボードレイアウトがキーボードと一致しない場合は、右のキーボードに切り替えることができます(私の場合、ドイツ語のキーボードレイアウトの場合は、localectlコマンドを使用して「de」を使用します。

 localectl set-keymap de 

使用可能なすべてのキーマップのリストを取得するには、次のコマンドを実行します。

localectllist-キーマップ

このチュートリアルの最後にISPConfigをインストールしたいのですが、ISPConfigには、ファイアウォールとして使用するBastilleファイアウォールスクリプトが付属しているため、デフォルトのCentOSファイアウォールを無効にします。もちろん、CentOSファイアウォールをオンのままにして、必要に応じて構成することもできます(ただし、CentOSファイアウォールに干渉する可能性が高いため、後で他のファイアウォールを使用しないでください)。

実行...

 dnf -y install net-tools wget rsyslog curl 
systemctl stop Firewalld.service
systemctl disable Firewalld.service

CentOSファイアウォールを停止して無効にします。ここでエラーが発生しても問題ありません。これは、ファイアウォールがインストールされていないことを示しているだけです。

次に、ファイアウォールが実際に無効になっていることを確認する必要があります。これを行うには、次のコマンドを実行します:

 iptables -L 

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

 [[email protected]〜]#iptables -L 
Chain INPUT(policy ACCEPT)
target prot opt source destination
 Chain FORWARD(ポリシーACCEPT)
target prot opt source destination
チェーン出力(ポリシーACCEPT)
target prot opt source destination

または、firewall-cmdコマンドを使用します:

ファイアウォール-cmd--state
 [[email protected]〜]#firewall-cmd --state 
not running
[[email protected]〜]#

次に、ネットワーク構成エディターと、構成ファイルを編集するための次の手順で使用するシェルベースのエディター「nano」をインストールします。

 dnf -y install nano wget NetworkManager-tui yum-utils 

インストール中にネットワークカードを構成しなかった場合は、ここで構成できます。実行...

 nmtui 

...そして接続の編集に移動します:

ネットワークインターフェースを選択します:

次に、ネットワークの詳細を入力します。DHCPを無効にして、静的IPアドレス、ネットマスク、ゲートウェイ、および1つまたは2つのネームサーバーを入力し、[OK]をクリックします。

次に、[OK]を選択して、ネットワーク設定で行った変更を確認します

終了してnmtuiネットワーク構成ツールを閉じます。

実行する必要があります

 ifconfig 

次に、インストーラーがIPアドレスを正しく取得したかどうかを確認します。

 [[email protected]〜]#ifconfig 
ens33:flags =4163 mtu 1500
inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80 ::20c:29ff:feee:b665 prefixlen 64 scopeid 0x20
inet6 2003:e1:bf22:1b00:20c:29ff:feee:b665 prefixlen 64 scopeid 0x0
ether 00:0c:29:ee:b6:65 txqueuelen 1000(イーサネット)
RXパケット2874バイト1369892(1.3 MiB)
RXエラー0ドロップ546パケットオーバーラン0フレーム0
968バイト160901(157.1 KiB)
TXエラー0ドロップ0オーバーラン0キャリア0衝突0
 lo:flags =73  mtu 65536 
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop t x 1000(ローカルループバック)
RXパケット0バイト0(0.0 B)
RXエラー0ドロップ0オーバーラン0フレーム0
TXパケット0バイト0(0.0 B)
TXエラー0ドロップ0オーバーラン0キャリア0衝突0

ネットワークカードがそこに表示されない場合は、起動時に有効になっていません。この場合、ファイル/ etc / sysconfig / network-scripts / ifcfg-eth0

を開きます。
 nano / etc / sysconfig / network-scripts / ifcfg-ens33 

ONBOOTをyesに設定します:

 [...] 
ONBOOT =yes
[...]

サーバーを再起動します。

/etc/resolv.confに、以前に構成したすべてのネームサーバーがリストされているかどうかを確認してください。

 cat /etc/resolv.conf 

ネームサーバーがない場合は、実行します

 nmtui 

不足しているネームサーバーを再度追加します。

次に、構成に移ります...

/ etc/hostsと/etc/hostnameの調整

次に、/ etc/hostsを編集します。次のようにします:

 nano / etc / hosts 
 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 
192.168.0.100 server1.example.com server1

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

/ etc/hostnameファイルにホスト名を設定します。ファイルには、「server1」のような短い名前だけでなく、完全修飾ドメイン名(たとえば、私の場合はserver1.example.com)が含まれている必要があります。 nanoエディターでファイルを開きます:

 nano / etc / hostname 

そして、ファイルにホスト名を設定します。

 server1.example.com 

ファイルを保存してnanoを終了します。

SELinuxをパーミッシブに設定

SELinuxはCentOSのセキュリティ拡張であり、拡張セキュリティを提供する必要があります。 ISPConfigにはSELinuxルールセットが付属していないため、permissiveに設定しました(後でISPConfigをインストールする場合は必須です)。

/ etc / selinux / configを編集し、SELINUX =permitを設定します:

 nano / etc / selinux / config 
#このファイルは、システム上のSELinuxの状態を制御します。#SELINUX =は、次の3つの値のいずれかを取ることができます。ポリシーがロードされます。SELINUX=permissive#SELINUXTYPE =は、次の2つの値のいずれかを取ることができます。 

その後、システムを再起動する必要があります:

再起動

4追加のリポジトリを有効にして、いくつかのソフトウェアをインストールする

まず、ソフトウェアパッケージのGPGキーをインポートします:

 rpm --import / etc / pki / rpm-gpg / RPM-GPG-KEY * 

次に、このチュートリアルの過程でインストールするパッケージの多くが公式のCentOS 8リポジトリで利用できないため、CentOSシステムでEPELリポジトリを有効にします。

 dnf -y install epel-release 

動力工具をアクティブにする:

 dnf config-manager --set-enabled powertools 

次に、システム上の既存のパッケージを更新します。

 dnf -y update 

次に、後で必要になるいくつかのソフトウェアパッケージをインストールします。

 dnf -ygroupinstall'開発ツール'

5クォータ

(私が行ったのとは異なるパーティションスキームを選択した場合は、この章を調整して、必要なパーティションにクォータが適用されるようにする必要があります。)

クォータをインストールするには、次のコマンドを実行します:

dnf-yインストールクォータ

次に、Webサイト(/ var / www)とMaildirデータ(var / vmail)が保存されているファイルシステムでクォータがすでに有効になっているかどうかを確認します。このセットアップ例では、大きなルートパーティションが1つあるので、「/」を検索します:

マウント| grep'/' 
 [[メール保護]〜]#マウント| grep'/' 
/ dev / mapper / centos-root on / type xfs(rw、relatime、attr2、inode64、noquota)
[[email protected]〜]#

別の/varパーティションがある場合は、次を使用します:

マウント| grep'/ var' 

代わりは。行に「noquota」という単語が含まれている場合 "次に、次の手順に進んでクォータを有効にします。

/(ルート)パーティションのクォータを有効にする

通常は/etc/ fstabファイルでクォータを有効にしますが、ファイルシステムがルートファイルシステム「/」の場合は、Linuxカーネルのブートパラメータでクォータを有効にする必要があります。

grub構成ファイルを編集します:

 nano / etc / default / grub 

GRUB_CMDLINE_LINUXで始まる行を検索し、rootflags =uquota、gquotaをコマンドラインパラメーターに追加して、結果の行が次のようになるようにします。

 GRUB_CMDLINE_LINUX ="crashkernel =auto resume =/ dev / mapper / cl-swap rd.lvm.lv =cl / root rd.lvm.lv =cl / swap rootflags =uquota、gquota" 

次のコマンドを実行して変更を適用します。

 cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak 
grub2-mkconfig -o /boot/grub2/grub.cfg

サーバーを再起動します。

再起動

次に、クォータが有効になっているかどうかを確認します:

マウント| grep'/' 
 [[メール保護]〜]#マウント| grep'/' 
/ dev / mapper / centos-root on / type xfs(rw、relatime、attr2、inode64、usrquota、grpquota)
[[email protected]〜]#

クォータがアクティブな場合、「 usrquota、grpquota」が表示されます。 「マウントオプションリストにあります。

別の/varパーティションでクォータを有効にする

別の/varパーティションがある場合は、/ etc / fstabを編集し、、uquota、gquotaを/パーティション(/ dev / mapper / centos-var)に追加します。

 nano / etc / fstab 
 

#/ etc / fstab
#2014年9月21日16:33:45にanacondaによって作成

#参照可能なアクセス可能なファイルシステム、'/ dev / disk'の下で管理されます
#詳細については、マニュアルページfstab(5)、findfs(8)、mount(8)、blkid(8)を参照してください

/ dev / mapper / centos-root / xfs defaults 1 1
/ dev / mapper / centos-var / var xfs defaults、uquota、gquota 1 2
UUID =9ac06939-7e43-4efd-957a- 486775edd7b4 / boot xfs defaults 1 3
/ dev / mapper / centos-swap swap swap defaults 0 0

次に実行します

 mount -o remount / var 
 quotecheck -avugm 
quoteon -avug

クォータを有効にします。クォータが有効になっているパーティションがないというエラーが発生した場合は、続行する前にサーバーを再起動してください。

6 Apache、PHP、MySQL、およびphpMyAdminをインストールします

Remiリポジトリを有効にして、新しいPHPバージョン(現在はPHP 7.4)を取得します。

 dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm 
dnf -y install yum-utils
dnf -y module reset php
dnf -y module install php:remi-7.4
dnf update

1つのコマンドで必要なパッケージをインストールできます:

 dnf -y install httpd mod_ssl mariadb-server php php-mysqlnd php-mbstring 

HTTPOXYの脆弱性を介してサーバーが攻撃されないようにするために、ApacheのHTTP_PROXYヘッダーをグローバルに無効にします。

httpd.confファイルの最後にapacheヘッダールールを追加します:

 echo "RequestHeader unset Proxy Early">> /etc/httpd/conf/httpd.conf 

そして、httpdを再起動して構成変更を適用します。

 service httpd restart 

phpMyAdminをインストールします:

 cd / tmp 
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.tar.gz
tarxzvfphpMyAdmin-5.0。 2-all-languages.tar.gz
mkdir / usr / share / phpmyadmin
mv phpMyAdmin-5.0.2-all-languages / * / usr / share / phpmyadmin /
mkdir / usr / share / phpmyadmin / tmp
chown -R apache:apache / usr / share / phpmyadmin
chmod 777 / usr / share / phpmyadmin / tmp

オプション:ApacheMPMモジュールを変更します

CentOS8はデフォルトでApacheMPMイベントモジュールを使用します。これは、HTTP / 2プロトコルを使用できるため、一方的には適切です。一方、apachemod_phpモジュールを使用することはできません。一般に、今日はデフォルトとしてPHP-FPMを使用する必要があり、ISPConfigはそれをサポートしています。互換性の理由で古いmod_phpモードが必要な場合は、次のようにApacheMPMを切り替えることができます。

 nano /etc/httpd/conf.modules.d/00-mpm.conf 

MPMイベント行の前に#を追加して、次のようにします。

#LoadModule mpm_event_module modules / mod_mpm_event.so 

次に、MPM Prefork行の#inを削除して、次のようにします。

 LoadModule mpm_prefork_module modules / mod_mpm_prefork.so 

次に、httpdを再起動して、構成の変更を適用します。

 service httpd restart 

7Dovecotをインストール

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

 dnf -y install dovecot dovecot-mysql dovecot-pigeonhole 

空のdovecot-sql.confファイルを作成し、シンボリックリンクを作成します:

 touch /etc/dovecot/dovecot-sql.conf 
ln -s /etc/dovecot/dovecot-sql.conf /etc/dovecot-sql.conf
ln -s / etc / dovecot /dovecot.conf /etc/dovecot.conf

次に、システムの起動リンクを作成し、Dovecotを起動します。

 systemctl enable dovecot 
systemctl start dovecot

8Postfixをインストール

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

 dnf -y install postfix postfix-mysql 

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

 nano /etc/postfix/master.cf 

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

 [...] 
submit inet n --n --- smtpd
-o syslog_name =postfix / subject
-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_sender_restrictions
#-o smtpd_recipient_restrictions =
#-o smtpd_relay_restrictions =permit_sasl_authenticated、reject
#-o milter_macro_daemon_name =ORIGINATING
smtps inet n --n- -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_ #-o smtpd_client_restrictions =$ mua_client_restrictions
#-o smtpd_helo_restrictions =$ mua_helo_restrictions
#-o smtpd_se nder_restrictions =$ mua_sender_restrictions
#-o smtpd_recipient_restrictions =
#-o smtpd_relay_restrictions =permit_sasl_authenticated、reject
#-o milter_macro_daemon_name =ORIGINATING
[...]

次に、Sendmailをオフにして、PostfixとMariaDB(MySQL)を起動します。

 systemctl enable mariadb.service 
systemctl start mariadb.service
 systemctl enable postfix.service 
systemctl restart postfix.service

sendmailがサーバーにインストールされている場合に開始されないように、sendmailを無効にします。そのため、「メソッド呼び出しの発行に失敗しました:ユニットsendmail.serviceがロードされていません」というエラーメッセージが表示されます。無視できます。

古い/古いデバイスのサポートを有効にするには、次のコマンドを実行します(オプション、古いメールデバイスを接続する場合にのみ使用します。これは、安全性の低い暗号を許可することでSSL / TLSの設定を弱めるためです):

 update-crypto-policies --set LEGACY 

9Getmailをインストールする

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

 dnf install python2 
cd / tmp
wget http://pyropus.ca/software/getmail/old-versions/getmail-5.14.tar.gz
tar xvfz getmail-5.14 .tar.gz
cd getmail-5.14
python2 setup.py build
python2 setup.py install

10MySQLパスワードの設定とphpMyAdminの構成

MySQLルートアカウントのパスワードを設定します:

 mysql_secure_installation 
 [[email protected] tmp]#mysql_secure_installation 


注:このスクリプトのすべての部分を実行することは、本番環境で使用するすべてのMariaDBサーバーに推奨されます。各ステップを注意深くお読みください!
 MariaDBにログインして保護するには、rootユーザーの現在の
パスワードが必要です。 MariaDBをインストールしたばかりで、
rootパスワードをまだ設定していない場合、パスワードは空白になります。
ここで、Enterキーを押すだけです。
 rootの現在のパスワードを入力してください(noneの場合は入力してください):
OK、正常に使用されたパスワード、次に進みます...
 rootパスワードを設定すると、適切な認証なしに誰もMariaDB 
rootユーザーにログインできないようになります。

rootパスワードを設定しますか? [Y / n] <-ENTER
新しいパスワード:<-yourrootsqlpassword
新しいパスワードを再入力:<-yourrootsqlpassword
パスワードが正常に更新されました!
特権テーブルを再読み込みしています。 。
...成功!


デフォルトでは、MariaDBのインストールには匿名ユーザーが含まれているため、ユーザーアカウントがなくても誰でも
MariaDBにログインできます。
それらのために作成されました。これはテストのみを目的としており、インストールを少しスムーズにすることを目的としています。

本番環境に移行する前に、それらを削除する必要があります。

匿名ユーザーを削除しますか? [Y / n] <-ENTER
...成功!

通常、rootは「localhost」からの接続のみを許可する必要があります。これにより、
誰かが、ネットワークからのルートパスワードを推測できないようになります。

ルートログインをリモートで禁止しますか? [Y / n] <-ENTER
... Success!

デフォルトでは、MariaDBには「test」という名前のデータベースが付属しており、誰でもアクセスできます。
これもテストのみを目的としているため、
本番環境に移行する前に削除する必要があります。

テストデータベースを削除してアクセスしますか? [Y / n] <-ENTER
-テストデータベースを削除しています...
...成功しました!
-テストデータベースの特権を削除しています...
...成功しました!

特権テーブルを再読み込みすると、これまでに行われたすべての変更が
すぐに有効になります。

特権テーブルを今すぐ再読み込みしますか? [Y / n] <-ENTER
...成功!

クリーンアップ...



すべて完了しました!上記のすべての手順を完了すると、MariaDBのインストールは安全になります。

MariaDBをご利用いただきありがとうございます!

[[email protected] tmp ]#

次に、phpMyAdminを設定します。このphpMyAdmin構成ファイルを作成します:

 nano /etc/httpd/conf.d/phpmyadmin.conf 

このコンテンツをファイルに追加します:

#phpMyAdmin-phpで記述されたWebベースのMySQLブラウザ##デフォルトではローカルホストのみを許可##ただし、SSLAlias / phpMyAdmin / usr / share / phpmyadminAlias / phpmyadminで適切に保護されていない限り、ローカルホスト以外のユーザーにphpMyAdminを許可することは危険と見なされます。 / usr / share / phpmyadmin   #Apache 2.4# #Require ip 127.0.0.1#Require ip ::1#   #Apache 2.2 Order Deny、Allow Deny from All Allow from 127.0.0.1 Allow from ::1   

次に、phpMyAdminの認証をcookieからhttp:

に変更します。
 cp -pf /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php 
nano /usr/share/phpmyadmin/config.inc.php
 [...]/*認証タイプ*/$ cfg ['Servers'] [$ i] ['auth_type'] ='http'; [...] 

次に、Apacheのシステム起動リンクを作成して起動します:

 systemctl enable httpd 
systemctl restart httpd

これで、ブラウザをhttp://server1.example.com/phpmyadmin/またはhttp://192.168.0.100/phpmyadmin/に誘導し、ユーザー名rootと新しいrootMySQLパスワードでログインできます。

11 Amavisd-new、SpamAssassin、ClamAV、およびPostgreyをインストールします

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

 dnf -y install amavisd-new spamassassin clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd unzip bzip2 perl-DBD-mysql postgrey re2c 

次に、freshclam、amavisd、およびclamd.amavisdを開始します:

 sa-update 
freshclam
systemctl enable amavisd.service
systemctl start amavisd.service
systemctl start [email protected]
systemctl enable postgrey.service
systemctl start postgrey.service

次のステップでは、postgreyを構成します。エディターでファイル/etc/ sysconfig / postgreyを開きます:

 nano / etc / sysconfig / postgrey 

行を変更します:

 POSTGREY_TYPE ="-unix =/ var / spool / postfix / postgrey / socket" 

 POSTGREY_TYPE ="-inet =10023" 

ファイルを保存してpostgreyを再起動します:

サービスポストグレイリスタート

amavisdを設定するには、ファイル/etc/clamd.d/amavisd.confを編集します:

 nano /etc/clamd.d/amavisd.conf 

行を変更します:

 LocalSocket /run/clamd.amavisd/clamd.sock 

 LocalSocket /var/spool/amavisd/clamd.sock 

変更した構成ファイルを保存し、ClamAVを再起動します:

 systemctl restart [email protected] 

次に、freshclamサービスのシステムユニットを作成する必要があります。新しいファイル/usr/lib/systemd/system/freshclam.serviceを作成します:

 nano /usr/lib/systemd/system/freshclam.service 

そのファイルに次のコンテンツを入力します:

 [Unit] Description =ClamAV ScannerAfter =network.target [Service] Type =forking#1日に複数のスキャンを行う場合は、下の行にある希望の番号に1を変更します。ExecStart=/ usr / bin / freshclam -d -c 1Restart =on-failurePrivateTmp =true [Install] WantedBy =multi-user.target 

ファイルを保存してから、サービスを有効にして開始します。

 systemctl enable freshclam.service 
systemctl start freshclam.service
systemctl status freshclam.service

12 mod_php、mod_fcgi / PHP、PHP-FPMを使用したApacheのインストール

ISPConfig 3を使用すると、mod_php、mod_fcgi / PHP、cgi / PHP、およびPHP-FPMをWebサイトごとに使用できます。

次のように、mod_php、mod_fcgid、およびPHPを使用してApache2をインストールできます。

 dnf -y install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-mbstring php-mcrypt php-snmp php -soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel php-fpm php-intl php-imagick php-pspell wget 

次に、/ etc/php.iniを開きます...

 nano /etc/php.ini 

...そしてエラーレポートを変更し(通知が表示されなくなるように)、タイムゾーンを設定し、cgi.fix_pathinfo =1のコメントを解除します:

 [...]; error_reporting =E_ALL&〜E_DEPRECATEDerror_reporting =E_ALL&〜E_NOTICE&〜E_DEPRECATED&〜E_STRICT [...]; cgi.fix_pathinfoは、CGIの*実際の* PATH_INFO/PATH_TRANSLATEDサポートを提供します。 PHPの;以前の動作は、PATH_TRANSLATEDをSCRIPT_FILENAMEに設定し、grokしないことでした。 PATH_INFOとは何ですか。 PAppp.tldTH_INFOの詳細については、cgiの仕様を参照してください。設定;これを1にすると、PHPCGIはそのパスを仕様に準拠するように修正します。設定;ゼロの場合、PHPは以前と同じように動作します。デフォルトは1です。スクリプトを修正する必要があります。 PATH_TRANSLATEDではなくSCRIPT_FILENAMEを使用します。; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfocgi.fix_pathinfo=1 
[...]
date.timezone='ヨーロッパ/ Berlin'[...]

httpdとPHP-FPMを有効にして、起動時に開始し、PHP-FPMサービスを開始します。

 systemctl start php-fpm.service 
systemctl enable php-fpm.service
systemctl enable httpd.service

最後に、Apacheを再起動します:

 systemctl restart httpd.service 

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

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

13mod_pythonのインストール

Apacheモジュールmod_pythonはRPMパッケージとして利用できないため、ソースからコンパイルします。最初のステップは、Python開発ファイルをインストールし、現在のmod_pythonバージョンを.tar.gzファイルとしてダウンロードすることです

 dnf -y install python3-devel 
 cd / usr / local / src / 
wget http://dist.modpython.org/dist/mod_python-3.5.0.tgz
tar xfz mod_python-3.5.0.tgz
cd mod_python-3.5.0

次に、モジュールを構成してコンパイルします。

 ./ configure --with-python =/ usr / bin / python3 
make

コンパイルされたモジュールにエラーがあり、「 version ="致命的:gitリポジトリ(または親ディレクトリ)ではありません:.git」というエラーでインストールが失敗します。 "。これを修正するには、このsedコマンドを実行します(コマンドは1行です!)。

 sed -e's /(git describe --always)/(git describe --always 2> \ / dev \ / null)/ g'-e's / `git describe --always` /` git describe --always 2> \ / dev \ / null` / g'-i $(find。-typef -name Makefile \ * -o -name version.sh)

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

 make install 

Apacheでモジュールを有効にします:

 echo'LoadModule python_module modules / mod_python.so'> /etc/httpd/conf.modules.d/10-python.conf 
systemctl restart httpd.service

14PureFTPdをインストールします

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

 dnf -y install pure-ftpd 

次に、システム起動リンクを作成し、PureFTPdを起動します:

 systemctl enable pure-ftpd.service 
systemctl start pure-ftpd.service

次に、FTPおよびTLSセッションを許可するようにPureFTPdを構成します。 FTPは、すべてのパスワードとすべてのデータがクリアテキストで転送されるため、非常に安全でないプロトコルです。 TLSを使用することで、通信全体を暗号化できるため、FTPの安全性が大幅に向上します。

TLSにはOpenSSLが必要です。 OpenSSLをインストールするには、次のコマンドを実行するだけです。

 dnf install openssl 

/etc/pure-ftpd/pure-ftpd.confを開きます...

 nano /etc/pure-ftpd/pure-ftpd.conf 

FTPセッションとTLSセッションを許可する場合は、TLS行の前にある#を削除してTLSを1に設定します。 TLSを有効にすることを強くお勧めします。

 [...]#このオプションは3つの値を受け入れることができます:#0:SSL / TLS暗号化レイヤーを無効にします(デフォルト)。#1:従来のセッションと暗号化されたセッションの両方を受け入れます。#2:SSLを使用しない接続を拒否します/ TLSセキュリティメカニズム、#匿名セッションを含む。#これを盲目的にコメント解除しないでください。必ず:#1)サーバーがSSL / TLSサポート(--with-tls)でコンパイルされている、#2)有効な証明書が設定されている、#3)互換性のあるクライアントのみがログインする。TLS1[.. 。]

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文字のコード)[XX]:<-国名を入力します(例:「DE」)。
州名または州名(フルネーム)[]:<-州名または州名を入力します。
地域名(例:都市)[デフォルトの都市]:<-都市を入力します。
組織名(例:会社)[デフォルトの会社株式会社]:<-組織名を入力します(例: 、会社名)。
組織単位名(例:セクション)[]:<-組織単位名(例:「IT部門」)を入力します。
一般名(例:名前またはサーバーのホスト名)[]:<-システムの完全修飾ドメイン名を入力します(例: "server1.example.com")。
メールアドレス[]:<-メールアドレスを入力します。

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

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

DHParamファイルを作成します:

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

最後に、PureFTPdを再起動します:

 systemctl restart pure-ftpd.service 

それでおしまい。これで、FTPクライアントを使用して接続を試みることができます。ただし、TLSを使用するようにFTPクライアントを構成する必要があります。

15BINDをインストール

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

 dnf -y install bind bind-utils haveged 

既存の/etc/named.confファイルのバックアップを作成し、次のように新しいファイルを作成します。

 cp /etc/named.conf /etc/named.conf_bak 
cat / dev / null> /etc/named.conf
nano /etc/named.conf
 //// named.conf //// ISC BIND named(8)DNS //サーバーをキャッシング専用ネームサーバーとして(ローカルホストDNSリゾルバーのみとして)構成するためにRedHatバインドパッケージによって提供されます。/// /たとえば、名前付き構成ファイルの/ usr / share / doc / bind * /sample/を参照してください。//options{listen-onport 53 {any; }; listen-on-v6ポート53{any; };ディレクトリ"/var / named";ダンプファイル"/var/named/data/cache_dump.db";統計ファイル"/var/named/data/named_stats.txt"; memstatistics-ファイル"/var/named/data/named_mem_stats.txt"; allow-query {any; }; allow-recursion {"none";}; recursion no;}; logging {channel default_debug {file "data / named.run";重大度動的; };};ゾーン "。" IN{タイプヒント; file "named.ca";}; include "/etc/named.conf.local"; 

/etc/named.confの最後に含まれるファイル/etc/named.conf.localを作成します(ISPConfigでDNSゾーンを作成すると、後でISPConfigによって/etc/named.conf.localにデータが入力されます):

 touch /etc/named.conf.local 

次に、スタートアップリンクを作成し、BINDを開始します:

 systemctl enable named.service 
systemctl start named.service
systemctl enable haveged.service
systemctl start haveged.service

16AWStatsをインストール

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

 dnf -y install awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder 

代替のWeb統計アプリケーション「webalizer」はCentOS8で使用できなくなったため、AWStatsのみを使用できます。

17Jailkitをインストールする

Jailkitは、SSHユーザーとcronジョブをchrootするために使用されます。次のようにインストールできます:

 ln -s / usr / bin / python2 / usr / bin / python 
cd / tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.21.tar.gz
tar xvfz jailkit-2.21.tar.gz
cd jailkit-2.21
./configure
make
make install
cd ..
rm -rf jailkit-2.21 *

18Fail2Banのインストール

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

 dnf -y install iptables-services fail2ban fail2ban-systemd 
systemctl stop Firewalld.service
systemctl mask Firewalld.service
systemctl disable Firewalld.service

次に、/ etc / fail2ban / jail.localファイルを作成し、ssh、メール、ftpサービスの監視を有効にします。

 nano /etc/fail2ban/jail.local 

次のコンテンツをjail.localファイルに追加します。

 [sshd] 
enabled =true
action =iptables [name =sshd、port =ssh、protocol =tcp]

[pure-ftpd]
enabled =true
action =iptables [name =FTP、port =ftp、protocol =tcp]
maxretry =3

[dovecot]
enabled =true
action =iptables-multiport [name =dovecot、port ="pop3、pop3s、imap、imaps"、protocol =tcp]
maxretry =5

[postfix-sasl]
enabled =true
action =iptables-multiport [name =postfix-sasl、port ="smtp、smtps、submission"、protocol =tcp]
maxretry =3

次に、fail2banのシステム起動リンクを作成して開始します。

 systemctl enable fail2ban.service 
systemctl start fail2ban.service

19rkhunterをインストールする

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

 dnf -y install rkhunter 

20Mailmanをインストール

サーバー上でMailmanを使用してメーリングリストを管理する場合は、ここでmailmanをインストールしてください。 MailmanはISPConfigでサポートされているため、後でISPConfigを使用して新しいメーリングリストを作成できます。

 dnf -y install mailman 

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

 touch / var / lib / mailman / data / aliases 
postmap / var / lib / mailman / data / aliases
/ usr / lib / mailman / bin / newlist mailman
ln- ■/usr/ lib / mailman / mail / mailman / usr / bin / mailman

[[email protected] tmp]#/ usr / lib / mailman / bin / newlist mailman
リストを実行している人のメールアドレスを入力します:<-admin email address、e.g. [メール保護]
最初のメールマンパスワード:<-メールマンリストの管理者パスワード
メールリストの作成を完了するには、/ etc / aliases(または
同等の)ファイルを編集する必要があります。次の行を追加し、場合によっては
`newaliases'プログラムを実行します:

## mailman mailing list
mailman:" | / usr / lib / mailman / mail / mailman post mailman "
mailman-admin:" | / usr / lib / mailman / mail / mailman admin mailman "
mailman-bounces:" | / usr / lib / mailman / mail / mailman bounces mailman "
mailman-confirm:      "|/usr/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/usr/lib/mailman/mail/mailman join mailman"
mailman- leave:        "|/usr/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/usr/lib/mailman/mail/mailman owner mailman"
mailman-request:      "| /usr/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/usr/lib/mailman/mail/mailman subscribe mailman"
mailman-unsub scribe:  "|/usr/lib/mailman/mail/mailman unsubscribe mailman"

Hit enter to notify mailman owner... <-- ENTER

[[email protected] tmp]#

後で/etc/aliasesを開きます...

 nano / etc / aliases 

...そして次の行を追加します:

[...]mailman:"|/usr/lib/mailman/mail/mailman post mailman"mailman-admin:"|/usr/lib/mailman/mail/mailman admin mailman"mailman-bounces:"|/usr/lib/mailman/mail/mailman bounces mailman"mailman-confirm:"|/usr/lib/mailman/mail/mailman confirm mailman"mailman-join:"|/usr/lib/mailman/mail/mailman join mailman"mailman-leave:"|/usr/lib/mailman/mail/mailman leave mailman"mailman-owner:"|/usr/lib/mailman/mail/mailman owner mailman"mailman-request:"|/usr/lib/mailman/mail/mailman request mailman"mailman-subscribe:"|/usr/lib/mailman/mail/mailman subscribe mailman"mailman-unsubscribe:"|/usr/lib/mailman/mail/mailman unsubscribe mailman"

実行

 newaliases 

afterwards and restart Postfix:

systemctl restart postfix.service

Now open the Mailman Apache configuration file /etc/httpd/conf.d/mailman.conf...

nano /etc/httpd/conf.d/mailman.conf

... and add the line ScriptAlias /cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/. Comment out Alias /pipermail/ /var/lib/mailman/archives/public/ and add the line Alias /pipermail /var/lib/mailman/archives/public/:

## httpd configuration settings for use with mailman.#ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/ScriptAlias /cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/ AllowOverride None Options ExecCGI Order allow,deny Allow from all#Alias /pipermail/ /var/lib/mailman/archives/public/Alias /pipermail /var/lib/mailman/archives/public/ Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all AddDefaultCharset Off# Uncomment the following line, to redirect queries to /mailman to the# listinfo page (recommended).# RedirectMatch ^/mailman[/]*$ /mailman/listinfo

Restart Apache:

 systemctl restart httpd.service 

Create the system startup links for Mailman and start it:

systemctl enable mailman.service
systemctl start mailman.service

After you have installed ISPConfig 3, you can access Mailman as follows:

You can use the alias /cgi-bin/mailman for all Apache vhosts (please note that suExec and CGI must be disabled for all vhosts from which you want to access Mailman!), which means you can access the Mailman admin interface for a list at http:///cgi-bin/mailman/admin/, and the web page for users of a mailing list can be found at http:///cgi-bin/mailman/listinfo/.

Under http:///pipermail/ you can find the mailing list archives.

21 Install Roundcube webmail

To install the RoundCube webmail client, download the latest version with wget to the /tmp folder:

cd /tmp
wget https://github.com/roundcube/roundcubemail/releases/download/1.4.3/roundcubemail-1.4.3-complete.tar.gz

Unpack the tar.gz archive and move the RoundCube source to /usr/share/roundcubemail

tar xfz roundcubemail-1.4.3-complete.tar.gz
mkdir /usr/share/roundcubemail
mv /tmp/roundcubemail-1.4.3/* /usr/share/roundcubemail/
chown -R root:root /usr/share/roundcubemail
chown apache /usr/share/roundcubemail/temp
chown apache /usr/share/roundcubemail/logs

Create a roundcubemail.conf configuration file with nano editor:

nano /etc/httpd/conf.d/roundcubemail.conf

And add the following content to that file:

## Round Cube Webmail is a browser-based multilingual IMAP client#Alias /roundcubemail /usr/share/roundcubemail
Alias /webmail /usr/share/roundcubemail# Define who can access the Webmail# You can enlarge permissions once configured Options none AllowOverride Limit Require all granted# Define who can access the installer# keep this secured once configured Options none AllowOverride Limit Require all granted# Those directories should not be viewed by Web clients. Order Allow,Deny Deny from all Order Allow,Deny Deny from all

Restart Apache:

 systemctl restart httpd.service 

Now we need a database for RoundCube mail, we will initialize it as follows:

 mysql -u root -p 

At MariaDB prompt use:

CREATE DATABASE roundcubedb;
CREATE USER [email protected] IDENTIFIED BY 'roundcubepassword';
GRANT ALL PRIVILEGES on roundcubedb.* to [email protected];
FLUSH PRIVILEGES;
exit

I am using the details for the RoundCube database as an example, please replace the values as per your choice for security reasons.

Now we will install RoundCube in the browser at http://192.168.0.100/roundcubemail/installer

Now create the config.inc.php file:

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

/* Local configuration for Roundcube Webmail */

// ----------------------------------
// SQL DATABASE
// ----------------------------------
// Database connection string (DSN) for read+write operations
// Format (compatible with PEAR MDB2):db_provider://user:[email protected]/database
// Currently supported db_providers:mysql, pgsql, sqlite, mssql, sqlsrv, oracle
// For examples see http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php
// NOTE:for SQLite use absolute path (Linux):'sqlite:////full/path/to/sqlite.db?mode=0646'
// or (Windows):'sqlite:///C:/full/path/to/sqlite.db'
$config['db_dsnw'] ='mysql://roundcubeuser:[email protected]/roundcubedb';

// ----------------------------------
// IMAP
// ----------------------------------
// The IMAP host chosen to perform the log-in.
// Leave blank to show a textbox at login, give a list of hosts
// to display a pulldown menu or set one host as string.
// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls://
// Supported replacement variables:
// %n - hostname ($_SERVER['SERVER_NAME'])
// %t - hostname without the first part
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
// %s - domain name after the '@' from e-mail address provided at login screen
// For example %n =mail.domain.tld, %t =domain.tld
// WARNING:After hostname change update of mail_host column in users table is
// required to match old user data records with the new host.
$config['default_host'] ='localhost';
$config['smtp_server'] ='localhost';
$config['smtp_port'] =25;

// provide an URL where a user can get support for this Roundcube installation
// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
$config['support_url'] ='';

// This key is used for encrypting purposes, like storing of imap password
// in the session. For historical reasons it's called DES_key, but it's used
// with any configured cipher_method (see below).
$config['des_key'] ='pb0UucO0eqjgvhrqYlFTBVjE';

// ----------------------------------
// PLUGINS
// ----------------------------------
// List of active plugins (in plugins/ directory)
$config['plugins'] =array();

// Set the spell checking engine. Possible values:
// - 'googie' - the default (also used for connecting to Nox Spell Server, see 'spellcheck_uri' setting)
// - 'pspell' - requires the PHP Pspell module and aspell installed
// - 'enchant' - requires the PHP Enchant module
// - 'atd' - install your own After the Deadline server or check with the people at http://www.afterthedeadline.com before using their API
// Since Google shut down their public spell checking service, the default settings
// connect to http://spell.roundcube.net which is a hosted service provided by Roundcube.
// You can connect to any other googie-compliant service by setting 'spellcheck_uri' accordingly.
$config['spellcheck_engine'] ='pspell';
$config['enable_installer'] =true;

Then press "continue" in the web installer. On the following page, press on the button "Initialize database".

Finally, disable the Roundecubemail installer. Change the RoundCube config.inc.php configuration file

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

and change the line:

$config['enable_installer'] =true;

to:

$config['enable_installer'] =false;

Roundcube is available now under the aliases /webmail and /roundcubemail on your server:

http://192.168.0.100/webmail

The RoundCube login is the email address and password of an email account that you create later in ISPConfig.

22 Install ISPConfig 3.2

The ISPConfig installer will configure all services like Postfix, Dovecot, etc. for you.

You now also have the possibility to let the installer create an SSL vhost for the ISPConfig control panel so that ISPConfig can be accessed using https:// instead of http://. To achieve this, just press ENTER when you see this question:Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:.

To install ISPConfig 3.2 nightly build, do this:

 cd / tmp 
wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ispconfig.tar.gz
cd ispconfig3 * / install /

The next step is to run:

 php -q install.php 

これにより、ISPConfig3インストーラーが起動します。インストーラーは、Postfix、Dovecotなどのすべてのサービスを構成します。

[[email protected] install]# php install.php
 
------------------------------------------- -------------------------------------
_____ ___________ _____ __ _ ____
| _ _ / ___ | ___ \ / __ \ / _(_)/ __ \
| | \`-。| | _ / / | / \ / ___ _ __ | | _ _ __ _ _ / /
| | `-。 \ __ / | | / _ \ | '_ \ | _ | | / _` | | _ |
_ | | _ / \ __ / / | | \ __ / \(_)| | | | | | | (_ | | ___ \ \
\ ___ / \ ____ / \ _ | \ ____ / \ ___ / | _ | | _ | _ | | _ | \ __、| \ ____ /
__ / |
| ___ /
-------------------------------------- ------------------------------------------
 
>>初期構成
Operating System:CentOS 8.2
以下は、プライマリ構成に関するいくつかの質問ですので、注意してください。
デフォルト値は[括弧]内にあり、で受け入れることができます。
「quit」をタップします(引用符なし)インストーラーを停止します。
 
言語を選択(en、de)[en]:<-Enterキーを押します
インストールモード(標準、エキスパート)[標準]:<-Enterキーを押します
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: <-- Hit Enter
 MySQLサーバーのホスト名[localhost]:<-Enterキーを押します
 MySQLサーバーポート[3306]:<-Enterキーを押します
 MySQL rootユーザー名[root]:<-Enterキーを押します
MySQL root password []: <-- Ente the MySQL root password here
 [dbispconfig]を作成するMySQLデータベース:<-Enterキーを押します
 MySQL文字セット[utf8]:<-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) [XX]:<-- Enter 2 Letter country code, e.g. US
State or Province Name (full name) []:<-- Enter anme of State or Province
Locality Name (eg, city) [Default City]:<-- Name of city
Organization Name (eg, company) [Default Company Ltd]:<-- Company name
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (eg, your name or your server's hostname) []:<-- Enter server hostname here, in my case:server1.example.com
Email Address []:<-- Enter Email address
Configuring mailman
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Jailkit
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring vlogger
[INFO] service OpenVZ not detected
Configuring Bastille Firewall
[INFO] service Metronome XMPP Server not detected
Configuring Fail2ban
Configuring Apps vhost
Installing ISPConfig
ISPConfig Port [8080]: <-- Hit Enter
Admin password [fad579a6]: <-- Enter new password for ISPConfig admin user
Re-enter admin password []: <-- Repeat the password
 ISPConfig Webインターフェイス(y、n)への安全な(SSL)接続が必要ですか[y]:<-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) [XX]: <-- Enter 2 Letter country code, e.g. US
State or Province Name (full name) []:<-- Enter anme of State or Province
Locality Name (eg, city) [Default City]:<-- Name of city
Organization Name (eg, company) [Default Company Ltd]:<-- Company name
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (eg, your name or your server's hostname) []:<-- Enter server hostname here, in my case:server1.example.com
Email Address []:<-- Enter Email address
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
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Detect IP addresses
Restarting services ...
Installation completed.

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

23 First ISPConfig Login

Afterwards you can access ISPConfig 3 under http(s)://server1.example.com:8080/ or http(s)://192.168.0.100:8080/ (http or https depends on what you chose during installation).

ユーザー名adminとパスワードadminでログインします(最初のログイン後にデフォルトのパスワードを変更する必要があります):

23.1 The ISPConfig 3 Manual

In order to learn how to use ISPConfig 3, I strongly recommend downloading the ISPConfig 3 Manual.

On more than 300 pages, it covers the concept behind ISPConfig (admin, resellers, clients), explains how to install and update ISPConfig 3, includes a reference for all forms and form fields in ISPConfig together with examples of valid inputs, and provides tutorials for the most common tasks in ISPConfig 3. It also lines out how to make your server more secure and comes with a troubleshooting section at the end.

24 Download as a virtual machine

This setup is available as virtual machine download in ova/ovf format (compatible with VMWare and Virtualbox) for howtoforge subscribers.

Login details for the VM

  • The root password is:howtoforge
  • The password of the ISPConfig "admin" user is: howtoforge
  • There is another shell user with the name "howtoforge" and password:howtoforge

Please change both passwords on the first login.

  • The IP address of the VM is 192.168.0.100
  • CentOS:http://www.centos.org/
  • ISPConfig:http://www.ispconfig.org/

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

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

  3. 完璧なサーバー-Ubuntu16.04(Nginx、MySQL、PHP、Postfix、BIND、Dovecot、Pure-FTPD、ISPConfig 3.1)

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

  2. 完璧なサーバー-Apache、PHP、MySQL、PureFTPD、BIND、Postfix、Dovecot、ISPConfig3.1を搭載したUbuntu18.04(Bionic Beaver)

  3. 完璧なサーバー-Ubuntu18.04(Nginx、MySQL、PHP、Postfix、BIND、Dovecot、Pure-FTPD、ISPConfig 3.1)

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

  2. 完璧なサーバー-Ubuntu15.10(nginx、MySQL、PHP、Postfix、BIND、Dovecot、Pure-FTPD、ISPConfig 3)

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