GNU/Linux >> Znalost Linux >  >> Panels >> Panels

Virtuální multiserverové prostředí s vyhrazeným webem a MySQL, e-mailovými a DNS servery v Debianu Squeeze s ISPConfig 3

Virtuální multiserverové prostředí s dedikovaným webem a MySQL, E-mailové a DNS servery na Debianu Squeeze s ISPConfig 3

Verze 1.0
Autor:Michel Käser

Tento tutoriál popisuje, jak můžete nastavit jeden dedikovaný server jako virtuální multiserverové prostředí pomocí OpenVZ s vyhrazenými webovými a MySQL, e-mailovými a DNS servery na Debian Squeeze. Také se naučíte, jak udržovat všechny tyto servery. Kromě toho se naučíte, jak nainstalovat některé velmi užitečné balíčky na všechny z nich, jak je chránit a jak je monitorovat.

Na konci budete mít plně funkční virtuální multiserverové prostředí připravené pro sdílený hosting.

Neposkytuji žádnou záruku, že to pro vás bude fungovat!

1 požadavky

Abyste mohli postupovat podle tohoto návodu, budete potřebovat následující:

  • dedikovaný server
  • nejméně 5 IP
  • hodně času

2 Předběžná poznámka

V tomto tutoriálu používám tento dedikovaný server:http://www.hetzner.de/hosting/produkte_rootserver/ex4 s Flexi-Pack a další /28 podsítí (14 IP).

Cílem je mít tyto servery:

  • Typ:Uzel
  • Hardware:Vyhrazeno
  • Název hostitele:root.example.tld
  • 192.168.1.1
  • Typ:Kontejner
  • Hardware:Virtuální
  • Název hostitele:web.example.tld
  • 192.168.1.2
  • Typ:Kontejner
  • Hardware:Virtuální
  • Název hostitele:mail.example.tld
  • 192.168.1.3
  • Typ:Kontejner
  • Hardware:Virtuální
  • Název hostitele:ns1.example.tld
  • 192.168.1.4
  • Typ:Kontejner
  • Hardware:Virtuální
  • Název hostitele:ns2.example.tld
  • 192.168.1.5

3 Základní systém

Předpokládám, že jste si vzali stejný dedikovaný server jako já. Webové rozhraní Hetzner vám umožňuje instalovat řadu distribucí. Vezměte minimální Debian 6.0 64-bit.

Tím se základní systém nainstaluje za vás a nemusíte jej sami konfigurovat. Získáte také heslo uživatele root.

4 Instalace OpenVZ + OVZ Web Panel

Jakmile bude váš server připraven, přihlaste se pomocí přijatých přihlašovacích údajů. Nejprve provedeme aktualizaci/upgrade:

apt-get update &&apt-get -y upgrade &&apt-get -y dist-upgrade

který upgraduje náš server na nejnovější verzi.

Některé další balíčky nainstalujeme do:

apt-get -y install nano wget ntp ntpdate

4.1 Instalace OpenVZ

Nyní chceme nainstalovat OpenVZ, základnu pro naše virtuální multiserverové prostředí.

Jádro OpenVZ a balíčky vzctl, vzquota a vzdump jsou dostupné v repozitářích Debian Squeeze, takže je můžeme nainstalovat následovně:

apt-get install linux-image-openvz-amd64 vzctl vzquota vzdump

Vytvořte symbolický odkaz z /var/lib/vz na /vz, abyste zajistili zpětnou kompatibilitu:

ln -s /var/lib/vz /vz

Otevřete /etc/sysctl.conf a ujistěte se, že v něm máte následující nastavení:

nano /etc/sysctl.conf

[...]net.ipv4.conf.all.rp_filter=1net.ipv4.icmp_echo_ignore_broadcasts=1net.ipv4.conf.default.forwarding=1net.ipv4.conf.default.proxy_arp =0net.ipv4.ip_forward=1kernel.sysrq =1net.ipv4.conf.default.send_redirects =1net.ipv4.conf.all.send_redirects =0net.ipv4.conf.eth0.proxy_arp=1[...]

Pokud jste potřebovali upravit /etc/sysctl.conf, spusťte

sysctl -p

poté.

Následující krok je důležitý, pokud adresy IP vašich virtuálních počítačů pocházejí z jiné podsítě, než je adresa IP hostitelského systému. Pokud to neuděláte, nebude na virtuálních počítačích fungovat síťování!

Otevřete /etc/vz/vz.conf a nastavte NEIGHBOUR_DEVS na všechny:

nano /etc/vz/vz.conf

[...]# Řídí, na kterých rozhraních se mají odesílat požadavky ARP a upravovat tabulky APR.NEIGHBOUR_DEVS=all[...]

Nakonec restartujte systém:

restartovat

Pokud se váš systém bez problémů restartuje, pak je vše v pořádku!

Spustit

uname -r

a vaše nové jádro OpenVZ by se mělo objevit:

[email protected]:~# uname -r
2.6.32-5-openvz-amd64

Protože Hetzner připojuje /home na samostatný pevný disk, můžeme jej použít jako umístění zálohy OpenVZ. Chcete-li to provést, spusťte:

rm -rf /var/lib/vz/dump
ln -s /home/backup/vz /var/lib/vz/dump

Protože budeme v našich virtuálních kontejnerech používat fail2ban, musíme pro ně povolit nějakou podporu IPTables. Toho dosáhneme úpravou souboru /etc/vz/vz.conf:

nano /etc/vz/vz.conf

