GNU/Linux >> Znalost Linux >  >> Debian

The Perfect Server – Debian 10 (Nginx, BIND, Dovecot, ISPConfig 3.2)

Tento tutoriál ukazuje, jak připravit server Debian 10 (s Nginx, BIND, Dovecot) pro instalaci ISPConfig 3.2 a jak nainstalovat ISPConfig 3.2. ISPConfig 3 je webhostingový ovládací panel, který vám umožňuje konfigurovat následující služby prostřednictvím webového prohlížeče:webový server Apache nebo nginx, poštovní server Postfix, server IMAP/POP3 Courier nebo Dovecot, jmenný server MySQL, BIND nebo MyDNS, PureFTPd, SpamAssassin, ClamAV a mnoho dalších. Toto nastavení pokrývá webový server Nginx, BIND jako server DNS a Dovecot jako server IMAP / POP3.

1 předběžná poznámka

V tomto tutoriálu používám název hostitele server1.example.com s IP adresou 192.168.0.100 a bránou 192.168.0.1. Tato nastavení se pro vás mohou lišit, takže je musíte v případě potřeby nahradit. Než budete pokračovat dále, musíte mít minimální instalaci Debianu 10. Může to být minimální bitová kopie Debianu od vašeho poskytovatele hostingu nebo můžete k nastavení základního systému použít tutoriál Minimal Debian Server.

Všechny níže uvedené příkazy jsou spouštěny jako uživatel root. Buď se přihlaste jako uživatel root přímo, nebo se přihlaste jako normální uživatel a poté použijte příkaz

su -

abyste se stali uživatelem root na vašem serveru, než budete pokračovat. DŮLEŽITÉ :Musíte použít 'su -' a ne pouze 'su', jinak je vaše proměnná PATH v Debianu nastavena špatně.

2 Instalace serveru SSH

Pokud jste během instalace systému nenainstalovali server OpenSSH, můžete tak učinit nyní:

apt-get -y install ssh openssh-server

Od této chvíle můžete používat klienta SSH, jako je PuTTY a připojit se ze své pracovní stanice k serveru Debian 10 a postupujte podle zbývajících kroků z tohoto návodu.

3 Instalace textového editoru prostředí (volitelné)

Použiji nano textový editor v tomto tutoriálu. Někteří uživatelé preferují klasický editor vi, proto sem nainstaluji oba editory. Výchozí program vi se na Debianu a Ubuntu chová podivně; abychom to napravili, nainstalujeme vim-nox:

apt-get -y install nano vim-nox

(Nemusíte to dělat, pokud používáte jiný textový editor, jako je joe.)

4 Konfigurace názvu hostitele

Název hostitele vašeho serveru by měla být subdoména jako „server1.example.com“. Nepoužívejte název domény bez části subdomény, jako je „example.com“, jako název hostitele, protože by to později způsobilo problémy s nastavením pošty. Nejprve byste měli zkontrolovat název hostitele v /etc/hosts a v případě potřeby jej změnit. Řádek by měl být:"IP adresa - mezera - celé jméno hostitele včetně domény - mezera - část subdomény". Upravit /etc/hosts. Ať to vypadá takto:

nano /etc/hosts
127.0.0.1 localhost.localdomain localhost192.168.0.100 server1.example.com server1# Následující řádky jsou vhodné pro hostitele s podporou IPv6::1 localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 -allrouters

Poté upravte soubor /etc/hostname:

nano /etc/hostname

Bude obsahovat pouze část subdomény, v našem případě:

server1

Nakonec restartujte server, aby se změna uplatnila:

restartovat

Znovu se přihlaste a pomocí těchto příkazů zkontrolujte, zda je název hostitele správný:

název hostitele
název hostitele -f

Výstup by měl být takto:

[e-mail chráněný]:/tmp# název hostitele
server1
[chráněný e-mailem]:/tmp# název hostitele -f
server1.example.com

5 Aktualizujte svou instalaci Debianu

Nejprve se ujistěte, že váš /etc/apt/sources.list obsahuje úložiště buster/updates (tím zajistíte, že budete vždy dostávat nejnovější aktualizace pro antivirový skener ClamAV – tento projekt vydává vydání velmi často a někdy staré verze přestanou fungovat), a že jsou povoleny repozitáře contrib a non-free.

nano /etc/apt/sources.list
deb http://deb.debian.org/debian/ buster hlavní příspěvek nesvobodný
deb-src http://deb.debian.org/debian/ buster hlavní příspěvek nesvobodný

deb http://security.debian.org/debian-security buster/updates hlavní příspěvek nesvobodný
deb-src http://security.debian.org/debian-security buster/updates hlavní příspěvek non-free

Spustit

aktualizace apt-get

pro aktualizaci databáze balíčků apt a

upgrade apt-get

k instalaci nejnovějších aktualizací (pokud nějaké existují).

6 Změna výchozího prostředí

/bin/sh je symbolický odkaz na /bin/dash, ale potřebujeme /bin/bash, ne /bin/dash. Proto děláme toto:

dpkg-reconfigure dash

