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

完璧なサーバー-Debian8.6(nginx、BIND、Dovecot、ISPConfig 3.1)

このチュートリアルでは、ISPConfig3.1のインストール用にDebianJessieサーバー(nginx、BIND、Dovecotを使用)を準備する方法と、ISPConfig3.1をインストールする方法を示します。 ISPConfig 3は、Webブラウザを介して次のサービスを構成できるWebホスティングコントロールパネルです:Apacheまたはnginx Webサーバー、Postfixメールサーバー、CourierまたはDovecot IMAP / POP3サーバー、MySQL、BINDまたはMyDNSネームサーバー、PureFTPd、SpamAssassin、 ClamAV、その他多数。このセットアップは、(Apacheの代わりに)nginx、DNSサーバーとしてのBIND、およびIMAP/POP3サーバーとしてのDovecotを対象としています。

1予備メモ

このチュートリアルでは、ホスト名server1.example.comとIPアドレス192.168.1.100およびゲートウェイ192.168.1.1を使用します。これらの設定は異なる場合があるため、必要に応じて置き換える必要があります。先に進む前に、Debian 8の最小インストールが必要です。これは、ホスティングプロバイダーからのDebian最小イメージであるか、最小Debianサーバーチュートリアルを使用してベースシステムをセットアップしている可能性があります。

2SSHサーバーをインストールします

システムのインストール中にOpenSSHサーバーをインストールしなかった場合は、今すぐインストールできます。

 apt-get -y install ssh openssh-server 

今後は、PuTTYなどのSSHクライアントを使用して、ワークステーションからDebian 8サーバーに接続し、このチュートリアルの残りの手順に従うことができます。

3シェルテキストエディタをインストールします(オプション)

nanoを使用します このチュートリアルのテキストエディタ。一部のユーザーはクラシックviエディターを好むため、ここで両方のエディターをインストールします。デフォルトのviプログラムは、DebianとUbuntuで奇妙な動作をします。これを修正するには、vim-noxをインストールします:

 apt-get -y install nano vim-nox 

(joeなどの別のテキストエディタを使用する場合は、これを行う必要はありません。)

4ホスト名を構成します

サーバーのホスト名は、「server1.example.com」のようなサブドメインである必要があります。 「example.com」のようなサブドメイン部分のないドメイン名をホスト名として使用しないでください。後でメールの設定で問題が発生する可能性があります。まず、/ etc / hostsでホスト名を確認し、必要に応じて変更する必要があります。行は次のようになります:「IPアドレス-スペース-ドメインを含む完全なホスト名-スペース-サブドメイン部分」。 / etc/hostsを編集します。次のようにします:

 nano / etc / hosts 
 127.0.0.1 localhost.localdomain localhost192.168.1.100 server1.example.com server1#IPv6対応ホストには次の行が望ましい::1 localhost ip6-localhost ip6-loopbackff02 ::1 ip6-allnodesff02 ::2 ip6 -allrouters 

次に、/ etc / hostnameファイルを編集します:

 nano / etc / hostname 

この場合、サブドメイン部分のみが含まれます:

 server1 

最後に、サーバーを再起動して変更を適用します。

再起動

もう一度ログインし、次のコマンドを使用してホスト名が正しいかどうかを確認します。

 hostname 
hostname -f

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

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

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

まず、/ etc / apt / sources.listにwheezy-updatesリポジトリが含まれていることを確認します(これにより、ClamAVウイルススキャナーの最新の更新を常に取得できます。このプロジェクトはリリースを頻繁に公開し、古いバージョンが機能しなくなる場合があります)、また、contribリポジトリとnon-freeリポジトリが有効になっていること(libapache2-mod-fastcgiなどの一部のパッケージはメインリポジトリにありません)。

 nano /etc/apt/sources.list 
 deb http://ftp.us.debian.org/debian/ jessie main contrib non-free 
deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-無料

