Hlavní navigace

Linux jako internetová gateway (8)

10. 3. 2004
Doba čtení: 5 minut

Sdílet

V tomto dílu seriálu pokračujeme ve zprovozňování různých užitečných síťových služeb, dnes to budou cachovací DNS server, Squid a SMTP server.

Cachovací DNS server

K čemu je DNS, ví asi každý, a také byste měli vědět, že čím je odezva na DNS rychlejší, tím rychleji se i načítají stránky. A proto si zprovozníme vlastní DNS server, který bude požadavky vyřizovat za nás a hlavně si výsledky zapamatuje. Jakýkoliv další dotaz se bere z cache a ne z internetu, což může přispět i ke snížení zátěže linky. Bind, který použijeme, není sice pro tuto úlohu ideální, ale je lepší než nic. Cache se totiž nachází pouze v paměti a vypnutí bindu ji spolehlivě a nenávratně zlikviduje. Nedá se nedá uložit, nelze měnit její velikost ani dobu držení dat. Avšak i přes tyto nevýhody je to dobrá věc.

Nainstalujte balíček bind. Při startu /etc/rc.d/rc.inet2 testuje existenci souboru /etc/rc.d/rc.bind a spouští jej. Veškerá konfigurace je již hotova, vyhovuje defaultní v /etc/named.conf. Jediné, co doporučuji zkontrolovat, je to, zda je soubor rc.bind spustitelný, u mě po instalaci nebyl, zřejmě se při vytváření balíčku vloudila chybička. Pokud chcete server spustit bez restartu routeru, napište /etc/rc.d/rc.bind start, a pak již můžete svému routeru klást DNS dotazy :-), tedy pokud jste to povolili na firewallu a server ví, kterých jmenných serverů se má podle /etc/resolv.conf  ptát.

Squid

O tom, co squid je, snad stačí napsat, že je to proxy server. Pro ty, kteří nevědí, jaký je rozdíl mezi NATem a proxy – zásadní. NAT modifikuje hlavičky paketů, ale data neukládá, proxy přijímá požadavky od klientů a vyřizuje je za ně, obsah však ukládá, aby ho mohl poskytnout i někomu jinému, kdo přistoupí na tu samou www stránku. Tedy pokud dva lidé přistoupí na www.root.cz, tak u NATu linkou do internetu projdou oba dotazy, u proxy jen jeden, druhému se už data poskytují z cache. Detailní popis squidu je na Rootu a třeba ještě jinde, já popíšu jen instalaci a základní nastavení. Můžete si stáhnoutSlackware balíček, instalace přes installpkg není nic neobvyklého.

K provozu potřebuje proxy server nějaký odkládací prostor, ten musí být docela rychlý, protože na rychlosti odkládacího prostoru závisí i rychlost proxy. Schválně říkám odkládací prostor, protože je jedno, kde tento prostor bude, zda to bude síťový disk, nebo ramdisk, ale síťový disk bych nepoužil právě kvůli rychlosti. Potřebná velikost tohoto prostoru se určí konfiugrací, defaultně je to 100 MB. V našich domácích podmínkách dáme odkládací prostor na systémový disk. U serverů, které mají mít hodně uživatelů, určitě velikost odkládacího prostoru zvětšíme, klidně i na giga, a dáme jej na ten nejrychlejší disk. To nám také může napovědět, že proxy pro více uživatelů musí být docela nabušený stroj.

Pokud máme nainstalováno a máme zajištěn odkládací prostor, čeká nás konfigurace. Konfigurační soubor získáme jako u předchozích programů – přejmenujeme /etc/squid/squid.conf.default na /etc/squid/squid.conf. Soubor je bohatě komentován, nás zajímají následující řádky:

acl our_networks src 192.168.3.0/24
http_access allow our_networks
http_access deny all
http_reply_access allow all
coredump_dir /var/lib/squid/cache

