GNU/Linux >> Linux の 問題 >  >> Ubuntu

完璧なサーバー-Apache、PHP、MariaDB、PureFTPD、BIND、Postfix、Dovecot、ISPConfig3.2を搭載したUbuntu20.04

このチュートリアルでは、Apache 2.4、Postfix、Dovecot、Bind、およびPureFTPDを使用したUbuntu 20.04(Focal Fossa)Webホスティングサーバーのインストールを示し、ISPConfig3.2のインストールの準備をします。結果として得られるシステムは、Web、メール、メーリングリスト、DNS、およびFTPサーバーを提供します。

ISPConfigは、Webブラウザを介して次のサービスを構成できるWebホスティングコントロールパネルです:ApacheまたはNginx Webサーバー、Postfixメールサーバー、CourierまたはDovecot IMAP / POP3サーバー、MySQL代替としてのMariaDB、BINDまたはMyDNSネームサーバー、PureFTPd、 SpamAssassin、ClamAV、その他多数。このセットアップは、Apache(Nginxの代わりに)、BIND(MyDNSの代わりに)、およびDovecot(Courierの代わりに)のインストールを対象としています。

1。予備的注意

このチュートリアルでは、ホスト名server1.example.comをIPアドレス192.168.0.100とゲートウェイ192.168.0.1で使用します。これらの設定は異なる場合があるため、必要に応じて置き換える必要があります。先に進む前に、チュートリアルで説明されているように、Ubuntu20.04の基本的な最小限のインストールが必要です。

このチュートリアルのコマンドは、root権限で実行する必要があります。各コマンドの前にsudoを追加しないようにするには、次のコマンドを実行してrootユーザーになる必要があります。

 sudo -s 

先に進む前に。

2。 /etc/apt/sources.listを編集し、Linuxインストールを更新します

/etc/apt/sources.listを編集します。コメントアウトするか、ファイルからインストールCDを削除し、ユニバースおよびマルチバースリポジトリが有効になっていることを確認します。後で次のようになります:

 nano /etc/apt/sources.list 
#distribution.debの新しいバージョン#にアップグレードする方法については、http://help.ubuntu.com/community/UpgradeNotesを参照してください。 src http://de.archive.ubuntu.com/ubuntuフォーカルメイン制限####ディストリビューションの最終リリース後に作成された主要なバグ修正アップデート。debhttp://de.archive.ubuntu.com/ubuntufocual-メインの制限付きの更新#deb-srchttp://de.archive.ubuntu.com/ubuntufocual-メインの制限付きの更新##N.B.このリポジトリのソフトウェアは、Ubuntu##チームによって完全にサポートされていません。また、ユニバースのソフトウェアは、Ubuntuセキュリティチームから##レビューやアップデートを受け取らないことに注意してください。debhttp://de.archive.ubuntu.com/ubuntuフォーカルユニバース#deb-src http://de.archive .ubuntu.com / ubuntu focus universedeb http://de.archive.ubuntu.com/ubuntu focus-updates universe#deb-src http://de.archive.ubuntu.com/ubuntu focus-updates universe ## N.B.このリポジトリのソフトウェアは、Ubuntu ##チームによって完全にサポートされておらず、無料のライセンスが適用されていない可能性があります。 ##ソフトウェアを使用する権利についてご満足ください。また、## multiverseのソフトウェアは、Ubuntu##セキュリティチームからレビューやアップデートを受け取らないことに注意してください。debhttp://de.archive.ubuntu.com/ubuntuフォーカルマルチバース#deb-src http:// de .archive.ubuntu.com / ubuntuフォーカルマルチバースデブhttp://de.archive.ubuntu.com/ubuntuフォーカルアップデートマルチバース#deb-srchttp://de.archive.ubuntu.com/ubuntuフォーカルアップデートマルチバース## N.B.このリポジトリのソフトウェアは、メインリリースに含まれているものほど広範囲にテストされていない可能性がありますが、##便利な機能を提供する可能性のある一部のアプリケーションの新しいバージョンが含まれています。##また、バックポートのソフトウェアは受信しないことに注意してくださいレビュー##またはUbuntuセキュリティチームからの更新.debhttp://de.archive.ubuntu.com/ubuntuフォーカルバックポートメイン制限付きユニバースマルチバース#deb-src http://de.archive.ubuntu.com/ubuntuフォーカルバックポートメイン制限付きユニバースマルチバース##次の2行のコメントを解除して、Canonicalの##'パートナー'リポジトリからソフトウェアを追加します。##このソフトウェアはUbuntuの一部ではありませんが、Canonicalと##それぞれのベンダーによってサービスとして提供されています。 Ubuntuユーザーへ。#deb http://archive.canonical.com/ubuntuフォーカルパートナー#deb-srchttp://archive.canonical.com/ubuntuフォーカルパートナーdebhttp://de.archive.ubuntu.com/ubuntuフォーカル-セキュリティメイン制限付き#deb-src http://de.archive.ubuntu.com/ubuntuフォーカルセキュリティメイン制限付きdebhttp:/ /de.archive.ubuntu.com/ubuntuフォーカル-セキュリティユニバース#deb-srchttp://de.archive.ubuntu.com/ubuntuフォーカル-セキュリティユニバースdebhttp://de.archive.ubuntu.com/ubuntuフォーカル- security multiverse#deb-src http://de.archive.ubuntu.com/ubuntu focus-security multiverse 