deb http://security.debian.org/ jessie / updates main contrib non-free
deb-src http://security.debian.org/ jessie / updates main contrib non-free

#Debianバックポート-Letsencryptに必要
deb http://ftp.debian.org/debian jessie-backports main

重要: 上記のようにDebianバックポートリポジトリを追加します。

実行

 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 install ntp 

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

8 Postfix、Dovecot、MySQL、rkhunter、binutilsをインストールします

Postfix、Dovecot、MySQL、rkhunter、Binutilsを1つのコマンドでインストールできます:

 apt-get 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 

次の質問があります:

メール構成の一般的なタイプ:<-インターネットサイト
システムメール名:<-server1.example.com
MariaDBの「root」ユーザーの新しいパスワード:<-yourrootsqlpassword
繰り返しますMariaDBの「root」ユーザーのパスワード:<-yourrootsqlpassword

MariaDB / MySQLのインストールを保護し、テストデータベースを無効にするには、次のコマンドを実行します。

 mysql_secure_installation 

インストール中に新しいパスワードを設定するだけなので、MySQLのrootパスワードを変更する必要はありません。次のように質問に答えてください:

ルートパスワードを変更しますか? [Y / n] <-n 
匿名ユーザーを削除しますか? [Y / n] <-y
rootログインをリモートで禁止しますか? [Y / n] <-y
テストデータベースを削除してアクセスしますか? [Y / n] <-y
特権テーブルを今すぐリロードしますか? [Y / n] <-y

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

 nano /etc/postfix/master.cf 

次のように、送信セクションとsmtpsセクションのコメントを解除します(不要なため、-o milter_macro_daemon_name =ORIGINATINGのままにします):

 [...] subject inet 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_helo_ br />#-o smtpd_recipient_restrictions =
#-o smtpd_relay_restrictions =permit_sasl_authenticated、reject
#-o milter_macro_daemon_name =ORIGINATING
smtps inet n --- --- smtpd
-o syslog 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 <=$ mua_client_restrictions
#-o smtpd_helo_restrictions =$ mua_helo_restrictions
#-o smtpd_sender_r estrictions =$ mua_sender_restrictions
#-o smtpd_recipient_restrictions =
#-o smtpd_relay_restrictions =permit_sasl_authenticated、reject
#-o milter_macro_daemon_name =ORIGINATING [...]

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

 service postfix restart 

MySQLがローカルホストだけでなくすべてのインターフェースでリッスンするようにしたいので、/ etc / mysql / my.cnfを編集して、bind-address =127.0.0.1:

の行をコメントアウトします。
 nano /etc/mysql/my.cnf 
 [...]#スキップネットワークの代わりに、デフォルトでは、より互換性があり、安全性が低くない#localhostでのみリッスンするようになりました。#bind-address =127.0.0.1 [...] 
>

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

 service mysql restart 

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

 netstat -tap | grep mysql 

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

 [メール保護]:〜#netstat -tap | grep mysql 
tcp 0 0 *:mysql *:*リッスン218123 / mysqld
[メール保護]:〜#

9 Amavisd-new、SpamAssassin、およびClamavをインストールします

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

 apt-get install amavisd-new spamassassin clamav clamav-daemon zoo 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 
systemctl disable spamassassin

9.1 Metronome XMPPサーバーのインストール(オプション)

この手順では、XMPPプロトコルと互換性のあるチャットサーバーを提供するMetronomeXMPPサーバーをインストールします。この手順はオプションです。チャットサーバーが必要ない場合は、この手順をスキップできます。他のISPConfig機能はこのソフトウェアに依存していません。

DebianにProsodyパッケージリポジトリを追加します。

 echo "deb http://packages.prosody.im/debian jessie main"> /etc/apt/sources.list.d/metronome.list 
wget http://prosody.im/files/ prosody-debian-packages.key -O-| sudo apt-key add-

パッケージリストを更新します:

 apt-get update 