Použít pomlčku jako výchozí systémové prostředí (/bin/sh)? <-- Ne

Pokud to neuděláte, instalace ISPConfig se nezdaří.

7 Synchronizace systémových hodin

Je vhodné synchronizovat systémové hodiny s NTP (n síť t ime p rotocol) server přes internet. Jednoduše spusťte

apt-get install ntp

a váš systémový čas bude vždy synchronizován.

8 Instalace Postfix, Dovecot, MySQL, rkhunter a binutils

Můžeme nainstalovat Postfix, Dovecot, MySQL, rkhunter a Binutils jediným příkazem:

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 curl

Budou vám položeny následující otázky:

Obecný typ konfigurace pošty:<-- Internet Site
Název systémové pošty:<-- server1.example.com

Chcete-li zabezpečit instalaci MariaDB / MySQL a deaktivovat testovací databázi, spusťte tento příkaz:

mysql_secure_installation

Kořenové heslo MariaDB měnit nemusíme, pouze jsme si při instalaci nastavili nové. Odpovězte na otázky následovně:

Změnit heslo uživatele root? [A/N] <-- y
Nové heslo:<-- Zadejte nové heslo roota databáze
Znovu zadejte nové heslo:<-- Zopakujte heslo roota databáze
Odstraňte anonymní uživatele ? [A/n] <-- y
Zakázat vzdálené přihlášení root? [A/N] <-- y
Odebrat testovací databázi a získat k ní přístup? [A/n] <-- y
Načíst nyní tabulky oprávnění? [A/n] <-- y

Dále otevřete TLS/SSL a porty pro odesílání v Postfixu:

nano /etc/postfix/master.cf

Odkomentujte sekce odeslání a smtps následujícím způsobem a v případě potřeby přidejte řádky, aby tato sekce souboru master.cf vypadala přesně jako ta níže. DŮLEŽITÉ: Odstraňte znak # před řádky, které začínají smtps a předáním, a to nejen z řádků -o za těmito řádky!

[...]
submission inet n - y - - 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,odmítnout
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions=$m /_># -o -smtions
# -o smt_restrictions =$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,odmítnout
# -o milter_macro_daemon_name=PŮVODNÍ
br />smtps in -o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=ano
-o smtpd_client_restrictions=permit_sasl_authenticated /=neseznam_sasl,rejectdo # -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=PŮVODNÍ]

Poté restartujte Postfix:

restart služby postfix

Chceme, aby MariaDB naslouchala na všech rozhraních, nejen na localhost, proto upravujeme /etc/mysql/mariadb.conf.d/50-server.cnf a zakomentujeme řádek bind-address =127.0.0.1:

nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...]
# Místo skip-networkingu je nyní výchozím nastavením poslouchat pouze na # localhost, který je kompatibilnější a není méně bezpečný.#bind-address =127.0.0.1

[...]

Uložte soubor. Poté nastavte metodu ověřování hesla v MariaDB na nativní, abychom mohli později použít PHPMyAdmin k připojení jako uživatel root:

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

Upravte soubor /etc/mysql/debian.cnf a dvakrát v něm v řádcích, které začínají slovem heslo, nastavte heslo uživatele MYSQL / MariaDB.

nano /etc/mysql/debian.cnf

Kořenové heslo MySQL, které je třeba přidat, je zobrazeno červeně. V tomto příkladu je heslo "howtoforge".

# Automaticky generováno pro skripty Debianu. NEDOTÝKEJTE se!
[klient]
hostitel =localhost
uživatel =root
heslo =howtoforge
socket =/var/run/mysqld/mysqld.sock
[mysql_upgrade]
hostitel =localhost
user =root
heslo =howtoforge
socket =/var/run/mysqld/mysqld.sock
basedir =/usr

Chcete-li předejít chybě „Chyba při přijímání:Příliš mnoho otevřených souborů ' nyní nastavíme vyšší limity otevřených souborů pro MariaDB.

Otevřete soubor /etc/security/limits.conf pomocí editoru:

nano /etc/security/limits.conf

a přidejte tyto řádky na konec souboru.

mysql soft nofile 65535
mysql hard nofile 65535

Dále vytvořte nový adresář /etc/systemd/system/mysql.service.d/ pomocí příkazu mkdir.

mkdir -p /etc/systemd/system/mysql.service.d/

a přidejte nový soubor dovnitř:

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

vložte do tohoto souboru následující řádky:

[Služba]
LimitNOFILE=nekonečno

Uložte soubor a zavřete nano editor.

Poté znovu načteme systemd a restartujeme MariaDB:

systemctl daemon-reload
systemctl restart mariadb

Ignorujte varování:"Upozornění:Soubor jednotky, zdrojový konfigurační soubor nebo zásuvné moduly mariadb.service se na disku změnily. Spusťte 'systemctl daemon-reload' a znovu načtěte jednotky. ".

."

Nainstalujte systém dbconfig-common:

apt-get install dbconfig-common dbconfig-mysql