Prohledejte řádek začínající IPTABLES a okomentujte jej (#). Poté vložte následující:

[...]IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state"

Dále aktivujte stavový modul v jádře:

modprobe xt_state

4.2 Instalace OVZ Web Panel

OpenVZ Web Panel je webové rozhraní s GUI pro ovládání hardwaru a virtuálních serverů pomocí virtualizační technologie OpenVZ.

Nejjednodušší způsob, jak nainstalovat OpenVZ Web Panel, je spustit následující příkaz:

wget -O – http://ovz-web-panel.googlecode.com/svn/installer/ai.sh | sh

Po instalaci by měl být panel dostupný na následující adrese URL:

http://<192.168.1.1>:3000

Výchozí přihlašovací údaje správce jsou:admin/admin. Nezapomeňte změnit výchozí heslo.

Virtuální multiserverové prostředí s vyhrazeným webem a MySQL, e-mailovými a DNS servery na Debian Squeeze s ISPConfig 3 - Strana 2

5 Vytváření virtuálních serverů

Nyní použijeme OVZ Web Panel k vytvoření našich virtuálních serverů. Přihlaste se do panelu a přidejte své IP adresy pod IP adresy. Poté klikněte na localhost a OS Templates.

Nyní si musíme stáhnout šablonu pro naše virtuální servery. Uděláme to kliknutím na Install New OS Template -> Contributed a výběrem debian-6.0-amd64-minimal.

Nyní se vraťte na localhost a klikněte na Vytvořit virtuální server. Vyplňte níže uvedená pole:

  • ID serveru (VEID):číslo (vybral bych poslední část vaší IP adresy, takže 2 jako první)
  • Šablona OS:již je vybrána správná
  • Šablona serveru:neomezená
  • IP adresa:192.168.1.2
  • Název hostitele:web.example.tld
  • Server DNS:8.8.4.4 8.8.8.8 (což jsou DNS společnosti Google)
  • zbytek nechte tak, jak je, a přiřaďte místo na disku, RAM a CPU, jak chcete...

Opakujte tento krok pro všechny vaše virtuální servery (nakonec 4krát:Web, Mail, 2x DNS).

5.1 Příprava virtuálních serverů

Nyní byste se měli přihlásit ke každému virtuálnímu serveru a spustit tyto příkazy:

apt-get update &&apt-get -y upgrade &&apt-get -y dist-upgrade
apt-get -y install nano wget ntp ntpdate

což je upgraduje na nejnovější verzi a nainstaluje některé chybějící balíčky.

6 Instalace vyhrazených serverů

6.1 Instalace webového/DB serveru

Upravte soubor hostitelů a přidejte adresy IP a názvy hostitelů pro všechny servery. Názvy hostitelů a IP adresy musí být upraveny tak, aby odpovídaly vašemu nastavení.

nano /etc/hosts

127.0.0.1 localhost192.168.1.2 web.example.tld192.168.1.3 mail.example.tld192.168.1.4 ns1.example.tld192.168.1.5 ns2.example.tld jsou žádoucí pro# Následující řádky Hostitelé s podporou IPv6::1 localhost ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

Nastavte název hostitele serveru:

echo web.example.tld> /etc/hostname
/etc/init.d/hostname.sh start

Nainstalujte server MySQL. Instance serveru MySQL je nezbytná na každém serveru, protože ji ISPConfig používá k synchronizaci konfigurace mezi servery.

apt-get -y install mysql-client mysql-server

Na žádost instalačního programu zadejte nové heslo pro MySQL.

Chceme, aby MySQL naslouchalo na všech rozhraních na hlavním serveru, nejen na localhost, proto upravíme /etc/mysql/my.cnf a zakomentujeme řádek bind-address =127.0.0.1:

nano /etc/mysql/my.cnf

[...]# Místo přeskočení sítě je nyní výchozím nastavením poslouchat pouze na # localhost, který je více kompatibilní a není méně bezpečný.#bind-address =127.0.0.1[...]

Poté restartujte MySQL:

/etc/init.d/mysql restart

Nyní nainstalujte Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear a mcrypt následovně:

apt-get -y install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-minimap phpmy -cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby sudo zip wget

Uvidíte následující otázku:

Webový server pro automatické překonfigurování:<-- apache2

Poté spusťte následující příkaz pro povolení modulů Apache suexec, rewrite, ssl, actions, headers, expires a include:

a2enmod suexec rewrite ssl akce zahrnují ruby ​​dav_fs dav auth_digest hlavičky vyprší

PureFTPd lze nainstalovat pomocí následujícího příkazu:

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

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

vi /etc/default/pure-ftpd-common

... a ujistěte se, že virtualchroot je nastaven na VIRTUALCHROOT=true:

[...]VIRTUALCHROOT=true[...]

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ř. „web.example.tld“).
E-mailová adresa []:<-- Zadejte svou e-mailovou adresu.

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

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

Nainstalujte vlogger, webalizer a awstats:

apt-get -y install vlogger webalizer awstats

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

vi /etc/cron.d/awstats

... a zakomentujte obě úlohy cron v tomto souboru:

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

Nainstalujte 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 -y install build-essential autoconf automake1.9 libtool flex bison debhelper

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./debian/rules binární
cd ..
dpkg -i jailkit_2.14-1_*.deb
rm -rf jailkit-2.14*

Instalovat fail2ban:Toto je volitelné, ale doporučené, protože monitor ISPConfig se pokouší zobrazit protokol:

apt-get install fail2ban

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

vi /etc/fail2ban/jail.local

[pureftpd]povoleno =trueport =ftpfilter =pureftpdlogpath =/var/log/syslogmaxretry =3

Poté vytvořte následující soubor filtru:

vi /etc/fail2ban/filter.d/pureftpd.conf

[Definice]failregex =.*pure-ftpd:\(.*@\) \[VAROVÁNÍ\] Ověření uživatele selhalo.*ignoreregex =

Poté restartujte fail2ban:

/etc/init.d/fail2ban restart

Dále nainstalujeme ISPConfig 3. Chcete-li získat adresu URL ke stažení nejnovější stabilní verze ISPConfig 3, navštivte webovou stránku ISPConfig:http://www.ispconfig.org/ispconfig-3/download/

Tento server je hlavním serverem v našem nastavení, který spouští rozhraní ovládacího panelu ISPConfig. Abychom umožnili ostatním instancím MySQL připojit se k databázi MySQL na tomto uzlu během instalace, musíme přidat kořenové uživatelské záznamy MySQL do hlavní databáze pro každý název hostitele a IP adresu podřízeného serveru. Nejjednodušší způsob, jak toho dosáhnout, je použít webový administrační nástroj phpmyadmin, který jsme již nainstalovali. Otevřete URL http://192.168.1.2/phpmyadmin ve webovém prohlížeči, přihlaste se jako uživatel root MySQL a spusťte tyto dotazy MySQL:

VYTVOŘIT UŽIVATELE 'root'@'192.168.1.3' IDENTIFIKOVANÉ PODLE 'myrootpassword';
UDĚLEJTE VŠECHNA PRIVILEGIÍ NA * . * TO 'root'@'192.168.1.3' IDENTIFIKOVANÉ OD 'myrootpassword' S MOŽNOSTÍ UDĚLENÍ MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS> 0;

VYTVOŘIT UŽIVATELE 'root'@'192.168.1.4' IDENTIFIKOVANÉ PODLE 'myrootpassword';
UDĚLEJTE VŠECHNA OPRÁVNĚNÍ NA * . * TO 'root'@'192.168.1.4' IDENTIFIKOVANÉ PODLE 'myrootpassword' S MOŽNOSTÍ UDĚLENÍ MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS> 0;