ビルドプロセスに必要なプログラムをインストールします

 apt-get install build-essential 

aptを使用してパッケージをインストールします。

 apt-get install git lua5.1 liblua5.1-0-dev lua-filesystem libidn11-dev libssl-dev lua-zlib lua-expat lua-event lua-bitop lua-socket lua-sec luarocks luarocks 
>
luarocksはlpcをインストールします

Metronomeのシェルユーザーを追加します。

 adduser --no-create-home --disabled-login--gecos'メトロノーム'メトロノーム

Metronomeを/optディレクトリにダウンロードしてコンパイルします。

 cd / opt; git clone https://github.com/maranda/metronome.git Metronome 
cd ./metronome; ./configure --ostype =debian --prefix =/ usr
make
make install

メトロノームが/opt/metronomeにインストールされました。

10 Nginx、PHP(PHP-FPM)、およびFcgiwrapをインストールします

NginxはDebianのパッケージとして利用可能であり、次のようにインストールできます。

 apt-get install nginx 

Apache2がすでにシステムにインストールされている場合は、今すぐ停止してください...

 service apache2 stop 

メッセージ「apache2.serviceの停止に失敗しました:ユニットapache2.serviceがロードされていません。 「は問題なく、エラーを示すものではありません。

...そしてApacheのシステム起動リンクを削除します:

 systemctl disable apache2 

その後nginxを開始します:

 service nginx start 

(Apache2とnginxの両方がインストールされている場合、ISPConfig 3インストーラーはどちらを使用するかを尋ねます。この場合はnginxと答えます。両方の両方がインストールされている場合、ISPConfigは必要な構成を自動的に行います。)

>

PHP5をPHP-FPMを介してnginxで動作させることができます(PHP-FPM(FastCGI Process Manager)は、あらゆるサイズのサイト、特に忙しいサイトに役立ついくつかの追加機能を備えた代替のPHP FastCGI実装です)。>>

 apt-get install php5-fpm 

PHP-FPMは、ソケット/var/run/php5-fpm.sockでFastCGIサーバーを実行するデーモンプロセス(initスクリプト/etc/init.d/php5-fpmを使用)です。

PHPでMySQLをサポートするために、php5-mysqlパッケージをインストールできます。他のPHP5モジュールをインストールすることをお勧めします。また、アプリケーションでそれらが必要になる場合もあります。次のような利用可能なPHP5モジュールを検索できます:

 apt-cache search php5 

必要なものを選び、次のようにインストールします:

 apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-memcached php5-pspell php5-recode php5-sqlite php5-tidy php5 -xmlrpc php5-xsl memcached 

APCは、PHP中間コードをキャッシュおよび最適化するための無料のオープンPHPオペコードキャッシャーです。これは、eAcceleratorやXCacheなどの他のPHPオペコードキャッシャーに似ています。 PHPページを高速化するために、これらのいずれかをインストールすることを強くお勧めします。

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

 apt-get install php-apc 

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

 nano /etc/php5/fpm/php.ini 

...そしてcgi.fix_pathinfo=0とタイムゾーンを設定します:

 [...] cgi.fix_pathinfo =0 [...] date.timezone ="Europe / Berlin" [...] 

(使用可能なすべてのタイムゾーンは、/ usr / share / zoneinfoディレクトリとそのサブディレクトリにあります。)

PHP-FPMをリロードします:

 service php5-fpm reload 

nginxでCGIをサポートするには、Fcgiwrapをインストールします。

Fcgiwrapは、複雑なCGIスクリプトでも機能するCGIラッパーであり、各vhostが独自のcgi-binディレクトリを使用できるため、共有ホスティング環境で使用できます。

fcgiwrapパッケージをインストールします:

 apt-get install fcgiwrap 

インストール後、fcgiwrapデーモンはすでに開始されているはずです。そのソケットは/var/run/fcgiwrap.socketです。実行されていない場合は、fservicefcgiwrapスクリプトを使用して開始できます。

