Linux jako server: Porovnání verzí

Smazaný obsah Přidaný obsah
Woodcraft (diskuse | příspěvky)
m Přesun stránky z http://grumpa.eurowiki.net/DebianServer (domluveno s autorem stránky)
 
Woodcraft (diskuse | příspěvky)
m wikizace původního dokumentu..
Řádek 5:
Poslední úprava: 15.07.2006
 
= Upozornění - práce pokračuje =
[[TableOfContents]]
 
= 1. Upozornění - práce pokračuje =
Tento manuál není hotový. Ale je funkční. Co tu je by mělo fungovat.
 
Řádek 33 ⟶ 31:
co není zcela O.K. E-mailovou adresu najdete na úvodní straně.
 
= 2. Něco do začátku =
== 2.1. Zadání - stručně ==
Škola chce mít vlastní internetový a intranetový server, kde by mohlo být
úložiště dat pro žáky a učitele, e-mailové služby, webový server se stránkami
Řádek 49 ⟶ 47:
počítače - jeden na data a jeden jako brána/firewall.
 
== 2.2. Hardware ==
=== 2.2.1. Router / FireWall ===
V případě samostatné brány/firewallu stačí pro tento stroj jakákoliv
starší mašina osazená min. dvěma síťovými kartami, bez periférií
(klávesnice, myš, monitor...). Tento stroj je tedy volitelný.
 
=== 2.2.2. Hlavní počítač - dataserver ===
Hlavní počítač, který může plnit i funkci výše zmíněného, by měl mít směrem
do lokálních podsítí síťové karty minimálně 100MBs -- úložiště dat na tomto
Řádek 65 ⟶ 63:
kde NEšetřit.
 
== 2.3. Software ==
=== 2.3.1. Zvolená distribuce Linuxu ===
Po dlouhém přemýšlení jsem vybral Debian Linux. Mezi linuxovými distribucemi
jsem pro server nenašel konkurenci. Mimo Linux by určitě vyhovovalo jakékoliv
Řádek 73 ⟶ 71:
Pro výběr distribuce jsem vyžadoval splnění kritérií:
 
* tradice
* široké zázemí vývojářů
* včasné vydávání bezpečnostních updatů
* dostatečná šíře software
* záruka, že bude free i do budoucna
* záruka, že bude existovat do budoucna
 
Má někdo lepší tip?
 
=== 2.3.2. Co nainstalovat ===
Při instalaci je lepší vybrat minimum věcí, jenom tak, aby systém fungoval a bylo možno jej
dále upravovat. Teprve pak budeme přidávat další balíčky. Kompletní seznam balíčků,
které obvykle používám je v příloze.
 
=== 2.3.3. Hlavní serverové služby ===
==== 2.3.3.1. Samba ====
Jedná se o souborový server. Ten umožňuje umístit na linuxový stroj data uživatelů, kteří pracující
na stanicích s OS MS Windows. Rovněž se stará o přihlašování uživatelů do domény Windows,
o jejich práva ap.
 
==== 2.3.3.2. E-mail ====
Zde je použit smtp server ''Exim4'', který umožňuje přijímat poštu z Internetu a rovněž
poštu odesílat.
Řádek 104 ⟶ 102:
Příjemným rozšířením může být odvšivení mailů: Antivirus ''ClamAV'' a antispam ''SpamAssassin''.
 
==== 2.3.3.3. Web server ====
Škola bude chtít provozovat stránky www ve své vlastní režii. Použit je web server
''Apache''.
 
==== 2.3.3.4. FTP server ====
Je potřeba hlavně pro údržbu internetových stránek školy. FTP přístup mohou využívat
i uživatelé pro přístup do svých adresářů na serveru (jako alternativa k Sambě).
''ProFTPD'' se ukázal jako dobrá volba.
 
==== 2.3.3.5. SSH server ====
Je potřeba pro vzdálenou správu serveru. Umožňuje se přihlásit na server jako uživatel,
aniž by člověk u něj musel sedět. Jinou volbu než ''OpenSSH'' neznám.:o) V našem řešení
je ssh použit pouze pro správu - normálním uživatelům je přihlašování odepřeno.
 
=== 2.3.4. Další serverové služby ===
==== 2.3.4.1. Časový (NTP) server ====
Server má rád, když ví, kolik je přesně hodin.
 
= 3. Pracovní postup nahrubo =
Tady bych stručně vyjasnil, co všechno se bude muset udělat a v jakém pořadí. Nejde jenom
o instalaci software a jeho konfiguraci. Jde také o jednání se zákazníkem a jeho dalšími
dodavateli.
 
== 3.1. Škola ==
Především se slušně představit a vysvětlit, co jim vlastně chceme nabídnout. Nezabíhat
do technických detailů, nenudit. Budou mít vlastní web a mail. To potěší. Data na serveru
Řádek 135 ⟶ 133:
MS Windows serveru, podotkněme, že srovnávají špatně:
 
* Linux je zdarma a platí se za práci spojenou s instalací a konfigurací. Do budoucna
bude systém průběžně aktualizován; přechod na novou verzi je bezbolestný.
* MS Windows Server se musí koupit. Instalace a konfigurace rovněž není zadarmo a za dva
za tři roky budou stát před otázkou, zda pořídit drahý upgrade na novou verzi MS Windows Serveru.
 
Zjistit současný stav.
 
* Jaký HW chtějí použít na server.
* Jestli chtějí jen jeden stroj, nebo jestli mohou dát ještě jeden jako bránu/firewall.
* Kolik mají klientských počítačů.
* Jak mají udělanou síť nyní. Učebny, počítače v kabinetech učitelů,... Rozvody. Huby.
Mají-li nakreslené schéma, bude se nám hodit.
* Kdo je připojuje do Internetu, jaké nabízí možnosti z hlediska provozování vlastního
internetového serveru (hlavně soukromá IP a schopnost vytvořit PTR záznam v DNS).
* Jaké budou chtít mít doménové jméno.
 
U větších sítí bude potřeba i uvnitř školy udělat router, který umožní rozdělit školu
Řádek 155 ⟶ 153:
o to více síťovek :o) O tomto řešení se v tomto elaborátu nezmiňuji.
 
== 3.2. Provider připojení ==
Nestačí jen připojení směrem ven. Škola bude provozovat i vlastní webové stránky,
mail server a pro údržbu bude potřeba ssh server. K tomu všemu je nutná veřejná
Řádek 179 ⟶ 177:
to jste nevěděli?) a jsou v pohodě.
 
== 3.3. Registrace domény ==
Registrátorů je poměrně hodně. Takže koho vybrat?
 
* Měl by umožňovat registraci přes webový formulář.
* Dále by měl umožňovat ruční editaci DNS záznamů.
* Komunikace s administrátory by neměla být na dlouhé lokte.
* Neměl by zřízení domény vázat na další služby (např. webhosting), které nepotřebujeme.
 
Mně se osvědčil pes.cz. Zná-li někdo další, ať dá vědět.
 
== 3.4. Instalace a konfigurace serveru ==
Teprve jako poslední bod přichází příjemné introvertní uzavření se do laboratoře
a nastavování serveru. Během této práce bude ještě určitě dobíhat komunikace
Řádek 195 ⟶ 193:
na dalších stranách.
 
== 3.5. Konfigurace pracovních stanic ==
Školy obvykle chtějí i nadále provozovat MS Windows. Pro práci v doménách je
ideální použít MS Windows XP Professional. Další, o něco horší varianta je
použít Windows 98. XP Home domény neumějí ani jako klient!
 
== 3.6. Škola podruhé: Nabídka dalších možností ==
Určitě nabídneme nainstalovat Linux i na pracovní stanice vedle MS Windows (že
by někdo chtěl MS-Win úplně pryč jsem ještě neslyšel - ostatně žáci se seznámit
Řádek 212 ⟶ 210:
logů, ladění antispamu,... důvodů je dost.
 
= 4. Instalace serveru =
== 4.1. Instalační média ==
Pro instalaci použijte CD Grumpa.net Server. Jedná se o originální Debian
Linux verze Stable, ale nachází se na něm jen to, co potřebujete k
Řádek 230 ⟶ 228:
nebyla. Koukněte na grumpa.net, jestli se to nezměnilo.
 
== 4.2. Průběh instalace ==
Celý instalační proces Debian Linuxu je podrobně popsán v instalačním
manuálu, který najdeme buď na CD, nebo na internetových stránkách [Debianu
Řádek 236 ⟶ 234:
popisovat, jen se podělím o pár zkušeností.
 
=== 4.2.1. Úvodní menu ===
Při startu instalace je možné vybrat z několika režimů. Určitě si vybereme
režim ''expert''. I když se tak třeba necítíme, je to lepší - instalátor se
Řádek 251 ⟶ 249:
Takže na úvodní výzvu zadáme:
 
boot: expert
{{{
 
boot: expert
}}}
pro jádro 2.4, nebo
 
boot: expert26
{{{
 
boot: expert26
}}}
pro jádro 2.6. Toto jádro se vybírá jen pro čas instalace. Jaké jádro
bude použito na produkčním systému se vybírá později při instalaci.
 
=== 4.2.2. Rozložení klávesnice ===
Vyberte typ PC, i když máte USB. Bude fungovat a navíc vám bude následně
nabídnuta i správná česká klávesnice (u volby USB bůhvíproč není).
 
=== 4.2.3. Nastavení sítě ===
Tady asi odmítneme automatickou konfiguraci přes DHCP a nastavíme parametry
ručně. Jená se o IP adresu (vnějšího rozhraní - vnitřní se nastaví po
Řádek 1 601 ⟶ 1 597:
}}}
 