VYTVOŘIT UŽIVATELE 'root'@'192.168.1.5' IDENTIFIKOVANÉ PODLE 'myrootpassword';
UDĚLEJTE VŠECHNA OPRÁVNĚNÍ NA * . * TO 'root'@'192.168.1.5' IDENTIFIKOVANÉ PODLE 'myrootpassword' S MOŽNOSTÍ UDĚLENÍ MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS> 0;

VYTVOŘTE UŽIVATELE 'root'@'mail.example.tld' IDENTIFIKOVANÉ PODLE 'myrootpassword';
UDĚLEJTE VŠECHNA PRIVILEGIA NA * . * DO 'root'@'mail.example.tld' IDENTIFIKOVANÉ PODLE 'myrootpassword' S MOŽNOSTÍ UDĚLENÍ MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

VYTVOŘTE UŽIVATELE 'root'@'ns1.example.tld' IDENTIFIKOVANÉ PODLE 'myrootpassword';
UDĚLEJTE VŠECHNA PRIVILEGIA NA * . * TO 'root'@'ns1.example.tld' IDENTIFIKOVANÉ PODLE 'myrootpassword' S MOŽNOSTÍ UDĚLENÍ MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

VYTVOŘIT UŽIVATELE 'root'@'ns2.example.tld' IDENTIFIKOVANÉ PODLE 'myrootpassword';
UDĚLEJTE VŠECHNA PRIVILEGIA NA * . * DO 'root'@'ns2.example.tld' IDENTIFIKOVANÉ PODLE 'myrootpassword' S MOŽNOSTÍ UDĚLENÍ MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

Ve výše uvedených příkazech sql nahraďte IP adresy (192.168.1.3 - 192.168.1.5) IP adresami vašich serverů a nahraďte mail.example.tld, ns1.example.tld a ns2.example.tld názvy hostitelů vašeho servery a myrootpassword s požadovaným heslem root.

Klikněte na tlačítko znovu načíst oprávnění nebo restartujte MySQL. Poté zavřete phpmyadmin.

Vraťte se do prostředí web.example.tld a stáhněte si nejnovější stabilní verzi ISPConfig 3:

cd /tmp
wgethttp://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/ nainstalovat/

Poté spusťte instalační skript:

php -q install.php

Vyberte jazyk (en,de) [en]:<-- cs
Režim instalace (standardní,expert) [standardní]:<-- expert
Úplný název hostitele (FQDN) serveru, např. server2 .domain.tld [web.example.tld]:<-- web.example.tld
Název hostitele serveru MySQL [localhost]:<-- localhost
Uživatelské jméno root MySQL [root]:<-- root
Heslo kořenového adresáře MySQL []:<-- Zde zadejte své kořenové heslo MySQL
Pro vytvoření databáze MySQL [dbispconfig]:<-- dbispconfig
Znaková sada MySQL [utf8]:<-- utf8
Připojí se tento server k existujícímu nastavení multiserveru ISPConfig (y,n) [n]:<-- n
Konfigurace pošty (y,n) [y]:<-- n
Konfigurace Jailkit (y,n) [y]:<-- y
Konfigurace serveru FTP (y,n) [y]:<-- y
Konfigurace serveru DNS (y,n) [y]:<-- n
Konfigurovat server Apache (y,n) [y]:<-- y
Konfigurovat server brány firewall (y,n) [y]:<--n
Nainstalovat ISPConfig Web -Rozhraní (y,n) [y]:<--y
Port ISPConfig [8080]:<-- 8080
Povolit SSL pro webové rozhraní ISPConfig (y,n) [y]:<-- y
Název země (2 písmenný kód) [AU]:<-- ENT ER
Název státu nebo provincie (celé jméno) [Některý stát]:<-- ENTER
Název lokality (např. město) []:<-- ENTER
Název organizace (např. společnost) [Internet Widgits Pty Ltd]:<-- ENTER
Název organizační jednotky (např. sekce) []:<-- ENTER
Běžný název (např. VAŠE jméno) []:<-- ENTER
E-mailová adresa []:<-- ENTER
Heslo výzvy []:<-- ENTER
Volitelný název společnosti []:<-- ENTER

Vyčistěte instalační adresáře:

cd /tmp
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz

6.2 Instalace poštovního serveru

Upravte soubor hostitelů a přidejte adresy IP a názvy hostitelů pro všechny servery. Názvy hostitelů a IP adresy musí být upraveny tak, aby odpovídaly vašemu nastavení.

nano /etc/hosts

127.0.0.1 localhost192.168.1.2 web.example.tld192.168.1.3 mail.example.tld192.168.1.4 ns1.example.tld192.168.1.5 ns2.example.tld jsou žádoucí pro# Následující řádky Hostitelé s podporou IPv6::1 localhost ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

Nastavte název hostitele serveru:

echo mail.example.tld> /etc/hostname
echo mail.example.tld> /etc/mailname
/etc/init.d/hostname.sh start

Nainstalujte postfix, dovecot a MySQL jediným příkazem:

apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d

Na požádání instalačního technika zadejte nové heslo pro mysql a odpovězte na následující otázky, jak je popsáno níže:

Obecný typ konfigurace? <-- Internetová stránka
E-mailové jméno? <-- mail.example.tld

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

apt-get -y install amavisd-new spamassassin clamav clamav-daemon zoo rozbalte bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs démon libio-lstring-sperl libnet-ident-perl zip libnet-dns-perl

Pokud chcete na svém serveru používat mailinglisty, nainstalujte si mailman. Tento krok je volitelný. mailman vyžaduje webový server Apache, takže pokud nechcete na svém poštovním serveru spouštět instanci Apache, neinstalujte mailmana.

apt-get -y install mailman

Instalační program apt pro mailman vás poté požádá o výběr jazyků pro seznam adresátů. Povolte všechny jazyky, které chcete používat pro poštovního doručovatele. Dále vytvořte mailinglist "mailman".

newlist mailman

a zadejte e-mailovou adresu a nové heslo pro administrátora mailinglistu. To je poslední krok instalace mailmana. Další příkaz k instalaci php musí být proveden na každém serveru, nezávisle na tom, zda jste nainstalovali mailmana nebo ne.

Poté nainstalujte a nainstalujte verzi PHP pro příkazový řádek, abyste mohli spouštět skripty shellu založené na PHP pro ISPConfig:

apt-get -y install php5-cli php5-mysql php5-mcrypt mcrypt