それでおしまい!これで、nginx vhostを作成すると、ISPConfigが正しいvhost構成を処理します。

10.1追加のPHPバージョン

ISPConfig 3.0.5以降では、1つのサーバー上に複数のPHPバージョン(ISPConfigで選択可能)を設定して、PHP-FPMを含めて実行することができます。 PHP7および7.1。追加のPHPバージョン(PHP-FPM)を構築する方法と、ISPConfigを構成する方法については、次のチュートリアルを確認してください:Debian 8(Jessie)にISPConfig3用のPHP7(PHP-FPMとFastCGI)をインストールする方法

10.2phpMyAdminをインストール

次のようにphpMyAdminをインストールします。

 apt-get install phpmyadmin 

インストーラーが「Webサーバーに自動的に再構成する:」と要求している場合は、オプションを選択しないでください。 "と[OK]を押します。

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

これで、phpMyAdminは/ usr / share /phpmyadmin/ディレクトリにあります。

ISPConfig 3をインストールした後、次のようにphpMyAdminにアクセスできます。

nginxのポート8081のISPConfigアプリvhostにはphpMyAdmin構成が付属しているため、http://server1.example.com:8081/phpmyadminまたはhttp://server1.example.com:8081/phpMyAdminを使用してphpMyAdminにアクセスできます。

Webサイトから使用できる/phpmyadminまたは/phpMyAdminエイリアスを使用する場合、nginxにはグローバルエイリアス(つまり、すべてのvhostに定義できるエイリアス)がないため、これはApacheよりも少し複雑です。したがって、それぞれに対してこれらのエイリアスを定義する必要があります phpMyAdminにアクセスするvhost。

これを行うには、ISPConfigのWebサイトの[オプション]タブにあるnginxディレクティブフィールドに以下を貼り付けます。

 location / phpmyadmin {root / usr / share /; index index.php index.html index.htm;場所〜^ / phpmyadmin /(。+ \。php)$ {try_files $ uri =404;ルート/usr/ share /; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ request_filename; / etc / nginx/fastcgi_paramsをインクルードします。 fastcgi_param PATH_INFO $ fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; }場所〜* ^ / phpmyadmin /(。+ \。(jpg | jpeg | gif | css | png | js | ico | html | xml | txt))$ {root / usr / share /; }} location / phpMyAdmin {rewrite ^ / * / phpmyadmin last; } 

