Instalace webového, e-mailového a databázového klastru MySQL na Debian 6.0 s ISPConfig 3
Tento tutoriál popisuje instalaci klastrovaného webového, e-mailového, databázového a DNS serveru, který má být použit pro redundanci, vysokou dostupnost a vyrovnávání zátěže na Debianu 6 s ovládacím panelem ISPConfig 3. Replikace MySQL Master/Master bude použita k replikaci klientských databází MySQL mezi servery a Unison bude použita k synchronizaci složek /var/www (webové stránky) a /var/vmail (data e-mailových účtů).
1 Nastavení dvou základních systémů
V tomto nastavení bude jeden hlavní server (na kterém běží rozhraní ovládacího panelu ISPConfig) a jeden podřízený server, který zrcadlí webové (apache), e-mailové (postfix a dovecot) a databázové (MySQL) služby hlavního serveru.
K instalaci clusterového nastavení potřebujeme dva servery s minimální instalací Debianu 6.0. Základní nastavení je popsáno v následujícím tutoriálu v krocích 1 - 8:
https://www.howtoforge.com/perfect-server-debian-squeeze-with-bind-and-dovecot-ispconfig-3
Nainstalujte pouze kroky 1 až 8 dokonalého výukového programu serveru a ne ostatní kroky, protože se liší pro clusterové nastavení!
V mém příkladu používám následující názvy hostitelů a IP adresy pro dva servery:
Hlavní server
Název hostitele:server1.example.tld
IP-adresa:192.168.0.105
Podřízený server
Název hostitele:server2.example.tld
IP-adresa:192.168.0.106
Kdekoli se tyto názvy hostitelů nebo adresy IP vyskytují v dalších krocích instalace, budete je muset změnit tak, aby odpovídaly IP a názvům hostitelů vašich serverů.
2 Instalace dvou serverů
Následující kroky je třeba provést na hlavním a podřízeném serveru. Pokud je konkrétní krok pouze pro master nebo slave, pak jsem do popisu přidal poznámku červeně.
vi /etc/hosts
127.0.0.1 localhost 192.168.0.105 server1.example.tld 192.168.0.106 server2.example.tld # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Nastavte název hostitele serveru:
echo server1.example.tld> /etc/hostname
/etc/init.d/hostname.sh start
Použijte server1.example.tld na prvním serveru a server2.example.tld na druhém serveru.
Upravte soubor sources.list...
vi /etc/apt/sources.list
... a zajistěte, aby váš /etc/apt/sources.list obsahoval úložiště squeeze-updates (to zajistí, ž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 ).
[...]
deb http://ftp.de.debian.org/debian/ squeeze-updates main
[...]
Spustit
apt-get update
upgrade apt-get
k instalaci nejnovějších aktualizací (pokud nějaké existují).
Je vhodné synchronizovat systémové hodiny s NTP (n síť t ime p rotocol) server přes internet. Jednoduše spusťte
apt-get -y install ntp ntpdate
a váš systémový čas bude vždy synchronizován.
Na serveru 1:
Nyní vytvoříme pár soukromý/veřejný klíč na server1.example.tld:
ssh-keygen -t dsa
[email protected]:~# ssh-keygen -t dsa
Generování páru klíčů veřejného/soukromého dsa.
Zadejte soubor, do kterého se má klíč uložit (/root/.ssh/id_dsa):<- - ENTER
Vytvořený adresář '/root/.ssh'.
Zadejte přístupové heslo (prázdné pro žádné heslo):<-- ENTER
Znovu zadejte stejné přístupové heslo:<-- ENTER
Vaše identifikace byla uložena do /root/.ssh/id_dsa.
Váš veřejný klíč byl uložen do /root/.ssh/id_dsa.pub.
Otisk klíče je:
1b:95:bc:4a:f4:9f:d8:ea:24:31:0f:c9:72:d5:a7:80 [email protected]
Náhodný obrázek klíče je:
+- -[DSA 1024]----+
| |
| o o |
| E * . . |
| o =o o |
| . Tak . |
| + O + . |
| + + + |
| o |
| .o |
+-----------------+
[email protected]:~#
Je důležité, abyste nezadávali přístupovou frázi, jinak nebude zrcadlení fungovat bez lidské interakce, takže jednoduše stiskněte ENTER!
Dále zkopírujeme náš veřejný klíč na server2.example.tld:
ssh-copy-id -i $HOME/.ssh/id_dsa.pub [email protected]
[email protected]:~# ssh-copy-id -i $HOME/.ssh/id_dsa.pub [email protected]
Autenticita hostitele '192.168.0.101 (192.168.0.101)' nemůže být stanoven.
Otisk klíče RSA je 25:d8:7a:ee:c2:4b:1d:92:a7:3d:16:26:95:56:62:4e.
Jste si jistý chcete pokračovat v připojení (ano/ne)? <-- ano (toto se zobrazí pouze v případě, že se k serveru2 připojujete poprvé)
Upozornění:Trvale přidáno '192.168.0.101' (RSA) do seznamu známých hostitelů.
example@ Heslo unixlinux.online:<-- heslo root serveru2
Nyní se zkuste přihlásit do počítače pomocí "ssh '[email protected]'" a přihlásit se:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
Nyní zkontrolujte na serveru2, zda byl veřejný klíč serveru1 správně přenesen:
server2:
cat $HOME/.ssh/authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBAPhiAexgEBexnw0rFG8lXwAuIsca/V+lhmv5lhF3BqUfAbL7e2sWlQlGhxZ8I2UnzZK8Ypffq6Ks+lp46yOs7MMXLqb7JBP9gkgqxyEWqOoUSt5hTE9ghupcCvE7rRMhefY5shLUnRkVH6hnCWe6yXSnH+Z8lHbcfp864GHkLDK1AAAAFQDddQckbfRG4C6LOQXTzRBpIiXzoQAAAIEAleevPHwi+a3fTDM2+Vm6EVqR5DkSLwDM7KVVNtFSkAY4GVCfhLFREsfuMkcBD9Bv2DrKF2Ay3OOh39269Z1rgYVk+/MFC6sYgB6apirMlHj3l4RR1g09LaM1OpRz7pc/GqIGsDt74D1ES2j0zrq5kslnX8wEWSHapPR0tziin6UAAACBAJHxgr+GKxAdWpxV5MkF+FTaKcxA2tWHJegjGFrYGU8BpzZ4VDFMiObuzBjZ+LrUs57BiwTGB/MQl9FKQEyEV4J+AgZCBxvg6n57YlVn6OEA0ukeJa29aFOcc0inEFfNhw2jAXt5LRyvuHD/C2gG78lwb6CxV02Z3sbTBdc43J6y [email protected]
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 sudo
Na žádost instalačního programu zadejte nové heslo pro uživatele root MySQL. Měli byste zvolit stejné heslo pro oba servery. Poté odpovězte na následující otázky, jak je popsáno níže:
Obecný typ konfigurace? <-- Internetová stránka
E-mailové jméno? <-- server1.mydomain.tld
Vyžadován certifikát SSL <-- OK
Použijte server1.example.tld na prvním serveru a server2.example.tld na druhém serveru.
Chceme, aby MySQL naslouchalo na všech rozhraních, nejen na localhost, proto upravíme /etc/mysql/my.cnf a zakomentujeme řádek bind-address =127.0.0.1:
vi /etc/mysql/my.cnf
[...] # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...]
Poté restartujte MySQL:
/etc/init.d/mysql restart
Nyní připravujeme servery MySQL pro replikaci mysql master/master.
Na serveru 1:
Přihlaste se do MySQL v shellu pomocí...
mysql -u root -p
... a zadejte kořenové heslo MySQL, které jste zvolili během instalace mysql. Poté spusťte tento příkaz v shellu MySQL:
GRANT REPLICATION SLAVE ON *.* TO 'slaveuser'@'%' IDENTIFIKOVANÉ PODLE 'slave_user_password';
FLUSH PRIVILEGES;
quit;
Nahraďte 'slave_user_password' s bezpečným heslem, které chcete použít pro připojení slave k hlavnímu serveru. Nahraďte tento zástupný symbol v dalších krocích heslem, které jste zvolili, ať už se zástupný symbol vyskytuje.
Nyní nakonfigurujeme naše 2 MySQL uzly:
Na serveru 1:
vi /etc/mysql/my.cnf
Vyhledejte sekci, která začíná [mysqld], a vložte do ní následující možnosti (okomentujte všechny existující konfliktní možnosti):
[...] [mysqld] server-id = 1 replicate-same-server-id = 0 auto-increment-increment = 2 auto-increment-offset = 1 master-host = 192.168.0.106 master-user = slaveuser master-password = slave_user_password master-connect-retry = 60 expire_logs_days = 10 max_binlog_size = 500M log_bin = /var/log/mysql/mysql-bin.log [...]
Poté zastavte MySQL:
/etc/init.d/mysql stop
Nyní udělejte téměř totéž na server2...
Na serveru 2:
vi /etc/mysql/my.cnf
Vyhledejte sekci, která začíná [mysqld], a vložte do ní následující možnosti (okomentujte všechny existující konfliktní možnosti):
[...] [mysqld] server-id = 2 replicate-same-server-id = 0 auto-increment-increment = 2 auto-increment-offset = 2 master-host = 192.168.0.105 master-user = slaveuser master-password = slave_user_password master-connect-retry = 60 expire_logs_days = 10 max_binlog_size = 500M log_bin = /var/log/mysql/mysql-bin.log [...]
Poté zastavte MySQL:
/etc/init.d/mysql stop
Nyní musíme synchronizovat dva servery mysql. Provedeme to zkopírováním datového adresáře mysql z master do slave a také konfiguračního souboru debianu, který obsahuje uživatele debian-sys-maint. To lze provést, protože jsme na obou serverech dříve zastavili mysql.
Na serveru 1:
scp -pr /var/lib/mysql/* [email protected]:/var/lib/mysql/
scp -pr /etc/mysql/debian.cnf [email protected]:/etc/mysql/ debian.cnf
Nyní znovu spustíme MySQL na hlavním serveru:
/etc/init.d/mysql start
Přihlaste se do prostředí MySQL jako uživatel root...
mysql -u root -p
... a spusťte tento příkaz v prostředí MySQL...
SHOW MASTER STATUS;
... k získání hlavního stavu MySQL:
mysql> ZOBRAZIT STAV HLAVNÍHO STAVU;
+------------------+----------+---------- -----+------------------+
| Soubor | Pozice | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+------------- -+------------------+
| mysql-bin.000002 | 106 | | |
+------------------+----------+-------------- +------------------+
1 řádek v sadě (0,00 s)
Informace, které potřebujeme pro další krok, je soubor binlogu mysql-bin.000002 a pozice 106. Potřebujeme stejné podrobnosti pro server2 níže.
Nyní spusťte tento příkaz v shellu MySQL na hlavním zařízení, abyste jej připojili k podřízenému:
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='192.168.0.106', MASTER_USER='slaveuser', MASTER_PASSWORD='slave_user_password', MASTER_LOG_FILE='mysql-bin.000_LOG_POSAVE', /10 MASTER;
Poté zkontrolujte stav slave:
SHOW SLAVE STATUS \G
Je důležité, aby oba Slave_IO_Running a Slave_SQL_Running měly ve výstupu hodnotu Ano.
Na serveru 2:
Přihlaste se do prostředí MySQL jako uživatel root...
mysql -u root -p
... a spusťte tento příkaz v prostředí MySQL:
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='192.168.0.105', MASTER_USER='slaveuser', MASTER_PASSWORD='slave_user_password', MASTER_LOG_FILE='mysql-bin.000_LOG_POSAVE', /10 MASTER;
Poté zkontrolujte stav slave:
SHOW SLAVE STATUS \G
Je důležité, aby Slave_IO_Running a Slave_SQL_Running měly ve výstupu hodnotu Ano
Konfigurace replikace mysql master/master je nyní dokončena a pokračujeme v instalaci dalších softwarových balíčků.
Instalace webového, e-mailového a databázového klastru MySQL na Debian 6.0 s ISPConfig 3 – strana 2
Další kroky je třeba provést na serveru 1 a serveru 2.
Chcete-li nainstalovat amavisd-new, SpamAssassin a ClamAV, spustíme:
apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
Nastavení ISPConfig 3 používá amavisd, který interně načítá knihovnu filtrů SpamAssassin, takže můžeme zastavit SpamAssassin, abychom uvolnili RAM:
/etc/init.d/spamassassin stop
update-rc.d -f spamassassin odstranit
Poté nainstalujte Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear a mcrypt lze nainstalovat 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-curl php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-ruby php5-xcache libapache2-mod-perl2 sudo zip wget
Uvidíte následující otázku:
Webový server se překonfiguruje automaticky:<-- apache2
Nakonfigurujte databázi pro phpmyadmin pomocí dbconfig-common? <-- Ne
Poté spusťte následující příkaz pro povolení modulů Apache suexec, rewrite, ssl, actions a include:
a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest
PureFTPd a kvótu lze nainstalovat pomocí následujícího příkazu:
apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool
Upravte soubor /etc/default/pure-ftpd-common...
vi /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=standalone [...] VIRTUALCHROOT=true [...]
Upravte soubor /etc/inetd.conf, abyste zabránili inetd v pokusu o spuštění ftp:
vi /etc/inetd.conf
Pokud existuje řádek začínající ftp stream tcp, zakomentujte jej (pokud takový soubor neexistuje, pak je to v pořádku a nemusíte upravovat /etc/inetd.conf):
[...] #:STANDARD: These are standard services. #ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper [...]
Pokud jste museli upravit /etc/inetd.conf, restartujte nyní inetd:
/etc/init.d/openbsd-inetd restart
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:
/etc/init.d/pure-ftpd-mysql restart
Upravit /etc/fstab. Můj vypadá takto (do oddílu s bodem připojení / jsem přidal ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0):
vi /etc/fstab
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # / was on /dev/sda1 during installation UUID=92bceda2-5ae4-4e3a-8748-b14da48fb297 / ext3 errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1 # swap was on /dev/sda5 during installation UUID=e24b3e9e-095c-4b49-af27-6363a4b7d094 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Chcete-li kvótu povolit, spusťte tyto příkazy:
mount -o remount /
kvóta -avugm
kvóta -avug
Nainstalujte server DNS BIND:
apt-get -y install bind9 dnsutils
Nainstalujte vlogger, webalizer a awstats:
apt-get -y install vlogger webalizer awstats geoip-database
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 # Generate static reports: #10 03 * * * www-data [ -x /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
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./configure
make
make install
cd ..
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 a Dovecot, vytvořte soubor /etc/fail2ban/jail.local:
vi /etc/fail2ban/jail.local
[pureftpd] enabled = true port = ftp filter = pureftpd logpath = /var/log/syslog maxretry = 3 [dovecot-pop3imap] enabled = true filter = dovecot-pop3imap action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp] logpath = /var/log/mail.log maxretry = 5
Poté vytvořte následující dva soubory filtru:
vi /etc/fail2ban/filter.d/pureftpd.conf
[Definition] failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] Authentication failed for user.* ignoreregex =
vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[Definition] failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P<host>\S*),.* ignoreregex =
Poté restartujte fail2ban:
/etc/init.d/fail2ban restart
Chcete-li nainstalovat webového poštovního klienta SquirrelMail, spusťte:
apt-get install squirrelmail
Poté vytvořte následující symbolický odkaz...
ln -s /usr/share/squirrelmail/ /var/www/webmail
... a nakonfigurujte SquirrelMail:
squirrelmail-configure
Musíme SquirrelMail sdělit, že používáme Dovecot-IMAP/-POP3:
Konfigurace SquirrelMail : Přečtěte si: config.php (1.4.0)
--------------------------------- ------------------------
Hlavní nabídka --
1. Předvolby organizace
2. Nastavení serveru
3. Výchozí složky
4. Obecné možnosti
5. Témata
6. Adresáře
7. Zpráva dne (MOTD)
8. Pluginy
9. Databáze
10. Jazyky
D. Nastavte předdefinovaná nastavení pro konkrétní IMAP servery
C Zapněte barvu
S Uložit data
Q Ukončit
Příkaz >> <-- D
Konfigurace SquirrelMail : Přečtěte si: config.php
---------------------------- ------------------------------
Zatímco budujeme SquirrelMail , objevili jsme některé
předvolby které fungují lépe s některými servery, které nefungují tak
dobře s jinými. Pokud vyberete svůj IMAP server, tato možnost
nastaví některá předdefinovaná nastavení pro tento server.
Upozorňujeme , že budete stále musíte vše procházet a ujistit se
je správně. To nemění všechno. Existuje
pouze několik nastavení , která to se změní.
Vyberte svůj IMAP server:
bincimap = Binc IMAP server
br / kurýr = Kurier = Kurier = Kurier > Cyrus =Cyrus IMAP Server
Dovecot =Dovecot Secure IMAP Server
Exchange =Microsoft Exchange Server
HmailServer =HmailServer
Macosx =Mac OS X MailServer
Mercury32 =Merkur /32
uw = Server IMAP Univerzita Washingtonu
gmail = Přístup IMAP k účtům Google mail (Gmail) neměňte a nic nedělejte
= < < < > -- dovecot
Konfigurace SquirrelMail : Přečtěte si: config.php
------------------------ ----------------------------------
Zatímco budujeme SquirrelMail , některé jsme objevili
předvolby, které fungují lépe s některými servery , které nefungují tak
dobře s ostatními. Pokud vyberete svůj IMAP server, tato možnost
nastaví některá předdefinovaná nastavení pro tento server.
Upozorňujeme , že budete stále musíte vše procházet a ujistit se
je správně. To nemění všechno. Existuje
pouze několik nastavení , která to se změní.
Vyberte svůj IMAP server:
bincimap = Binc IMAP server
br / kurýr = Kurier = Kurier = Kurier > Cyrus =Cyrus IMAP Server
Dovecot =Dovecot Secure IMAP Server
Exchange =Microsoft Exchange Server
HmailServer =HmailServer
Macosx =Mac OS X MailServer
Mercury32 =Merkur /32
uw = Server IMAP Washingtonské univerzity
gmail = Přístup IMAP k poštovním účtům Google (Gmail) neměňte a nic nedělejte
nic nedělejte
nic
nic ukončit > >
imap_server_type = dovecot
default_folder_prefix =
trash_folder = Trash
sent_folder = Sent
draft_folder = Drafts
show_prefix_option = false
default_sub_of_inbox = false
show_contain_subfolders_option =false
optional_delimiter = detect
delete_folder = false
Stisknutím enter pokračujte... S <-- stiskněte ENTER
Přečtěte si: config.php (1.4.0)
------------------------------------ ---------------------
Hlavní nabídka --
1. Předvolby organizace
2. Nastavení serveru
3. Výchozí složky
4. Obecné možnosti
5. Témata
6. Adresáře
7. Zpráva dne (MOTD)
8. Pluginy
9. Databáze
10. Jazyky
D. Nastavte předdefinovaná nastavení pro konkrétní IMAP servery
C Zapněte barvu
S Uložit data
Q Ukončit
Příkaz >> <-- S
Konfigurace SquirrelMail : Přečtěte si: config.php (1.4.0)
---------------------- -----------------------------------
Hlavní nabídka --
1. Předvolby organizace
2. Nastavení serveru
3. Výchozí složky
4. Obecné možnosti
5. Témata
6. Adresáře
7. Zpráva dne (MOTD)
8. Pluginy
9. Databáze
10. Jazyky
D. Nastavte předdefinovaná nastavení pro konkrétní IMAP servery
C Zapněte barvu
S Uložit data
Q Ukončit
Příkaz >> <-- Q
Dále povolíme globální Alias /webmail pro Squirrelmail:
cd /etc/apache2/conf.d/
ln -s ../../squirrelmail/apache.conf squirrelmail.conf
/etc/init.d/apache2 reload
Nyní otevřete /etc/apache2/conf.d/squirrelmail.conf...
vi /etc/apache2/conf.d/squirrelmail.conf
... a přidejte následující řádky do kontejneru
[...] Alias /webmail /usr/share/squirrelmail <Directory /usr/share/squirrelmail> Options FollowSymLinks <IfModule mod_php5.c> AddType application/x-httpd-php .php php_flag magic_quotes_gpc Off php_flag track_vars On php_admin_flag allow_url_fopen Off php_value include_path . php_admin_value upload_tmp_dir /var/lib/squirrelmail/tmp php_admin_value open_basedir /usr/share/squirrelmail:/etc/squirrelmail:/var/lib/squirrelmail:/etc/hostname:/etc/mailname php_flag register_globals off </IfModule> <IfModule mod_dir.c> DirectoryIndex index.php </IfModule> # access to configtest is limited by default to prevent information leak <Files configtest.php> order deny,allow deny from all allow from 127.0.0.1 </Files> </Directory> [...]
Vytvořte adresář /var/lib/squirrelmail/tmp...
mkdir /var/lib/squirrelmail/tmp
... a převést jej do vlastnictví uživatele www-data:
chown www-data /var/lib/squirrelmail/tmp
Znovu načtěte Apache:
/etc/init.d/apache2 reload
To už je ono – /etc/apache2/conf.d/squirrelmail.conf definuje alias nazvaný /squirrelmail, který ukazuje na instalační adresář SquirrelMail /usr/share/squirrelmail.
Nyní můžete přistupovat ke SquirrelMail ze svých webových stránek následovně:
http://www.example.com/squirrelmail
Můžete k němu také přistupovat z ovládacího panelu ISPConfig vhost následovně (nepotřebuje žádnou konfiguraci v ISPConfig):
http://server1.example.com:8080/squirrelmail
Dále nainstalujeme Unison. Unison se používá k synchronizaci adresářů /var/www a /var/vmail mezi master a slave
apt-get install unison
Nyní nainstalujeme soubor unisono konfigurace na první server.
Na serveru 1:
Vytvořte nový soubor /root/.unison/default.prf na serveru1...
mkdir /root/.unison
vi /root/.unison/default.prf
... a přidejte následující obsah:
# Roots of the synchronization root = /var root = ssh://192.168.0.106//var/ # Paths to synchronize path = www path = vmail # Some regexps specifying names and paths to ignore #ignore = Path stats ## ignores /var/www/stats #ignore = Path stats/* ## ignores /var/www/stats/* #ignore = Path */stats ## ignores /var/www/somedir/stats, but not /var/www/a/b/c/stats #ignore = Name *stats ## ignores all files/directories that end with "stats" #ignore = Name stats* ## ignores all files/directories that begin with "stats" #ignore = Name *.tmp ## ignores all files with the extension .tmp # When set to true, this flag causes the user interface to skip # asking for confirmations on non-conflicting changes. (More # precisely, when the user interface is done setting the # propagation direction for one entry and is about to move to the # next, it will skip over all non-conflicting entries and go # directly to the next conflict.) auto=true # When this is set to true, the user interface will ask no # questions at all. Non-conflicting changes will be propagated; # conflicts will be skipped. batch=true # !When this is set to true, Unison will request an extra # confirmation if it appears that the entire replica has been # deleted, before propagating the change. If the batch flag is # also set, synchronization will be aborted. When the path # preference is used, the same confirmation will be requested for # top-level paths. (At the moment, this flag only affects the # text user interface.) See also the mountpoint preference. confirmbigdel=true # When this preference is set to true, Unison will use the # modification time and length of a file as a `pseudo inode # number' when scanning replicas for updates, instead of reading # the full contents of every file. Under Windows, this may cause # Unison to miss propagating an update if the modification time # and length of the file are both unchanged by the update. # However, Unison will never overwrite such an update with a # change from the other replica, since it always does a safe # check for updates just before propagating a change. Thus, it is # reasonable to use this switch under Windows most of the time # and occasionally run Unison once with fastcheck set to false, # if you are worried that Unison may have overlooked an update. # The default value of the preference is auto, which causes # Unison to use fast checking on Unix replicas (where it is safe) # and slow checking on Windows replicas. For backward # compatibility, yes, no, and default can be used in place of # true, false, and auto. See the section "Fast Checking" for more # information. fastcheck=true # When this flag is set to true, the group attributes of the # files are synchronized. Whether the group names or the group # identifiers are synchronizeddepends on the preference numerids. group=true # When this flag is set to true, the owner attributes of the # files are synchronized. Whether the owner names or the owner # identifiers are synchronizeddepends on the preference # extttnumerids. owner=true # Including the preference -prefer root causes Unison always to # resolve conflicts in favor of root, rather than asking for # guidance from the user. (The syntax of root is the same as for # the root preference, plus the special values newer and older.) # This preference is overridden by the preferpartial preference. # This preference should be used only if you are sure you know # what you are doing! prefer=newer # When this preference is set to true, the textual user interface # will print nothing at all, except in the case of errors. # Setting silent to true automatically sets the batch preference # to true. silent=true # When this flag is set to true, file modification times (but not # directory modtimes) are propagated. times=true
Chceme synchronizaci automatizovat, proto pro ni vytvoříme cron job na server1.example.tld:
crontab -e
*/5 * * * * /usr/bin/unison &> /dev/null
Instalace webového, e-mailového a databázového klastru MySQL na Debian 6.0 s ISPConfig 3 – strana 3
3 Instalace ISPConfig na první (hlavní) server
V tomto kroku nainstalujeme ISPConfig na hlavní 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/
Nyní musíme přidat dva nové kořenové uživatelské záznamy mysql do hlavní databáze, abychom umožnili root přístup z názvu hostitele a IP adresy podřízeného serveru.
Na serveru 1:
Přihlaste se do databáze MySQL jako uživatel root...
mysql -u root -p
... a proveďte tyto mysql dotazy:
CREATE USER 'root'@'192.168.0.106' IDENTIFIKOVANÉ PODLE 'myrootpassword';
UDĚLEJTE VŠECHNA OPRÁVNĚNÍ NA * . * TO 'root'@'192.168.0.106' 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 MAX_USER_CONNECTIONS
VYTVOŘIT UŽIVATELE 'root'@'server2.example.tld' IDENTIFIKOVANÉ PODLE 'myrootpassword';
UDĚLEJTE VŠECHNA PRIVILEGIA NA * . * TO 'root'@'server2.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_VILEUSER_CONNECTIONS /P>FLUES;
0FLUES;<
Ve výše uvedených SQL příkazech nahraďte 192.168.0.106 IP adresou druhého serveru, server2.example.tld nahraďte názvem hostitele druhého serveru a 'myrootpassword' požadovaným heslem root.
Now you shpuld be back on the shell on server1.example.tld and download the latest ISPConfig 3 stable release:
cd /tmp
wgethttp://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
Start the install script:
php -q install.php
Select language (en,de) [en]:<-- en
Installation mode (standard,expert) [standard]:<-- standard
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.tld]:<-- server1.example.tld
MySQL server hostname [localhost]:<-- localhost
MySQL root username [root]:<-- root
MySQL root password []:<-- Enter your mysql root password here
MySQL database to create [dbispconfig]:<-- dbispconfig1 (the local ispconfig database name of the master and slave must be different, as both servers share the same data directory)
MySQL charset [utf8]:<-- utf8
Country Name (2 letter code) [AU]:<-- DE (Enter the ISO country code where you live here)
State or Province Name (full name) [Some-State]:<-- Niedersachsen (Enter the state where you live here)
Locality Name (eg, city) []:<-- Lueneburg (Enter the city here)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:
Installing ISPConfig
ISPConfig Port [8080]:
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:
Generating RSA private key, 4096 bit long modulus
........................++
................++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Clean up the install directories:
rm -rf /tmp/ispconfig3_install
rm -f /tmp/ISPConfig-3-stable.tar.gz
Installing A Web, Email &MySQL Database Cluster On Debian 6.0 With ISPConfig 3 - Page 4
4 Installing ISPConfig 3 On The Second Server
In this step we will install ISPConfig on the slave server (server2.example.tld). This time we use the expert mode of the ISPConfig installer to add this node to the master ispconfig server and database. To get the download URL of the latest ISPConfig 3 stable release, please visit the ISPConfig website:http://www.ispconfig.org/ispconfig-3/download/
On server 2:
Download the latest ISPConfig 3 stable release...
cd /tmp
wgethttp://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
... and start the install script:
php -q install.php
Select language (en,de) [en]:<-- en
Installation mode (standard,expert) [standard]:<-- expert
Full qualified hostname (FQDN) of the server, eg server2.domain.tld [server2.example.tld]:<-- server2.example.tld
MySQL server hostname [localhost]:<-- localhost
MySQL root username [root]:<-- root
MySQL root password []:<-- Enter your mysql root password here
MySQL database to create [dbispconfig]:<-- dbispconfig2 (the local ispconfig database name of the master and slave must be different, as both servers share the same data directory)
MySQL charset [utf8]:<-- utf8
The next two questions are about the internal ISPConfig database user and password.
It is recommended to accept the defaults which are 'ispconfig' as username and a random password.
If you use a different password, use only numbers and chars for the password.
ISPConfig mysql database username [ispconfig]:<-- ispconfig2
ISPConfig mysql database password [54c243fd3f9ca68de7b08527c81dd5ef]:<-- (press return to accept the default)
Shall this server join an existing ISPConfig multiserver setup (y,n) [n]:<-- y
MySQL master server hostname []:<-- server1.example.tld
MySQL master server root username [root]:<-- root
MySQL master server root password []:<-- Enter the root password of the master server here
MySQL master server database name [dbispconfig]:<-- dbispconfig1
Configure Mail (y,n) [y]:<-- y
Country Name (2 letter code) [AU]:<-- DE (Enter the ISO country code where you live here)
State or Province Name (full name) [Some-State]:<-- Niedersachsen (Enter the state where you live here)
Locality Name (eg, city) []:<-- Lueneburg (Enter the city here)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:
Configure Jailkit (y,n) [y]:<-- y
Configure FTP Server (y,n) [y]:<-- y
Configure DNS Server (y,n) [y]:<-- y
Configure Apache Server (y,n) [y]:<-- y
Configure Firewall Server (y,n) [y]:<--y
Install ISPConfig Web-Interface (y,n) [y]:<--y
Installing ISPConfig
ISPConfig Port [8080]:
Enable SSL for the ISPConfig web interface (y,n) [y]:<-- y
Generating RSA private key, 4096 bit long modulus
.................++
.............................................................................................................++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Clean up the install directories:
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz
In a last configuration step, we want to connect the ISPConfig interface of the slave directly to the master database. This step is only required if you want to access ISPConfig on port 8080 on the master and on the slave server. Log into the master server as root user on the shell...
On server 1:
... and execute this command:
scp -p /usr/local/ispconfig/interface/lib/config.inc.php [email protected]:/usr/local/ispconfig/interface/lib/config.inc.php
This command has to be excuted after each ISPConfig update again after you updated ISPConfig on the master and on the slave with the normal ISPConfig update command (ispconfig_update.sh).
Installing A Web, Email &MySQL Database Cluster On Debian 6.0 With ISPConfig 3 - Page 5
5 Configure Replication In ISPConfig
Log into ISPConfig on the master server with a webbrowser:
http://192.168.0.105:8080
Click on System> Server Services> server2.example.tld:
Select "server1.example.tld" in the "is mirror of" field and click on Save.
Then open System> Server Config and enable the checkbox "Connect Linux userid to webid" on the "Web" tab:
6 Additional Notes
When you want to activate a firewall on the master or slave server, ensure that you open port 3306 for MySQL on both servers.
7 odkazů
- ISPConfig Website:http://www.ispconfig.org/
- ISPConfig Forum:https://www.howtoforge.com/forums/
- ISPConfig Bugtracker:http://bugtracker.ispconfig.org/