Po restartu Apache by měly fungovat už i adresy s protokolem {{{<code>`https://`}}}</code>.
 
== 6.7. E-mail server Exim4 ==
Debian Linux používá jako výchozí smtp server program Exim4. Jeho možnosti
jsou značné, konfigurační soubory nekonečné,... Naštěstí pro jednoduché
podmínky se nabízí i poměrně jednoduché řešení.
 
Debian Linux používá jako výchozí smtp server program Exim4. Jeho možnosti jsou značné, konfigurační soubory nekonečné,... Naštěstí pro jednoduché podmínky se nabízí i poměrně jednoduché řešení.
Při instalaci (viz kapitola o instalaci serverových služeb) jsme zadali
 
vše potřebné. Máme-li pocit, že jsme to trochu pohnojili, nebojte, o kousek
Při instalaci (viz kapitola o instalaci serverových služeb) jsme zadali vše potřebné. Máme-li pocit, že jsme to trochu pohnojili, nebojte, o kousek dál se píše o tom, jak to nastavit dodatečně.
 
Otestovat funkčnost serveru musíme několika způsoby:
 
1. Odešleme e-mail přímo ze serveru:
 
``` # mail [nekdo@seznam.cz]
 
2. Odešleme e-mail odjinud na server. Třeba z toho seznamu.cz na lokální adresu ''[uzivatel@nase-skola.cz]''.
3. Z lokální sítě.
adresu ''[uzivatel@nase-skola.cz]''.
3. Z lokální sítě.
1. Nastavíme si poštovního klienta (k tomu bude potřeba
mít hotové nastavení POP3 nebo IMAP serveru viz další kapitola)
Řádek 1 626 ⟶ 1 618:
3. Pošleme sobě mail odněkud z venku, třeba zas z toho seznamu.
 
Nefunguje? Zkusme se podívat do konfiguračního souboru Exim4. A také na:
na:
 
=== 6.7.1. Práva k adresáři s e-maily ===
Z nějakého záhadného důvodu má adresář ''/var/mail/'', kam se ukládá
došlá pošta uživatelů špatně nastavená práva. Vlastníkem adresáře
má být ''root.mail'' a práva nastavená na 775.
 
Z nějakého záhadného důvodu má adresář ''/var/mail/'', kam se ukládá došlá pošta uživatelů špatně nastavená práva. Vlastníkem adresáře má být ''root.mail'' a práva nastavená na 775.
=== 6.7.2. Konfigurační soubor Exim4 ===
 
Ten není žádná sranda. Naštěstí nám situaci usnadňuje "nadstavba"
===Konfigurační soubor Exim4 ===
použitá v Debian Linuxu, konfigurační soubor:
 
Ten není žádná sranda. Naštěstí nám situaci usnadňuje "nadstavba" použitá v Debian Linuxu, konfigurační soubor:
 
/etc/exim4/update-exim4.conf.conf
 
{{{
/etc/exim4/update-exim4.conf.conf
}}}
Jeho obsah po nainstalování bude vypadat asi takto:
 
dc_eximconfig_configtype='internet'
{{{
dc_other_hostnames=''
dc_eximconfig_configtype='internet'
dc_local_interfaces=''
dc_other_hostnames=''
dc_readhost=''
dc_local_interfaces=''
dc_relay_domains='nase-skola.cz'
dc_readhost=''
dc_minimaldns='false'
dc_relay_domains='nase-skola.cz'
dc_relay_nets='192.168.1.0/24:192.168.2.0/24'
dc_minimaldns='false'
dc_smarthost=''
dc_relay_nets='192.168.1.0/24:192.168.2.0/24'
CFILEMODE='644'
dc_smarthost=''
dc_use_split_config='false'
CFILEMODE='644'
dc_hide_mailname=''
dc_use_split_config='false'
dc_mailname_in_oh='true'
dc_hide_mailname=''
dc_mailname_in_oh='true'
}}}
* Other hostnames nepotřebujeme - hostname se převezme ze systému.
* Local interfaces je prázdné - naslouchá se na všch rozhraních.
* Relay-domains - jasné.
 
* Other hostnames nepotřebujeme - hostname se převezme ze systému.
Jen zmíním: Když se sem dá *(hvězdička), tj všem,
* Local interfaces je prázdné - naslouchá se na všch rozhraních.
uděláte si ze svého počítače tzv. Open Relay a dostanete se
* Relay-domains - jasné.
na černou listinu spamerských serverů. Tak pozor.:o)
* Minimal DNS - se nastavuje když jsme za vytáčenou linkou a nemáme
přímý přístup k DNS serveru. To není náš případ.
* Realy Nets - z jakých sítí si nás mohou nastavit jako smtp server
(komu děláme smarthosta)
* Smarthost - kdo dělá smarthosta nám. Nepotřebujeme, jsme ''smart''
dost sami.:o)
* Ostatní direktivy si můžete nastudovat v manuálové stránce:
 
Jen zmíním: Když se sem dá *(hvězdička), tj všem, uděláte si ze svého počítače tzv. Open Relay a dostanete se na černou listinu spamerských serverů. Tak pozor.:o)
{{{
* Minimal DNS - se nastavuje když jsme za vytáčenou linkou a nemáme přímý přístup k DNS serveru. To není náš případ.
# man update-exim4.conf
* Realy Nets - z jakých sítí si nás mohou nastavit jako smtp server (komu děláme smarthosta)
}}}
* Smarthost - kdo dělá smarthosta nám. Nepotřebujeme, jsme ''smart'' dost sami.:o)
* Ostatní direktivy si můžete nastudovat v manuálové stránce:
 
=== 6.7.3. Neobvyklý restart serveru Exim4 ===
Po případných změnách v konfiguračním souboru restartujeme server Exim4
trochu neotřelým způsobem:
 
# man update-exim4.conf
{{{
# invoke-rc.d exim4 restart
}}}
Intuitivnější varianta {{{`/etc/init.d/exim4 restart`}}} se nemá používat.
Nemusely by se restartovat dceřiní démoni běžícího serveru (Dceřiný démon,
to si nechám patentovat:o).
 
Po restartu se automaticky vygeneruje nový konfigurační soubor z námi
zadaných parametrů:
 
===Neobvyklý restart serveru Exim4 ===
{{{
/var/lib/exim4/config.autogenerated
}}}
 
Po případných změnách v konfiguračním souboru restartujeme server Exim4 trochu neotřelým způsobem:
=== 6.7.4. Pár užitečných příkazů ===
 
{{{
# invoke-rc.d exim4 restart
# mailq
 
}}}
Intuitivnější varianta <code>`/etc/init.d/exim4 restart`</code> se nemá používat. Nemusely by se restartovat dceřiní démoni běžícího serveru (Dceřiný démon, to si nechám patentovat:o).
Tento příkaz nám zobrazí obsah fronty nedoručených zpráv. Exim se snaží
 
poštu doručovat okamžitě. Není-li fronta prázdná, znamená to obvykle
Po restartu se automaticky vygeneruje nový konfigurační soubor z námi zadaných parametrů:
nějaký problém.
 
/var/lib/exim4/config.autogenerated
 
 
===Pár užitečných příkazů ===
 
 
# mailq
 
Tento příkaz nám zobrazí obsah fronty nedoručených zpráv. Exim se snaží poštu doručovat okamžitě. Není-li fronta prázdná, znamená to obvykle nějaký problém.
 
# exim4 -Mvl kód-zprávy
 
{{{
# exim4 -Mvl kód-zprávy
}}}
Vypíše i důvody, proč zpráva visí ve frontě. Kód zjistíme předchozím
příkazem ''mailq''.
 
# exigrep [-l] vzor /var/log/exim4/main.log
{{{
 
# exigrep [-l] vzor /var/log/exim4/main.log
}}}
Prohledává zadaný logový soubor a vypisuje řádky odopovídající vzoru.
 
Parametr -l říká, aby se vzor bral doslova a ne jako regulární výraz.
 
# eximstats /var/log/exim4/mainlog
{{{
# eximstats /var/log/exim4/mainlog
}}}
Nabízí souhrný výpis toho, co je zaznamenáno v log souborech. Výstup je
možné nechat udělat v různých formátech (txt, html, xls - MS Excel).
 
Nabízí souhrný výpis toho, co je zaznamenáno v log souborech. Výstup je možné nechat udělat v různých formátech (txt, html, xls - MS Excel).
Ještě tu jsou grafické nástroje, které najdeme v balíčcích ''eximon4'',
''geximon'' a ''pfqueue''.
 
Ještě tu jsou grafické nástroje, které najdeme v balíčcích ''eximon4'', ''geximon'' a ''pfqueue''.
'''eximon4''' nabízí v prostředí X velmi primitivní pohled na fronty bez
větší možnosti cokoliv ovlivnit.
 
'''eximon4''' nabízí v prostředí X velmi primitivní pohled na fronty bez větší možnosti cokoliv ovlivnit.
'''geximon''' je daleko lepší, nabízí stav fronty, pohled na log soubory...
Ovšem na našem serveru jsme si grafické prostředí nenainstalovali...
Ale můžete si ho tam dát. Nejsem váš šéf. :o)
 
'''geximon''' je daleko lepší, nabízí stav fronty, pohled na log soubory... Ovšem na našem serveru jsme si grafické prostředí nenainstalovali... Ale můžete si ho tam dát. Nejsem váš šéf. :o)
'''pfqueue''' oceníme v konzoli - je to obdoba geximonu napsaná pro
konzoli. To si na našem serveru užijeme.
 
'''pfqueue''' oceníme v konzoli - je to obdoba geximonu napsaná pro konzoli. To si na našem serveru užijeme.
=== 6.7.5. Open Realy ===
Pokud si myslíte, že nejhorší věc, která vás v souvislosti s provozováním
mail serveru může potkat je, že nefunguje, mýlíte se. Nejhorší je,
když mail server funguje moc!
 
===Open Realy ===
Od doby, kdy se spam stal strašákem Internetu, vede snaha o jeho omezení
k tvrdým restrikcím vůči serverům, které jeho rozesílání umožňují. K takovým
serverům patří i ty, které jsou nastavené jako ''open-relay'' - tedy
umožňují, aby si je kdokoliv nastavil jako smpt server pro odesílání
pošty.
 
Pokud si myslíte, že nejhorší věc, která vás v souvislosti s provozováním mail serveru může potkat je, že nefunguje, mýlíte se. Nejhorší je, když mail server funguje moc!
Naše nastavení je z tohoto hlediska bezpečné. Jako odesílací smpt mohou
náš server používat jen počítače z naší lokální sítě. Přesto stojí
za to, nechat si svůj server otestovat.
 
Od doby, kdy se spam stal strašákem Internetu, vede snaha o jeho omezení k tvrdým restrikcím vůči serverům, které jeho rozesílání umožňují. K takovým serverům patří i ty, které jsou nastavené jako ''open-relay'' - tedy umožňují, aby si je kdokoliv nastavil jako smpt server pro odesílání pošty.
Jednak si zkuste na nějakém počítači mimo vaši síť nastavit poštovního
 
klienta tak, aby používal jako odesílací smtp server právě ten váš,
Naše nastavení je z tohoto hlediska bezpečné. Jako odesílací smpt mohou náš server používat jen počítače z naší lokální sítě. Přesto stojí za to, nechat si svůj server otestovat.
a pak zkuste poslat e-mail někomu jinému (samozřejmě ne v doméně
 
poštovního serveru, který testujeme;). Poštovní klient by měl hodit
Jednak si zkuste na nějakém počítači mimo vaši síť nastavit poštovního klienta tak, aby používal jako odesílací smtp server právě ten váš, a pak zkuste poslat e-mail někomu jinému (samozřejmě ne v doméně poštovního serveru, který testujeme;). Poštovní klient by měl hodit chybovou hlášku, že smtp server odmítl poštu doručit.
chybovou hlášku, že smtp server odmítl poštu doručit.
 
Další možností je využít nějakou testovací službu. Například:
 
* [[http://www.ordb.org/]] - oficiální databáze. Tady pozor, skončí-li váš test "úspěšně" (tj. budete otestování jako open-relay pozitivní), stanete se také hned součástí databáze open-relay serverů, tedy se ocitnete na black listu!
* [[http://www.antispam-ufrj.pads.ufrj.br/test-relay.html]] - tady to není tak divoké. Poztivní test vás jen upozorní, ale nikam nezapíše.
váš test "úspěšně" (tj. budete otestování jako open-relay pozitivní),
* [[http://www.abuse.net/relay.html]] - i zde se jen testuje bez následků.
stanete se také hned součástí databáze open-relay serverů, tedy se
* [[http://spamlinks.net/prevent-secure-relay-test.htm]] - tady najdete spoustu odkazů na další možnosti jak testovat (včetně výše zmíněných).
ocitnete na black listu!
 
* [[http://www.antispam-ufrj.pads.ufrj.br/test-relay.html]] - tady to
Otestování funuje zpravidla takto: Zadáte adresu vašeho poštovního serveru a za chvíli se vám začne vypisovat seznam různých pokusů (až špinavých triků), které by na váš server případný spamer mohl zkoušet. Pokud všechny skončí neúspěchem, můžeme si pogratulovat a jít na pivo.
není tak divoké. Poztivní test vás jen upozorní, ale nikam nezapíše.
* [[http://www.abuse.net/relay.html]] - i zde se jen testuje bez následků.
* [[http://spamlinks.net/prevent-secure-relay-test.htm]] - tady najdete
spoustu odkazů na další možnosti jak testovat (včetně výše zmíněných).
 
Pokud byste se na blacklistu ocitli, můžete se po opravě mail serveru nechat na ordb.org znovu otestovat a v případě, že je vše O.K., tak vás z blacklistu opět vyřadí.
Otestování funuje zpravidla takto: Zadáte adresu vašeho
poštovního serveru a za chvíli se vám začne vypisovat
seznam různých pokusů (až špinavých triků), které by na váš server
případný spamer mohl zkoušet. Pokud všechny skončí neúspěchem,
můžeme si pogratulovat a jít na pivo.
 
==POP3 a IMAP server Dovecot ==
Pokud byste se na blacklistu ocitli, můžete se po opravě mail serveru
nechat na ordb.org znovu otestovat a v případě, že je vše O.K., tak
vás z blacklistu opět vyřadí.
 
Po naistalování Dovecotu tyto služby neběží, je nutno je zpřístupnit v konfiguračním souboru:
== 6.8. POP3 a IMAP server Dovecot ==
 
Po naistalování Dovecotu tyto služby neběží, je nutno je zpřístupnit
/etc/dovecot/dovecot.conf
v konfiguračním souboru:
 
{{{
/etc/dovecot/dovecot.conf
}}}
A upravíme direktivy:
 
protocols = imap imaps pop3 pop3s
{{{
imap_listen = *
protocols = imap imaps pop3 pop3s
imap_listen pop3_listen = *
pop3_listen imaps_listen = *
imaps_listen pop3s_listen = *
 
pop3s_listen = *
Říkáme, že chceme použít imap i pop3, a to jak ve výchozím režimu (imap, pop3), tak i v šifrovaném přes ssl či tsl (imaps, pop3s).
}}}
Říkáme, že chceme použít imap i pop3, a to jak ve výchozím režimu (imap, pop3),
tak i v šifrovaném přes ssl či tsl (imaps, pop3s).
 
Pak můžeme Dovecot spustit (dáme restart pro sichr, kdyby náhodou přeci jen běžel:):
 
# /etc/init.d/dovecot restart
{{{
 
# /etc/init.d/dovecot restart
Ostatní výchozí nastavení vyhovují. Tzn. že hesla se budou posílat v plaintextu, tedy nešifrovaně. Umí-li klientský mailový program komunikovat přes ssl, pak se bude moci připojit takto, šifrovaně a nešifrovaná hesla vlastně budou šifrovaná (díky ssl). V opačném případě nám budou přes síť běhat hesla nešifrovaná, což může být problém.
}}}
 
Dovecot ovládá i zasílání šifrovaných hesel (cram-md5, digest-md5), jenže zde může být problém s klientem (mailovacím programem), který to neovládá...
 
Taky je třeba vzít v úvahu fakt, že tyto ověřovací mechanismy vyžadují vlastní databázi uživatel/heslo, což by znamenalo další komplikaci při přidávání uživatelů do systému. Navíc v této databázi jsou hesla uložena nešifrovaně, takže se nám bezpečnostní problém pouze přesouvá na jiné místo.
Ostatní výchozí nastavení vyhovují. Tzn. že hesla se budou posílat v plaintextu,
tedy nešifrovaně. Umí-li klientský mailový program komunikovat přes ssl, pak
se bude moci připojit takto, šifrovaně a nešifrovaná hesla vlastně budou šifrovaná
(díky ssl). V opačném případě nám budou přes síť běhat hesla nešifrovaná, což
může být problém.
 
Proto nakonec volím výchozí nastavení - zasílání nešifrovaných hesel s možností komunikace klienta se serverm přes šifrovanou vrstvu ssl.
Dovecot ovládá i zasílání šifrovaných hesel (cram-md5, digest-md5), jenže
zde může být problém s klientem (mailovacím programem), který to neovládá...
Taky je třeba vzít v úvahu fakt, že tyto ověřovací mechanismy vyžadují
vlastní databázi uživatel/heslo, což by znamenalo další komplikaci při
přidávání uživatelů do systému. Navíc v této databázi jsou hesla uložena
nešifrovaně, takže se nám bezpečnostní problém pouze přesouvá na jiné místo.
 
===Dovecot a SSL ===
Proto nakonec volím výchozí nastavení - zasílání nešifrovaných hesel
s možností komunikace klienta se serverm přes šifrovanou vrstvu ssl.
 
Dovecot si během instalace sám vygeneruje ceritfikáty, což si lze ověřit v <code>/etc/ssl</code>. Ve svém poštovním klientu tedy můžete použít místo stadnardních portů pro pop3(110) a imap(443) porty zabezpečené: pop3s(995), imaps(993).
=== 6.8.1. Dovecot a SSL ===
Dovecot si během instalace sám vygeneruje ceritfikáty, což si lze ověřit
v /etc/ssl. Ve svém poštovním klientu tedy můžete použít místo stadnardních
portů pro pop3(110) a imap(443) porty zabezpečené: pop3s(995), imaps(993).
 
== 6.9. WebMail - Squirrelmail ==
Webmail přidává nad e-mailový systém uživatelské rozhraní ovládané z prostředí internetového prohlížeče. Je to to, co známe třeba ze seznam.cz.
prohlížeče. Je to to, co známe třeba ze seznam.cz.
 
Projekt Squirrelmail sídlí na internetových stránkách [http://squirrelmail.org/]. V Debian Linuxu má samozřejmě svůj instalační balíček. Balíčky jsou dva: squirrelmail a squirrelmail-locales.
Linuxu má samozřejmě svůj instalační balíček. Balíčky jsou dva: squirrelmail a
squirrelmail-locales.
 
Po nainstalování spustíme program
 
# squirrelmail-configure
{{{
# squirrelmail-configure
}}}
 
který se ovládá pomocí jednoduchého menu. Nastavují se tu kosmetické věci, jakož i věci podstatné. Například sekce 2-server settings. Většinou ale zjistíme, že výchozí nastavení vyhovuje. Pozoruhodná je sekce 8-pluggins, kde si můžeme zapnout rozšíření, která jsou po instalaci vypnutá. Další plugginy můžeme stáhnout z domovských stránek projektu. Já třeba pro přidávání adres do adresáře nepoužívám standardně dodávaný pluggin <code>`abook-take`</code>, ale stahuji si <code>`address_add`</code>. Stažené plugginy se rozbalují do adresáře
který se ovládá pomocí jednoduchého menu. Nastavují se tu kosmetické věci,
jakož i věci podstatné. Například sekce 2-server settings. Většinou ale
zjistíme, že výchozí nastavení vyhovuje. Pozoruhodná je sekce 8-pluggins,
kde si můžeme zapnout rozšíření, která jsou po instalaci vypnutá. Další
plugginy můžeme stáhnout z domovských stránek projektu. Já třeba pro
přidávání adres do adresáře nepoužívám standardně dodávaný pluggin
{{{`abook-take`}}}, ale stahuji si {{{`address_add`}}}. Stažené plugginy se
rozbalují do adresáře
 
/usr/share/squirrelmail/pluggins
{{{
 
/usr/share/squirrelmail/pluggins
Po přidání sem, se příslušný pluggin objeví i v menu programu <code>`squirrelmail-configure`</code>, takže si ho pustíme a pluggin zapneme.
}}}
 
Po přidání sem, se příslušný pluggin objeví i v menu programu {{{`squirrelmail-configure`}}},
takže si ho pustíme a pluggin zapneme.
Výsledky práce nastavovacího programu jsou uloženy v souboru:
 
/etc/suqirrelmail/config.php
{{{
/etc/suqirrelmail/config.php
}}}
 
ve kterém můžeme dělat úpravy i ručně. Rovněž můžeme použít jako výchozí ten, který je v příloze <code>`nastaveni`</code> tohoto návodu.
je v příloze {{{`nastaveni`}}} tohoto návodu.
 
Další soubor, který nás zajímá je:
 
/etc/suqirrelmail/apache.conf
{{{
/etc/suqirrelmail/apache.conf
}}}
 
Ten si upravíme. V části {{{<code>`VirtualHost`}}}</code> upravíme název, pod jakým si budou uživatelé
webmail z prohlížeče vyvolávat. Třeba: {{{<code>`webmail.nase-stranky.cz`}}}</code>.
 
Poslední věc, kterou musíme udělat je, říct o webmailu http serveru Apache:
 
ln -s /etc/squirrelmail/apache.conf \
{{{
ln -s /etc/squirrelmailapache2/apachesites-enabled/020-squirrelmail.conf \
/etc/apache2/sites-enabled/020-squirrelmail.conf
}}}
 
A pak Apache restartovat. Spustíme prohlížeč internetových stránek a do adresního řádku zadáme adresu webmailu <code>`http://webmail.nase-skola.cz`</code>. Mělo by to fungovat.
zadáme adresu webmailu {{{`http://webmail.nase-skola.cz`}}}. Mělo by to fungovat.
 