http sを使用する場合 vhostのhttpの代わりに、fastcgi_paramHTTPSという行を追加する必要があります。次のようにphpMyAdmin構成に追加します:

 location / phpmyadmin {root / usr / share /; index index.php index.html index.htm;場所〜^ / phpmyadmin /(。+ \。php)$ {try_files $ uri =404;ルート/usr/ share /; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_paramHTTPSオン; #<-この行を追加fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ request_filename; / etc / nginx/fastcgi_paramsをインクルードします。 fastcgi_param PATH_INFO $ fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; }場所〜* ^ / phpmyadmin /(。+ \。(jpg | jpeg | gif | css | png | js | ico | html | xml | txt))$ {root / usr / share /; }} location / phpMyAdmin {rewrite ^ / * / phpmyadmin last; } 

vhostにhttpとhttpsの両方を使用する場合は、$https変数を使用できます。もう一度nginxDirectivesフィールドに移動し、fastcgi_paramHTTPSの代わりに;行fastcgi_paramHTTPS$httpsを追加します。 httpリクエストとhttpsリクエストの両方にphpMyAdminを使用できるようにします。

 location / phpmyadmin {root / usr / share /; index index.php index.html index.htm;場所〜^ / phpmyadmin /(。+ \。php)$ {try_files $ uri =404;ルート/usr/ share /; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param HTTPS $ https; #<-この行を追加fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $ request_filename; / etc / nginx/fastcgi_paramsをインクルードします。 fastcgi_param PATH_INFO $ fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; }場所〜* ^ / phpmyadmin /(。+ \。(jpg | jpeg | gif | css | png | js | ico | html | xml | txt))$ {root / usr / share /; }} location / phpMyAdmin {rewrite ^ / * / phpmyadmin last; } 

10.3 HHVM(HipHop仮想マシン)のインストール

このステップでは、公式のDebianリポジトリからHHVMをインストールします。 HHVMリポジトリを追加し、キーをインポートします。

 sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449 
echo deb http://dl.hhvm.com/debian jessie main | sudo tee /etc/apt/sources.list.d/hhvm.list

パッケージリストを更新します:

 sudo apt-get update 

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

 sudo apt-get install hhvm 

11Let'sEncryptをインストール

ISPConfig 3.1は、無料のSSL認証局Let'sEncryptをサポートしています。 Let's Encrypt機能を使用すると、ISPConfig内からWebサイト用の無料のSSL証明書を作成できます。

 apt-get install python-certbot -t jessie-backports 

12Mailmanをインストール

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

 apt-get install mailman 

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

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

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

 newlist mailman 

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

## 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-un subscribe: "| / var / lib / mailman / mail / mailman unsubscribe mailman"

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

[email protected] :〜#

後で/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-バウンス: "| / var / lib / mailman / mail /mailmanバウンスmailman"mailman-confirm: "| / var / lib / mailman / mail /mailman確認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を再起動します:

サービスpostfixの再起動

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

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

ISPConfig 3をインストールした後、次のようにMailmanにアクセスできます。

nginxのポート8081のISPConfigアプリvhostにはMailman構成が付属しているため、http://server1.example.com:8081 / cgi-bin / mailman / admin/またはhttp://server1.exampleを使用できます。 .com:8081 / cgi-bin / mailman / listinfo/でMailmanにアクセスします。

WebサイトからMailmanを使用する場合、nginxにはグローバルエイリアス(つまり、すべてのvhostに定義できるエイリアス)がないため、これはApacheよりも少し複雑です。したがって、それぞれに対してこれらのエイリアスを定義する必要があります Mailmanにアクセスするvhost。

これを行うには、ISPConfigのWebサイトの[オプション]タブにあるnginxディレクティブフィールドに以下を貼り付けます。

場所/cgi-bin/mailman{ルート/usr/ lib /; fastcgi_split_path_info(^ / cgi-bin / mailman / [^ /] *)(。*)$; / etc / nginx/fastcgi_paramsをインクルードします。 fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; fastcgi_param PATH_INFO $ fastcgi_path_info; fastcgi_param PATH_TRANSLATED $ document_root $ fastcgi_path_info; fastcgi_intercept_errors on; fastcgi_pass unix:/var/run/fcgiwrap.socket; }場所/images/mailman{エイリアス/usr/ share / images / mailman; }場所/pipermail{エイリアス/var/ lib / mailman / archives / public;自動インデックスオン; } 

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

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

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

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

 apt-get 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/sda1にありました
UUID =3dc3b58d-97e5-497b-8254-a913fdfc5408 / ext4 errors =remount-ro、usrjquota =quote.user、grpjquota =quote.group、jqfmt =vfsv0 0 1
#スワップは/devにありましたインストール中の/sda5
UUID =36bf486e-8f76-492d-89af-5a8eb3ce8a02 none swap sw 0 0
/ dev / sr0 / media / cdrom0 udf、iso9660 user、noauto 0 0

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

 mount -o remount / 
 quotecheck -avugm 
quoteon -avug

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

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

 apt-get install bind9 dnsutils 

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

 apt-get install haveged 
systemctl enable haveged
service haveged start

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

15WebalizerとAWstatsをインストールします

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

 apt-get install webalizer awstats geoip-database libtimedate-perl 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#静的な生成レポート:#10 03 * * * www-data [-x /usr/share/awstats/tools/buildstatic.sh] &&/usr/share/awstats/tools/buildstatic.sh 

16Jailkitのインストール

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

 apt-get install build-essential autoconf automake 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
./debian/rules binary

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

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

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

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

 apt-get install fail2ban 

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

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

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

 nano /etc/fail2ban/filter.d/pureftpd.conf 
 [Definition] failregex=。*pure-ftpd:\(。* @  \)\[WARNING\]ユーザーの認証に失敗しました。*ignoreregex=
 nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf 
 [Definition] failregex =(?:pop3-login | imap-login):。*(?:認証の失敗|ログインの中止\(認証に失敗しました|ログインの中止\(無効にしようとしました|切断されました\(認証に失敗しました|ログインの中止\(\ d +認証の試行)。* 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 

18RoundCubeをインストール

RoundcubeはDebian8メインリポジトリでは利用できませんが、バックポートから取得できます。

次のコマンドでRoundCubeをインストールします:

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

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

 dbconfig.commonを使用してroundcube用にデータベースを構成しますか? <-yes 
データベースタイプを選択します:<-mysql
データベース管理ユーザーのパスワード:<-ここにMySQLルートパスワードを入力します。
roundcubeのMySQLアプリケーションパスワード:<- -Enterキーを押します

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

 nano /etc/roundcube/config.inc.php 

default_hostとsmtp_serverをlocalhostに設定します。

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

ISPConfigには、squirrelmail用のnginxアプリの仮想ホストにいくつかの構成があります。これはroundcubeでも機能します。次のコマンドでアクティブ化します:

 ln -s / usr / share / roundcube / usr / share / squirrelmail 

これで、次のようにRoundCubeにアクセスできます。

http://192.168.1.100:8081/webmail
http://server1.example.com:8081/webmail(ISPConfigをインストールした後、次の章を参照してください)

  

19ISPConfig3をインストール

ISPConfigのインストールを開始する前に、Apacheが停止していることを確認してください(インストールされている場合は、インストールされているパッケージの一部が、知らないうちに依存関係としてApacheをインストールしている可能性があります)。 Apache2がすでにシステムにインストールされている場合は、今すぐ停止してください...

 service apache2 stop 

...そしてApacheのシステム起動リンクを削除します:

 update-rc.d -f apache2 remove 

nginxが実行されていることを確認してください:

 service nginx restart 

(Apacheとnginxの両方がインストールされている場合、インストーラーはどちらを使用するかを尋ねます:Apacheとnginxが検出されました。ISPConfigに使用するサーバーを選択してください:(apache、nginx)[apache]:

nginxと入力します。 Apacheまたはnginxのみがインストールされている場合、これはインストーラーによって自動的に検出され、質問はありません。)

最新のリリースバージョンから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 /

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

 php -q install.php 

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

#php -q install.php 
 
------------------------------------------- -------------------------------------
_____ ___________ _____ __ _ ____
| _ _ / ___ | ___ \ / __ \ / _(_)/ __ \
| | \`-。| | _ / / | / \ / ___ _ __ | | _ _ __ _ _ / /
| | `-。 \ __ / | | / _ \ | '_ \ | _ | | / _` | | _ |
_ | | _ / \ __ / / | | \ __ / \(_)| | | | | | | (_ | | ___ \ \
\ ___ / \ ____ / \ _ | \ ____ / \ ___ / | _ | | _ | _ | | _ | \ __、| \ ____ /
__ / |
| ___ /
-------------------------------------- ------------------------------------------
 
>>初期構成
オペレーティングシステム:Debian 8.0(Jessie)または互換性
以下は、プライマリ構成に関するいくつかの質問ですので、注意してください。
デフォルト値は[括弧]内にあり、で受け入れることができます。
「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キーを押します
Apacheとnginxが検出されました。 ISPConfigに使用するサーバーを選択します:(apache、nginx)[apache]:<-nginx 

Postgreyの構成
Postfixの構成
4096ビットのRSA秘密鍵の生成
................................................。 ...................... ++
......................。 .................................................。 .................................................。 .............. ++
'smtpd.key'に新しい秘密鍵を書き込む
-----
これから証明書リクエストに組み込まれる情報を入力します。
入力しようとしているのは、識別名またはDNと呼ばれるものです。
フィールドはかなりありますが、そのままにしておくことができます。一部の空白
一部のフィールドにはデフォルト値があります。
「。」と入力すると、フィールドは空白のままになります。
-----
国名( 2文字のコード)[AU]:<-2文字の国コードを入力
州または県の名前(フルネーム)[一部の州]:<-州の名前を入力
地域名(例:都市)[]:<-都市を入力
組織名(例:会社)[Internet Widgits Pty Ltd]:<-会社名を入力するか、Enterキーを押します
組織単位名(例: 、セクション)[]:<-Enterキーを押します
一般名(例:サーバーFQDNまたはあなたの名前)[]:<-サーバーのホスト名を入力します。私の場合はserver1.example.com
メールアドレス[]:<-Enterキーを押します
Mailmanの設定
Dovecotの構成
Spamassassinの構成
Amavisdの構成
Getmailの構成
BINDの構成
Jailkitの構成
Pureftpdの構成
Nginxの構成
vloggerの構成
MetronomeXMPPサーバーの構成
新しい秘密鍵を「localhost.key」に書き込む
-----
国名(2文字のコード)[AU]:<-Enter 2文字の国コード
地域名(例:都市)[]:<-都市を入力
組織名(例:会社)[Internet Widgits Pty Ltd]:<-会社名を入力するか、を押します入力
組織単位名(例:セクション)[]:<-Enterキーを押します
共通名(例:サーバーFQDNまたはあなたの名前)[server1.canomi.com]:<-サーバーのホスト名を入力します、私の場合:server1.example.com
メールアドレス[]:<-Enterキーを押します
UFWファイアウォールの構成
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キーを書き込みます
 
DBServerの構成
ISPConfigcrontabのインストール
root用のcrontabなし
getmail用のcrontabなし
IPアドレスの検出
サービスの再起動...
インストールが完了しました。

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

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

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

20.1ISPConfig3マニュアル

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

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

21の追加の注意事項

21.1 OpenVZ

このチュートリアルでセットアップしたばかりのDebianサーバーがOpenVZコンテナー(仮想マシン)である場合は、ホストシステムでこれを行う必要があります(OpenVZコンテナーのIDは101であると想定しています-これをシステムの正しいVPSID):

 VPSID =101 
CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
do
vzctl set $ VPSID --cap on --save
done

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

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

SSH/シェルログイン

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

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

ISPConfigログイン

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

MySQLログイン

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

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

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


Debian
  1. 完璧なサーバー-Ubuntu14.10(nginx、BIND、Dovecot、ISPConfig 3)

  2. 完璧なサーバー-OpenSUSE12.3x86_64(nginx、Dovecot、ISPConfig 3)

  3. 完璧なサーバー-Ubuntu15.04(nginx、BIND、Dovecot、ISPConfig 3)

  1. 完璧なサーバー-Ubuntu12.04LTS(nginx、BIND、Dovecot、ISPConfig 3)

  2. 完璧なサーバー-Ubuntu12.10(nginx、BIND、Dovecot、ISPConfig 3)

  3. 完璧なサーバー-Ubuntu13.04(nginx、BIND、Dovecot、ISPConfig 3)

  1. 完璧なサーバー-Debian8Jessie(Apache2、BIND、Dovecot、ISPConfig 3)

  2. 完璧なサーバー-Debian8.4Jessie(Apache2、BIND、Dovecot、ISPConfig 3.1)

  3. 完璧なサーバー-Debian9(Nginx、BIND、Dovecot、ISPConfig 3.1)