次に実行します

 apt-get update 

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

 apt-get upgrade 

最新のアップデートをインストールします(ある場合)。更新の一部として新しいカーネルがインストールされていることがわかった場合は、後でシステムを再起動する必要があります。

再起動

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

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

 dpkg-reconfigure dash 

デフォルトのシステムシェル(/ bin / sh)としてダッシュを使用しますか? <-いいえ

これを行わないと、ISPConfigのインストールが失敗します。

4。 AppArmorを無効にする

AppArmorは、拡張セキュリティを提供するセキュリティ拡張機能(SELinuxと同様)です。私の意見では、安全なシステムを構成するためにそれは必要ありません、そしてそれは通常利点よりも多くの問題を引き起こします(いくつかのサービスが期待どおりに機能しなかったので1週間のトラブルシューティングを行った後にそれを考えてくださいそしてあなたは見つけますすべてが大丈夫だったので、AppArmorだけが問題を引き起こしていました)。したがって、無効にします(後でISPConfigをインストールする場合は必須です)。

次のように無効にできます:

 service apparmor stop 
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

5。システム時計を同期する

システムクロックをNTPと同期することをお勧めします( n etwork t ime p rotocol)物理サーバーを実行する場合は、インターネット経由のサーバー。仮想サーバーを実行している場合は、この手順をスキップする必要があります。実行するだけ

 apt-get -y install ntp 

システム時刻は常に同期されます。

6。 Postfix、Dovecot、MariaDB、rkhunter、binutilsをインストールします

postfixをインストールするには、sendmailがインストールされて実行されていないことを確認する必要があります。 sendmailを停止して削除するには、次のコマンドを実行します:

 service sendmail stop; update-rc.d -f sendmail remove 

エラーメッセージ:

 sendmail.serviceの停止に失敗しました:ユニットsendmail.serviceがロードされていません。

大丈夫です。sendmailがインストールされていないため、削除するものは何もありませんでした。

これで、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 sudo patch 

次の質問があります:

メール構成の一般的なタイプ:<-インターネットサイト
システムメール名:<-server1.example.com

後でメールドメイン(yourdomain.tldなど)として使用するドメインではなく、server1.example.comやserver1.yourdomain.comなどの「システムメール名」としてサブドメインを使用することが重要です。

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

 nano /etc/postfix/master.cf 