=== 6.9.1. Česká kontrola pravopisu ===
Za prvé musíme mít nainstalovaný balíček ''aspell'' a český slovník pro aspell. Slovník v Debianu bohužel chybí, takže si ho musíme stáhnout z
[ftp://ftp.gnu.org/gnu/aspell/dict/cs/ ftp.gnu.org] - bereme ''aspell6-...''. A pak ho nainstalovat.
Slovník v Debianu bohužel chybí, takže si ho musíme stáhnout z
[ftp://ftp.gnu.org/gnu/aspell/dict/cs/ ftp.gnu.org] - bereme ''aspell6-...''.
A pak ho nainstalovat.
 
V ''squirrelmail-configure'' Je třeba zapnout plugin ''SquirrelSpell'' a pak ručně editovat soubor
 
ručně editovat soubor
/etc/squireelmail/sqspqll_config.php
 
{{{
/etc/squireelmail/sqspqll_config.php
}}}
a přidat do něj řádek
 
$SQSPELL_APP['Czech'] = '/usr/bin/aspell -d cs -a';
{{{
 
$SQSPELL_APP['Czech'] = '/usr/bin/aspell -d cs -a';
}}}
za uzavírací složenou závorku prvního ''if''u.
 
Nebo použijeme předvařený konfigurák ze sekce ''nastavení''.:o)
 
Ve webmailu pak objevíme v sekci "nastavení" podsekci "kontrola pravopisu", v níž vedle anglického bude i český slovník. Nastavíme ho jako výchozí a naše nové majly od teď budou bez překlepů a tak...:o)
 