První řádek říká, která síť je naše a smí používat squid. Další řádek tuto síť povoluje a třetí zakazuje používání všem ostatním. Na posledním řádku nastavujeme, kam se bude cache ukládat. K nastavení základního fungování nám stačí upravit pouze řádek s naší sítí. A squida spustit, viz dále.

Příkazem squid -z si vytvoříme cachovací adresáře a soubory a pak už jen squida spustíme příkzem squid :-). No a to je vše, jen upozorním, že toto je základní nastavení, lze s tím dělat více věcí, viz články, na které jsem upozorňoval na začátku. Velice zajímavou možností je nechat squida cachovat provoz, který přes router běhá, uděláte přesměrování portů a klienti si ani proxy nenastavují, v prvním článku to je. Výsledkem je značné snížení zátěže linky.

Vlastní SMTP server – Sendmail

Důvodů k nainstalování vlastního mailserveru může být mnoho. Nepotřebujete nadřízený SMTP server, nejste omezeni počtem odesílatelů nebo velikostí zprávy (i když tohle vás asi moc trápit nebude, pokud nejste spamer nebo neposíláte extrémně velké maily). Posíláte-li více mailů či větší mail, předáte ho rychle serveru a pak můžete i vypnout počítač a server maily odešle už bez vás.

Instalace sendmailu z balíčku je jednoduchá, po instalaci se vytvoří příslušný rc skript pro spouštění při startu, spouští se přes rc.M. No a to je vše, tedy skoro, musíme ještě udělat seznam uživatelů, kteří mají povoleno odesílat maily pomocí tohoto serveru. To napíšeme do souboru /etc/mail/access, obsah může vypadat třeba takto:

localhost       RELAY
192.168.1.2     RELAY
192.168.1.3     RELAY
192.168.1.10    RELAY
192.168.1.14    RELAY

Zde je seznam hostů, kteří smějí SMTP server používat. Všem ostatním to při pokusu o odeslání mailu napíše relaying denied a mají smůlu. Samozřejmě, že se sem dá napsat i celá doména. Toto omezení je určitě nutné udělat, a to dost pečlivě, jinak se na vás snadno někdo napíchne a bude přes vás spamovat. Sendmail data z tohoto souboru ale nečte přímo, bere je z access.db, kde jsou uložena binárně. Je to z toho důvodu, že taková data se čtou rychleji a server pak i rychleji pracuje. Data převedeme takto, předpokládám, že jsme v adresáři, kde se soubor access nachází:

CS24 tip temata

makemap hash access.db < access

Potom stačí už server jen nastartovat nebo restartovat ( rc.sendmail start nebo restart), povolit na firewallu přístup na port 25, umožnit, aby se server mohl kontaktovat s internetem a odesílat poštu – a vše je hotovo. Pošta, kterou má server odeslat, se ukládá do adresáře /var/spool/mqueue a vypsat se dá pohodlněji příkazem mailq. Ten vám současnou frontu mailů, které čekají na odeslání; pokud budete chtít nějaký mail či celou frontu odstranit, tak obsah adresáře mqueue prostě smažete. Příkaz mailstats vám ukáže statistiku, ale asi tím moc důležité informace nezískáte. Pokud nemáte nainstalován nějaký doručovač do lokálních schránek, ztratí se maily, které nebude server schopen zpracovat, ale zůstane o nich záznam v logu.

Tato konfigurace je určena pouze pro odesílání pošty. Pokud byste chtěli, aby váš server poštu i přijímal, musíte jej tak nastavit, třeba podle tohoto obsáhlejšího návodu. Budete muset ještě nainstalovat dva balíčky, m4 a procmail. M4 je nutný pro vytváření konfiguračního souboru sendmailu a procmail doručuje maily, co patří na server, do lokálních schránek. Případně ještě nějaký pop3 server, ale to už je trochu mimo náš záběr.

Autor článku

V současné době pracuje jako správce linuxových systémů na Univerzitě Pardubice.