V současné době existuje problém se systémem Debian dbconfig-common, který brání pozdější instalaci RoundCube, opravte jej spuštěním tohoto příkazu:

sed -i -r 's/_dbc_nodb="ano" dbc_mysql_exec/_dbc_nodb="ano"; dbc_mysql_exec/g' /usr/share/dbconfig-common/internal/mysql

Nyní zkontrolujte, zda je síť povolena. Spustit

netstat -tap | grep mysql

Výstup by měl vypadat takto:

[e-mail chráněn]:~# netstat -tap | grep mysql
tcp6       0      0 [::]:mysql              [::]:*                  POSLECHNOUT      4027/mysqld]~>[e-mail #]

9 Nainstalovat Amavisd-new, SpamAssassin a ClamAV

Chcete-li nainstalovat amavisd-new, SpamAssassin a ClamAV, spustíme:

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-perli-perl bio clam -socket-ssl-perl libnet-ident-perl zip libnet-dns-perl libdbd-mysql-perl postgrey

Nastavení ISPConfig 3 používá amavisd, který interně načítá knihovnu filtrů SpamAssassin, takže můžeme zastavit SpamAssassin, abychom uvolnili RAM:

systemctl zastavit spamassassin
systemctl deaktivovat spamassassin

10 Instalace Nginx, PHP (PHP-FPM) a Fcgiwrap

Nginx je k dispozici jako balíček pro Debian, který můžeme nainstalovat následovně:

apt-get install nginx

Pokud je již Apache2 v systému nainstalován, zastavte jej nyní...

systemctl stop apache2

Zpráva „Nepodařilo se zastavit apache2.service:Jednotka apache2.service nenačtena. " je v pořádku a neindikuje chybu.

... a odstraňte odkazy pro spuštění systému Apache:

systemctl zakázat apache2

Poté spusťte nginx:

systemctl start nginx

(Pokud jsou nainstalovány Apache2 i nginx, instalační program ISPConfig 3 se vás zeptá, který z nich chcete použít - v tomto případě odpovězte nginx. Pokud je nainstalována pouze jedna z nich, ISPConfig provede potřebnou konfiguraci automaticky.)

Můžeme zajistit, aby PHP 7.3 fungovalo v nginx prostřednictvím PHP-FPM (PHP-FPM (FastCGI Process Manager) je alternativní implementace PHP FastCGI s některými dalšími funkcemi užitečnými pro weby jakékoli velikosti, zejména rušnější weby), které nainstalujeme následovně:

apt-get install php7.3-fpm

PHP-FPM je proces démona, který spouští FastCGI server na soketu /var/run/php/php7.3-fpm.sock.

Chcete-li získat podporu MySQL v PHP, můžeme nainstalovat balíček php7.3-mysql. Je dobré nainstalovat některé další moduly PHP, stejně jako je můžete potřebovat pro své aplikace. Dostupné moduly PHP můžete vyhledat takto:

apt-cache search php7

Vyberte ty, které potřebujete, a nainstalujte je takto:

apt-get install php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi php-pear mcrypt imagemagick libruby 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 php7.3-soap php7.3-fpm php7.3-opcache php-apcu

Dále otevřete /etc/php/7.3/fpm/php.ini...

nano /etc/php/7.3/fpm/php.ini

... a nastavte cgi.fix_pathinfo=0 a vaše časové pásmo:

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

(Všechna dostupná časová pásma naleznete v adresářích /usr/share/zoneinfo a jeho podadresářích.)

Nyní znovu načtěte PHP-FPM:

systemctl restart php7.3-fpm

Chcete-li získat podporu CGI v nginx, nainstalujeme Fcgiwrap.

Fcgiwrap je CGI wrapper, který by měl fungovat i pro složité CGI skripty a lze jej použít pro sdílená hostitelská prostředí, protože umožňuje každému vhostu používat svůj vlastní adresář cgi-bin.

Nainstalujte balíček fcgiwrap:

apt-get install fcgiwrap

Po instalaci by již měl být spuštěn démon fcgiwrap; jeho socket je /var/run/fcgiwrap.socket. Pokud neběží, můžete jej spustit pomocí skriptu fservice fcgiwrap.

A je to! Když nyní vytvoříte nginx vhost, ISPConfig se postará o správnou konfiguraci vhost.

10.1 Instalace phpMyAdmin

Od Debianu 10 již není PHPMyAdmin dostupný jako balíček .deb. Proto jej nainstalujeme ze zdroje.

Vytvořte složky pro PHPMyAdmin:

mkdir /usr/share/phpmyadmin
mkdir /etc/phpmyadmin
mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var /lib/phpmyadmin
dotkněte se /etc/phpmyadmin/htpasswd.setup

Přejděte do adresáře /tmp a stáhněte si zdroje PHPMyAdmin:

cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz

Rozbalte stažený archivní soubor a přesuňte soubory do složky /usr/share/phpmyadmin a vyčistěte adresář /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

Vytvořte nový konfigurační soubor pro PHPMyaAdmin na základě poskytnutého ukázkového souboru:

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

Otevřete konfigurační soubor pomocí nano editoru:

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

Nastavte si bezpečné heslo (blowfish secret), které musí mít 32 znaků:

$cfg['blowfish_secret'] ='bD3e6wva9fnd93jVsb7SDgeiBCd452Dh'; /* TOTO MUSÍTE VYPLNIT PRO OVĚŘENÍ COOKIE! */

Nepoužívejte můj příklad tajemství blowfish, nastavte si vlastní!

Poté přidejte řádek pro nastavení adresáře, který má PHPMyAdmin používat k ukládání dočasných souborů:

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

V dalším kroku nakonfigurujeme konfigurační úložiště (databázi) phpMyadmin.

Přihlaste se do MariaDB jako uživatel root:

mysql -u root -p

V prostředí MariaDB vytvořte novou databázi pro PHPMyAdmin:

MariaDB [(none)]> CREATE DATABASE phpmyadmin;

Poté vytvořte nového uživatele:

MariaDB [(none)]> VYTVOŘTE UŽIVATELE 'pma'@'localhost' IDENTIFIKOVANÉHO PODLE 'mypassword';

Nahraďte slovo mojeheslo s bezpečným heslem dle vašeho výběru v příkazech výše a níže použijte stejné heslo v obou případech. Poté udělte uživateli přístup k této databázi a znovu načtěte databázová oprávnění.

MariaDB [(none)]> UDĚLEJTE VŠECHNA PRIVILEGIA NA phpmyadmin.* PRO 'pma'@'localhost' IDENTIFIKOVANÉ PODLE 'mypassword' S MOŽNOSTÍ UDĚLENÍ;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT

Nakonec načtěte tabulky SQL do databáze:

mysql -u root -p phpmyadmin  

Na požádání zadejte root heslo MariaDB.

Vše, co nyní musíme udělat, je nastavit uživatelské údaje phpmyadmin v konfiguračním souboru. Znovu otevřete soubor v nano editoru:

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

Přejděte dolů, dokud neuvidíte řádky níže, a upravte je:

/* Uživatel používaný k manipulaci s úložištěm */
$cfg['Servers'][$i]['controlhost'] ='localhost';
$cfg['Servers'][ $i]['controlport'] ='';
$cfg['Servery'][$i]['controluser'] ='pma';
$cfg['Servery'][$ i]['controlpass'] ='mojeheslo';

/* Databáze úložiště a tabulky */
$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['Servery'][$i]['history'] ='pma__history';
$cfg['Servery'][$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';

Červeně jsem označil řádky, které jsem upravil. Nahraďte moje heslo s heslem, které jste zvolili pro uživatele phpmyadmin. Všimněte si, že // před řádky byly také odstraněny!

Po instalaci ISPConfig 3.2 můžete přistupovat k phpMyAdmin následovně:

Aplikace ISPConfig vhost na portu 8081 pro nginx jsou dodávány s konfigurací phpMyAdmin, takže pro přístup k phpMyAdmin můžete použít http://server1.example.com:8081/phpmyadmin nebo http://server1.example.com:8081/phpMyAdmin.

Pokud chcete použít alias /phpmyadmin nebo /phpMyAdmin, který můžete použít ze svých webových stránek, je to o něco složitější než pro Apache, protože nginx nemá globální aliasy (tj. aliasy, které lze definovat pro všechny vhosty). Proto musíte definovat tyto aliasy pro každý vhost, ze kterého chcete přistupovat k phpMyAdmin.

Chcete-li to provést, vložte později do pole Direktivy nginx na kartě Možnosti na webu v ISPConfig:

 umístění /phpmyadmin { root /usr/share/; index index.php index.html index.htm; umístění ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; zahrnout /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; } umístění ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } umístění /phpMyAdmin { přepsat ^/* /phpmyadmin poslední; }

Pokud používáte https místo http pro váš vhost byste měli přidat řádek fastcgi_param HTTPS on; do vaší konfigurace phpMyAdmin takto:

 umístění /phpmyadmin { root /usr/share/; index index.php index.html index.htm; umístění ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_param HTTPS zapnuto; # <-- přidejte tento řádek fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; zahrnout /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; } umístění ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } umístění /phpMyAdmin { přepsat ^/* /phpmyadmin poslední; }

Pokud pro svůj vhost používáte http i https, můžete použít proměnnou $https. Znovu přejděte do pole Direktivy nginx a místo fastcgi_param HTTPS zapněte; přidáte řádek fastcgi_param HTTPS $https; abyste mohli používat phpMyAdmin pro požadavky http i https:

 umístění /phpmyadmin { root /usr/share/; index index.php index.html index.htm; umístění ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_param HTTPS $https; # <-- přidejte tento řádek fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; zahrnout /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; } umístění ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } umístění /phpMyAdmin { přepsat ^/* /phpmyadmin poslední; }

11 Nainstalujte Let's Encrypt

ISPConfig nyní používá acme.sh jako klienta Let's Encrypt. Nainstalujte acme.sh pomocí následujícího příkazu:

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

12 Nainstalujte Mailman

ISPConfig vám umožňuje spravovat (vytvářet/upravovat/mazat) poštovní seznamy Mailman. Pokud chcete tuto funkci využívat, nainstalujte Mailman následovně:

apt-get install mailman

Vyberte alespoň jeden jazyk, např.:

Podporované jazyky:<-- en (angličtina)
Seznam chybějících stránek <-- OK

Než budeme moci spustit Mailman, musí být vytvořen první mailing list s názvem mailman:

newlist mailman

[email protected]:~# newlist mailman
Zadejte e-mail osoby vedoucí seznam: <-- e-mailová adresa administrátora, např. [chráněno e-mailem]
Počáteční heslo poštovního doručovatele: <-- heslo správce pro seznam poštovních doručovatelů
Abyste dokončili vytváření seznamu adresátů, musíte upravit svůj /etc/aliasy (nebo
ekvivalentní) soubor přidání následujících řádků a případně spuštění programu
`newaliases':

## poštovní seznam poštářů
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 potvrdit poštáře"
mailman-join:         "|/var/lib/mailman/mail/mailman připojit se k mailmanovi"
mailman- opustit:        "|/var/lib/mailman/mail/mailman opustit doručovatele"
majitel pošty:         "|/var/lib/mailman/mail/majitel pošty poštář"
požadavek poštovního doručovatele:      "| /var/lib/mailman/mail/mailman požadavek mailman"
mailman-subscribe:    "|/var/lib/mailman/mail/mailman přihlásit se k odběru mailman"
mailman-unsub scribe:  "|/var/lib/mailman/mail/mailman odhlásit poštář"

Stisknutím tlačítka Enter informujte vlastníka poštáře... <-- ENTER

[e-mail chráněn] :~#

Poté otevřete /etc/aliases...

nano /etc/aliases

... a přidejte následující řádky:

[...]## 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/mailman potvrdit mailman"mailman-join:"|/var/lib/mailman/mail /mailman join mailman"mailman-leave:"|/var/lib/mailman/mail/mailman opustit mailman"mailman-owner:"|/var/lib/mailman/mail/mailman vlastník mailman"mailman-request:"|/ var/lib/mailman/mail/mailman požadavek mailman"mailman-subscribe:"|/var/lib/mailman/mail/mailman přihlásit mailman"mailman-unsubscribe:"|/var/lib/mailman/mail/mailman unsubscribe mailman" 

Spustit

newaliases

poté a restartujte Postfix:

systemctl restart postfix

Poté spusťte démona Mailman:

systemctl restart mailmana

Po instalaci ISPConfig 3 můžete přistupovat k Mailmanu následovně:

Aplikace ISPConfig vhost na portu 8081 pro nginx jsou dodávány s konfigurací Mailman, takže můžete použít http://server1.example.com:8081/cgi-bin/mailman/admin/ nebo http://server1.example .com:8081/cgi-bin/mailman/listinfo/ pro přístup k aplikaci Mailman.

Pokud chcete používat Mailman ze svých webových stránek, je to o něco složitější než pro Apache, protože nginx nemá globální aliasy (tj. aliasy, které lze definovat pro všechny vhosty). Proto musíte definovat tyto aliasy pro každý vhost, ze kterého chcete přistupovat k Mailman.

Chcete-li to provést, vložte následující do pole Direktivy nginx na kartě Možnosti na webu v ISPConfig:

 umístění /cgi-bin/mailman { root /usr/lib/; fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$; zahrnout /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; } umístění /images/mailman { alias /usr/share/images/mailman; } umístění /pipermail { alias /var/lib/mailman/archives/public; autoindex zapnutý; }

Toto definuje alias /cgi-bin/mailman/ pro váš vhost, což znamená, že máte přístup k administrátorskému rozhraní Mailman pro seznam na http:///cgi-bin/mailman/admin/ a webovou stránku pro uživatele konference lze nalézt na adrese http:///cgi-bin/mailman/listinfo/.

Pod http:///pipermail najdete archivy konference.

13 Instalace PureFTPd a kvóty

PureFTPd a kvótu lze nainstalovat pomocí následujícího příkazu:

apt-get install pure-ftpd-common pure-ftpd-mysql kvóta kvóty

Upravte soubor /etc/default/pure-ftpd-common...

nano /etc/default/pure-ftpd-common

... a ujistěte se, že je režim spuštění nastaven na samostatný a nastavte VIRTUALCHROOT=true:

[...]STANDALONE_OR_INETD=samostatný[...]VIRTUALCHROOT=pravda[...]

Nyní nakonfigurujeme PureFTPd tak, aby umožňoval FTP a TLS relace. FTP je velmi nezabezpečený protokol, protože všechna hesla a všechna data jsou přenášena jako prostý text. Pomocí TLS lze celou komunikaci šifrovat, čímž je FTP mnohem bezpečnější.

Pokud chcete povolit relace FTP a TLS, spusťte

echo 1> /etc/pure-ftpd/conf/TLS

Abychom mohli používat TLS, musíme vytvořit SSL certifikát. Vytvořím jej v /etc/ssl/private/, proto nejprve vytvořím tento adresář:

mkdir -p /etc/ssl/private/

Poté můžeme vygenerovat certifikát SSL následovně:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Název země (2 písmenný kód) [AU]:<-- Zadejte název země (např. „DE“).
Název státu nebo provincie (celý název) [Některý stát]:<-- Zadejte svůj stát nebo název provincie.
Název lokality (např. město) []:<-- Zadejte své město.
Název organizace (např. společnost) [Internet Widgits Pty Ltd]:<-- Zadejte název organizace (např. název vaší společnosti).
Název organizační jednotky (např. sekce) []:<-- Zadejte název organizační jednotky (např. „IT oddělení“).
Běžný název (např. VAŠE jméno) []:<-- Zadejte plně kvalifikovaný název domény systému (např. "server1.example.com").
E-mailová adresa []:<-- Zadejte svou e-mailovou adresu.

Změňte oprávnění certifikátu SSL:

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

Poté restartujte PureFTPd:

systemctl restart pure-ftpd-mysql

Upravit /etc/fstab. Můj vypadá takto (do oddílu s bodem připojení / jsem přidal ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0):

nano /etc/fstab
# /etc/fstab:informace o statickém systému souborů.
#
# Použijte 'blkid' k vytištění univerzálně jedinečného identifikátoru zařízení
#; toto lze použít s UUID=jako robustnější způsob pojmenování zařízení
#, který funguje i po přidání a odebrání disků. Viz fstab(5).
#
#
# / bylo během instalace na /dev/sda1
UUID=45576b38-39e8-4994-b8c1-ea4870e2e614 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1 swap byl zapnutý /v># /v># / /sda5 během instalace
UUID=8bea0d1e-ec37-4b20-9976-4b7daaa3eb69 žádný swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

Chcete-li kvótu povolit, spusťte tyto příkazy:

mount -o remount /
quotacheck -avugm
quotaon -avug

14 Instalace serveru DNS BIND

BIND lze nainstalovat následovně:

apt-get install bind9 dnsutils

Pokud je váš server virtuální počítač, pak se důrazně doporučuje nainstalovat démona ohrady, abyste získali vyšší entropii pro podepisování DNSSEC. Můžete nainstalovat hasged i na nevirtuální servery, nemělo by to bolet.

apt-get -y install haveged
systemctl povolte haveged
systemctl start haveged

Vysvětlení k tomuto tématu naleznete zde.

15 Instalace Webalizer, AWStats a GoAccess

Webalizer a AWStats lze nainstalovat následovně:

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

Poté otevřete /etc/cron.d/awstats...

nano /etc/cron.d/awstats

... a okomentujte vše v tomto souboru:

#MAILTO=root#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &&/usr/share/awstats/tools/update.sh# Generovat statické reporty:#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &&/usr/share/awstats/tools/buildstatic.sh

Instalace nejnovější verze GoAccess přímo z úložiště 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

16 Instalace Jailkit

Jailkit je potřeba pouze v případě, že chcete chrootovat uživatele SSH. Lze jej nainstalovat následovně (důležité:Jailkit musí být nainstalován před ISPConfig – nelze jej nainstalovat později!):

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 binární

Nyní můžete nainstalovat balíček Jailkit .deb následovně:

cd ..
dpkg -i jailkit_2.20-1_*.deb
rm -rf jailkit-2.20*

17 Instalace Fail2ban a UFW Firewall

Toto je volitelné, ale doporučené, protože monitor ISPConfig se snaží zobrazit protokol:

apt-get install fail2ban

Chcete-li, aby fail2ban monitoroval PureFTPd a Dovecot, vytvořte soubor /etc/fail2ban/jail.local:

nano /etc/fail2ban/jail.local
[pure-ftpd]
povoleno =true
port =ftp
filtr =pure-ftpd
logpath =/var/log/syslog
maxretry =3

[holubník]
povoleno =true
filtr =holubník
cesta protokolu =/var/log/mail.log
maxretry =5

[postfix-sasl]
povoleno =true
port =smtp
filtr =postfix[mode=auth]
cesta protokolu =/var/log/mail.log
maxretry =3

Poté restartujte fail2ban:

systemctl restart fail2ban

Chcete-li nainstalovat bránu firewall UFW, spusťte tento příkaz apt:

apt-get install ufw

18 Instalace RoundCube

Nainstalujte RoundCube pomocí tohoto příkazu:

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

Instalační program se zeptá na následující otázky:

Konfigurovat databázi pro roundcube pomocí dbconfig.common? <-- yes
Heslo aplikace MySQL pro roundcube:<-- stiskněte enter
Heslo administrátora databází:<-- zde zadejte heslo root MySQL.

Poté upravte soubor RoundCube /etc/roundcube/config.inc.php a upravte několik nastavení:

nano /etc/roundcube/config.inc.php

Nastavte default_host na localhost a smtp_server.

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

ISPConfig má nějakou konfiguraci v nginx apps vhost pro squirrelmail, která funguje i pro roundcube. Aktivujeme jej pomocí:

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

http://192.168.0.100:8081/webmail
http://server1.example.com:8081/webmail (po instalaci ISPConfig viz další kapitola)

19 Instalace ISPConfig 3

Před zahájením instalace ISPConfig se ujistěte, že je Apache zastaven (pokud je nainstalován - je možné, že některé z vašich nainstalovaných balíčků nainstalovaly Apache jako závislost, aniž byste o tom věděli). Pokud je již Apache2 v systému nainstalován, zastavte jej nyní...

systemctl stop apache2

... a odstraňte odkazy pro spuštění systému Apache:

update-rc.d -f odstranit apache2

Ujistěte se, že nginx běží:

systemctl start nginx

(Pokud máte nainstalovaný Apache i nginx, instalační program se vás zeptá, který z nich chcete použít:Byly zjištěny Apache a nginx. Vyberte server, který chcete použít pro ISPConfig:(apache,nginx) [apache]:

Zadejte nginx. Pokud je nainstalován pouze Apache nebo nginx, instalační program to automaticky detekuje a nebude položena žádná otázka.)

Chcete-li nainstalovat ISPConfig 3.2 z nejnovější vydané verze, postupujte takto:

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

Dalším krokem je spuštění

php -q install.php

Tím se spustí instalační program ISPConfig 3. Instalační program nakonfiguruje všechny služby jako Postfix, Nginx, Dovecot atd.

# php -q install.php

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

>> Počáteční konfigurace
Operační systém:Debian 10.0 (Buster) nebo kompatibilní
Následovat bude několik otázek pro primární konfiguraci, takže buďte opatrní.
Výchozí hodnoty jsou v [závorkách] a lze je přijmout pomocí .
Klepněte na "quit" (bez uvozovek) k zastavení instalačního programu.

Vyberte jazyk (en,de) [en]:<-- Stiskněte Enter
Režim instalace (standardní, expertní) [standardní]: <-- Stiskněte Enter
Úplný název hostitele (FQDN) serveru, např. server1.domain.tld [server1.canomi.com]: <-- Stiskněte Enter
Název hostitele serveru MySQL [localhost]: <-- Stiskněte Enter
Port serveru MySQL [3306]: <-- Stiskněte Enter
Uživatelské jméno MySQL root [root]: <-- Stiskněte Enter
Heslo kořenového adresáře MySQL []: <-- Zadejte své kořenové heslo MySQL
Vytvoření databáze MySQL [dbispconfig]: <-- Stiskněte Enter
Znaková sada MySQL [utf8]: <-- Stiskněte Enter
Byly zjištěny Apache a nginx. Vyberte server, který chcete použít pro ISPConfig:(apache,nginx) [apache]:<-- nginx

Konfigurace Postgrey
Konfigurace Postfix
Generování 4096bitového soukromého klíče RSA
................................................................. ......................++
...................... ................................................................... ................................................................... ...............++
zápis nového soukromého klíče do 'smtpd.key'
-----
Budete požádáni, abyste zadejte informace, které budou začleněny
do vaší žádosti o certifikát.
To, co se chystáte zadat, je to, co se nazývá rozlišovací jméno nebo DN.
Je zde poměrně dost polí, ale můžete odejít některé prázdné
U některých polí bude výchozí hodnota,
Pokud zadáte '.', pole zůstane prázdné.
-----
Název země ( 2písmenný kód) [AU]:<-- Zadejte 2písmenný kód země
Název státu nebo provincie (celý název) [Některý stát]:<-- Zadejte název  státu
Název lokality (např. město) []:<-- Zadejte své město
Název organizace (např. společnost) [Internet Widgits Pty Ltd]:<-- Zadejte název společnosti nebo stiskněte enter
Název organizační jednotky (např. , sekce) []: <-- Stiskněte Enter
Obvyklý název (např. FQDN serveru nebo VAŠE jméno) []:<-- Zadejte název hostitele serveru, v mém případě:server1.example.com
E-mailová adresa []: <-- Stiskněte Enter
Konfigurace Mailmana
Konfigurace Dovecot
Konfigurace Spamassassin
Konfigurace Amavisd
Konfigurace Getmail
Konfigurace BIND
Konfigurace Jailkit
Konfigurace Pureftpd
Konfigurace Nginx
Konfigurace vloggeru
Služba [INFO] Metronome XMPP Server nebyl zjištěn
Konfigurace brány UFW Firewall
Konfigurace Fail2ban
Služba [INFO] OpenVZ nebyla detekována
Konfigurace aplikací vhost
Instalace ISPConfig
Port ISPConfig [8080]:
Heslo správce [admin]:<-- Zde zadejte požadované uživatelské heslo správce ISPConfig
Chcete zabezpečené (SSL) připojení k webovému rozhraní ISPConfig (y,n) [y]: <-- Stiskněte Enter
Generování soukromého klíče RSA, modul dlouhý 4096 bit
.......................++
..... ................................................................... ................................................................... .......................++
e je 65537 (0x10001)
Budete požádáni o zadání informací, které budou být začleněno
do vaší žádosti o certifikát.
To, co se chystáte zadat, se nazývá rozlišovací jméno nebo DN.
Je zde poměrně dost polí, ale některá můžete nechat prázdná
U některých polí bude výchozí hodnota,
Pokud zadáte '.', pole zůstane prázdné.
-----
Název země (2 písmenný kód) [AU]: <-- Zadejte dvoupísmenný kód země
Název státu nebo provincie (celý název) [Některý stát]: <-- Zadejte název státu
Název lokality (např. město) []: <-- Zadejte své město
Název organizace (např. společnost) [Internet Widgits Pty Ltd]: <-- Zadejte název společnosti nebo stiskněte enter
Název organizační jednotky (např. sekce) [] : <-- Stiskněte Enter
Obvyklý název (např. server FQDN nebo VAŠE jméno) []: <-- Zadejte název hostitele serveru, v mém případě:server1.example.com
E-mailová adresa []: <-- Stiskněte Enter
Zadejte prosím následující 'extra' atributy
které mají být zaslány s vaší žádostí o certifikát
Heslo výzvy []: <-- Stiskněte Enter
Volitelný název společnosti []: <- - Stiskněte Enter
zapisování klíče RSA

Konfigurace DBServer
Instalace ISPConfig crontab
žádný crontab pro root
žádný crontab pro getmail
Zjištění IP adres
Restartování služeb ...
Instalace dokončena.

Instalační program automaticky nakonfiguruje všechny základní služby, takže není potřeba žádná ruční konfigurace.

Poté můžete přistupovat k ISPConfig 3 pod http(s)://server1.example.com:8080/ nebo http(s)://192.168.1.100:8080/ (http nebo https závisí na tom, co jste zvolili během instalace). Přihlaste se pomocí uživatelského jména admin a hesla admin (po prvním přihlášení byste měli změnit výchozí heslo):

Nakonec opravíme některá oprávnění instalace RoundCube.

chown root:ispapps /etc/roundcube/debian-db.phpchmod 640 /etc/roundcube/debian-db.phpchown root:ispapps /etc/roundcube/config.inc.phpchmod 640 /etc/roundcube/config.inc .phpchown -R ispapps:adm /var/log/roundcubechmod -R 750 /var/log/roundcubechown -R ispapps:ispapps /var/lib/roundcube/tempchmod -R 750 /var/lib/roundcube/temp

Systém je nyní připraven k použití.

Existují některé zásuvné moduly pro integraci RoundCube Webmail s ISPConfig, podívejte se zde na pokyny k instalaci zásuvného modulu ISPConfig RoundCube.

20.1 ISPConfig 3 příručka

Abyste se naučili používat ISPConfig 3, důrazně doporučuji stáhnout si Manuál ISPConfig 3.

Na více než 300 stránkách pokrývá koncept ISPConfig (administrátoři, prodejci, klienti), vysvětluje, jak nainstalovat a aktualizovat ISPConfig 3, obsahuje odkaz na všechny formuláře a pole formulářů v ISPConfig spolu s příklady platných vstupů a poskytuje výukové programy. pro nejběžnější úkoly v ISPConfig 3. Také uvádí, jak zvýšit zabezpečení serveru, a na konci je dodávána část pro odstraňování problémů.

21 stažení obrazu virtuálního počítače tohoto návodu

Tento tutoriál je k dispozici jako obraz virtuálního stroje připravený k použití ve formátu ovf/ova, který je kompatibilní s VMWare a Virtualbox. Obraz virtuálního počítače používá následující přihlašovací údaje:

Přihlášení SSH / Shell

Uživatelské jméno:správce
Heslo:howtoforge

Uživatelské jméno: root
Heslo:howtoforge

Přihlášení ISPConfig

Uživatelské jméno:admin
Heslo:howtoforge

Přihlášení k MySQL

Uživatelské jméno:root
Heslo:howtoforge

IP VM je 192.168.0.100, lze ji změnit v souboru /etc/network/interfaces. Změňte prosím všechna výše uvedená hesla pro zabezpečení virtuálního počítače.

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

Debian
  1. The Perfect Server – Ubuntu 14.10 (nginx, BIND, Dovecot, ISPConfig 3)

  2. The Perfect Server – OpenSUSE 12.3 x86_64 (nginx, Dovecot, ISPConfig 3)

  3. The Perfect Server – Ubuntu 15.04 (nginx, BIND, Dovecot a ISPConfig 3)

  1. The Perfect Server – Ubuntu 12.04 LTS (nginx, BIND, Dovecot, ISPConfig 3)

  2. The Perfect Server – Ubuntu 12.10 (nginx, BIND, Dovecot, ISPConfig 3)

  3. The Perfect Server – Ubuntu 13.04 (nginx, BIND, Dovecot, ISPConfig 3)

  1. The Perfect Server – Debian 8 Jessie (Apache2, BIND, Dovecot, ISPConfig 3)

  2. The Perfect Server – Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)

  3. The Perfect Server – Debian 8.6 (nginx, BIND, Dovecot, ISPConfig 3.1)