vedle anglického bude i český slovník. Nastavíme ho jako výchozí a naše nové
==MailScanner - maily bez spamu a virů ==
majly od teď budou bez překlepů a tak...:o)
===Instalace ===
 
== 6.10. MailScanner - maily bez spamu a virů ==
=== 6.10.1. Instalace ===
Nainstalujeme balíčky:
 
MailScanner
 
To je program, který se o vše stará, ale sám nic neumí. Tedy praktického. Chroupe všechny
To je program, který se o vše stará, ale sám nic neumí. Tedy praktického. Chroupe všechny e-maily došlé na náš systém a podle konfigurace je předává dalším programům ke kontrole. Typicky to jsou antivirový a antispamový program.
; ClamAV : Antivirový program pro mailové servery. Je spouštěn MailScannerem.
Typicky to jsou antivirový a antispamový program.
; ClamAV-freshclam : Důležitá součást antiviru - program, který si z Internetu stahuje aktualizace virové databáze.
ClamAV
; ClamAV-docs : Dokumentace se občas hodí. ;-)
Antivirový program pro mailové servery. Je spouštěn MailScannerem.
; arj, unzoo, unrar, lha : Balíčky doporučované a navrhované balíčkem ClamAV. Obsluhují různé komprimované archivy.
ClamAV-freshclam
; SpamAssassin : Spamový filtr, založení na přemýšlení a porovnávání obsahu mailu.
Důležitá součást antiviru - program, který si z Internetu stahuje aktualizace virové databáze.
; Razor : Spamový filtr, který identifikuje spamy přímo díky spolupráci s internetovou databází.
ClamAV-docs
Dokumentace se občas hodí. ;-)
arj, unzoo, unrar, lha
Balíčky doporučované a navrhované balíčkem ClamAV. Obsluhují různé komprimované archivy.
SpamAssassin
Spamový filtr, založení na přemýšlení a porovnávání obsahu mailu.
Razor
Spamový filtr, který identifikuje spamy přímo díky spolupráci s internetovou databází.
 
=== 6.10.2. Nastavení - MailScanner ===
 
==== 6.10.2.1. MailScanner.conf ====
====MailScanner.conf ====
 
Otevřeme konfigurační soubor
 
