Dokonalý server – Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2]
Tento tutoriál ukazuje, jak nastavit server Ubuntu Natty Narwhal (Ubuntu 11.04), který nabízí všechny služby potřebné pro poskytovatele internetových služeb a hostitele:webový server Apache (s podporou SSL), poštovní server Postfix s SMTP-AUTH a TLS, server DNS BIND, Proftpd FTP server, MySQL server, Courier POP3/IMAP, Quota, Firewall atd. Nakonec byste měli mít systém, který spolehlivě funguje, a pokud chcete, můžete si nainstalovat bezplatný webhostingový ovládací panel ISPConfig 2 (tj. běží na něm ISPConfig po vybalení).
Budu používat následující software:
- Webový server:Apache 2.2.17 s PHP 5.3.5, Python, Ruby a WebDAV
- Databázový server:MySQL 5.1.54
- Poštovní server:Postfix
- Server DNS:BIND9
- FTP Server:profpd
- POP3/IMAP:Použiji formát Maildir, a proto nainstaluji Courier-POP3/Courier-IMAP.
- Webalizer pro statistiky webových stránek
Upozorňujeme, že toto nastavení nefunguje pro ISPConfig 3 ! Platí pouze pro ISPConfig 2!
Nejprve chci říci, že to není jediný způsob, jak nastavit takový systém. Existuje mnoho způsobů, jak tohoto cíle dosáhnout, ale já volím tento způsob. Neposkytuji žádnou záruku, že to pro vás bude fungovat!
1 požadavky
K instalaci takového systému budete potřebovat následující:
- server CD Ubuntu 11.04, dostupný zde:http://releases.ubuntu.com/releases/11.04/ubuntu-11.04-server-i386.iso (i386) nebo http://releases.ubuntu.com/releases /11.04/ubuntu-11.04-server-amd64.iso (x86_64)
- rychlé připojení k internetu.
2 Předběžná poznámka
V tomto tutoriálu používám název hostitele server1.example.com s IP adresou 192.168.0.100 a bránou 192.168.0.1. Tato nastavení se pro vás mohou lišit, takže je musíte v případě potřeby nahradit.
3 Základní systém
Vložte instalační CD Ubuntu do systému a spusťte z něj. Vyberte svůj jazyk:
Poté vyberte Install Ubuntu Server:
Znovu vyberte svůj jazyk (?):
Poté vyberte své umístění:
Pokud jste vybrali neobvyklou kombinaci jazyka a umístění (např. angličtina jako jazyk a Německo jako umístění, jako v mém případě), může vám instalační program sdělit, že pro tuto kombinaci není definováno žádné národní prostředí; v tomto případě musíte národní prostředí vybrat ručně. Zde vybírám en_US.UTF-8:
Vyberte rozložení klávesnice (budete požádáni, abyste stiskli několik kláves a instalační program se pokusí zjistit rozložení klávesnice na základě kláves, které jste stiskli):
Instalační program zkontroluje instalační CD, váš hardware a nakonfiguruje síť pomocí DHCP, pokud je v síti DHCP server:
Dokonalý server – Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] – Strana 2
4 Získat oprávnění uživatele root
Po restartu se můžete přihlásit pomocí dříve vytvořeného uživatelského jména (např. Protože musíme všechny kroky z tohoto tutoriálu spustit s právy root, můžeme buď před všechny příkazy v tomto tutoriálu přidat řetězec sudo, nebo se staneme rootem hned teď zadáním
sudo su
(Přihlášení uživatele root můžete také povolit spuštěním
sudo passwd root
a dát rootovi heslo. Poté se můžete přímo přihlásit jako root, ale vývojáři a komunita Ubuntu to z různých důvodů odsuzují. Viz http://ubuntuforums.org/showthread.php?t=765414.)
5 Instalace serveru SSH (volitelné)
Pokud jste během instalace systému nenainstalovali server OpenSSH, můžete tak učinit nyní:
apt-get install ssh openssh-server
Od této chvíle můžete používat klienta SSH, jako je PuTTY, a připojit se ze své pracovní stanice k serveru Ubuntu 11.04 a postupujte podle zbývajících kroků z tohoto návodu.
6 Instalace vim-nox (volitelné)
V tomto tutoriálu použiji vi jako svůj textový editor. Výchozí program vi má na Ubuntu a Debianu nějaké podivné chování; abychom to napravili, nainstalujeme vim-nox:
apt-get install vim-nox
(Nemusíte to dělat, pokud používáte jiný textový editor, jako je joe nebo nano.)
7 Konfigurace sítě
Protože instalační program Ubuntu nakonfiguroval náš systém tak, aby získal nastavení sítě přes DHCP, musíme to nyní změnit, protože server by měl mít statickou IP adresu. Upravte /etc/network/interfaces a upravte jej podle svých potřeb (v tomto příkladu nastavení použiji IP adresu 192.168.0.100 ):
vi /etc/network/interfaces
# Tento soubor popisuje síťová rozhraní dostupná ve vašem systému# a jak je aktivovat. Další informace viz interfaces(5).# Síťové rozhraní zpětné smyčkyauto loiface lo inet loopback# Primární síťové rozhraníauto eth0iface eth0 inet statická adresa 192.168.0.100 maska sítě 255.255.255.0 síť 192.168.0.1 62015 brána.80815.2. před> |
Poté restartujte síť:
/etc/init.d/networking restart
Poté upravte /etc/hosts. Ať to vypadá takto:
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost192.168.0.100 server1.example.com server1# Následující řádky jsou vhodné pro hostitele s podporou IPv6::1 ip6 -localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters |
Nyní spusťte
echo server1.example.com> /etc/hostname
/etc/init.d/hostname restart
Poté spusťte
hostname
hostname -f
Oba by nyní měly zobrazovat server1.example.com.
8 Upravte /etc/apt/sources.list a aktualizujte svou instalaci Linuxu
Upravte /etc/apt/sources.list. Zakomentujte nebo odeberte instalační CD ze souboru a ujistěte se, že jsou povolena úložiště vesmíru a multiverse. Mělo by to vypadat takto:
vi /etc/apt/sources.list
## deb cdrom:[Ubuntu-Server 11.04 _Natty Narwhal_ – vydání amd64 (20110426)]/ natty main limited#deb cdrom:[Ubuntu-Server 11.04 _Natty Narwhal_ – Release amd64 (20110426)]/ natty main limited# Viz http://help.ubuntu.com/community/UpgradeNotes, jak upgradovat na # novější verze distribuce.deb http://de.archive. ubuntu.com/ubuntu/ natty main limitededdeb-src http://de.archive.ubuntu.com/ubuntu/ natty main limited## Aktualizace oprav hlavních chyb vytvořené po konečném vydání distribuce ## distribution.deb http:// de.archive.ubuntu.com/ubuntu/ natty-updates hlavní omezenédeb-src http://de.archive.ubuntu.com/ubuntu/ natty-updates hlavní omezené## Pozn. software z tohoto úložiště je ZCELA NEPODPOROVÁN týmem Ubuntu##. Vezměte prosím na vědomí, že software ve vesmíru NEOBDRŽÍ žádnou## recenzi ani aktualizace od bezpečnostního týmu Ubuntu.deb http://de.archive.ubuntu.com/ubuntu/ natty universedeb-src http://de.archive. ubuntu.com/ubuntu/ natty universedeb http://de.archive.ubuntu.com/ubuntu/ natty-updates universedeb-src http://de.archive.ubuntu.com/ubuntu/ natty-updates universe## N.B. software z tohoto úložiště je ZCELA NEPODPOROVÁN týmem Ubuntu## a nemusí být pod bezplatnou licencí. Ujistěte se prosím, že ## svá práva k používání softwaru. Vezměte prosím na vědomí, že software v## multiverse NEOBDRŽÍ žádnou recenzi ani aktualizace od bezpečnostního týmu Ubuntu##.deb http://de.archive.ubuntu.com/ubuntu/ natty multiversedeb-src http://de. archive.ubuntu.com/ubuntu/ natty multiversedeb http://de.archive.ubuntu.com/ubuntu/ natty-updates multiversedeb-src http://de.archive.ubuntu.com/ubuntu/ natty-updates multiverse## Chcete-li přidat software z úložiště 'backports'##, odkomentujte následující dva řádky.## N.B. software z tohoto úložiště nemusel být důkladně testován## jako software obsažený v hlavním vydání, ačkoli obsahuje## novější verze některých aplikací, které mohou poskytovat užitečné funkce.## Také si prosím uvědomte, že software v backportech NEBUDE jakákoli recenze## nebo aktualizace od bezpečnostního týmu Ubuntu.# deb http://de.archive.ubuntu.com/ubuntu/ natty-backports hlavní omezený vesmír multiverse# deb-src http://de.archive.ubuntu.com /ubuntu/ natty-backports hlavní omezený vesmír multiversedeb http://security.ubuntu.com/ubuntu natty-security main limiteddeb-src http://security.ubuntu.com/ubuntu natty-security main limiteddeb http://security. ubuntu.com/ubuntu natty-security universedeb-src http://security.ubuntu.com/ubuntu natty-security universedeb http://security.ubuntu.com/ubuntu natty-security multiversedeb-src http://security.ubuntu .com/ubuntu natty-security multiverse## Odkomentujte následující dva řádky a přidejte software z ## „partnerského“ úložiště společnosti Canonical ory.## Tento software není součástí Ubuntu, ale je nabízen společností Canonical a## příslušnými prodejci jako služba uživatelům Ubuntu.# deb http://archive.canonical.com/ubuntu natty partner# deb-src http ://archive.canonical.com/ubuntu natty partner## Odkomentujte následující dva řádky a přidejte software z úložiště## 'extras' Ubuntu.## Tento software není součástí Ubuntu, ale je nabízen třetí stranou## vývojáři, kteří chtějí dodávat svůj nejnovější software.# deb http://extras.ubuntu.com/ubuntu natty main# deb-src http://extras.ubuntu.com/ubuntu natty main |
Potom spusťte
aktualizace apt-get
pro aktualizaci databáze balíčků apt a
upgrade apt-get
k instalaci nejnovějších aktualizací (pokud nějaké existují). Pokud uvidíte, že se v rámci aktualizací nainstaluje nové jádro, měli byste poté restartovat systém:
restartovat
9 Změna výchozího prostředí
/bin/sh je symbolický odkaz na /bin/dash, ale potřebujeme /bin/bash, ne /bin/dash. Proto děláme toto:
dpkg-reconfigure dash
Použít pomlčku jako výchozí systémové prostředí (/bin/sh)? <-- Ne
Pokud to neuděláte, instalace ISPConfig se nezdaří.
10 Deaktivace AppArmor
AppArmor je bezpečnostní rozšíření (podobně jako SELinux), které by mělo poskytovat rozšířené zabezpečení. Podle mého názoru to ke konfiguraci zabezpečeného systému nepotřebujete a obvykle to způsobí více problémů než výhod (přemýšlejte o tom, až týden řešíte problémy, protože některá služba nefungovala podle očekávání, a pak zjistěte, že vše bylo v pořádku, problém způsoboval pouze AppArmor). Proto jsem to zakázal (to je nutnost, pokud chcete ISPConfig nainstalovat později).
Můžeme to zakázat takto:
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils
Dokonalý server – Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] – Strana 4
11 Instalace softwaru
Nyní nainstalujeme několik balíčků, které budeme potřebovat později. Spustit
apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.6-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl-perl-zlibde modules unzi automake1.9 libtool bison autotools-dev g++ build-essential
(Tento příkaz musí jít na jeden řádek !)
12 žurnálovaná kvóta
(Pokud jste zvolili jiné schéma rozdělení než já, musíte upravit tuto kapitolu tak, aby kvóta platila pro oblasti, kde ji potřebujete.)
Chcete-li kvótu nainstalovat, spusťte
instalační kvótu apt-get
Upravit /etc/fstab. Můj vypadá takto (do oddílu s bodem připojení / jsem přidal ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0):
vi /etc/fstab
# /etc/fstab:informace o statickém systému souborů.## Použijte 'blkid -o value -s UUID' k vytištění univerzálně jedinečného identifikátoru# pro zařízení; toto lze použít s UUID=jako robustnější způsob pojmenování# zařízení, který funguje, i když jsou přidány a odebrány disky. Viz fstab(5).## |
Chcete-li kvótu povolit, spusťte tyto příkazy:
mount -o remount /
kvóta -avugm
kvóta -avug
13 DNS server
Spustit
apt-get install bind9
Z bezpečnostních důvodů chceme spouštět BIND chrooted, takže musíme provést následující kroky:
/etc/init.d/bind9 stop
Upravte soubor /etc/default/bind9 tak, aby démon běžel jako nepřivilegovaný uživatel bind, chrootovaný do /var/lib/named. Upravte řádek:OPTIONS="-u bind" tak, aby zněl OPTIONS="-u bind -t /var/lib/named":
vi /etc/default/bind9
# spustit resolvconf?RESOLVCONF=yes# možnosti spuštění pro serverOPTIONS="-u bind -t /var/lib/named" |
Vytvořte potřebné adresáře pod /var/lib:
mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run
Poté přesuňte konfigurační adresář z /etc do /var/lib/named/etc:
mv /etc/bind /var/lib/named/etc
Vytvořte symbolický odkaz na nový konfigurační adresář ze starého umístění (abyste předešli problémům při budoucí aktualizaci vazby):
ln -s /var/lib/named/etc/bind /etc/bind
Vytvořte nulová a náhodná zařízení a opravte oprávnění adresářů:
mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var /lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind
Musíme vytvořit soubor /etc/rsyslog.d/bind-chroot.conf...
vi /etc/rsyslog.d/bind-chroot.conf
... a přidejte následující řádek, abychom mohli stále zaznamenávat důležité zprávy do systémových protokolů:
$AddUnixListenSocket /var/lib/named/dev/log |
Restartujte démona protokolování:
/etc/init.d/rsyslog restart
Spusťte BIND a zkontrolujte /var/log/syslog, zda neobsahuje chyby:
/etc/init.d/bind9 start
14 MySQL
Abychom mohli nainstalovat MySQL, spustíme
apt-get install mysql-server mysql-client libmysqlclient-dev
Budete požádáni o zadání hesla pro uživatele root MySQL – toto heslo je platné pro uživatele [email protected] i [email protected], takže později nemusíme heslo uživatele root MySQL zadávat ručně. :
Nové heslo pro uživatele "root" MySQL:<-- yourrootsqlpassword
Opakujte heslo pro uživatele "root" MySQL:<-- yourrootsqlpassword
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
[...]# 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é restartujeme MySQL:
/etc/init.d/mysql restart
Nyní zkontrolujte, zda je síť povolena. Spustit
netstat -tap | grep mysql
Výstup by měl vypadat takto:
[email protected]:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* POSLECHNUTÍ PLECHNUTÍ PLECH. 7220 /> příklad
Dokonalý server – Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] – Strana 5
15 Postfix s SMTP-AUTH a TLS
Chcete-li nainstalovat Postfix s SMTP-AUTH a TLS, proveďte následující kroky:
apt-get install postfix libsasl2-2 sasl2-bin libsasl2-modules procmail
Budou vám položeny dvě otázky. Odpovězte následovně:
Obecný typ konfigurace pošty:<-- Internet Site
Název systémové pošty:<-- server1.example.com
Potom spusťte
dpkg-reconfigure postfix
Znovu vám položíme několik otázek:
Obecný typ konfigurace pošty:<-- Internetový server
Jméno systémové pošty:<-- server1.example.com
Kořenový a postmaster příjemce pošty:<-- [prázdné]
Další cíle pro přijímat poštu pro (prázdné pro žádné):<-- server1.example.com, localhost.example.com, localhost.localdomain, localhost
Vynutit synchronní aktualizace poštovní fronty? <-- Ne
Místní sítě:<-- 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Použít procmail pro místní doručování? <-- Ano
Limit velikosti poštovní schránky (bajty):<-- 0
Znak rozšíření místní adresy:<-- +
Použité internetové protokoly:<-- všechny
Dále proveďte toto:
postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable =yes'
postconf -e 'smtpd_sasl_security_options =noclianonymous'
postconf -asl_eth 'smtpd_sasl_authenticated_header =yes'
postconf -e 'smtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'checkinet_post:/satech>th =w sasl/smtpd.conf
echo 'mech_list:plain login'>> /etc/postfix/sasl/smtpd.conf
Poté vytvoříme certifikáty pro TLS:
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
Dále nakonfigurujeme Postfix pro TLS (ujistěte se, že pro myhostname používáte správný název hostitele):
postconf -e 'myhostname =server1.example.com'
postconf -e 'smtpd_tls_auth_only =no'
postconf -e 'smtp_use_tls =yes'
postconf -e 'smtpd_use_tls =yes'
postconf -e 'smtp_tls_offer /postcontls_f =<>ano_starttls_f e 'smtpd_tls_key_file =/etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crt'
postconf -cp_CApost 'smt_ /ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel =1'
postconf -e 'smtpd_tls_received_header =yes'
postconf -e 'smtpd_tls_session_con3br_0> =postconf. 'tls_random_source =dev:/dev/urandom'
Soubor /etc/postfix/main.cf by nyní měl vypadat takto:
cat /etc/postfix/main.cf
# Viz /usr/share/postfix/main.cf.dist pro komentovanou, úplnější verzi# Specifické pro Debian:Zadání názvu souboru způsobí první # řádek tohoto souboru, který má být použit jako název. Výchozí # Debianu je /etc/mailname.#myorigin =/etc/mailnamesmtpd_banner =$myhostname ESMTP $mail_name (Ubuntu)biff =no# připojení .domény je úkolem MUA.append_dot_mydomain =no# Odkomentujte další řádek pro vygenerování "zpožděné" mail" warnings#delay_warning_time =4hreadme_directory =no# TLS parameterssmtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crtsmtpd_tls_key_file =/etc/postfix/ssl/smtpd.keysmtpd_use_tls =yessmtpd_tls_session_cache_database =btree:${data_directory}/smtpd_scachesmtp_tls_session_cache_database =btree:${ data_directory}/smtp_scache# Informace o povolení SSL v smtp client.myhostname =server1.example.comalias_maps =hash:/etc/aliasesalias_database =viz /usr/share/doc/postfix/TLS_README.gz v balíčku postfix-doc =hash:/etc/aliasesmyorigin =/etc/mailnamemydestination =server1.example.com, localhost.example.com, localhost.localdomain, localhostrelayhost =mynetworks =127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128mailbox_command =procmail -a "$EXTENS ION"mailbox_size_limit =0recipient_delimiter =+inet_interfaces =allinet_protocols =allsmtpd_sasl_local_domain =smtpd_sasl_auth_enable =yessmtpd_sasl_security_options =noanonymousbroken_sasl_auth_clients =yessmtpd_sasl_authenticated_header =yessmtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destinationsmtpd_tls_auth_only =nosmtp_use_tls =yessmtp_tls_note_starttls_offer =yessmtpd_tls_CAfile =/etc/postfix/ssl/cacert.pemsmtpd_tls_loglevel =1smtpd_tls_received_header =yessmtpd_tls_session_cache_timeout =3600stls_random_source =dev:/dev/urandom |
Autentizaci provede saslauthd. Musíme změnit pár věcí, aby to fungovalo správně. Protože Postfix běží chrootovaný v /var/spool/postfix, musíme udělat následující:
mkdir -p /var/spool/postfix/var/run/saslauthd
Nyní musíme upravit /etc/default/saslauthd, abychom aktivovali saslauthd. Nastavte START na yes a změňte řádek OPTIONS="-c -m /var/run/saslauthd" na OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r":
vi /etc/default/saslauthd
## Nastavení pro démona saslauthd# Podrobnosti naleznete v /usr/share/doc/sasl2-bin/README.Debian.## Měl by se saslauthd spustit automaticky při startu? (výchozí:ne)START=ano# Popis této instance saslauthd. Doporučeno.# (návrh:SASL Authentication Daemon)DESC="SASL Authentication Daemon"# Krátký název této instance saslauthd. Důrazně doporučujeme.# (suggestion:saslauthd)NAME="saslauthd"# Jaké autentizační mechanismy by měl saslauthd používat? (výchozí:pam)## Dostupné možnosti v tomto balíčku Debian:# getpwent -- použijte funkci knihovny getpwent() # kerberos5 -- použijte Kerberos 5# pam -- použijte PAM# rimap -- použijte vzdálený IMAP server# shadow - - použijte soubor lokálního stínového hesla# sasldb -- použijte soubor místní databáze sasldb# ldap -- použijte LDAP (konfigurace je v /etc/saslauthd.conf)## V jednu chvíli lze použít pouze jednu možnost. Další informace najdete na manuálové stránce saslauthd#.## Příklad:MECHANISMS="pam"MECHANISMS="pam"# Další možnosti pro tento mechanismus. (výchozí:none)# Informace o možnostech specifických pro mecha najdete na manuálové stránce saslauthd.MECH_OPTIONS=""# Kolik procesů saslauthd máme spustit? (výchozí:5)# Hodnota 0 rozvětví nový proces pro každé připojení.THREADS=5# Další možnosti (výchozí:-c -m /var/run/saslauthd)# Poznámka:MUSÍTE zadat volbu -m nebo saslauthd se nespustí!## VAROVÁNÍ:NEZADÁVEJTE VOLBU -d.# Volba -d způsobí, že saslauthd poběží v popředí místo jako# démona. TAK ZABRÁNÍ VÁŠMU SYSTÉMU V ŘÁDNÉM SPOUŠTĚNÍ. Pokud si přejete# spustit saslauthd v režimu ladění, spusťte jej pro jistotu ručně.## Informace specifické pro Debian najdete v /usr/share/doc/sasl2-bin/README.Debian.# Viz manuálová stránka saslauthd a výstup 'saslauthd -h' pro obecné# informace o těchto volbách.## Příklad pro uživatele postfixu:"-c -m /var/spool/postfix/var/run/saslauthd"#OPTIONS="-c -m / var/run/saslauthd"OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r" |
Dále přidejte uživatele postfixu do skupiny sasl (tím zajistíte, že Postfix má oprávnění pro přístup k saslauthd):
adduser postfix sasl
Nyní restartujte Postfix a spusťte saslauthd:
/etc/init.d/postfix restart
/etc/init.d/saslauthd start
Chcete-li zjistit, zda SMTP-AUTH a TLS fungují správně, spusťte následující příkaz:
telnet localhost 25
Po navázání připojení k poštovnímu serveru Postfix typu
ehlo localhost
Pokud vidíte řádky
250 STARTTLS
a
PROSTÉ PŘIHLÁŠENÍ 250 AUTH
vše je v pořádku.
Výstup na mém systému vypadá takto:
[email protected]:/etc/postfix/ssl# telnet localhost 25
Zkouším 127.0.0.1...
Připojeno k localhost.localdomain.
Escape znak je '^]'.
220 server1.example.com ESMTP Postfix (Ubuntu)
ehlo localhost
250-server1.example.com
250-PIPELINING
250-VELIKOST 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCED STATUSCODES
250-8BITMIME
250 DSN
ukončit
221 2.0.0 Nashledanou
Spojení uzavřeno zahraničním hostitelem.
[email protected]:/etc/postfix/ssl#
Typ
ukončit
pro návrat do shellu systému.
16 Courier-IMAP/Courier-POP3
Spusťte toto pro instalaci Courier-IMAP/Courier-IMAP-SSL (pro IMAP na portu 993) a Courier-POP3/Courier-POP3-SSL (pro POP3 na portu 995):
apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0
Budou vám položeny dvě otázky:
Vytvořit adresáře pro webovou administraci? <-- Ne
Vyžadován certifikát SSL <-- OK
Během instalace se vytvoří certifikáty SSL pro IMAP-SSL a POP3-SSL s názvem hostitele localhost. Chcete-li toto změnit na správný název hostitele (server1.example.com v tomto návodu), odstraňte certifikáty...
cd /etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem
... a upravit následující dva soubory; nahraďte CN=localhost za CN=server1.example.com (v případě potřeby můžete upravit i ostatní hodnoty):
vi /etc/courier/imapd.cnf
[...]CN=server1.example.com[...] |
vi /etc/courier/pop3d.cnf
[...]CN=server1.example.com[...] |
Poté znovu vytvořte certifikáty...
mkimapdcert
mkpop3dcert
... a restartujte Courier-IMAP-SSL a Courier-POP3-SSL:
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart
Pokud nechcete používat ISPConfig, nakonfigurujte Postfix tak, aby doručoval e-maily do poštovního adresáře uživatele*:
postconf -e 'home_mailbox =Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart
*Poznámka: Pokud máte v úmyslu používat ISPConfig na vašem systému, nemusíte to dělat, protože ISPConfig provádí nezbytnou konfiguraci pomocí receptů procmail. Nezapomeňte však povolit Maildir v části Správa -> Server -> Nastavení -> E-mail ve webovém rozhraní ISPConfig.
Dokonalý server – Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] – Strana 6
17 Apache/PHP5/Ruby/Python/WebDAV
Nyní nainstalujeme Apache:
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec libexpat1 ssl-cert
Dále nainstalujeme PHP5, Ruby a Python (všechny tři jako moduly Apache):
apt-get install libapache2-mod-php5 libapache2-mod-ruby libapache2-mod-python php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Dále upravíme /etc/apache2/mods-available/dir.conf:
vi /etc/apache2/mods-available/dir.conf
a změňte řádek DirectoryIndex:
|
Nyní musíme povolit některé moduly Apache (SSL, rewrite, suexec, include a WebDAV):
a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include
a2enmod dav_fs
a2enmod dav
Restartujte Apache:
/etc/init.d/apache2 restart
Musíme vyřešit malý problém s Ruby. Pokud si nainstalujete ISPConfig a povolíte Ruby pro webovou stránku, soubory .rbx se spustí v pořádku a zobrazí se v prohlížeči, ale to nefunguje pro soubory .rb – budete vyzváni ke stažení souboru .rb – totéž se stane, pokud nakonfigurujete Ruby ručně pro vhost (tj. nemá to nic společného s ISPConfig). Abychom to napravili, otevřeme /etc/mime.types...
vi /etc/mime.types
... a okomentujte aplikaci/řádek x-ruby:
[...]#application/x-ruby rb[...] |
Restartujte Apache:
/etc/init.d/apache2 restart
Nyní budou soubory .rb spuštěny a zobrazeny v prohlížeči, stejně jako soubory .rbx.
V další kapitole (17.1) zakážeme PHP (toto je nutné pouze v případě, že chcete instalovat ISPConfig na tento server). Na rozdíl od PHP jsou Ruby a Python ve výchozím nastavení zakázány, takže to nemusíme dělat.
17.1 Globální deaktivace PHP
(Pokud neplánujete instalovat ISPConfig na tento server, přeskočte prosím tuto sekci!)
V ISPConfig nakonfigurujete PHP na základě jednotlivých webových stránek, tj. můžete určit, které webové stránky mohou spouštět PHP skripty a které ne. To může fungovat pouze v případě, že je PHP globálně zakázáno, protože jinak by všechny webové stránky mohly spouštět skripty PHP, bez ohledu na to, co zadáte v ISPConfig.
Abychom PHP globálně zakázali, upravíme /etc/mime.types a zakomentujeme řádky application/x-httpd-php:
vi /etc/mime.types
[...]#application/x-httpd-php phtml pht php#application/x-httpd-php-source phps#application/x -httpd-php3 php3#application/x-httpd-php3-preprocessed php3p#application/x-httpd-php4 php4#application/x-httpd-php5 php5[...] |
Edit /etc/apache2/mods-enabled/php5.conf and comment out the SetHandler lines:
vi /etc/apache2/mods-enabled/php5.conf
|
Then restart Apache:
/etc/init.d/apache2 restart
18 Proftpd
In order to install Proftpd, run
apt-get install proftpd ucf
You will be asked a question:
Run proftpd:<-- standalone
For security reasons add the following lines to /etc/proftpd/proftpd.conf (thanks to Reinaldo Carvalho; more information can be found here:http://proftpd.org/localsite/Userguide/linked/userguide.html):
vi /etc/proftpd/proftpd.conf
[...]DefaultRoot ~ServerIdent on "FTP Server ready."[...] |
ISPConfig expects the configuration to be in /etc/proftpd.conf instead of /etc/proftpd/proftpd.conf, therefore we create a symlink (you can skip this command if you don't want to install ISPConfig):
ln -s /etc/proftpd/proftpd.conf /etc/proftpd.conf
Then restart Proftpd:
/etc/init.d/proftpd restart
The Perfect Server - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] - Page 7
19 Webalizer
To install webalizer, just run
apt-get install webalizer geoip-database
20 Synchronize the System Clock
It is a good idea to synchronize the system clock with an NTP (n etwork t ime p rotocol) server over the internet. Simply run
apt-get install ntp ntpdate
and your system time will always be in sync.
21 Install Some Perl Modules Needed By SpamAssassin (Comes With ISPConfig)
Run
apt-get install libhtml-parser-perl libdb-file-lock-perl libnet-dns-perl libnetaddr-ip-perl perl-modules
22 ISPConfig
The configuration of the server is now finished, and if you wish you can now install ISPConfig on it. Please check out the ISPConfig installation manual:http://www.ispconfig.org/manual_installation.htm
Before you install ISPConfig, there's one important thing you must do. Open /usr/include/stdio.h and replace getline with parseline in line 671:
vi /usr/include/stdio.h
[...] This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */extern _IO_ssize_t parseline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __wur;#endif[...] |
If you don't do this, the installation will fail because of the following error:
htpasswd.c:101:error:conflicting types for 'getline'
/usr/include/stdio.h:671:note:previous declaration of 'getline' was here
make[2]:*** [htpasswd.o] Error 1
make[2]:Leaving directory `/home/ISPConfig-2.2.stable/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]:*** [build-support] Error 1
make[1]:Leaving directory `/home/ISPConfig-2.2.stable/install_ispconfig/compile_aps/apache_1.3.41'
make:*** [build] Error 2
ERROR:Could not make Apache
You can undo the change to /usr/include/stdio.h after the successful ISPConfig installation (but don't forget to change it back whenever you want to update ISPConfig!).
22.1 A Note On SuExec
If you want to run CGI scripts under suExec, you should specify /var/www as the home directory for websites created by ISPConfig as Ubuntu's suExec is compiled with /var/www as Doc_Root. Run
/usr/lib/apache2/suexec -V
and the output should look like this:
[email protected]:~# /usr/lib/apache2/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
[email protected]:~#
So if you want to use suExec with ISPConfig, don't change the default web root (which is /var/www) if you use expert mode during the ISPConfig installation (in standard mode you can't change the web root anyway so you'll be able to use suExec in any case).
23 Links
- Ubuntu:http://www.ubuntu.com/
- ISPConfig:http://www.ispconfig.org/