full circle
STAVIME PERFEKTNI SERVER NA UBUNTU 9.10 full circle magazine #31
contents ^
O Full Circle
Full Circle
Kontakty
Domovská stránka: Fórum:
Vítejte u speciálního monotematického čísla
IRC:
Redakce
Upozornění:
Příjemné čtení!
Veškeré články obsažené v tomto magazínu jsou vydány pod licencí Creative Commons Attribution-Share Alike 3.0 Unported licencí. To znamená, že články smíte upravovat, kopírovat, distribuovat a šířit pouze za následujících podmínek: Musíte uvést původního autora (minimálně jméno, e-mail nebo internetovou adresu), jméno magazínu (Full Circle magazine) a internetovou adresu www.fullcirclemagazine.org (články nesmí být použity způsobem, který nasvědčuje tomu, že podporují vás nebo vaši práci). Pokud upravíte nebo budete stavět na této práci, musí být výsledná práce uvolněna pod stejnou, obdobnou nebo kompatibilní licencí.
1
HOW-TO Tento návod nefunguje pro ISPConfig 2. Je fuknční pouze pro ISPConfig 3!
FCM09 - 16 : Server Series 1 - 8 FCM28 - 29 : LAMP Server 1 - 2
Vývoj
CD/DVD
T
Grafika
HDD
Internet M/media Systém
USB flash Laptop
Wi-Fi
ento tutoriál ukazuje, jak připravit Ubuntu 9.10 (Karmic Koala) server pro ISPConfig3 a jak ISPConfig3 nainstalovat. ISPConfig3 je webhostingový ovládací panel, který vám umožňuje nastavovat následující služby skrze webový prohlížeč: Webový server Apache, E-mailový klient Postfix, MySQL, DNS server MyDNS, PureFTPd, SpamAssasin, ClamAV a mnoho dalších.
Pro instalaci systému budete potřebovat Ubuntu 9.10 server CD, dostupné zde: http://releases.ubuntu.com/r eleases/9.10/ubuntu-9.10server-i386.iso (32-bit) nebo: http://releases.ubuntu.com/rele ases/9.10/ubuntu-9.10-serveramd64.iso (64-bit)
V tutoriálu používám host name server1.example.com, IP adresu 192.168.0.100 a výchozí bránu 192.168.0.1. Tata nastavení se u vás mohou lišit, a proto je tam, kde bude třeba, změňte.
Vložte instalační CD do mechaniky a nabootujte z něj. full circle magazine #31
Vyberte vámi preferovaný jazyk a poté potvrďte Nainstalovat Ubuntu Server:
Vyberte preferovaný jazyk (znovu), umístění a rozložení klávesnice. Instalátor zkontroluje instalační CD, váš hardware a pokud je v síti dostupný DHCP server, nastaví pomocí něj síť:
Nyní musíte rozdělit svůj disk. Pro jednoduchost jsem zvolil možnost „S průvodcem, použít celý disk a nastavit LVM.“ To vytvoří jednu skupinu dvou logických oddílů – jeden pro / souborový systém a druhý pro swap. Samozřejmě, že rozdělení záleží pouze na vás a pokud víte co děláte, můžete nastavit oddíly ručně. V budoucnu by se vám mohlo hodit, pokud oddělíte /home a /var oddíly.
Zadejte hostname. Například: můj systém je nazván server1.example.com, takže jsem zvolil server1:
contents ^
Vyberte který disk chcete naformátovat a poté, když jste tázáni „Zapsat změny na disk a nastavit LVM?“ vyberte Ano Pokud jste vybrali možnost „S průvodcem, použít celý disk a nastavit LVM“, editor oddílů vytvoří jednu velkou oddílovou skupinu, která využije celé místo na disku. Nyní můžete nastavit, kolik místa bude zabírat logický oddíl / (kořenový oddíl) a kolik swap (odkládací oddíl). Je rozumné nechat nějaké místo nevyužité, abyste později mohli rozšířit existující oddíly nebo vytvořit oddíly nové. Dá vám to větší
Šifrovaný domovský adresář nepotřebuji, tak jsem zvolil Ne:
Vaše nové oddíly byly vytvořeny a zformátovány:
Dále se nastaví správce balíků apt. Nechte HTTP proxy řádek prázdný, pokud pro připojení na internet nepoužíváte proxy server:
Potřebné balíky nainstalujeme později. Jediná položka, kterou jsem zde vybral, je OpenSSH server, takže se mohu k systému přihlásit pomocí SSH klienta, jako je třeba PuTTY jakmile se instalace dokončí:
Instalace pokračuje, poté se instaluje zavaděč GRUB. Instalace základního systému nyní skončila. Vyjměte instalační CD z mechaniky a zvolte pokračovat pro restartování systému:
Poté je základní systém nainstalován: Jsem trochu staromódní a kvůli lepší kontrole rád aktualizuji svůj systém ručně, proto jsem vybral Žádné automatické aktualizace. Samozřejmě je jen na vás, co zde vyberete. volnost. Když jste u konce, klikněte na Ano, když jste tázáni „Zapsat změny na disk?“.
Vytvořte uživatele, například uživatel Administrátor s uživatelským jménem administrator. Nepoužívejte jméno admin, to je v Ubuntu 9.10 rezervováno. full circle magazine #31
Potřebujeme DNS, mail a LAMP server, ale přesto jsem nevybral žádný z nich, protože mám rád plně kontroluji vše, co instaluji na svůj systém. contents ^
HOW-TO superuživatele. To můžeme udělat přidáním sudo před všechny příkazy, nebo se právě teď můžeme stát rootem zadáním:
FCM09 - 16 : Server Series 1 - 8 FCM28 - 29 : LAMP Server 1 - 2 FCM31 : The Perfect Server 1
sudo su
Od teď můžete používat SSH klienta, jako například PuTTY, k připojení ze své pracovní stanice na Ubuntu server a pokračovat ve zbývajících krocích tohoto tutoriálu.
Také můžete povolit přihlášení jako root spuštěním: Vývoj
CD/DVD
Grafika
HDD
Internet M/media Systém
USB flash Laptop
Wi-Fi
M
inulý měsíc jsme nainstalovali základní Ubuntu Server z CD a skončili u restartování do nové instalovaného systému.
Po restartu se můžete přihlásit pomocí vytvořeného uživatele ( např. administrator). Ve všech krocích tohoto návodu potřebujeme oprávnění
sudo passwd root
a dát uživateli root heslo. Následně se můžete jako root přihlásit. Vývojáři a komunita Ubuntu toto řešení z různých důvodů striktně nedoporučuje. (Čtěte http://ubuntuforums.org/showth read.php?t=765414)
Pokud jste nenainstalovali OpenSSH server během instalace, můžete to udělat nyní: aptitude install ssh opensshserver
full circle magazine #32
V tomto návodu použiji textový editor vi. Výchozí vi má v Ubuntu a Debianu jisté zvláštnosti; pro jejich nápravu nainstalujeme vim-nox: aptitude install vim-nox
Jestli používáte jiný textový editor (jako joe nebo nano) nemusíte toto provádět.
Otevřete tedy soubor /etc/network/interfaces a upravte jej podle svých potřeb (zde používám jako příklad IP adresu 192.168.0.100): vi /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1
Restartujte síť pomocí: Protože instalátor Ubuntu nastavil systém tak, aby získával síťové nastavení pomocí DHCP, musíme to změnit, protože server by měl mít statickou IP adresu.
/etc/init.d/networking restart
A pak upravte /etc/hosts: vi /etc/hosts contents ^
a změňte jej tak, aby vypadal jako na Obr.1. Nyní spusťte echo server1.example.com > /etc/hostname
a restartujte server pomocí: reboot
Poté spusťte: hostname hostname -f
V obou se má ukázat now.
aptitude update
pro aktualizaci databáze balíků apt, a aptitude safe-upgrade
pro nainstalování nejnovějších aktualizací (pokud nějaké jsou). Pokud vidíte, že nový kernel je součástí instalace aktualizací, měli byste restartovat systém pomocí: reboot
/bin/sh je odkaz na /bin/dash, ale my potřebujeme /bin/bash, ne /bin/dash. A proto uděláme toto: dpkg-reconfigure dash
Upravte /etc/apt/sources.list: vi /etc/apt/sources.list
Zakomentujte nebo odstraňte instalační CD ze souboru a ujistěte se, že universe a multiverse repositáře jsou povoleny. Poté spusťte
Install dash as /bin/sh?, Choose: No
127.0.0.1 192.168.0.100
localhost.localdomain server1.example.com
localhost server1
# 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
rozšířenou ochranu. Dle mého názoru nepotřebujete nastavovat zabezpečení systému, a v obvyklých případech to působí více škody než užitku (poté, co máte hotové týdenní ladění, protože některá služba nepracovala tak, jak se očekávalo, zjistíte, že je vše v pořádku a jedině AppArmor způsobuje potíže). Proto jsem jej zakázal (toto je nezbytné, pokud chcete později nainstalovat ISPConfig).
Je dobré synchronizovat systémový čas přes Internet pomocí NTP (network time protocol) serveru. Jednoduše spusťte aptitude install ntp ntpdate
a váš čas bude vždy synchronizován.
Můžeme toho docílit takto: Pokud toto neuděláte, instalace ISPConfig selže.
/etc/init.d/apparmor stop update-rc.d -f apparmor remove
AppArmor je bezpečnostní rozšíření (podobně jako SELinux), které poskytuje full circle magazine #32
aptitude remove apparmor apparmor-utils
contents ^
HOW-TO FCM09 - 16 : Server Series 1 - 8 FCM28 - 29 : LAMP Server 1 - 2 FCM31 - 32 : The Perfect Server 1 - 2
courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2modules-sql sasl2-bin libpammysql openssl getmail4 rkhunter binutils
update-alternatives --removeall maildir.5
Budete tázáni na následující otázky:
aptitude install maildrop
Nové heslo pro MySQL „root“ uživatele Vývoj
Grafika
Internet M/media Systém
Zopakujte heslo pro MySQL „root“ uživatele CD/DVD
HDD
USB flash Laptop
Wi-Fi
M
ůžeme nainstalovat Postfix, Courier, Saslauthd, MySQL, rkhunter, and binutils – pouze jedním příkazem: (Před každý příkaz zadejte sudo, pokud je třeba.) aptitude install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courierauthlib-mysql courier-pop courier-pop-ssl courier-imap
Vytvořit složky pro webovou administraci? Zadejte: Hlavní typ mailové konfigurace: Zadejte: System mail name: Zadejte: (ale použijte svou .com doménu) Požadovat SSL certifikát Zadejte: Následně nainstalujeme maildrop:
update-alternatives --removeall maildirquota.7
# localhost which is more compatible and is not less secure.
Možná se ptáte, proč jsme nenainstalovali maildrop spolu s ostatními balíky. Odpověď pro to je bug v courier-base balíku – jestliže nainstalujete maildrop dohromady s courier-pop, courier-pop-ssl, courier-imap, and courier-imap-ssl, dostanete následující chybu:
#bind-address 127.0.0.1 [...]
update-alternatives: error: alternative link /usr/share/man/man5/maildir.5 .gz is already managed by maildir.5.gz.
netstat -tap | grep mysql
Chceme, aby MySQL naslouchalo na všech rozhraních, ne pouze na localhostu. Proto upravíme /etc/mysql/my.cnf a zakomentujeme řádek bindaddress = 127.0.0.1: vi /etc/mysql/my.cnf
[...] full circle magazine #33
# Instead of skip-networking the default is now to listen only on
=
Poté restartujeme MySQL: /etc/init.d/mysql restart
Nyní kontrola, jestli síť funguje. Spusťte:
Výstup by měl vypadat takto: root@server1:~# netstat -tap | grep mysql tcp 0 0 *:mysql *:* LISTEN 6267/mysqld root@server1:~#
Během instalace jsou vytvořeny SSL certifikáty pro IMAP-SSL a POP3-SSL používající hostname localhost. Abychom host name změnili do contents ^
správné podoby (v tomto návodě používáme server1.domain.com), smažte následující certifikáty... cd /etc/courier
SSL a Courier-POP3-SSL: /etc/init.d/courier-imap-ssl restart /etc/init.d/courier-pop-ssl restart
rm -f /etc/courier/imapd.pem rm -f /etc/courier/pop3d.pem
a editujte následující dva soubory – nahrazením „CN=localhost“ s „CN=server1.example.com“ (pokud potřebujete, můžete také upravit ostatní hodnoty): vi /etc/courier/imapd.cnf [...] CN=server1.example.com [...] vi /etc/courier/pop3d.cnf
Pro nainstalování amavisdnew, SpamAssassin a ClamAV spustíme: aptitude install amavisd-new spamassassin clamav clamavdaemon zoo unzip bzip2 arj nomarch lzop cabextract aptlistchanges libnet-ldap-perl libauthen-sasl-perl clamavdocs daemon libio-stringperl libio-socket-ssl-perl libnet-ident-perl zip libnetdns-perl
[...] CN=server1.example.com [...]
mkpop3dcert
a restartujeme Courier-IMAP-
Zobrazí se vám následující otázka: Webový server pro automatickou rekonfiguraci Zadejte: Nastavit databázi pro phpmyadmin pomocí dbconfigcommon? Zadejte: Poté spusťte následující příkaz pro povolení Apache modulů suexec, rewrite, ssl, actions a include:
Poté znovu vytvoříme certifikáty: mkimapdcert
aptitude install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2mod-fcgid apache2-suexec phppear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-modsuphp
Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear a mcrypt mohou být nainstalovány následovně: full circle magazine #33
a2enmod suexec rewrite ssl actions include
Poté restartujte Apache:
PureFTPd a quota můžeme nainstalovat pomocí tohoto příkazu: aptitude install pure-ftpdcommon pure-ftpd-mysql quota quotatool
Upravíme soubor /etc/default/pure-ftpd-common: vi /etc/default/pure-ftpdcommon
a ujistíme se, že spouštěcí mód je nastaven na standalone a nastavíme VIRTUALCHROOT=true: [...] STANDALONE_OR_INETD=standalon e [...] VIRTUALCHROOT=true [...]
Poté restartartujeme PureFTPd: /etc/init.d/pure-ftpd-mysql restart
Upravíme /etc/fstab. Můj vypadá jako na Obr.1 na
/etc/init.d/apache2 restart contents ^
následující stránce (Přidal jsem ,usrjquota=aquota.user,grpjquo ta=aquota.group,jqfmt=vfsv0 k oddílu s přípojným bodem /): vi /etc/fstab
Pro povolení quoty spustíme následující příkazy: touch /aquota.user /aquota.group chmod 600 /aquota.* mount -o remount /
# /etc/fstab: static file system information. # # Use 'blkid -o value -s UUID' 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). # #
<mount point> <pass> proc /proc proc defaults 0 0 /dev/mapper/server1-root / ext4 errors=remountro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1 # /boot was on /dev/sda5 during installation UUID=9ea34148-31b7-4d5c-baee-c2e2022562ea /boot ext2 defaults 2 /dev/mapper/server1-swap_1 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
0
quotacheck -avugm quotaon -avug
Předtím, než nainstalujeme MyDNS, potřebujeme nainstalovat několik závislostí. aptitude install g++ libc6 gcc gawk make texinfo libmysqlclient15-dev
MyDNS není dostupné v repozitářích Ubuntu 9.10, aproto si musíme zkompilovat vlastní cd /tmp
wget http://heanet.dl.sourceforge. net/sourceforge/mydnsng/mydns-1.2.8.27.tar.gz
Poté uděláme skript spustitelným a umožníme mu spouštění při startu systému:
tar xvfz mydns1.2.8.27.tar.gz
chmod +x /etc/init.d/mydns update-rc.d mydns defaults
cd mydns-1.2.8 ./configure make make install
Dále vytvoříme start/stop skript (zobrazen na následující stránce) pro MyDNSN: vi /etc/init.d/mydns
full circle magazine #33
Vlogger a webalizer mohou být nainstalovány takto: aptitude install vlogger webalizer
Jailkit je třeba pouze pokud chcete chroot SSH uživatele. Může být nainstalován následovně (důležité: Jailkit musí bý nainstalován před instalací ISPConfig - později již ne!): aptitude install buildessential autoconf automake1.9 libtool flex bison cd /tmp wget http://olivier.sessink.nl/jai lkit/jailkit-2.10.tar.gz tar xvfz jailkit-2.10.tar.gz
contents ^
#! /bin/sh # # mydns Start the MyDNS server # # Author: Philipp Kern . # Based upon skeleton 1.9.4 by Miquel van Smoorenburg # <[email protected]> and Ian Murdock . # set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin: /usr/bin DAEMON=/usr/local/sbin/mydns NAME=mydns DESC="DNS server" SCRIPTNAME=/etc/init.d/$NAME
restart) echo -n "Restarting $DESC: $NAME" start-stop-daemon --stop --quiet --oknodo \ --exec $DAEMON sleep 1 start-stop-daemon --start --quiet \ --exec $DAEMON -- -b echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac exit 0
cd jailkit-2.10
# Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 case "$1" in start) echo -n "Starting $DESC: $NAME" start-stop-daemon --start --quiet \ --exec $DAEMON -- -b echo "." ;; stop) echo -n "Stopping $DESC: $NAME" start-stop-daemon --stop --oknodo --quiet \ --exec $DAEMON echo "." ;; reload|force-reload) echo -n "Reloading $DESC configuration..." start-stop-daemon --stop --signal HUP --quiet \ --exec $DAEMON echo "done." ;;
full circle magazine #33
./configure make make install cd .. rm -rf jailkit-2.10*
Toto je volitelné, ale doporučené, protože ISPConfig umožňuje zobrazovat protokoly fail2ban: aptitude install fail2ban
contents ^
HOW-TO squirrelmail-configure FCM09 - 16 : Server Series 1 - 8 FCM28 - 29 : LAMP Server 1 - 2 FCM31 - 33 : The Perfect Server 1 - 3
Vývoj
CD/DVD
P
Grafika
HDD
Internet M/media Systém
USB flash Laptop
Wi-Fi
ro nainstalování SquirrelMail webmailového klientu spustíme:
aptitude install squirrelmail
Poté vytvoříme následující odkazy... ln -s /usr/share/squirrelmail/ /var/www/webmail
... a nastavíme SquirrelMail:
Musíme SquirrelMailu sdělit, že chceme používat CourierIMAP/-POP3: SquirrelMail Configuration : Read: config.php (1.4.0) Main Menu 1. Organization Preferences 2. Server Settings 3. Folder Defaults 4. General Options 5. Themes 6. Address Books 7. Message of the Day (MOTD) 8. Plugins 9. Database 10. Languages D. for C S Q
Set pre-defined settings specific IMAP servers Turn color on Save data Quit
Command >>
Zadejte: Nyní uvidíte výpis možností IMAP serveru: Please select your IMAP server:
Zadejte slovo: full circle magazine #34
imap_server_type = courier default_folder_prefix = INBOX. trash_folder = Trash sent_folder = Sent draft_folder = Drafts show_prefix_option = false default_sub_of_inbox = false show_contain_subfolders_optio n = false optional_delimiter = . delete_folder = true
nebo: http://192.168.0.100/webmai l
Press any key to continue...
Dále uvidíte výpis možností a jejich nastavení; pro pokračování stiskněte . Zpátky do Hlavního Menu, zadejte pro uložení dat a uvidíte: Data saved in config.php Press enter to continue
Když jste zpět ve hlavním menu, zadejte pro ukončení. Poté můžete přistupovat ke SquirrelMail pomocí: http://server1.example.com/ webmail
Pro nainstalování nejnovější verze ISPConfig 3, udělejte toto (nahraďte ISPConfig3.0.1.6.tar.gz nejnovější verzí) : cd /tmp wget http://downloads.sourceforge. net/ispconfig/ISPConfig3.0.1.6.tar.gz?use_mirror= tar xvfz ISPConfig3.0.1.6.tar.gz cd ispconfig3_install/install/ contents ^
Následující krok je spuštění: php -q install.php
To spustí instalaci ISPConfig 3. U každé volby stiskněte Enter, s výjimkou případů, kdy jste tázáni na své MySQL root heslo. Instalace automaticky nastaví všechny podružné služby, takže manuální konfigurace není potřeba. Posléze můžete k ISPConfig 3 přistupovat pomocí: http://server1.example.com:80 80/ or: http://192.168.0.100:8080/ Přihlaste se se jménem admin a heslem admin (měli byste změnit výchozí heslo po prvním přihlášení): Systém je nyní připraven k použití.
full circle magazine #34
contents ^