/etc/MailScanner/MailScanner.conf
{{{
 
/etc/MailScanner/MailScanner.conf
}}}
a upravíme následující řádky (uvádím jen nové hodnoty):
 
Cesta k adresáři s českými hláškami:
 
%report-dir% = /etc/MailScanner/reports/cz
{{{
 
%report-dir% = /etc/MailScanner/reports/cz
Dále stručné pojmenování naší organizace. (Toto jméno se má - dle instrukcí - nastavit i v souboru <code>/etc/MailScanner/spam.assassin.prefs.conf</code>). Bude vkládáno mj. do hlaviček e-mailů:
}}}
 
Dále stručné pojmenování naší organizace. (Toto jméno se má - dle instrukcí - nastavit i v souboru
%org-name% = Nase-Skola
{{{/etc/MailScanner/spam.assassin.prefs.conf}}}). Bude vkládáno mj. do hlaviček e-mailů:
 
{{{
%org-name% = Nase-Skola
}}}
Úplné pojmenování organizace. Může být i víceřádkové. Odřádkování se naznačí pomocí ''\n''.
 
%org-long-name% = Naše Škola v Bolívii \n Za Bogottou 35 \n Paranaa
{{{
 
%org-long-name% = Naše Škola v Bolívii \n Za Bogottou 35 \n Paranaa
}}}
Stránky školy, nebo lépe, stránka s vysvětlivkou, proč byl mail odmítnut ap.:
 
%web-site% = www.nase-skola.cz/mailscanner/vysvetlivky.html
{{{
 
%web-site% = www.nase-skola.cz/mailscanner/vysvetlivky.html
}}}
V sekci kontroly virů musí být nastaveno:
 
Virus Scanning = yes
{{{
Virus ScanningScanners = yesclamav
Virus Scanners = clamav
}}}
Tento řádek nastavuje hlavičku, která se přidá do mailu, a která říká, jakého skóre
mail dosáhnul z hlediska zda je či není spamem:
 
Tento řádek nastavuje hlavičku, která se přidá do mailu, a která říká, jakého skóre mail dosáhnul z hlediska zda je či není spamem:
{{{
 
Spam Score Header = X-%org-name%-MailScanner-SpamScore:
Spam Score Header = X-%org-name%-MailScanner-SpamScore:
}}}
 
A tento říká, jak bude skóre označeno. V tomto případě to bude tolik písmenek ''s'',
A tento říká, jak bude skóre označeno. V tomto případě to bude tolik písmenek ''s'', kolik dostal mail "spamových bodů".
 
 
Spam Score Character = s
 
{{{
Spam Score Character = s
}}}
Kdybychom chtěli místo "syčení" skutečně číslo, nastavíme tohle na ''yes'':
 
SpamScore Number Instead Of Stars = no
{{{
SpamScore Number Instead Of Stars = no
}}}
 
Tato pravidla užijeme v poštovním programu k filtrování spamu. V nastaveních našeho oblíbeného poštovního klienta si najdeme "filtry" a přidáme podmínku, říkající, že když hlavička ''X-Nase-Skola-MailScanner-SpamScore:'' obsahuje "''ssssss''" (tedy minimálně šest bodů), přesuň jí do složky, kterou si na spamy vytvoříme. Nedoporučuji spam automaticky mazat. Může se stát, že se do spamu dostane i něco zdravého a pak budete litovat.:o)
Tato pravidla užijeme v poštovním programu k filtrování spamu. V nastaveních
našeho oblíbeného poštovního klienta si najdeme "filtry" a přidáme podmínku,
říkající, že když hlavička ''X-Nase-Skola-MailScanner-SpamScore:'' obsahuje
"''ssssss''" (tedy minimálně šest bodů), přesuň jí do složky, kterou si na
spamy vytvoříme. Nedoporučuji spam automaticky mazat. Může se stát, že se do
spamu dostane i něco zdravého a pak budete litovat.:o)
 
Tím jsme s konfiguračním souborem hotovi.
 
==== 6.10.2.2. Další nastavení pro MailScanner ====
 
Aby MailScanner spolupracoval s e-mailovým serverem je potřeba ho do procesu
zpracování e-mailů zapojit. Návod (originál) je zde:
 
file:///usr/share/doc/mailscanner/README.exim4
{{{
 
file:///usr/share/doc/mailscanner/README.exim4
}}}
A zde je jeho překlad:
 
Řádek 2 001 ⟶ 1 884:
Změníme práva pro uživatele exim4:
 
# chown -R Debian-exim:Debian-exim /var/spool/MailScanner
{{{
# chown -R Debian-exim:Debian-exim /var/spoollib/MailScanner
# chown -R Debian-exim:Debian-exim /var/librun/MailScanner
# chown -R Debian-exim:Debian-exim /var/runlock/subsys/MailScanner
# chown -R Debian-exim:Debian-exim /var/lock/subsys/MailScanner
}}}
Vytvoříme spoolový adresář pro příchozí frontu (ten první řádek je dobrá finta,
co? taky jste to neznali?:o)
 
Vytvoříme spoolový adresář pro příchozí frontu (ten první řádek je dobrá finta, co? taky jste to neznali?:o)
{{{
 
# mkdir -p /var/spool/exim4_incoming/{db,input,msglog}
# chownmkdir -R Debian-exim:Debian-eximp /var/spool/exim4_incoming/{db,input,msglog}
# chmodchown -R 750Debian-exim:Debian-exim /var/spool/exim4_incoming
# chmod -R 750 /var/spool/exim4_incoming
}}}
 
Pokud jste si nakonfigurovali Exim4 s parametrem {{{`Split Exim Spool = yes`}}},
Pokud jste si nakonfigurovali Exim4 s parametrem <code>`Split Exim Spool = yes`</code>, což v našem řešení není, tak koukněnte do originál návodu, je tam pár věcí navíc.
 
Vytvoříme logovací adresář pro příchozí frontu:
 
# mkdir -p /var/log/exim4_incoming
{{{
# mkdirchown -pR Debian-exim:adm /var/log/exim4_incoming
# chownchmod -R Debian-exim:adm2750 /var/log/exim4_incoming
 
# chmod -R 2750 /var/log/exim4_incoming
}}}
Upravíme soubor
 
/etc/logrotate.d/exim4-base
{{{
 
/etc/logrotate.d/exim4-base
tak aby rotovaly logy v obou frontách. Já to vyřešil tak, že jsem ho zkopíroval do ''exim4-base-mailscanner'' a v něm jsem upravil cestu k logům z exim4 na exim4_incomming.
}}}
tak aby rotovaly logy v obou frontách. Já to vyřešil tak, že jsem ho
zkopíroval do ''exim4-base-mailscanner'' a v něm jsem upravil
cestu k logům z exim4 na exim4_incomming.
 
Upravíme soubor
 
/etc/default/exim4
{{{
 
/etc/default/exim4
}}}
takto:
 