次のように送信セクションとsmtpsセクションのコメントを解除します-行-osmtpd_client_restrictions=permit_sasl_authenticatedを追加し、両方のセクションを拒否し、その後すべてコメントを残します:

 [...] submit inet n --y --- smtpd -o syslog_name =postfix / subject -o smtpd_tls_security_level =encode -o smtpd_sasl_auth_enable =yes 
-o smtpd_tls_auth_only =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 =でpermit_sasl_authenticated、リジェクト#-o milter_macro_daemon_name =ORIGINATINGsmtps INET N - Y - - 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_

注: 「-o....」行の前の空白は重要です!

後でPostfixを再起動します:

サービス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 
 [...]#スキップネットワークの代わりに、デフォルトでは、より互換性があり、安全性が低くない#localhostでのみリッスンするようになりました。# bind-address =127.0.0.1 

[...]

次に、MariaDBでrootパスワードを設定します。実行:

 mysql_secure_installation 

次の質問があります:

 rootの現在のパスワードを入力します(noneの場合はEnter):<-Enterキーを押します
rootパスワードを設定しますか? [Y / n] <-y
新しいパスワード:<-ここに新しいMariaDBルートパスワードを入力します
新しいパスワードを再入力します:<-パスワードを繰り返します
匿名ユーザーを削除しますか? [Y / n] <-y
rootログインをリモートで禁止しますか? [Y / n] <-y
特権テーブルを今すぐリロードしますか? [Y / n] <-y

MariaDBのパスワード認証方法をネイティブに設定して、後でPHPMyAdminを使用してrootユーザーとして接続できるようにします。

 echo "update mysql.user set plugin ='mysql_native_password' where user ='root';" | mysql -u root 

ファイル/etc/mysql/debian.cnfを編集し、パスワードで始まる行にMYSQL/MariaDBルートパスワードを2回設定します。

 nano /etc/mysql/debian.cnf 

追加する必要のあるMySQLルートパスワードは赤で表示されます。この例では、パスワードは「howtoforge」です。 「howtoforge」という単語を、mysql_secure_installationコマンドを使用してMySQLrootユーザーに設定したパスワードに置き換えます。