Instalovat fail2ban:Toto je volitelné, ale doporučené, protože monitor ISPConfig se pokouší zobrazit protokol:

apt-get install fail2ban

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

vi /etc/fail2ban/jail.local

[dovecot-pop3imap]enabled =truefilter =dovecot-pop3imapaction =iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]logpath =/var/log/mail .logmaxretry =5

Poté vytvořte následující soubor filtru:

vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf

[Definice]failregex =(?:pop3-login|imap-login):.*(?:Selhání ověření|Přerušené přihlášení \(auth selhalo|Přerušené přihlášení \(zkuseno použít zakázáno|Odpojeno \(auth se nezdařilo|| Přerušené přihlášení \(\d+ pokusy o ověření).*rip=(?P\S*),.*ignoreregex =

Poté restartujte fail2ban:

/etc/init.d/fail2ban restart

Nyní nainstaluji ISPConfig 3 na tento server. Chcete-li získat adresu URL ke stažení nejnovější stabilní verze ISPConfig 3, navštivte webovou stránku ISPConfig:http://www.ispconfig.org/ispconfig-3/download/

Stáhněte si nejnovější stabilní verzi ISPConfig 3:

cd /tmp
wgethttp://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/ nainstalovat/

Poté spusťte instalační skript:

php -q install.php

Vyberte jazyk (en,de) [cs]:<-- en
Režim instalace (standardní, expertní) [standardní]:<-- expert
Úplný název hostitele (FQDN) serveru, např. server1 .domain.tld [mail.example.tld]:<-- mail.example.tld
Název hostitele serveru MySQL [localhost]:<-- localhost
Uživatelské jméno root MySQL [root]:<-- root
Heslo kořenového adresáře MySQL []:<-- Zde zadejte své kořenové heslo MySQL
Pro vytvoření databáze MySQL [dbispconfig]:<-- dbispconfig
Znaková sada MySQL [utf8]:<-- utf8
Má se tento server připojit k existujícímu nastavení více serverů ISPConfig (y,n) [n]:<-- y
název hostitele hlavního serveru MySQL []:<-- web.example.tld
hlavního serveru MySQL uživatelské jméno root serveru [root]:<-- root
Heslo root hlavního serveru MySQL []:<-- Sem zadejte heslo uživatele root hlavního serveru
Název databáze hlavního serveru MySQL [dbispconfig]:<- - dbispconfig
Konfigurace pošty (y,n) [y]:<-- y

Název země (2 písmenný kód) [AU]:<-- DE (Zde zadejte kód ISO země, kde žijete)
Název státu nebo provincie (celý název) [Některý stát]:<-- Niedersachsen (Zadejte stát, ve kterém zde žijete)
Název lokality (např. město) []:<-- Lueneburg (zde zadejte město)
Název organizace (např. společnost) [Internet Widgits Pty Ltd]:<-- ENTER
Název organizační jednotky (např. sekce) []:<-- ENTER
Běžný název (např. VAŠE jméno) []:<-- ENTER
E-mailová adresa []:<-- ENTER

Konfigurace Jailkit (y,n) [y]:<-- n
Konfigurace serveru FTP (y,n) [y]:<-- n
Konfigurace serveru DNS (y,n) [y] :<-- n
Konfigurace serveru Apache (y,n) [y]:<-- n
Konfigurace serveru brány firewall (y,n) [y]:<--n
Instalovat Webové rozhraní ISPConfig (y,n) [y]:<--n

Spustit...

rm -f /var/www/ispconfig

... k odstranění odkazu rozhraní ISPConfig v adresáři /var/www.

Vyčistěte instalační adresáře:

rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz

Virtuální multiserverové prostředí s vyhrazeným webem a MySQL, e-mailovými a DNS servery na Debian Squeeze s ISPConfig 3 - Strana 3

6.3 Instalace primárního serveru DNS

Upravte soubor hostitelů a přidejte adresy IP a názvy hostitelů pro všechny servery. Názvy hostitelů a IP adresy musí být upraveny tak, aby odpovídaly vašemu nastavení.

nano /etc/hosts

127.0.0.1 localhost192.168.1.2 web.example.tld192.168.1.3 mail.example.tld192.168.1.4 ns1.example.tld192.168.1.5 ns2.example.tld jsou žádoucí pro# Následující řádky Hostitelé s podporou IPv6::1 localhost ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

Nastavte název hostitele serveru:

echo ns1.example.tld> /etc/hostname
/etc/init.d/hostname.sh start

Nainstalujte klienta a server MySQL:

apt-get -y install mysql-client mysql-server

Na žádost instalačního programu zadejte nové heslo pro MySQL.

Poté nainstalujte a nainstalujte verzi PHP pro příkazový řádek, abyste mohli spouštět skripty shellu založené na PHP pro ISPConfig:

apt-get -y install php5-cli php5-mysql php5-mcrypt mcrypt

Instalovat fail2ban:Toto je volitelné, ale doporučené, protože monitor ISPConfig se pokouší zobrazit protokol:

apt-get install fail2ban

Nainstalujte server DNS BIND:

apt-get -y install bind9 dnsutils

Dále nainstalujte ISPConfig 3 na server DNS. Chcete-li získat adresu URL ke stažení nejnovější stabilní verze ISPConfig 3, navštivte webovou stránku ISPConfig:http://www.ispconfig.org/ispconfig-3/download/

Stáhněte si nejnovější stabilní verzi ISPConfig 3:

cd /tmp
wgethttp://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/ nainstalovat/

Poté spusťte instalační skript:

php -q install.php

Vyberte jazyk (en,de) [en]:<-- cs
Režim instalace (standardní,expert) [standardní]:<-- expert
Úplný název hostitele (FQDN) serveru, např. server2 .domain.tld [ns1.example.tld]:<-- ns1.example.tld
Název hostitele serveru MySQL [localhost]:<-- localhost
Uživatelské jméno kořenového adresáře MySQL [root]:<-- root
Heslo kořenového adresáře MySQL []:<-- Zde zadejte své kořenové heslo MySQL
Pro vytvoření databáze MySQL [dbispconfig]:<-- dbispconfig
Znaková sada MySQL [utf8]:<-- utf8
Má se tento server připojit k existujícímu nastavení více serverů ISPConfig (y,n) [n]:<-- y
název hostitele hlavního serveru MySQL []:<-- web.example.tld
hlavního serveru MySQL uživatelské jméno root serveru [root]:<-- root
Heslo root hlavního serveru MySQL []:<-- Sem zadejte heslo uživatele root hlavního serveru
Název databáze hlavního serveru MySQL [dbispconfig]:<- - dbispconfig
Konfigurace pošty (y,n) [y]:<-- n
Konfigurace Jailkit (y,n) [y]:<-- n
Konfigurace FTP serveru (y, n) [y]:<-- n
Konfigurace serveru DNS (y,n) [y]:<-- y
Konfigurace e Server Apache (y,n) [y]:<-- n
Konfigurace serveru brány firewall (y,n) [y]:<--n
Instalovat webové rozhraní ISPConfig (y,n) [y]:<--n

Spustit...

rm -f /var/www/ispconfig

... k odstranění odkazu rozhraní ISPConfig v adresáři /var/www.

Vyčistěte instalační adresáře:

rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz

6.4 Instalace sekundárního serveru DNS

Upravte soubor hostitelů a přidejte adresy IP a názvy hostitelů pro všechny servery. Názvy hostitelů a IP adresy musí být upraveny tak, aby odpovídaly vašemu nastavení.

nano /etc/hosts

127.0.0.1 localhost192.168.1.2 web.example.tld192.168.1.3 mail.example.tld192.168.1.4 ns1.example.tld192.168.1.5 ns2.example.tld jsou žádoucí pro# Následující řádky Hostitelé s podporou IPv6::1 localhost ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts

Nastavte název hostitele serveru:

echo ns2.example.tld> /etc/hostname
/etc/init.d/hostname.sh start

Nainstalujte klienta a server MySQL:

apt-get -y install mysql-client mysql-server

Na žádost instalačního programu zadejte nové heslo pro MySQL.

Poté nainstalujte a nainstalujte verzi PHP pro příkazový řádek, abyste mohli spouštět skripty shellu založené na PHP pro ISPConfig:

apt-get -y install php5-cli php5-mysql php5-mcrypt mcrypt

Instalovat fail2ban:Toto je volitelné, ale doporučené, protože monitor ISPConfig se pokouší zobrazit protokol:

apt-get install fail2ban

Nainstalujte server DNS BIND:

apt-get -y install bind9 dnsutils

Dále nainstalujte ISPConfig 3 na server DNS. Chcete-li získat adresu URL ke stažení nejnovější stabilní verze ISPConfig 3, navštivte webovou stránku ISPConfig:http://www.ispconfig.org/ispconfig-3/download/

Stáhněte si nejnovější stabilní verzi ISPConfig 3:

cd /tmp
wgethttp://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/ nainstalovat/

Poté spusťte instalační skript:

php -q install.php

Vyberte jazyk (en,de) [en]:<-- cs
Režim instalace (standardní,expert) [standardní]:<-- expert
Úplný název hostitele (FQDN) serveru, např. server2 .domain.tld [ns2.example.tld]:<-- ns2.example.tld
Název hostitele serveru MySQL [localhost]:<-- localhost
Uživatelské jméno kořenového adresáře MySQL [root]:<-- root
Heslo kořenového adresáře MySQL []:<-- Zde zadejte své kořenové heslo MySQL
Pro vytvoření databáze MySQL [dbispconfig]:<-- dbispconfig
Znaková sada MySQL [utf8]:<-- utf8
Má se tento server připojit k existujícímu nastavení více serverů ISPConfig (y,n) [n]:<-- y
název hostitele hlavního serveru MySQL []:<-- web.example.tld
hlavního serveru MySQL uživatelské jméno root serveru [root]:<-- root
Heslo root hlavního serveru MySQL []:<-- Sem zadejte heslo uživatele root hlavního serveru
Název databáze hlavního serveru MySQL [dbispconfig]:<- - dbispconfig
Konfigurace pošty (y,n) [y]:<-- n
Konfigurace Jailkit (y,n) [y]:<-- n
Konfigurace FTP serveru (y, n) [y]:<-- n
Konfigurace serveru DNS (y,n) [y]:<-- y
Konfigurace e Server Apache (y,n) [y]:<-- n
Konfigurace serveru brány firewall (y,n) [y]:<--n
Instalovat webové rozhraní ISPConfig (y,n) [y]:<--n

Spustit...

rm -f /var/www/ispconfig

... k odstranění odkazu rozhraní ISPConfig v adresáři /var/www.

Vyčistěte instalační adresáře:

rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz

6.5 Úprava nastavení serveru v ISPConfig

Přihlaste se do ISPConfig na hlavním serveru pomocí webového prohlížeče:

http://192.168.1.2:8080

Klikněte na Systém> Služby serveru> web.example.tld a deaktivujte všechna zaškrtávací políčka kromě zaškrtávacích polí Webový server, Souborový server a DB-Server a klikněte na Uložit.

Klikněte na Systém> Služby serveru> mail.example.tld a deaktivujte všechna zaškrtávací políčka kromě zaškrtávacího políčka Poštovní server a klikněte na Uložit.

Klikněte na Systém> Serverové služby> ns1.example.tld a deaktivujte všechna zaškrtávací políčka kromě zaškrtávacího políčka DNS-Server a klikněte na Uložit.

Klikněte na Systém> Serverové služby> ns2.example.tld a deaktivujte všechna zaškrtávací políčka kromě zaškrtávacího políčka DNS-Server a vyberte ns1.example.tld ve výběrovém poli Is mirror of Server a klikněte na Uložit.

6.6 Nastavení reverzního DNS

Protože většina poštovních serverů kontroluje platný záznam Reverse DNS, musíme jej nastavit pro náš poštovní server. Hetzner nám to umožňuje ve svém webovém rozhraní:

Všimněte si položky pro IP 176.9.221.50. Pro vás pod IP 192.168.1.3 byste měli vyplnit:mail.example.tld

Virtuální multiserverové prostředí s dedikovaným webem a MySQL, e-mailovými a DNS servery na Debian Squeeze s ISPConfig 3 - Strana 4

7 Rozšíření našich serverů

Nyní máme perfektně fungující prostředí jednoho dedikovaného serveru, na kterém běží naše virtuální servery. Existuje však mnoho vylepšení, které na ně můžeme a měli bychom použít. Nyní to uděláme. Ne že by všechny byly volitelné, ale vysoce doporučené.

První kroky lze opakovat na všech serverech.

7.0.1 SSH s ověřovacím klíčem namísto hesla

Použití autentizace pomocí SSH klíče je mnohem bezpečnější než heslo, protože pro přístup na server musíte vlastnit soukromý klíč. Pokud ještě žádný nemáte, vytvořte pár klíčů RSA (na vašem místním počítači):

ssh-keygen

Generování páru klíčů veřejného/soukromého rsa.
Zadejte soubor, do kterého se má klíč uložit (/home/username/.ssh/id_rsa):Zadejte přístupové heslo (prázdné pro žádné přístupové heslo):
Znovu zadejte stejné přístupové heslo:
Vaše identifikace byla uložena do /home/username/.ssh/id_rsa.
Váš veřejný klíč byl uložen do /home/username/.ssh/id_rsa.pub.

Jakmile je veřejný klíč nainstalován na server, přístup bude udělen bez otázky hesla. SSH se obvykle dodává s nástrojem nazvaným ssh-copy-id, který jednoduše přidá obsah klienta ~/.ssh/id_rsa.pub do ~/.ssh/authorized_keys serveru:

ssh-copy-id -i .ssh/id_rsa.pub [email protected]

V tomto okamžiku lze účet root na serveru uzamknout pro ověření heslem:

Před spuštěním tohoto příkazu se prosím nejprve pokuste o přístup k serveru pomocí klíče!

passwd -l root

7.0.2 Instalace Logwatch

Logwatch je malý balíček, který vám pošle podrobné zprávy o tom, co se stalo/běží na vašem serveru. Je to naprosto užitečné pro monitorování.

apt-get -y install logwatch

Poté upravte jeho konfiguraci:

nano /usr/share/logwatch/default.conf/logwatch.conf

a nastavte tyto hodnoty:

Output =mailFormat =textMailTo [email protected] =HighService =All

Nyní budete dostávat e-mail od Logwatch každý den. Uvidíte, je to skvělé!

7.0.3 Povolení dalších pravidel fail2ban

Fail2ban je skvělý způsob, jak zablokovat nežádoucím uživatelům přístup k našim serverům. Vzhledem k tomu, že jej již máme nainstalovaný na našem Web &MySQL serveru i na našem poštovním serveru, můžete na nich přeskočit první krok. Spusťte toto na svém uzlu a na obou serverech DNS:

apt-get -y install fail2ban

Nyní řekneme fail2ban, jaké služby by měl monitorovat a jak zacházet se špatnými požadavky:

Ty musí být spuštěny na všech serverech (včetně Web &MySQL serveru a poštovního serveru):

nano /etc/fail2ban/jail.local

a do souboru přidejte následující (nenahrazujte již existující obsah!):

[ssh]enables =trueport =sshfilter =sshdlogpath =/var/log/auth.logmaxretry =3[ssh-ddos]enabled =trueport =sshfilter =sshd-ddoslogpath =/var/log/auth.logmaxretry =5 

Fail2ban nyní zjistí pokusy o vloupání SSH a zablokuje je. Nakonec restartujte fail2ban:

/etc/init.d/fail2ban restart

7.1 Rozšíření serveru uzlu

7.1.1 Instalace Ajenti

Ajenti je pěkný ovládací panel serveru. Primárně jej používám pro správu firewallu a kvůli vestavěnému správci souborů, konzoli a terminálu.

Nejprve musíme přidat jeho úložiště do našeho seznamu sources.list:

nano /etc/apt/sources.list

a přidejte:

deb http://repo.ajenti.org/debian main main

Poté musíte importovat jeho klíč:

wget http://repo.ajenti.org/debian/key -O- | sudo apt-key add -

Nyní byste měli mít přístup k CP přes:http://192.168.1.1:8000. Výchozí uživatelské jméno/heslo je:admin

Pokud plánujete používat vestavěný terminál, musíte nainstalovat modul Python PIL:

apt-get -y install python-imaging

7.1.2 Instalace Archey

Toto je velmi volitelné, ale líbí se mi to. Archey vám po přihlášení ukáže několik pěkných informací.

Chcete-li jej nainstalovat, jednoduše spusťte:

apt-get install lsb-release scrot
cd /tmp
wget https://github.com/downloads/djmelik/archey/archey-0.2.8.deb
dpkg -i archey- 0.2.8.deb
rm archey-0.2.8.deb
nano /etc/bash.bashrc

Na úplný konec přidejte:archey.

7.2 Rozšíření webového/DB serveru

Tyto kroky lze spustit pouze na našem webovém/DB serveru.

7.2.1 Instalace cURL

apt-get -y install curl php5-curl libcurl3-dev

7.2.2 Instalace ionCube Loader

Nyní byste to měli být schopni udělat sami. Stačí si stáhnout správnou verzi z http://www.ioncube.com/loaders.php a sledovat její úvody.

7.2.3 Instalace APC a dalších užitečných aplikací

V této sekci nainstalujeme apc (php Accelarator), který je vyvíjen lidmi, kteří vyvíjejí php a některé aplikace (htop, iptraf, logwatch, tiger).

apt-get -y install php-apc htop iptraf tiger

Upravte /etc/php5/conf.d/apc.ini, abyste zvýšili mezipaměť:

nano /etc/php5/conf.d/apc.ini

A připojte následující řádek:

apc.shm_size=128

Nakonec restartujte Apache:

/etc/init.d/apache2 restart

S htop můžete vidět systémové informace lepším způsobem než top, s iptraf můžete vidět statistiky svého připojení v reálném čase a s tigerem si můžete nechat pravidelně posílat e-maily s pravidelnou zprávou o bezpečnostních slabinách vašeho systému (pokud nějaké existují).

Protože mnoho skriptů/aplikací posílá mnoho e-mailů uživateli root, můžete e-mail tohoto uživatele aliasovat na „skutečnější“ e-mailovou adresu. Takže po nastavení „skutečné“ pošty pro doménu example.tld můžete upravit aliasy a přidat alias uživateli root:

nano /etc/aliases

a změňte řádek

root:root

na něco jako

root:[email protected]

Poté spusťte:

newaliases

Pokud chcete nainstalovat Drupal (nebo jiné cms), budete pravděpodobně potřebovat uploadprogress a json. Chcete-li provést jejich instalaci, postupujte takto:

apt-get -y install php5-dev php-services-json
pecl install uploadprogress
dotkněte se /etc/php5/apache2/conf.d/uploadprogress.ini
nano /etc/php5/ apache2/conf.d/uploadprogress.ini

A připojte následující řádek:

extension=uploadprogress.so

Nakonec restartujte Apache:

/etc/init.d/apache2 restart

7.2.4 Instalace mod_security

Nainstalujte modul apache mod-security 2 pomocí apt z repozitářů Debianu:

apt-get -y install libapache-mod-security

Vytvořte složku pro konfigurační soubory mod-security:

mkdir /etc/apache2/mod-security
chmod 600 /etc/apache2/mod-security

Download and unpack the mod-security rules:

cd /tmp
wget http://www.modsecurity.org/download/modsecurity-core-rules_2.5-1.6.1.tar.gz
tar fvx modsecurity-core-rules_2.5-1.6.1.tar.gz
mv *.conf /etc/apache2/mod-security/
ln -s /var/log/apache2 /etc/apache2/logs

Configure apache to load the activated mod-security rules:

nano /etc/apache2/conf.d/mod-security.conf
Include /etc/apache2/mod-security/*.conf

To enable mod-security, edit the file

nano /etc/apache2/mod-security/modsecurity_crs_10_config.conf

and remove the # in front of the line:

SecDefaultAction"phase:2,log,deny,status:403,t:lowercase,t:replaceNulls,t:compressWhitespace"

Then reload Apache.

/etc/init.d/apache2 force-reload

Mod security will now start to block hack attempts to your websites and log the actions in the file /var/log/apache2/modsec_audit.log.

tail /var/log/apache2/modsec_audit.log

You will see very likely some falsely blocked URL's. To whitelist them, you can add the ID's of the rules that should not be used in the whitelist file.

Example:

nano /etc/apache2/mod-security/modsecurity_crs_99_whitelist.conf
SecRuleRemoveById 960015SecRuleRemoveById 960016

7.2.5 MySQL Tuning

Download tuning-primer.sh and mysqltuner.pl. These will help you to improve mysql's configuration file.

cd /root/scripts
wget http://www.day32.com/MySQL/tuning-primer.sh
wget http://mysqltuner.com/mysqltuner.pl
chmod 700 tuning-primer.sh mysqltuner.pl

To execute them:

perl /root/scripts/mysqltuner.pl
/root/scripts/tuning-primer.sh

The scripts will ask some simple questions (user/pass) and will display in red colour, their suggestions for critical settings. You can use their suggestions to boost the performance of mysql-server.

7.2.6 Installing RoundCube

Following the above instructions you can install roundcube via apt-get. However following another logic (if you have the time and the courage) you can install roundcube in it's own subdomain, manually.

In "Perfect Server ...." you usually install Squirrelmai. However if you don't want it you can remove it:

apt-get remove squirrelmail
rm /etc/apache2/conf.d/squirrelmail.conf

Install roundcube. (You MUST have the mysql administrator's password before you proceed -- Let dbconfig-common configure the database. You will be asked some questions about the password of the db administrator and the password of the new user that will be created for roundcube. Answer those questions and continue:

apt-get -y install roundcube roundcube-mysql

Examle answers:
"Configure database for roundcube with dbconfig-common?" .... Answer Yes
"Database type to be used by roundcube:...Answer mysql
"Password of the database's administrativeuser:" ... Answer your-admin-DB-password
"MySQL application password for roundcube:" ... Answer the-password-you-want-to-give-to-the-roundcube-user
"Password confirmation:"... Answer the-password-you-want-to-give-to-the-roundcube-user

If something goes wrong you can always run:

dpkg-reconfigure roundcube-core

For more information, please see this post.

For everyone to be able to access his webmail (under his domain name) you have to create or edit the file /etc/apache2/conf.d/roundcube so as to set the alias to 'webmail'. If you want SSL you should include the last two directives (IfModule mod_rewrite.c) to have apache ALWAYS redirect to your SSL installation of ISPConfig.

nano /etc/apache2/conf.d/roundcube
# Those aliases do not work properly with several hosts on your apache server
# Uncomment them to use it or adapt them to your configuration
# Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/
Alias /roundcube /var/lib/roundcube
Alias /webmail /var/lib/roundcube

# Access to tinymce files

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
allow from all



Options +FollowSymLinks
# This is needed to parse /var/lib/roundcube/.htaccess. See its
# content before setting AllowOverride to None.
AllowOverride All
order allow,deny
allow from all


# Protecting basic directories:

Options -FollowSymLinks
AllowOverride None



Options -FollowSymLinks
AllowOverride None
Order allow,deny
Deny from all



Options -FollowSymLinks
AllowOverride None
Order allow,deny
Deny from all





RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}:50443%{REQUEST_URI} [L]







RewriteEngine on
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}:50443%{REQUEST_URI} [L]


Edit /var/lib/roundcube/config/main.inc.php:

nano /var/lib/roundcube/config/main.inc.php

and SET some variables in the file (if this is the first time you edit the file the lines are 60 and 66):

auto_create_user =TRUE;
$rcmail_config['default_host'] ='mail.example.tld';

If you will install the following plugin (the logger that helps fail2ban) you have to extend the list of plugins in the same file. Ifthe only plugin is the one that will be istalled right afterward you have to edit the line (42) as below:

$rcmail_config['plugins'] =array('fail2ban'); 

Install the roundcube logger plugin from http://mattrude.com/projects/roundcube-fail2ban-plugin/.

Basically you have to download the file (fail2ban.php) and paste it in the fail2ban folder in the plugins folder of roundcube. Finally you must have this file:  /usr/share/roundcube/plugins/fail2ban/fail2ban.php. Execute:

cd /usr/share/roundcube/plugins/
wget --no-check-certificate http://cloud.github.com/downloads/mattrude/rc-plugin-fail2ban/roundcube-fail2ban-plugin.1.1.tgz
tar -xvzf roundcube-fail2ban-plugin.1.1.tgz
touch /var/log/roundcube/userlogins
rm roundcube-fail2ban-plugin.1.1.tgz
chown www-data:www-data /var/log/roundcube/userlogins

This plugin will update the log file with each failed login attempt:/var/log/roundcube/userlogins

Don't forget to edit the link for the webmail in ISPConfig (System -> Interface Config -> (tab) Mail) and set it to /webmail. Lastly, restart apache.

/etc/init.d/apache2 restart

You can now access webmail at http://web.example.tld/webmail

Virtual Multiserver Environment With Dedicated Web &MySQL, Email &DNS Servers On Debian Squeeze With ISPConfig 3 - Page 5

Na této stránce

  1. 7.2.7 Installing fail2ban
  2. 7.2.8 Installing mod_evasive With fail2ban Support
  3. 7.3 Extending the Mail Server
  4. 7.3.1 Enhanced e-mail SPAM protection
  5. 7.3.2 Installing Postgrey
  6. 7.4 Securing The Servers Using SSL
  • 8 Maintaining Our Servers
  • 9 Links/Credits/Sources
  • 7.2.7 Installing fail2ban

    Extend the jail.local file that falko suggests in ThePerfect Server - Debian Squeeze (Debian 6.0) With BIND &Courier [ISPConfig 3]:/etc/fail2ban/jail.local

    nano /etc/fail2ban/jail.local

    You have to append or edit the following:

    [roundcube]
    enabled =true
    port =http
    filter =roundcube
    logpath =/var/log/roundcube/userlogins
    maxretry =5

    Last (and very important) don't forget to create the roundcube.conf file /etc/fail2ban/filter.d/roundcube.conf.

    nano /etc/fail2ban/filter.d/roundcube.conf

    with the following contents:

    [Definition]failregex =FAILED login for .*. from ignoreregex =

    Restart fail2ban:

    /etc/init.d/fail2ban restart

    You can check that all jails are active with the command:

    iptables -L -n 

    7.2.8 Installing mod_evasive With fail2ban Support

    mod_evasive is an Apache module for handling DDoS attacks. We will install it and configure fail2ban to auto ban/unban reported attacks.

    apt-get install libapache2-mod-evasive
    mkdir /var/lock/mod-evasive
    chown www-data /var/lock/mod-evasive
    ln -s /etc/alternatives/mail /bin/mail
    nano /etc/apache2/mods-available/mod-evasive.conf

    and paste:

     DOSHashTableSize 3097 DOSPageCount 3 DOSSiteCount 60 DOSPageInterval 1 DOSSiteInterval 2 DOSBlockingPeriod 15 DOSEmailNotify [email protected] DOSLogDir "/var/lock/mod_evasive"

    Afterwards we activate the module and restart apache

    a2enmod mod-evasive
    /etc/init.d/apache2 restart

    mod_evasive will not detect DDoS attacks. To ban them by IPTables, we have to create the file:/etc/fail2ban/filter.d/apache-dosevasive.conf:

    # Fail2Ban configuration file## Author:Xela## $Revision:728 $#[Definition]# Option:failregex# Notes.:regex to match the Forbidden log entrys in apache error.log# maybe (but not only) provided by mod_evasive## Values:TEXT#failregex =^\[[^\]]*\]\s+\[error\]\s+\[client  \] client denied by server configuration:\s# Option:ignoreregex# Notes.:regex to ignore. If this regex matches, the line is ignored.# Values:TEXT#ignoreregex = 

    and to /etc/fail2ban/jail.local we add:

    [apache-dosevasive]enabled =truefilter =apache-dosevasiveaction =iptables-allports[name=dos]logpath =/var/log/apache*/*error.logbantime =600maxretry =10

    7.3 Extending the Mail Server

    7.3.1 Enhanced e-mail SPAM protection

    The command below enables a stricter SPAM handling for postfix on ISPConfig 3 servers.

    postconf -e 'smtpd_recipient_restrictions =permit_mynetworks, permit_sasl_authenticated, reject_invalid_hostname, reject_non_fqdn_hostname, reject_unknown_recipient_domain, reject_non_fqdn_recipient, reject_unauth_destination, reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_rbl_client cbl.abuseat.org,reject_rbl_client dul.dnsbl.sorbs.net,reject_rbl_client ix.dnsbl.manitu.net, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination'

    Then restart postfix:

    /etc/init.d/postfix restart

    7.3.2 Installing Postgrey

    Postgrey will eliminate 99% of all spam emails you receive. To install it, run these commands:

    apt-get install postgrey
    /etc/init.d/postgrey start

    The Postfix configuration files are located in /etc/postfix. Edit /etc/postfix/main.cf and add check_policy_service inet:127.0.0.1:60000 to the smtpd_recipient_restrictions.

    Then reload postfix's configuration:

    postfix reload

    7.4 Securing The Servers Using SSL

    Last but not least you should follow this tutorial:https://www.howtoforge.com/securing-your-ispconfig-3-installation-with-a-free-class1-ssl-certificate-from-startssl. Don't forget to execute the commands on the right server!

    8 Maintaining Our Servers

    You should regulary run this to keep your servers up-to-date:

    apt-get update &&apt-get -y upgrade &&apt-get -y dist-upgrade

    9 Links/Credits/Sources

    Since most is not from me, here are all the links used for this tutorial:

    • http://www.faqforge.com/linux/enhanced-e-mail-spam-protection-in-ispconfig-3/
    • https://www.howtoforge.com/greylisting_postfix_postgrey
    • https://www.howtoforge.com/extending-perfect-server-debian-squeeze-ispconfig-3-p4
    • http://spielwiese.la-evento.com/xelasblog/archives/56-Apache-DOS-Attacken-erschweren-mit-mod_evasive.html
    • http://www.faqforge.com/linux/apache-mod-security-installation-on-debian-6-0-squeeze/
    • http://forum.whmcs.com/showpost.php?s=f876c3e3a7d56bd2f325685a80d746cf&p=16768&postcount=4
    • https://www.howtoforge.com/extending-perfect-server-debian-squeeze-ispconfig-3-p3
    • http://debian.nimmervoll.eu/tag/debian-logwatch-einrichten/
    • http://www.debian-administration.org/articles/530
    • https://www.howtoforge.com/securing-your-ispconfig-3-installation-with-a-free-class1-ssl-certificate-from-startssl
    • https://www.howtoforge.com/multiserver-setup-with-dedicated-web-email-dns-and-mysql-database-servers-on-debian-squeeze-with-ispconfig-3
    • http://debian.nimmervoll.eu/archey-debian-installation/
    • http://ajenti.org/
    • http://code.google.com/p/ovz-web-panel/wiki/Installation
    • https://www.howtoforge.com/installing-and-using-openvz-on-debian-squeeze-amd64

    Panels
    1. Vyvážené zatížení webových serverů a serverů MySQL

    2. Vytváření jednoduchých virtuálních hostitelů pomocí mod_mysql_vhost na Lighttpd (Debian Etch)

    3. Jak zálohovat databáze MySQL pomocí mylvmbackup na Debian Squeeze

    1. Vytváření jednoduchých virtuálních hostitelů pomocí mod_mysql_vhost na Lighttpd (Debian Squeeze)

    2. Upgrade z Debian 6 Squeeze pomocí ISPConfig a courier/postfix na Debian 7 Wheezy

    3. Vynucené reklamy na ISPConfig s Debian Etch

    1. Jak nainstalovat e-mailový server s ISPConfig na Debian 10

    2. Instalace Apache2 s podporou PHP5 a MySQL na Debian Squeeze (LAMP)

    3. Virtuální hosting s vsftpd a MySQL na Debian Squeeze