* nastavíme QUEUERUNNER na hodnotu `separate'
* přidáme do QUEUERUNNEROPTIONS `-DOUTGOING'
* přidáme do SMTPLISTENEROPTIONS `-odq'
 
Následující řádky přidáme na záčátek souboru
 
/etc/exim4/exim4.conf.template
{{{
 
/etc/exim4/exim4.conf.template
 
}}}
 
{{{
.ifdef OUTGOING
SPOOLDIR = /var/spool/exim4
.else
queue_only = true
queue_only_override = false
SPOOLDIR = /var/spool/exim4_incoming
log_file_path = /var/log/exim4_incoming/%slog
.endif
 
}}}
Zmíněné řádky jsou uvedeny v
 
/usr/share/doc/mailscanner/examples/01_mailscanner_config
{{{
/usr/share/doc/mailscanner/examples/01_mailscanner_config
}}}
Pokud bychom měli dělenou konfiguraci (což nemáme), pak bychom
místo předchozího přidávání řádků do exim4.conf.template zkopírovali
tento soubor (''01_mailscanner_config'') do /etc/exim4/conf.d/main/.
 
Pokud bychom měli dělenou konfiguraci (což nemáme), pak bychom místo předchozího přidávání řádků do exim4.conf.template zkopírovali tento soubor (''01_mailscanner_config'') do /etc/exim4/conf.d/main/.
Spustíme aktualizaci konfiguračních souborů Exim4 a restartujeme ho
(obě akce udělá tento příkaz):
 
Spustíme aktualizaci konfiguračních souborů Exim4 a restartujeme ho (obě akce udělá tento příkaz):
{{{
 
invoke-rc.d exim4 restart
invoke-rc.d exim4 restart
}}}
 
Upravíme
 
/etc/cron.daily/exim4-base
{{{
 
/etc/cron.daily/exim4-base
tak, aby byl volán exim_tidydb na oba spool adresáře (tj i na nový exim4_incomming).
}}}
tak, aby byl volán exim_tidydb na oba spool adresáře (tj i na nový
exim4_incomming).
 
Upravíme
 
/etc/default/mailscanner
{{{
 
/etc/default/mailscanner
}}}
a odkomentářujeme řádek:
 
run_mailscanner=1
{{{
 
run_mailscanner=1
čímž docílíme toho, že od nyní se bude MailScanner automaticky při startu počítače spouštět.
}}}
čímž docílíme toho, že od nyní se bude MailScanner automaticky při
startu počítače spouštět.
 
Dále nastavíme v
 
/etc/MailScanner/MailScanner.conf
{{{
 
/etc/MailScanner/MailScanner.conf
 
}}}
Sendmail = /usr/sbin/exim4 -DOUTGOING
{{{
Sendmail Sendmail2 = /usr/sbin/exim4 -DOUTGOING
Sendmail2 = /usr/sbin/exim4 -DOUTGOING
}}}
 
Nyní závěrečná třešínka na dortu:
 
/etc/init.d/mailscanner start
{{{
 
/etc/init.d/mailscanner start
}}}
a už to frčí!
=== 6.10.3. Nastavení ClamAV - antivirus ===
V našem řešení je antivirus spouštěn MailScannerem. Výchozí konfigurace
antivirového programu bude nejspíš vyhovovat. Chcete-li se tím trochu
víc zabývat, například proto, že chcete spouštět ClamAV bez MailScanneru,
hledejte v dokumentaci.
 
=== 6.10.4. Nastavení SpamAssassinClamAV - antispam antivirus===
 
V našem řešení je SpamAssassin spouštěn prostřednictvím MailScanneru.
V našem řešení je antivirus spouštěn MailScannerem. Výchozí konfigurace antivirového programu bude nejspíš vyhovovat. Chcete-li se tím trochu víc zabývat, například proto, že chcete spouštět ClamAV bez MailScanneru, hledejte v dokumentaci.
Pokud bychom chtěli systém pouze se spamovým filtrem (bez AntiViru),
 
pak by byl MailScanner zbytečný. V tom případě by stačilo provozovat
samotný===Nastavení SpamAssassin. To- ale není předmětem této dokumentace.antispam===
 
V našem řešení je SpamAssassin spouštěn prostřednictvím MailScanneru. Pokud bychom chtěli systém pouze se spamovým filtrem (bez AntiViru), pak by byl MailScanner zbytečný. V tom případě by stačilo provozovat samotný SpamAssassin. To ale není předmětem této dokumentace.
 
Dokumentace ke Spamassassinu je mj:
 
/usr/share/doc/spamassassin/
{{{
perldoc sa-learn
/usr/share/doc/spamassassin/
perldoc sa-learnMail::SpamAssassin::Conf
perldoc Mail::SpamAssassin::Conf
}}}
 
Soubory s nastavením hledejme zde:
 
<code>/etc/MailScanner/spam.assassin.prefs.conf</code> - Tohle je místo, kde měnit konfiguraci pro SpamAssassin v případě, že používáme MailScanner. Tento konfigurační soubor přebíjí všechny konfigurace SpamAssassinu (zpracovává se jako poslední). Vlastní konfiguráky SpamAssassinu tedy můžeme ignorovat. Jsou to tyto:
{{{/etc/MailScanner/spam.assassin.prefs.conf}}} - Tohle je místo, kde
 
měnit konfiguraci pro SpamAssassin v případě, že používáme MailScanner.
* <code>/usr/share/spamassassin/</code> - výchozí nastavení (neměnit!)
Tento konfigurační soubor přebíjí všechny konfigurace SpamAssassinu
* <code>/etc/spamassassin/</code> - naše výchozí nastavení pro všechny uživatele
(zpracovává se jako poslední). Vlastní konfiguráky SpamAssassinu tedy
* <code>~/.spamassassin/</code> - soubory uživatele - některé přidává spamassassin sám.
můžeme ignorovat. Jsou to tyto:
* <code>~/.spamassassin/user_prefs</code> - osobní nastavení uživatelů (spamd ignoruje!)
 
==FTP server ==
 
Slouží k přenášení souborů mezi serverem a počítačem u kterého právě sedíme. Určitě ho využije webmaster pro úpravu internetových stránek - umožní mu to spojit se s kořenovým adresářem stránek odkudkoliv z lokální sítě i z Internetu. Samozřejmě může použít i Sambu - tedy na lokální síti.
* {{{/usr/share/spamassassin/}}} - výchozí nastavení (neměnit!)
* {{{/etc/spamassassin/}}} - naše výchozí nastavení pro všechny uživatele
* {{{~/.spamassassin/}}} - soubory uživatele - některé přidává spamassassin sám.
* {{{~/.spamassassin/user_prefs}}} - osobní nastavení uživatelů (spamd ignoruje!)
 
K dispozici ho budou mít ale všichni uživatelé. Jen nesmíme zapomenout, že ve výchozím nastavení serveru mohou uživatelé procházet celým souborovým systémem, což se nám nelíbí, takže to musíme nastavit tak, aby uživatelé byli "zamčeni" ve svém domovském adresáři a ven z něj se nedostali.
== 6.11. FTP server ==
Slouží k přenášení souborů mezi serverem a počítačem u kterého právě sedíme.
Určitě ho využije webmaster pro úpravu internetových stránek - umožní mu to spojit
se s kořenovým adresářem stránek odkudkoliv z lokální sítě i z Internetu.
Samozřejmě může použít i Sambu - tedy na lokální síti.
 
Použil jsem ftp server ProFTPD. Při instalaci musíte rozhodnout, jestli má běžet v režimu ''standalone'', nebo ''inetd''. Vybereme ''inetd'', protože není důvod, aby permanentně strašil v paměti. Server po nainstalování hned pracuje. Provedeme jen drobnou úpravu v jeho konfiguračním souboru:
K dispozici ho budou mít ale všichni uživatelé. Jen nesmíme zapomenout,
že ve výchozím nastavení serveru mohou uživatelé procházet celým souborovým
systémem, což se nám nelíbí, takže to musíme nastavit tak, aby uživatelé byli
"zamčeni" ve svém domovském adresáři a ven z něj se nedostali.
 
/etc/proftpd.conf
Použil jsem ftp server ProFTPD. Při instalaci musíte rozhodnout, jestli má běžet v režimu
''standalone'', nebo ''inetd''. Vybereme ''inetd'', protože není důvod, aby permanentně
strašil v paměti. Server po nainstalování hned pracuje. Provedeme jen drobnou úpravu
v jeho konfiguračním souboru:
 
{{{
/etc/proftpd.conf
}}}
Hlavně přidáme direktivu
 
DefaultRoot ~
{{{
 
DefaultRoot ~
}}}
ta zajistí, že uživateli se po přihlášení bude jeho domovský adresář jevit jako kořenový
(je tam tzv. chrootnutej). Nedostane se tedy do kořenového adresáře systému a nemůže tak šmejdit tam kde ho nechceme (třeba v /etc).
šmejdit tam kde ho nechceme (třeba v /etc).
 
Ostatní výchozí nastavení vyhovují, včetně zablokovaného anonymního přístupu.
 
Pokud jde o uživatele ''webmaster'', při jeho vytváření jsme mu zadali jako domovský adresář <code>`/var/www/nase-stranky`</code>, ale o tom píšu v kapitole o Apache web serveru.
adresář {{{`/var/www/nase-stranky`}}}, ale o tom píšu v kapitole o Apache web serveru.
 
== 6.12. SSH server ==
Neboli SecureShell (SSH) slouží ke vzdálenému přihlašování. Nainstalujeme ho proto, abychom se mohli k serveru přihlásit odkudkoliv z Internetu a spravovat ho, jako bychom u něj seděli. Na jednu stranu to zní lákavě, na druhou nebezpečně. Takže jak být opatrný.
se mohli k serveru přihlásit odkudkoliv z Internetu a spravovat ho, jako bychom u něj
seděli. Na jednu stranu to zní lákavě, na druhou nebezpečně. Takže jak být opatrný.
 
Po nainstalování OpenSSH (je nainstalován standardně, nemusíme o to prosit) si otevřeme konfigurační soubor:
konfigurační soubor:
 
/etc/ssh/sshd_config
{{{
/etc/ssh/sshd_config
}}}
a přidáme tam directivu:
 
a přidáme tam direktivu:
{{{
AllowUsers jenomja
}}}
Kde {{{`jenomja`}}} je uživatleské jméno, které si zřídíme právě jen pro toto přihlašování.
Dáme mu pekleně kvalitní heslo. Z jakéhokoliv počítače se tedy přihlásíme na náš server
jedině takto:
 
AllowUsers jenomja
{{{
 
# ssh jenomja@nase-skola.cz
Kde <code>`jenomja`</code> je uživatelské jméno, které si zřídíme právě jen pro toto přihlašování. Dáme mu pekleně kvalitní heslo. Z jakéhokoliv počítače se tedy přihlásíme na náš server jedině takto:
}}}
 
Pak jsme požádáni o zadání hesla (toho pekleně kvalitního:) a jsme na serveru. Zbývá jen
 
se přepnout pod superuživatelský účet:
# ssh jenomja@nase-skola.cz
 
Pak jsme požádáni o zadání hesla (toho pekleně kvalitního:) a jsme na serveru. Zbývá jen se přepnout pod superuživatelský účet:
 
$ su -
 
{{{
$ su -
}}}
zadat heslo (ještě pekelnější). A už administrujeme.
 
Není dobré nechat jako možnost přihlásit se rovnou jako ''root''. Většina útoků silou na náš server bude vedena snahou přihlásit se jako ''root''. To si časem při studiu systémových logů všimnete. Taky uvidíte, že tu bývají při podobných snahách náhodně generovaná uživatelská jména z rodu těch "normálních" (John, Peter...) takže pro tohoto přihlašovacího uživatele zvolte něco méně tradičního (třeba ''winhacker'':o)
na náš server bude vedena snahou přihlásit se jako ''root''. To si časem při studiu systémových
logů všimnete. Taky uvidíte, že tu bývají při podobných snahách náhodně generovaná
uživatelská jména z rodu těch "normálních" (John, Peter...) takže pro tohoto
přihlašovacího uživatele zvolte něco méně tradičního (třeba ''winhacker'':o)
 
Pokud se budete chtít na server přihlásit a nebudete mít k dispozici linuxový (nebo jiný unixový) systém, ale jen MS Windows, nainstalujte si tam program PuTTY, který je náhradou ssh pro win-mašiny. Stáhnout si ho můžete třeba [http://www.chiark.greenend.org.uk/~sgtatham/putty/ odsud].
(nebo jiný unixový) systém, ale jen MS Windows, nainstalujte si tam program PuTTY,
který je náhradou ssh pro win-mašiny. Stáhnout si ho můžete třeba
[http://www.chiark.greenend.org.uk/~sgtatham/putty/ odsud].
 
== 6.13. NIS - sdílení systémových souborů ==
 
Služba ''nis'' slouží ke zjednodušení údržby některých systémových souborů,
Služba ''nis'' slouží ke zjednodušení údržby některých systémových souborů, které máme v síti na všech strojích stejné. Typicky to jsou ''hosts'', ''passwd'', ''group'', ''shadow'', ''ethers'',... NIS umožňuje udržovat tyto soubory na jediném počítači - nis serveru - a ostatní počítače, klienti, si o ně serveru říkají. Bohužel to nejde udělat s libovolnými soubory.
které máme v síti na všech strojích stejné. Typicky to jsou ''hosts'',
''passwd'', ''group'', ''shadow'', ''ethers'',... NIS umožňuje udržovat
tyto soubory na jediném počítači - nis serveru - a ostatní počítače, klienti,
si o ně serveru říkají. Bohužel to nejde udělat s libovolnými soubory.
 
Seznam možností je v manuálové stránce ''nsswitch.conf'' (5).
 
Balíček ''nis'' obsahuje serverovou i klientskou část. Při instalaci se ptá na jméno domény nis. To si můžeme vymyslet libovolné - na serveru a stanicích ho pak ale musíme zadat pochopitelně všude stejné.
 
jméno domény nis. To si můžeme vymyslet libovolné - na serveru a stanicích
Po nainstalování se automaticky spustí klientská část. Je dobré jí nechat běžet i na serverové stanici, i když na serveru asi budeme číst sdílené soubory přímo a ne přes nis. Běžící klient na serverové stanici nám ale může pomoci při hledání problémů.
ho pak ale musíme zadat pochopitelně všude stejné.
 
=== Na serveru ===
Po nainstalování se automaticky spustí klientská část. Je dobré jí nechat
běžet i na serverové stanici, i když na serveru asi budeme číst sdílené
soubory přímo a ne přes nis. Běžící klient na serverové stanici nám ale může
pomoci při hledání problémů.
 
=== 6.13.1. Na serveru ===
Po nainstalování balíčku nis:
 
* {{{<code>/etc/default/nis}}}</code> - opravit {{{<code>NISSERVER=false}}}</code> na {{{<code>=master}}}</code>.
* zkontrolujeme si {{{<code>/etc/hosts}}}</code>. Je tu řádek:
{{{
127.0.0.1 localhost.localdomain localhost
}}}
Adrese 127.0.0.1 nesmí být přiřazeno jméno hostitele. Mohlo by to působit
selhání některých operací (v dokumentaci to není blíže zdůvodněno).
* {{{/etc/ypserv.securenets}}} - přidáme sem číslo naší lokální sítě. Například:
{{{
255.255.255.0 192.168.1.0
}}}
V Debian Sarge tu je řádek
{{{
0.0.0.0 0.0.0.0
}}}
který umožňuje připojení komukoliv, tak ten zakomentářujeme.
* editujeme {{{/var/yp/Makefile}}} - tam najdeme řádek
{{{all:}}} za kterým následuje seznam systémových souborů, které chceme prostřednictvím
služby nis sdílet. Já jsem odsud vyndal názvy souborů ''rpc'', ''services'' a ''protocols'',
protože mám na serveru Debian stable a na stanicích verzi testing a nejsem
si jistý, zda by se tyto soubory nemohly lišit. Navíc do těchto souborů stejně nehrabu.
Naopak jsem odkometářoval: ''ethers'' a ''networks'' (pokud tyto soubory v {{{/etc/}}}
na serveru neexistují, je potřeba je vytvořit aspoň prázdné).
 
127.0.0.1 localhost.localdomain localhost
Taky je možné přidat soubor aliases (ten navíc vyžaduje odkomentářovat řádek
 
ALIASES o cca 25 řádků výše). Zatím jsem to ale nevyužil. Vlastně nejde. Pohled
Adrese 127.0.0.1 nesmí být přiřazeno jméno hostitele. Mohlo by to působit selhání některých operací (v dokumentaci to není blíže zdůvodněno).
do manuálové stránky k nsswitch.conf říká, že to není dosud implementováno.
 
* <code>/etc/ypserv.securenets</code> - přidáme sem číslo naší lokální sítě. Například:
 
255.255.255.0 192.168.1.0
 
V Debian Sarge tu je řádek
 
0.0.0.0 0.0.0.0
 
který umožňuje připojení komukoliv, tak ten zakomentářujeme.
* editujeme <code>/var/yp/Makefile</code> - tam najdeme řádek <code>all:</code> za kterým následuje seznam systémových souborů, které chceme prostřednictvím služby nis sdílet. Já jsem odsud vyndal názvy souborů ''rpc'', ''services'' a ''protocols'', protože mám na serveru Debian stable a na stanicích verzi testing a nejsem si jistý, zda by se tyto soubory nemohly lišit. Navíc do těchto souborů stejně nehrabu. Naopak jsem odkometářoval: ''ethers'' a ''networks'' (pokud tyto soubory v <code>/etc/</code> na serveru neexistují, je potřeba je vytvořit aspoň prázdné).
 
Taky je možné přidat soubor aliases (ten navíc vyžaduje odkomentářovat řádek ALIASES o cca 25 řádků výše). Zatím jsem to ale nevyužil. Vlastně nejde. Pohled do manuálové stránky k nsswitch.conf říká, že to není dosud implementováno.
 
A ještě si povšimneme, že soubor shadow se přidává sám o pár řádků pod ''all:'' níže.
 
* zadáme příkaz
 
# /usr/lib/yp/ypinit -m
 
kterým inicializujeme server jako master server. Bude se nás to ptát na jména všech dalších nis serverů v doméně. Máme-li jen ten jeden, ukončíme zadávání CTRL+D a správnost potvrdíme <code>"y"</code>. Pak sledujeme, jak se generují tabulky jednotlivých sdílených souborů (passwd, group,...).
* restartovat:
 
# /etc/init.d/nis restart
 
A ještě si povšimneme, že soubor shadow se přidává sám o pár řádků pod ''all:'' níže.
* zadáme příkaz
{{{
# /usr/lib/yp/ypinit -m
}}}
kterým inicializujeme server jako master server. Bude se nás to ptát na
jména všech dalších nis serverů v doméně. Máme-li jen ten jeden, ukončíme
zadávání CTRL+D a správnost potvrdíme {{{"y"}}}. Pak sledujeme, jak se generují tabulky
jednotlivých sdílených souborů (passwd, group,...).
* restartovat:
{{{
# /etc/init.d/nis restart
}}}
Sledujeme, které služby startují (ypserv, ypbind, yppasswd).
 
To by mělo stačit. Další možnosti viz. originální dokumentace.
 
==== 6.13.1.1. Aktualizace sdílených souborů na serveru ====
Kdykoliv v budoucnu něco změníme ve sdílených souborech (přidáme počítač
do /etc/hosts, přidáme/odstraníme uživatele ze systému,...) musíme aktualizovat
tabulky služby nis takto:
 
Kdykoliv v budoucnu něco změníme ve sdílených souborech (přidáme počítač do <code>/etc/hosts</code>, přidáme/odstraníme uživatele ze systému,...) musíme aktualizovat tabulky služby nis takto:
{{{
 
# cd /var/yp
# cd /var/yp
# make
# make
}}}
 
a restartovat nis:
 
# /etc/init.d/nis restart
{{{
 
# /etc/init.d/nis restart
}}}
(asi by stačilo i reload místo restart) (možná není restart vůbec nutný..?).
 
'''Poznámka:''' Příkaz ''adduser'' se v Debianu se snaží chovat inteligentně, takže při přidávání uživatele provede aktualizaci tabulek nis automaticky. To uvidíte. Jenže pak výše zmíněnou aktualizaci (<code>make</code> v <code>/var/yp</code>) spusťte raději ještě jednou ručně. Po ''adduser'' to nebylo zcela košer.
při přidávání uživatele provede aktualizaci tabulek nis automaticky.
To uvidíte. Jenže pak výše zmíněnou aktualizaci (make v /var/yp) spusťte raději
ještě jednou ručně. Po ''adduser'' to nebylo zcela košer.
 
=== 6.13.2. Na klientských stanicích ===
==== 6.13.2.1. Úprava /etc/nsswitch.conf ====
Nejdříve upravíme {{{/etc/nsswitch.conf}}}. Tady si ujasnime, co má stanice
brát z vlastních souborů a co z nis serveru. Navrhuji toto:
 
====Úprava /etc/nsswitch.conf ====
{{{
passwd: compat nis
group: compat nis
shadow: compat nis
 
Nejdříve upravíme {{{/etc/nsswitch.conf}}}. Tady si ujasnime, co má stanice brát z vlastních souborů a co z nis serveru. Navrhuji toto:
hosts: files nis dns
networks: files nis
 
protocols passwd: db files compat nis
services group: db files compat nis
ethers shadow: compat nis db files
rpc: db files
 
netgroup hosts: files nis dns
networks: files nis
}}}
 
protocols: db files
To zajistí, že při přihlašování budou nejdříve kontrolovány lokální soubory
services: db files
na stanici a teprve potom služba nis. Toto pořadí je důležité, aby se mohl přihlásit
ethers: nis db files
root, když není přístupná síť (obrácené pořadí {{{nis compat}}} by ten problém působilo).
rpc: db files
 
netgroup: nis
 
To zajistí, že při přihlašování budou nejdříve kontrolovány lokální soubory na stanici a teprve potom služba nis. Toto pořadí je důležité, aby se mohl přihlásit root, když není přístupná síť (obrácené pořadí {{{nis compat}}} by ten problém působilo).
 
Poznámka: Místo ''compat'' - by tu mohlo být i ''files'', stejně compat pravidla asi nevyužijeme.
 
Jména a adresy počítačů (''hosts'') a sítí (''networks'') se budou nejdřív hledat v souborech na stanici a po neúspěchu bude oslovena služba nis. U ''hosts'' navíc ještě pak DNS.
hledat v souborech na stanici a po neúspěchu bude oslovena služba nis.
U ''hosts'' navíc ještě pak DNS.
 
Protocols, services a rpc, jak jsem se už zmínil, do nis netahám z důvodu odlišných verzí Debian Linuxu na stanicích a na serveru.
odlišných verzí Debian Linuxu na stanicích a na serveru.
 
Seznam ethernetových karet s převodem na IP adresy (''ethers'') se ale udržuje ručně, takže tady je nis v pořádku.
ručně, takže tady je nis v pořádku.
 
Soubor ''netgroup'' je čistě záležitostí služby ''nis'' - bez ní by tento soubor stejně neměl smysl (např, když ''nis'' nefunguje), takže je tu jen to nis - vždy se vyžádá verze ze serveru.
stejně neměl smysl (např, když ''nis'' nefunguje), takže je tu jen to nis - vždy
se vyžádá verze ze serveru.
 
==== 6.13.2.2. Instalace balíku nis na stanici ====
Nainstalujeme balík nis na všech klietnským počítačích. Při instalaci budeme požádáni o zadání jména domény pro službu nis. Zadáme stejné, jako jsme zadali při instalaci serveru.
požádáni o zadání jména domény pro službu nis. Zadáme stejné, jako jsme
zadali při instalaci serveru.
 
Po nainstalování vše běží - tj. výchozí nastavení stanice zcela vyhovuje.
 
Můžeme upravit {{{<code>/etc/ypbind.conf}}}</code>, který umožňuje zadat adresu nis serveru "natvrdo", ale výchozí nastavení "broadcast" (které ani nemusíme uvádět)
nis serveru "natvrdo", ale výchozí nastavení "broadcast" (které ani nemusíme uvádět)
je v malé síti naprosto vyhovující.
 
==== 6.13.2.3. Ověření funkčnosti ====
 
K tomu máme pár prima příkazů, které si můžeme zkusit z klientské stanice:
 
{{{<code># ypcat hosts.byaddr}}}</code> - vypíše obsah tabulky vygenerované z /etc/hosts na serveru
 
{{{<code># ypmatch normaluser passwd}}}</code> - to vypíše řádek týkající se uživatele ''normaluser'' z tabulky ''passwd''.
z tabulky ''passwd''.
 
{{{<code># ypmatch root passwd}}}</code> - to skončí chybou, protože v souboru ''passwd'' se sdílejí jen uživatelé u UID od 1000 výše (nastaveno je to v <code>/var/yp/Makefile</code>) a root má vždy číslo 0.
uživatelé u UID od 1000 výše (nastaveno je to v {{{/var/yp/Makefile}}}) a root má vždy číslo 0.
 
Seznam všech tabulek poskytovaných službou ''nis'' najdete na serveru v adresáři <code>/var/yp/doména</code> (místo doména dosaďte sktuečné jméno vaší domény).
adresáři {{{/var/yp/doména}}} (místo doména dosaďte sktuečné jméno vaší domény).
 
= Užitečné soubory =
Hledejte zde: [http://grumpa.net/works/soubory/server/ http://grumpa.net/works/soubory/server/]
 
Hledejte zde: http://grumpa.net/works/soubory/server/
* '''grumpa.net-sarge-zaklad''' - je seznam balíčků pro apt-get, který použijeme po
 
nainstalování serveru k doinstalování nezbytných balíčků pro náš server.
* '''grumpa.net-sarge-extraszaklad''' - zdeje jsouseznam balíčkybalíčků pro apt-get, kterékterý najdetepoužijeme napo CDnainstalování Grumpaserveru k doinstalování nezbytných balíčků pro náš server.net
* '''grumpa.net-sarge-extras''' - zde jsou balíčky, které najdete na CD Grumpa.net server navíc oproti těm základním. Jelikož na CD zbývá ještě poměrně dost místa, je tu prostor pro vaše návrhy, co ještě na CD přihodit. Pište mi!
* '''nastaveni''' - v tomto adresáři jsou konfigurační soubory, které jsou upravené pro potřeby našeho serveru. Obsahují tedy ta nastavení, o kterých se píše v tomto pojednání. Použijte je po zralé úvaze - v žádném případě je slepě nepřekopírujte!
místa, je tu prostor pro vaše návrhy, co ještě na CD přihodit. Pište mi!
* '''nastaveni''' - v tomto adresáři jsou konfigurační soubory, které jsou
upravené pro potřeby našeho serveru. Obsahují tedy ta nastavení, o kterých
se píše v tomto pojednání. Použijte je po zralé úvaze - v žádném případě
je slepě nepřekopírujte!
 
= Changelog - změny v dokumentaci =
Řádek 2 407 ⟶ 2 187:
 
2005-10-19
Opraveno několik překlepů a upraveno pořadí kapitol tak, aby lépe vystihovalo, co se při instalaci odehrává.
vystihovalo, co se při instalaci odehrává.
 
2005-10-07
Řádek 2 414 ⟶ 2 193:
 
2005-10-06 NOVÉ - nastavení
Udělal jsem nový adresář na webu Grumpa.net a na CD, kam budu dávat odzkoušené konfigurační soubory.
odzkoušené konfigurační soubory.
 
2005-10-06 MailScanner
Přidán návod na zprovoznění MailScanneru pod Exim4. Návod přeložen z originálu v <code>/usr/share/doc/mailscanner/README.exim4</code>
z originálu v {{{/usr/share/doc/mailscanner/README.exim4}}}
 
= TODO - co ještě udělat =
Je toho ještě dost k doladění. Ale dá se říct, že v tuto chvíli je tento návod použitelný pro každého, kdo není úplný začátečník. A o to mi šlo.
návod použitelný pro každého, kdo není úplný začátečník. A o to mi šlo.
 
I zde chci poprosit o vaše připomínky a zkušenosti, jakož i o návrhy, co se dá dělat jinak a v čem by se tedy mohl změnit i tento návod.
se dá dělat jinak a v čem by se tedy mohl změnit i tento návod.
 
Apache - web server
Tam trochu kecám při nastavování SSL. Takhle by to fungovalo všechno přes https a nic přes http.
https a nic přes http.
 
Dále chci vyřešit návrat k použití 000-default a vše nastavovat jen v přidaných konf. souborech pro jednotlivé weby.
přidaných konf. souborech pro jednotlivé weby.