#Debianスクリプト用に自動的に生成されます。触れないでください!
[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

エディターでファイル/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 /etc/systemd/system/mysql.service.d/ 

中に新しいファイルを追加します:

 nano /etc/systemd/system/mysql.service.d/limits.conf 

そのファイルに次の行を貼り付けます:

[サービス]
LimitNOFILE =infinity

ファイルを保存して、nanoエディターを閉じます。

次に、systemdをリロードし、MariaDBを再起動します:

systemctlデーモン-リロード
servicemariadb restart

次に、ネットワークが有効になっていることを確認します。実行

 netstat -tap | grep mysql 

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

 [メール保護]:〜#netstat -tap | grep mysql 
tcp6 0 0 [::]:mysql [::]:* LISTEN 51836 / mysqld
[email protected]:〜#7。 Amavisd-new、SpamAssassin、およびClamavをインストールします

amavisd-new、SpamAssassin、およびClamAVをインストールするには、

を実行します。
 apt-get -y install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perllibauthen-sasl-perlclamav-docsデーモンlibio-string-perllibio-socket-ssl -perl libnet-ident-perl zip libnet-dns-perl postgrey 

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

 service spamassassin stop 
update-rc.d -f spamassassin remove

ClamAVを開始するには:

 freshclam 
service clamav-daemon start

次のエラーは、freshclamの最初の実行では無視できます。

エラー:/var/log/clamav/freshclam.logが別のプロセスによってロックされています
エラー:内部ロガーに問題があります(UpdateLogFile =/var/log/clamav/freshclam.log)。

8。 Apache、PHP、phpMyAdmin、FCGI、SuExec、Pearをインストールします

Apache 2.4、PHP 7.4、phpMyAdmin、FCGI、suExec、およびPearは、次のようにインストールできます。

 apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.4 php7.4-common php7.4-gd php7.4-mysql php7.4-imap phpmyadmin php7.4-cli php7.4-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear libruby libapache2-mod-python php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7 .4-xmlrpc php7.4-xsl memcached php-memcache php-imagick php7.4-zip php7.4-mbstring php-soap php7.4-soap php7.4-opcache php-apcu php7.4-fpm libapache2-reload -perl 

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

自動的に再構成するWebサーバー:<-apache2 

 
dbconfig-commonを使用してphpmyadminのデータベースを構成しますか? <-はい
  
 
phpmyadminのMySQLアプリケーションパスワード:<-Enterキーを押します

次に、次のコマンドを実行して、Apacheモジュールのsuexec、rewrite、ssl、actions、include(さらに、WebDAVを使用する場合はdav、dav_fs、auth_digest)を有効にします。

 a2enmod suexecrewritesslアクションにはcgiエイリアスproxy_fcgiが含まれます
 a2enmod dav_fsdavauth_digestヘッダー

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を介して作成されたWebサイトで拡張子.rbのRubyファイルをホストする場合は、/ etc/mime.typesのapplication/x-rubyrbの行をコメントアウトする必要があります。

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

(これは.rbファイルにのみ必要です。拡張子が.rbxのRubyファイルはそのまま使用できます。)

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

 service apache2 restart 

9。 Let'sEncryptをインストールする

ISPConfig 3.2には、無料のSSL認証局Let'sEncryptのサポートが組み込まれています。 Let's Encrypt機能を使用すると、ISPConfigでWebサイト用の無料のSSL証明書を作成できます。

次に、Let'sEncryptのサポートを追加します。

 apt-get install certbot 

10。 Mailmanをインストールする

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

 apt-get -y install mailman 

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

サポートする言語:<-en(英語)
サイトリストがありません<-Ok

エラー'制御プロセスが終了したため、mailman.serviceのジョブが失敗しました エラーコード。 'は今のところ無視できます。

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

 newlist mailman 

[メール保護]:〜#newlist mailman
リストを実行している人のメールアドレスを入力します:<-admin email address、e.g. [メール保護]
最初のメールマンパスワード:<-メールマンリストの管理者パスワード
メールリストの作成を完了するには、/ 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"

Enterキーを押して、メールマンの所有者に通知します... <-ENTER

[メール保護]:〜#

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

 nano / etc / aliases 

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

 [...]  ## mailman mailing listmailman: "| / 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 / mailmanfirm 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メールマンの退会」 

実行

 newaliases 

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

サービスpostfixの再起動

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

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

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

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

次のコマンドで構成をアクティブ化します:

 a2enconf mailman 

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

 service apache2 restart 

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

サービス郵便配達員の開始

11。 PureFTPdとQuotaをインストールする

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

 apt-get -y install pure-ftpd-common pure-ftpd-mysqlquotaquotatool 

ファイル/etc/ default / pure-ftpd-common ...

を編集します
 nano / etc / default / pure-ftpd-common 

...そして、開始モードがスタンドアロンに設定されていることを確認し、VIRTUALCHROOT =trueを設定します:

 [...] STANDALONE_OR_INETD=スタンドアロン [...] 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 

国名(2文字のコード)[AU]:<-国名を入力します(例:「DE」)。
州または州の名前(フルネーム)[一部の州]:<-州または州の名前を入力します。
地域名(例:都市)[]:<-都市を入力します。
組織名(例:会社)[Internet Widgits Pty Ltd]:<-組織名(例:会社名)を入力します。
組織単位名(例:セクション)[]:<-組織単位名(例:「IT部門」)を入力します。
共通名(例:あなたの名前)[]:<-システムの完全修飾ドメイン名を入力します(例:「server1.example.com」)。
メールアドレス[]:<-メールアドレスを入力してください。

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

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

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

 service pure-ftpd-mysql restart 

/ etc/fstabを編集します。私の場合は次のようになります(マウントポイントのあるパーティションに、usrjquota =quote.user、grpjquota =quote.group、jqfmt =vfsv0を追加しました/):

 nano / etc / fstab 
#/ etc / fstab:静的ファイルシステム情報。

#'blkid'を使用して、
#デバイスのユニバーサル一意識別子を出力します。これは、ディスクが追加および削除された場合でも機能するデバイスに名前を付けるためのより堅牢な方法として、UUID=とともに使用できます。
# fstab(5)を参照してください。

#<ファイルシステム><マウントポイント><タイプ><オプション><ダンプ><パス>
/ dev / mapper / server1--vg-ルート/ext4エラー=remount-ro、usrjquota =quote.user、grpjquota =quote.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 / 
 quotecheck -avugm 
quoteon -avug

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

 [email protected]:/ tmp#quotacheck -avugm 
quotecheck:Scanning / dev / mapper / server1--vg-root [/] done
quotecheck:古いユーザーのquotaファイルを統計できません// quota.user:そのようなファイルやディレクトリはありません。使用量は差し引かれません。
quotacheck:古いグループクォータファイルを統計できません//quota.group:そのようなファイルまたはディレクトリはありません。使用量は差し引かれません。
quotacheck:古いユーザークォータファイルを統計できません//quota.user:そのようなファイルまたはディレクトリはありません。使用量は差し引かれません。
quotacheck:古いグループクォータファイルを統計できません//quota.group:そのようなファイルまたはディレクトリはありません。使用量は差し引かれません。
quotacheck:13602ディレクトリと96597ファイルを確認しました
quotecheck:古いファイルが見つかりません。
quotecheck:古いファイルが見つかりません。
[メール保護]:/ tmp#quotaon -avug
/ dev / mapper / server1--vg-root [/]:グループクォータがオンになっています
/ dev / mapper / server1--vg-root [/]:ユーザークォータがオンになっています

12。 BINDDNSサーバーをインストールする

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

 apt-get -y install bind9 dnsutils haveged 

ヘイブされたデーモンを有効にして開始します:

 systemctl enable haveged 
systemctl start haveged

13。 Vlogger、Webalizer、AWStats、GoAccessをインストールします

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

 apt-get -y install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl 

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-
sudo apt-get update
sudo apt-get install goaccess

その後、/ 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#静的レポートを生成します: 10 03 * * * www-data [-x /usr/share/awstats/tools/buildstatic.sh] &&/usr/share/awstats/tools/buildstatic.sh 

14。 Jailkitをインストールする

Jailkitは、ISPConfigでシェルユーザーとcronジョブを投獄するために使用されます。 aptを使用してjailkitをインストールします:

 apt-get -y install jailkit 

15。 fail2banとUFWをインストールする

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

 apt-get -y install fail2ban 

fail2banでPureFTPdとDovecotを監視するには、ファイル/etc/fail2ban/jail.local:

を作成します。
 nano /etc/fail2ban/jail.local 
 [pure-ftpd] enabled =trueport =ftpfilter =pure-ftpdlogpath =/ var / log / syslogmaxretry =3 [dovecot] enabled =truefilter =dovecotaction =iptables-multiport [name =dovecot-pop3imap、port ="pop3、 pop3s、imap、imaps "、protocol =tcp] logpath =/var/log/mail.logmaxretry =5 [postfix] enabled =trueport =smtpfilter =postfixlogpath =/var/log/mail.logmaxretry =3 

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

 service fail2ban restart 

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

 apt-get install ufw 

16。 RoundcubeWebメールをインストールする

Roundcube Webメールをインストールするには、次のコマンドを実行します。

 apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins roundcube-plugins-extra javascript-common libjs-jquery-mousewheel php-net-sieve tinymce 

インストーラーは次の質問をする場合があります:

 dbconfig-commonを使用してroundcube用にデータベースを構成しますか? <-はい
roundcubeのMySQLアプリケーションパスワード:<-Enterキーを押します

これらの質問とucfスクリプトに関する警告が表示されなくても心配しないでください、それで問題ありません。

シェルに表示されるucf警告は無視できますが、インストールに悪影響を与えることはありません。

次に、RoundCubeApache構成ファイルを編集します。

 nano /etc/apache2/conf-enabled/roundcube.conf 

Alias行の前の#を削除してから、/ webmailの2番目のAlias行を追加し、「」の直後に「AddTypeapplication/x-httpd-php.php」という行を追加します。行:

#これらのエイリアスは、Apacheサーバー上の複数のホストで正しく機能しません
#コメントを外して使用するか、構成に適合させます
Alias / roundcube / var / lib / roundcube
エイリアス/webmail/ var / lib / roundcube [...] AddType application / x-httpd-php .php [...]

そしてapacheを再起動します

 service apache2 restart 

次に、RoundCubeconfig.inc.php構成ファイルを編集します。

 nano /etc/roundcube/config.inc.php 

デフォルトのホストをlocalhostに変更します:

 $ config ['default_host'] ='localhost'; 

およびSMTPサーバー:

 $ config ['smtp_server'] ='localhost'; 

および

 $ config ['smtp_port'] =25; 

これにより、Roundcubeがログインフォームにサーバー名の入力フィールドを表示するのを防ぎます。

17。 ISPConfig3.2をインストールします

ここでは、ISPConfig3.2の安定したビルドを使用します。

 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 /

次のステップは実行することです

 php -q install.php 

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

#php -q install.php 
 
------------------------------------------- -------------------------------------
_____ ___________ _____ __ _ ____
| _ _ / ___ | ___ \ / __ \ / _(_)/ __ \
| | \`-。| | _ / / | / \ / ___ _ __ | | _ _ __ _ _ / /
| | `-。 \ __ / | | / _ \ | '_ \ | _ | | / _` | | _ |
_ | | _ / \ __ / / | | \ __ / \(_)| | | | | | | (_ | | ___ \ \
\ ___ / \ ____ / \ _ | \ ____ / \ ___ / | _ | | _ | _ | | _ | \ __、| \ ____ /
__ / |
| ___ /
-------------------------------------- ------------------------------------------
 
>>初期構成
オペレーティングシステム:Ubuntu 20.04.1 LTS(Focal Fossa)
以下は、プライマリ構成に関するいくつかの質問ですので、注意してください。
デフォルト値は[括弧]内にあり、で受け入れることができます。
「quit」をタップします(引用符なし)インストーラーを停止します。
 
言語を選択(en、de)[en]:<-Enterキーを押します
インストールモード(標準、エキスパート)[標準]:<-Enterキーを押します
サーバーの完全修飾ホスト名(FQDN)、例:server1.domain.tld [server1.canomi.com]:<-Enterキーを押します
 MySQLサーバーのホスト名[localhost]:<-Enterキーを押します
 MySQLサーバーポート[3306]:<-Enterキーを押します
 MySQL rootユーザー名[root]:<-Enterキーを押します
 MySQLルートパスワード[]:<-MySQLルートパスワードを入力してください
 [dbispconfig]を作成するMySQLデータベース:<-Enterキーを押します
 MySQL文字セット[utf8]:<-Enterキーを押します
Postgreyの構成
Postfixの構成
4096ビットのRSA秘密鍵の生成
.......................。 ............................................... ++
..............................................。 .................................................。 .......................................++
新しい秘密鍵を'smtpd.key'
-----
証明書リクエストに組み込まれる
情報を入力するように求められます。
入力しようとしている内容これは、識別名またはDNと呼ばれるものです。
フィールドはかなりありますが、空白のままにすることができます
一部のフィールドには、デフォルト値があります。
'と入力すると、 '、フィールドは空白のままになります。
-----
国名(2文字のコード)[AU]:<-2文字の国コードを入力
州または県の名前(フルネーム)[Some-State]:<-州の名前を入力してください
地域名(例:都市)[]:<-都市を入力してください
組織名(例:会社)[ Int ernet Widgits Pty Ltd]:<-会社名を入力するか、Enterキーを押します
組織単位名(例:セクション)[]:<-Enterキーを押します
一般名(例:サーバーFQDNまたはあなたの名前)[]:<-サーバーのホスト名を入力します。私の場合はserver1.example.com
メールアドレス[]:<-Enterキーを押します
Mailmanの設定
Dovecotの構成
Spamassassinの構成
Amavisdの構成
Getmailの構成
BINDの構成
Jailkitの構成
Pureftpdの構成
Apacheの構成
vloggerの構成
MetronomeXMPPサーバーの構成
新しい秘密鍵を「localhost.key」に書き込む
-----
国名(2文字のコード)[AU]:<-Enter 2文字の国コード
地域名(例:都市)[]:<-都市を入力
組織名(例:会社)[Internet Widgits Pty Ltd]:<-会社名を入力するか、を押します入力
組織単位名(例:セクション)[]:<-Enterキーを押します
共通名(例:サーバーFQDNまたはあなたの名前)[server1.canomi.com]:<-サーバーのホスト名を入力します、私の場合:server1.example.com
メールアドレス[]:<-Enterキーを押します
Ubuntuファイアウォールの構成
Fail2banの構成
[INFO]サービスOpenVZが検出されません
Appsvhostの構成
ISPConfigのインストール
ISPConfigポート[8080]:
管理者パスワード[admin]:
 ISPConfig Webインターフェイス(y、n)への安全な(SSL)接続が必要ですか[y]:<-Enterキーを押します
 RSA秘密鍵の生成、4096ビット長のモジュラス
....................... ++
..... .................................................。 .................................................。 ....................... ++
eは65537(0x10001)
あなたは次のような情報を入力するように求められようとしています
証明書リクエストに組み込まれます。
入力しようとしているのは、識別名またはDNと呼ばれるものです。
かなりの数のフィールドがありますが、空白のままにすることができます
一部のフィールドにはデフォルト値があります。
「。」と入力すると、フィールドは空白のままになります。
-----
国名(2文字のコード) [AU]:<-2文字の国コードを入力してください
州名または州名(フルネーム)[一部の州]:<-州の名前を入力してください
地域名(例:市区町村) []:<-都市を入力してください
組織名(例:会社)[Internet Widgits Pty Ltd]:<-会社名を入力するか、Enterキーを押してください
組織単位名(例:セクション)[] :<-Enterキーを押します
一般名(例:サーバーFQDNまたはあなたの名前)[]:<-サーバーのホスト名を入力します。私の場合はserver1.example.com
メールアドレス[]:<-Enterキーを押します
証明書リクエストとともに送信される次の「追加」属性を入力してください
チャレンジパスワード[]:<-Enterキーを押します
オプションの会社名[]:<- -Enterキーを押します
RSAキーを書き込みます

 Symlink ISPConfig LE SSL certs to postfix? (y、n)[y]:<-Enterキーを押します
 ISPConfig LE SSL証明書をpureftpdにシンボリックリンクしますか? dhparamファイルの作成には時間がかかります。 (y、n)[y]:<-Enterキーを押します
 DHパラメータの生成、2048ビット長の安全素数、ジェネレータ2
これには長い時間がかかります
................... ..........................................+......。 .................................................。 .................................................。 .................................................。 ............ + ...................
 
DBServerの構成
ISPConfigcrontabのインストール
root用のcrontabなし
getmail用のcrontabなし
IPアドレスの検出
サービスの再起動...
インストールが完了しました。

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

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






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

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

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

SSH/シェルログイン

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

このユーザーにはsudo権限があります。

ISPConfigログイン

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

MySQLログイン

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

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

19。リンク

  • Ubuntu:http://www.ubuntu.com/
  • ISPConfig:http://www.ispconfig.org/

Ubuntu
  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.04(nginx、BIND、Dovecot、ISPConfig 3)

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