VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Webové rozhraní pro správu domén
Bakalářská práce

2005

Lukáš Janečka

Webové rozhraní pro správu domén
Odevzdáno na Fakultě informačních technologií Vysokého učení technického v Brně, dne 3. května 2005.

© Lukáš Janečka, 2005.

Autor díla převádí svá práva na reprodukci, distribuci a kopii celého díla i jeho části na Vysoké učení technické v Brně, Fakultu informačních technologií.

Prohlášení
Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně pod vedením Ing. Jana Hrouzka. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal.

…………………… Jméno Příjmení Datum

2

Abstrakt
Cílem této práce je navrhnout a implementovat webové rozhraní pro správu domén. Pomocí tohoto rozhraní by mělo být možno spravovat základní webové služby jako webový server, poštovní server, databázový server, server pro správu doménových jmen, server pro přenos souborů, a služby užitečné pro doménu, jako například plánovač úloh a diskové kvóty. Pro implementaci rozhraní má být použito programovacích technik PHP a databázového serveru FirebirdSQL. Webové rozhraní má pracovat na počítačích s operačním systémem GNU/Linux.

Klíčová slova
Doména, WWW, FTP, DNS, quota, databáze, e-mail, Apache, Bind, ProFTPd, FirebirdSQL, cron, Linux, Postfix, webové rozhraní, správa.

3

Abstract
The purpose of this project is sketch and implementation of web-based interface for administration domain’s services. Via this interface you can setup basic web services like web server, mail server, database server, domain name server, server for transfer file and other services useful for domain like daemon to execute scheduled commands and disk quotas. For implementation web-based interface was used hypertext preprocessor PHP and database server FirebirdSQL. Web-based interface works on computers with operating system GNU/Linux.

Keywords
Domain, WWW, FTP, DNS, quota, database, e-mail, Apache, Bind, ProFTPd, FirebirdSQL, cron, Linux, Postfix, web-based interface, administration.

4

......3 2...................................3 4..............................................................................................4.30 5 ....................................28 Literatura......................................................................................................................................................................1 2..............18 Konfigurace plánovače úloh..............................................................................................................................................................7 2.......................................................................1.......................................................20 Část pro interakci s operačním systémem .....................2 4.....................................1 4...............................................1..............................................................................................3.............................................1 3....15 Konfigurace ftp serveru ...........3 4..........................................................................................2........................8 Webová služba...........................14 Konfigurace Postfixu .........1 2.............................5 1 2 Úvod.............................................................................................................................................................................1 4...............................................2 4.3 Plánovač úloh ..11 Poštovní služba.......................................................Obsah Obsah.......................................................................6 Doménové služby....1 4...................18 3.....................................................................................................19 Databázový server .............................................21 Vytváření nových uživatelů ...................................................19 Konfigurace diskové kvóty ....21 4..........26 Druhy použitých funkcí ...................................................1 3.......................................................................................................................................................................................................................18 Quota.............2 2..........................................2 5 Závěr ..............................................................................................................................................26 Soubor config.23 Databáze pro uložení nastavení ..................................23 Návrh databáze....................................................................22 Přidávání řádků do konfiguračních souborů ....................................................................7 Konfigurace BINDu.5 2....................................3.....................................3............................2.....................................26 4 Webové rozhraní pro správu domén .............................16 Ostatní služby ..4 2...................................................29 Přílohy .......................................................................2 3..........23 Odstraňování řádků z konfiguračních souborů.................1 3.1 2........11 Konfigurace Apache ...............1 3 Služba doménových názvů....................................................................................................................................1.............................23 Uživatelské rozhraní ......................................php ........................................................................................5.......................1 4.....................................................................................................................................................................................14 Služba přenosu souborů ......................1.....................

Čtenář bude nejprve seznámen se základními doménovými službami. způsob ukládání nastavení a způsob komunikace projektu s uživatelem. Bude popsána komunikace projektu s operačním systémem. Toto rozhraní může být nasazeno na serveru menšího poskytovatele internetových služeb. Toto rozhrání má pracovat na serverech s operačním systémem GNU/Linux. já jsem však zadání rozšířil o podporu operačního systému FreeBSD.1 Úvod Cílem tohoto projektu je navrhnout a implementovat rozhraní pro správu doménových služeb. který pomocí něj může registrovat nové domény a spravovat jejich služby. programy realizujícími tyto služby a způsobem konfigurace těchto programů. které bylo nutné řešit. Poté následuje řešení tohoto úkolu s vyznačením problémů. 6 . který stejně jako systém GNU/Linux patří do skupiny Unixových operačních systémů a na internetových serverech bývá často nasazován.

cz.1 Služba doménových názvů Při komunikaci v síti Internet se počítače adresují pomocí IP adres. Získat se dá ve zdrojových kódech z www. odpoví mu názvový server další IP adresou v seznamu. odešle nejprve dotaz názvovému serveru na IP adresu serveru www v dané doméně.cz. aby jeden počítač. Druhý způsob zase umožňuje rozložit zátěž na více serverů. Primární. Ten mu odešle první IP adresu odpovídající tomuto záznamu.cz a kn. na kterém běží více služeb. Např.org nebo v podobě již zkompilovaných balíčků. 2. Mezi nejpopulárnější software.2 Doménové služby V této kapitole se seznámíme se základními doménovými službami. zajišťující služby serveru DNS. jako je tomu například v doménách vutbr. který přebírá data z primárního a poskytuje je při případném výpadku primárního serveru. který je také sekundárním serverem domény kn.cis.vutbr. Tento způsob adresace je však pro člověka velice nepřehledný a špatně zapamatovatelný. Tento systém přiřazuje IP adrese počítače doménové jméno. to jsou ty. máme počítač.domena stránku. a sekundární. Žádá-li uživatel po serveru www. Jedna IP adresa může mít jedno či více doménových jmen. že v doméně bude počítač s názvem www. je BIND (Berkeley Internet Name Daemon) o jehož vývoj se stará Internet Software Consorcium. měl i více jmen.isc. Proto budou tato dvě doménová jména patřit pouze jednomu a témuž počítači.DNS).vutbr. Praxe je taková. že jeden primární server je zároveň sekundárním pro jiné domény. Přijde-li pak na tento názvový server další dotaz na server www.vutbr.domena. Očekáváme však. jedno doménové jméno může odpovídat jedné či více IP adresám (round robin). Službu doménových názvů zajišťují dva typy serverů. ale také sada pomocných nástrojů. První způsob umožňuje. na jejichž disku je uložena databáze se záznamy domény. které spravuje její administrátor.domena a mail.cz je rhino. které bychom měli nalézt na stránkách či CD naší distribuce GNU/Linuxu.cz. který je zároveň webovým a poštovním serverem domény. BIND není pouze softwarem pro překlad doménových jmen. Primárním serverem domény vutbr. Proto byl vyvinut systém doménových názvů (domain name service . 7 .

Uděláme to pomocí souboru named. stejně jako blok znaků začínající značkou „/*“ a končící „*/“. pro které named zpracovává požadavky. bez kterých se nastavení neobejde. /etc/namedb nebo /var/namedb.2. My si však všimneme pouze těch často užívaných. Ten nalezneme buďto v adresáři /etc. Kromě těchto je zde ještě třetí typ poznámek začínajících znakem „#“ a končících na konci řádku.1. ale pouze je přepošle na další server ze seznamu forwarders. pid-file “/var/run/named.0. Pid-file je souborem.conf poskytuje velmi mnoho parametrů k nastavení. 2. na kterých bude named přijímat a vyřizovat požadavky. a záznamy zone. }. V tomto seznamu by měly být jmenné servery poskytovatele internetu.2 Konfigurace BINDu Po nainstalování BINDu jej musíme zkonfigurovat.1.conf je velmi podobná syntaxi jazyka C. forwarders { 192. Volba forward only znamená. Listen-on obsahuje seznam všech síťových rozhraní.conf Soubor named. Soubor named.0.1. Při potřebě dalších nastavení je nutné se podívat do manuálových stránek. či danou volbu vyhledat na internetových stránkách BINDu. který smí být pouze jeden a obsahuje parametry pro běh démona named. že named nebude vyřizovat požadavky sám. listen-on { 127.conf.conf: options { directory “/var/named”. ve kterém bude named vyhledávat a kam bude ukládat další soubory služby DNS. Příklad named. jak je v této distribuci nastaveno chroot prostředí pro BIND. Voleb je samozřejmě mnohem více.conf je tvořen dvěma typy záznamů.1 Named. Je zde možno využít značek pro poznámky. Konkrétně značka „//“ znamená. Jeho umístění je závislé na distribuci a také na tom. 8 .1.1. Záznamem options. 192. Tento server má s velkou pravděpodobností hledaný záznam již ve své mezipaměti a proto dojde ke snížení toku dat v internetu. že všechny znaky od ní až do konce řádku budou brány jako komentář.0. forward only. }. ve kterém je číslo identifikující proces démona named. Syntaxe souboru named. ve kterých se specifikují zóny.pid”.2.168. } Položka directory udává adresář.168.

1. masters { 192.5.cz a primárním serverem této domény je 192. } Tento server je zároveň sekundárním serverem domény druha.}. expire .1. minimum TTL ns. retry .domena.cz”. } V případě. Tento server musí být zadán IP adresou. pošle požadavek na kořenový názvový server.cz. jak daný název přeložit.2.domena. zone “druha.0. ns 192.cz. říká totiž odkud si má sekundární server načítat data. pro které bude named přijímat a vyřizovat dotazy: zone “.2 mail IN 9 .cz”.domena. Adresy kořenových názvových serverů jsou v souboru named. ( .cz a že záznamy domény jsou uloženy v souboru /var/named/master/domena. že daný server je primárním serverem domény domena. refresh .Nyní se dostáváme do části souboru named. že názvový server neví.cz.domena.cz. 20050425 86400 7200 2592000 345600) IN IN www ns IN IN NS MX CNAME A A 10 root.cz. Záznamy jsou ukládány do souboru /var/named/slave/druha. 2.168.cz” { type slave. mail. file “slave/druha.” { type hint.0. Ten mu odpoví.168.cz” { type master.5. kde jsou specifikovány zóny. } Tento záznam říká.root. zone “domena. která doména je nadřazená této hledané a kde se má dále ptát.conf. serial .168.168.root”. file “named.1 192.cz.1.2 Konfigurační soubor domény $TTL 345600 @ IN SOA ns. file “master/domena.

Znak „@“ je zástupným znakem a nahrazuje se názvem domény ze souboru named. protože ten zde má jiný význam. Je víc než vhodné. Čtvrté číslo (expire) udává dobu platnosti záznamů sekundárního serveru v případě.conf. aby v originální elektronické adrese nebyla před znakem „@“ žádná tečka. Záznam typu NS říká. aby byla dále definována jeho IP adresa a to pokud možno záznamem typu A. Poslední číslo (minimum TTL) udává dobu uložení negativní odpovědi. na kterém se bude přijatá pošta ukládat. Následují informace o počítačích v doméně. kdy se mu nepodařilo spojit s primárním a zkontrolovat změny v konfiguraci. tak sekundární servery domény. Dále následuje název počítače. je nutné. Tento formát umožňuje provádět více změn denně. Tato doba je v sekundách. Záznam MX udává počítač.cz. Tato doba je také v sekundách. Druhý řádek obsahuje záznam SOA (Start of Authority record). Po uplynutí této doby již sekundární server žádná data o této doméně neodesílá a počítače v ní jsou pomocí doménových jmen nedostupné. Při výpadku primárního poštovního serveru se pošta dočasně ukládá na záložním serveru a po obnovení primárního se na něj přesune. aby každá doména měla alespoň dva sekundární servery. Proto se nahrazuje první znak „. Třetí číslo (retry) udává dobu mezi pokusy o zjištění změn v konfiguračních souborech v případě. V adrese se nesmí vyskytovat znak „@“. První číslo (serial) udává verzi konfiguračního souboru. Jinak by byla adresa chybně interpretována. mělo by se toto číslo také změnit. Jsou zde tedy vypsány jak primární. kde RR je číslo revize. Následuje pět číselných hodnot. kdy nebylo možné připojit se k primárnímu serveru.Jako příklad byl vypsán soubor /var/named/master/domena. Je tedy nutné. Každá doména smí mít pouze jeden primární poštovní server. který přijímá elektronickou poštu pro danou doménu. ale taky nemusí. Druhým číslem (refresh) se udává. Negativní odpověď je odpověď například na IP adresu neexistujícího počítače. po jak velkých časových intervalech se bude sekundární server připojovat k primárnímu za účelem zjištění změn. Tato doba je udávána v sekundách. Poštovní servery se 10 .“. který je primárním názvovým serverem domény a elektronická adresa správce této domény. že daný počítač je názvovým serverem domény. Často se jako toto číslo udává datum a to ve formátu YYYYMMDDRR. Pokud dojde k jeho změně. Počet záložních serverů není omezen. Pokud do ní patří. Tento počítač může patřit do dané domény. Tato doba označuje. jak dlouho můžou ostatní počítače udržovat ve své mezipaměti záznamy z této domény. Tato doba je také udávána v sekundách. Tento časový interval je udáván v sekundách. První položkou záznamu SOA je tedy název domény. Druhá položka označuje typ záznamu (IN znamená internet) a třetí položka SOA označuje začátek řídícího záznamu domény. Položka $TTL udává dobu platnosti záznamů. aby sekundární servery mohly tuto změnu zaregistrovat.

V systému FreeBSD jsou v /usr/local/etc/apache2. kde jsou uloženy konfigurační soubory. měli bychom konfigurační soubory nalézt v některém ze zmíněných adresářů. které bychom měli nalézt na stránkách či CD naší distribuce GNU/Linuxu.netcraft.odlišují prioritou. Kromě dopředného překladu jména na IP adresu. V poslední verzi distribuce Slackware je pouze Apache verze 1 a proto jeho konfigurační soubory nalezneme v /etc/apache. tedy jakousi přezdívku. výbornou podporou pro skriptovací jazyky jako PHP a Perl. pro počítač daného jména. V tomto typu překladu se používají záznamy typu PTR.html> (duben 2005) 11 . který jsme si právě ukázali. a proto pokud máme jiný než jeden z výše vyjmenovaných systému. Tento volně distribuovatelný otevřený software s vysokou mírou konfigurovatelnosti.apache.3 Webová služba Mezi nejpoužívanější internetové služby patří webová služba. Nyní si projdeme základní volby konfigurace. Jiné umístění konfiguračních souborů snad již není možné. 1 Netcraft: web server survey [online] URL: <http://news. typ záznamu (PTR) a název počítače. Záznam typu CNAME označuje alias. Mezi nejrozšířenější webové servery patří webový server Apache. V distribuci Gentoo Linuxu jsou tyto soubory v adresáři /etc/apache2. Záznam A říká. jaká IP adresa odpovídá danému jménu. Primární poštovní server má prioritu nejnižší. je používán na téměř 70% webových serverů1. kdy první část záznamu tvoří IP adresa. Přidat modul pro skriptovací jazyk PHP a nastavit Apache pro práci s virtuálními doménami.3.1 Konfigurace Apache Po nainstalování je webový server Apache ihned připraven ke spuštění. je k dispozici také zpětný překlad IP adresy na jméno. Webový server Apache je možno získat v podobě zdrojových souborů z adresy www. server s druhou nejnižší prioritou bude jako první použit při výpadku primárního. My však chceme nepatrně upravit jeho konfiguraci. let minulého století a její zásluhou došlo k velkému rozšíření sítě Internet. 2. následuje třída záznamu (obvykle IN). Její počátky sahají do 90. 2. V prvním kroku musíme zjistit.org/dist/httpd nebo v podobě již zkompilovaných balíčků. Pro záznamy o počítačích v doméně se využívají dva typy záznamů. v distribucích Mandrake Linux a Fedora Core jsou tyto soubory v /etc/httpd.com/archives/web_server_survey.

1.3. Když pak klient bude požadovat stránku po jednom z těchto serverů. Totiž SSL protokol pracuje nad TCP a proto na IP adresu serveru dojde HTTP hlavička zašifrovaná a není proto možné rozhodnout. že tyto weby nemohou používat zabezpečený typ přístupu ke stránkám pomocí SSL protokolu.0.conf.1 – tento zápis znamená. 12 .jmenná adresa virtuálního webu .2 Vhosts.kořenový adresář pro dokumenty domény .168. v jehož hlavičce je zapsáno. jsou uzavřeny do bloku.2.e-mailová adresa správce této domény .3.virtualni.soubor. Pozor. že v souboru již několik takových direktiv je. kterému virtuálnímu serveru patří. proto zde budou vyjmenovány pouze nastavení související s nastavením virtuálních domén. Položky. která dovolí přenést některá nastavení do jiného souboru. z které domény má stránka být. tato.conf Toto je hlavní konfigurační soubor webového serveru Apache. tzn. že na dané IP adrese serveru poběží více virtuálních webových serverů. tato hlavička je až u HTTP protokolu verze 1.1> Virtuální web bude k dispozici na této adrese ServerName www. Tento blok začíná <Název_bloku hodnota> a je ukončen </Název_bloku>. nastavují společnou věc. které spolu souvisejí. Můžeme si všimnout.cz ServerAdmin spravce@virtualni. jako například tento: <VirtualHost 192. která připojuje soubor s nastavením zabezpečeného spojení: Include ssl. 2. že mnoha různým doménovým jménům odpovídá tato IP adresa. Dnes je však už používána převážně tato verze protokolu.1 Httpd.0. že jmenný server je nakonfigurován tak.168. např.soubor. Syntaxe zápisu nastavení je následující : položka “textová hodnota”. kam se budou zaznamenávat chyby při přístupech na stránky domény … </VirtualHost> . Pro lepší orientaci v konfiguračním souboru je dovoleno použít direktivy Include. kam se budou ukládat CustomLog /adresar/acces_log common záznamy o přístupu ke stránkám domény ErrorLog /adresar/error_log . My toho využijeme a do souboru httpd. Je tedy předána výchozímu webovému serveru na této adrese.1.1.conf. Můžeme zde opět nalézt velké množství.conf NameVirtualHost 192.cz DocumentRoot /nejaky adresar . Tyto servery budou rozlišovány na základě jména.conf připojíme soubor Vhosts. což znamená. pokud tam již není.a další volby Nevýhodou tohoto způsobu vytváření virtuálních webů je to. Za tímto řádkem budou následovat konfigurace virtuálních webů. dojde na tuto adresu požadavek.

168. Zápis této konfigurace je jednoduchý. které tuto službu nemají definovánu. ServerName. Pokud tedy chceme u některého z virtuálních webů používat zabezpečenou komunikaci.definuje kryptografické algoritmy (jejich zápis je vhodné vyhledat ve vzorovém konfiguračním souboru. jako je počet virtuálních webů používajících HTTPS službu. že hostitelský server musí mít stejný počet IP adres. Server doménových jmen pak musí být nakonfigurován tak. Tato konfigurace bude vypadat následovně: <VirtualHost _default_:443> … </VirtualHost> 13 .Tento problém řeší druhý typ vytváření virtuálních webů. atd. který je určen pro HTTPS spojení … . SSLEngine on SSLCipherSuite .aktivuje pro tohoto virtuálního hostitele modul SSL .definuje cestu k souboru s certifikátem serveru . bude jeho konfigurace vypadat následovně: <VirtualHost 192. Do bloku VirtualHost zapíšeme jinou adresu hostitelského serveru. která bude použita při pokusu o přístup na HTTPS stránky virtuálních serverů. či manuálových stránkách) SSLCertificateFile SSLCertificateKeyFile </VirtualHost> . než jsme jmenovali v NameVirtualHost.následují standardní volby jako DocumentRoot.5:443> . Je vhodné také zapsat SSL konfiguraci pro výchozí server. Ten je založen na IP adrese serveru. aby virtuální webové servery měly odlišné IP adresy. Znamená to. že každý webový server má svou vlastní adresu a proto může používat zabezpečený HTTPS protokol.tímto říkáme.definuje cestu k souboru s klíčem k certifikátu Na jednom webovém serveru smíme provozovat současně virtuální webové servery vytvořené na základě jména tak na základě IP adresy.0. že apache má přijímat spojení také na portu 443. Nevýhodou však je.

inet_interfaces – síťové rozhraní. K tomuto účelu musí být server vybaven poštovním serverem. Postfix se dá získat ve zdrojových kódech z www. který pomocí SMTP protokolu komunikuje s poštovním klientem (přijímání pošty) a jinými poštovními servery (přijímání a předávání pošty). 14 . který je možné nalézt v /etc/postfix/ (snad všechny distribuce GNU/Linuxu) nebo v /usr/local/etc/postfix/ ve FreeBSD.…] queue_directory – udává adresář. ze které mohou klienti pomocí postfixu odesélat poštu. Je to však velice rozsáhlý monolitický software. pak bude přijímat poštu pouze z daného počítače. Naproti tomu program Postfix je z těchto tří nejnovější a stejně jako Qmail je menší. Na výběr jsou možnosti $mydomain. pro které bude server přijímat poštu mynetworks_style – nastavuje část sítě. je zároveň jeho vývojářem.cf obsahuje velmi mnoho nastavení. Na výběr jsou hodnoty host.domena.cz.cf Soubor main.4.4 Poštovní služba Mezi základní úkoly internetového serveru patří předávání a přijímání elektronické pošty. ale jeho možnosti jsou nezměrné. nebo $myhostname. …] parametr2 = $parametr1 [.cz.1 Konfigurace Postfixu Poštovní server Postfix se konfiguruje pomocí souboru main. lépe zabezpečitelný a lépe konfigurovatelný. na kterém bude postfix přijímat požadavky ($myhostname. že ten.org. jehož provozování a udržování vyžaduje jeho velmi dobré znalosti. Postfix a Qmail. pod nímž postfix běží myhostname – doménové jméno počítače mydomain – doména počítače myorigin – udává. localhost.cf. kam jsou ukládány zprávy čekající na odeslání či doručení mail_owner – uživatelský účet.2. pak odchozí adresa bude uzivatel@domena. nejhůře konfigurovatelný. Licence programu Qmail nedovoluje jeho modifikaci a redistribuci. nebo v podobě již zkompilovaných balíčků na CD či stránkách distribuce GNU/Linuxu. proto si projdeme jen ta nejzákladnější.postfix.1 Main. all) mydestination – specifikuje domény a počítače. čímž se odlišuje od Sendmailu a Postfixu. Syntaxe zápisů nastavení je následující: parametr1 = hodnota1 [. Mezi nejznámější poštovní servery patří programy Sendmail. Sendmail je z těchto tří nejstarší. kdo provozuje a udržuje Sendmail. subnet.hodnota2. 2.1.4. Říká se. 2. a pak bude odchozí adresa bude uživatel@pocitac. jaká doména se bude zobrazovat u odchozí pošty.

5 Služba přenosu souborů Pro přenos souborů mezi počítači se využívá protokolu FTP (File Transfer Protocol). jejichž klienti mohou pomocí postfix odesílat poštu.cz Poslední zápis je zápisem tzv.domena.cz uzivatel kos@nejaka.0. Veškeré e-maily.168. 15 .cz]. Např. Použijeme-li e-mailovou adresu.4. a proto pokud se nenajde žádné pravidlo. může tato adresa být opět virtuální.cz uživatel@domena.0/24 relay_domains – tento parametr udává. na který bude předána pošta. Např. jak doručit daný e-mail. relayhost – obsahuje název či IP adresu počítače. použije se tohoto pravidla. které budou odeslány na neexistující adresu v doméně nejaka. relayhost=$mydomain / [192.domena. doménového koše.domena. Proto použití tohoto protokolu s sebou nese bezpečnostní rizika. Při navazování spojení pomocí tohoto protokolu se však přenášejí uživatelská jména i hesla v nešifrované textové podobě.domena budou přeposlány na adresu kos@nejaka. popřípadě uživatelské jméno uživatele. do jehož schránky má být pošta doručena.domena.uzivatel2@nejaka. Je tedy velice snadné takováto data zachytit a zneužít.cz.uzivatel@nejaka. která má být mapována. mynetworks – udává seznam sítí. která není určena do domovské domény programu postfix.cz Virtualni.0.168. do kterých domén smí postfix poštu předávat a od kterých domén smí poštu přijímat na další zpracování.cf). mail_spool_directory – adresář. pak několik oddělovačů a adresa.domena. na kterou se bude pošta doručovat.domena. do kterého budou ukládány doručené zprávy pro uživatele virtual_alias_domains – seznam virtuálních domén. 2.pak bude poštu přijímat od klientů z podsítě. ve kterém je definováno mapování virtuálních e-mailových adres na adresy skutečné.: virtualni. Je to dáno tím. Pokud je tento parametr prázdný. 2. pošta je předána rovnou adresátovi. Syntaxe je jednoduchá.cz kos@nejaka. že tento zápis má nejmenší prioritu. pak přijímá poštu od všech klientů patřících do třídy sítě.domena.cz uzivatel@domena. 192.5] / [server. Na začátek řádku se zapíše adresa. a class. Např. pro které postfix zpracovává poštu virtual_alias_maps – soubor.1. Ke správnému fungování virtuálních domén v programu postfix je nutné správně nakonfigurovat službu doménových názvů.2 Virtual V tomto souboru je mapování virtuálních e-mailových adres na skutečné adresy v systému (je definován direktivou virtual_alias_maps v souboru main.cz @nejaka.

ServerName – název serveru. FTP server ProFTPd se dá získat ve zdrojových kódech z www. ve kterém je seznam uživatelů systému. Pokud pak přijde požadavek na spojení do domény.inetd – server je spouštěn podle potřeby DefaultServer . pod kterou server poběží DefaultRoot – adresář.5. Jeho výhodou je vysoká míra konfigurace. Toto řešení má však větší nároky na systémové prostředky a snižuje datový tok. povolení přihlášení pouze na tzv.standalone – server běží neustále .conf. kde ftp server není nakonfigurován. která je aplikována při vytváření nových souborů a adresářů MaxInstances – maximální počet procesů serveru User – uživatelský účet. zobrazí se při přihlášení k serveru. pod kterým server poběží Group – skupina.1 Konfigurace ftp serveru Pro konfiguraci se využívá soubor proftpd.Řešením tohoto problému je např. 2. Využívá se u virtuálních domén. která zašifruje veškerá data tekoucí po protokolu ftp. že server je výchozí pro danou IP adresu.1 Proftpd.5. anonymní účet. bude uživatel zamčen ve svém domovském adresáři. který je v adresáři /etc či /etc/proftpd nebo /usr/local/etc v systému FreeBSD.proftpd.org. je toto spojení zamítnuto a ukončeno. Poslední možností je využití zabezpečené přenosové vrstvy TLS. Zadáme-li hodnotu „~“. Pokud je potřeba odlišit několik uživatelů a každému nabízet jiná data.conf Nyní si projdeme základní volby v konfiguračním souboru programu ProFTPd. nebo v podobě již zkompilovaných balíčků na CD či stránkách distribuce GNU/Linuxu. 2. kdy na jedné IP adrese je spuštěno více FTP serverů. Dále se pak využívá soubor /etc/ftpusers. ServerType . ve kterém bude uživatel „zamčen“ po připojení. Pokud však není žádná konfigurace označena jako výchozí. tj. modulární návrh a stejný formát zápisu konfiguračního souboru jako webový server Apache. Uživatel se nebude moci dostat do adresáře o úroveň výše. Jedním z mnoha ftp serverů je server ProFTPd. nepovolit jim přihlášení do systému.1. 16 .on/off – udává. je vhodné takovýmto uživatelům povolit přístup pouze k ftp. AllowStoreRestart – on/off – umožňuje znovunavázání při přerušeném nahrávání souboru na server Port – číslo portu. je toto spojení přijato a je přiřazeno této konfiguraci. kteří se nesmějí k ftp serveru přihlásit. Tento účet je bez hesla (popřípadě je heslo libovolné) a umožňuje pouze stažení veřejně nabídnutých dat. na kterém bude ftp server přijímat požadavky Umask – udává masku.

Konfigurace pro anonymní spojení: <Anonymous ~ftp> User Group ftp ftp adresář. do kterého se budou zaznamenávat zvolené události ve zvoleném formátu Konfigurace virtuálního serveru se zapisuje pomocí bloku <VirtualHost název> </VirtualHost>. do kterého se budou zaznamenávat veškeré přenosy souborů ExtendedLog – udává soubor. kde mezi tyto dvě značky jsou vypsány nastavení tohoto serveru. které je možno zadat pro přihlášení k tomuto účtu MaxClients 10 maximální počet přihlášených klientů <Limit WRITE> omezení pro zápis DenyAll </Limit> zakazuje zápis všem <Directory *> AllowOverwrite </Directory> </Anonymous> on omezení pro adresář povoluje přepis souborů v daném adresáři Konfigurace virtuálního serveru však není nutná. nebo pokud chceme nastavit pro danou doménu jiné specifické volby. použijeme ji pouze v případě. 17 . kdy chceme zaznamenávat události pro každou doménu do zvláštního souboru.AllowOverwrite – povolí/zakáže uživateli přepisovat soubory TransferLog – udává soubor. který bude použit jako domovský uživatelský účet pro anonymní spojení uživatelská skupina pro anonymní spojení UserAlias anonymous ftp seznam loginů.

které úlohy a kdy se mají spustit.1 Konfigurace plánovače úloh Systémová tabulka Systémová tabulka má následující formát: na prvních řádcích je nastavení proměnných prostředí. který příkazový interpret bude použit. 3.1. nebo rozsah hodnot oddělených pomlčkou (1-5).10). 18 . Řádky začínající znakem „#“ označují poznámky. 3. Pokud potřebujeme úlohu spouštět např.1. ve které je daná úloha spuštěna. Třetí sloupec udává den v měsíci. proměnná PATH obsahuje seznam adresářů.1. Systémová tabulka je uložena v souboru /etc/crontab.1 3. ve které bude úloha spuštěna. Následují řádky s naplánovanými úlohami. Takovouto úlohou může být například program generující statistiky o vytížení systému. Proměnná SHELL udává. ale jejichž význam je také velký. Druhý sloupec udává hodinu. narozdíl od úloh naplánovaných správcem systému. že se úloha bude spouštět vždy. Plánovač úloh mohou ale také využít uživatelé. každých 5 minut. což znamená. Díky němu může administrátor naplánovat. nemusíme zdlouhavě vypisovat násobky pěti od 0 do 55. které už nejsou až tak spojené s počítačovými sítěmi. Může také obsahovat více hodnot oddělených čárkami (např. Platné hodnoty jsou 1-31. 1. Spuštěná úloha pak běží pod uživatelským jménem uživatele a má jeho práva. ale stačí když zapíšeme */5.3 Ostatní služby Na serveru se budou také využívat jiné služby.5. Pro každého z nich se pak vytvoří vlastní tabulka s naplánovanými úlohami.1 Plánovač úloh Plánovač úloh je důležitou součástí všech Unixových systémů. nebo tabulátory. který může každé úloze přiřadit jiný uživatelský účet. Platí zde stejná pravidla zápisu jako u minutových údajů. ve kterých bude cron vyhledávat soubory. když minutový údaj bude dělitelný 5 bezezbytku. První sloupec udává minutu. Používá se 24-hodinový formát. které jsou odděleny mezerami. obsazenosti disků a přenesených datech přes síťová rozhraní. Opět platí stejná pravidla zápisu jako u předchozích. uživatelské pak v /var/cron/tabs/ nebo /var/spool/cron/crontabs/. Zápis plánu je rozdělen do sloupců.

3. Aby k tomuto problému nedošlo. Proto je nezbytné ujistit se. Platné hodnoty jsou 0-7 (0 a 7 jsou neděle) a mon-sun. Máme-li tedy souborový systém umožňující použití diskových kvót a chceme-li tyto kvóty používat. Formát souboru s uživatelskými úlohami je téměř shodný se systémovou tabulkou.Čtvrtý sloupec označuje měsíc. 3. tvrdá kvóta.1. měkká kvóta. existuje na UNIXových systémech program quota. který to neumožňuje by mohlo mít za následek poškození souborového systému. která již překročit nejde a uložení či vytvoření souboru přes tuto kvótu skončí chybou. a tzv. Při použití tohoto zápisu však nelze použít zápis rozsahu či seznam hodnot. Nasazení diskových kvót na systém. 19 . nebo na stránkách distribuce systému. Systém GNU/Linux je schopen pracovat na mnoha souborových systémech. tak pro uživatelské skupiny. 3. usrquota.2. ve kterém se úloha spouští. což jsou tři počáteční písmena z anglického názvu měsíce. tak na počet souborů a lze je nastavovat jak pro jednotlivé uživatele. že noví uživatelé již nebudou mít na disku dostatečnou volnou kapacitu.1. pomocí kterého lze nastavit jednotlivým uživatelům maximální prostor. ale také jan-dec. zda daný souborový systém použití diskových kvót umožňuje. Pátý sloupec označuje den v týdnu. bohužel ne na všech je možné diskové kvóty používat. s jehož právy bude úloha spouštěna. který mohou na disku/discích obsadit. Poslední sloupec udává úlohu. V tom případě by se měl nacházet buď na instalačním CD. Šestý sloupec udává. což jsou první tři písmena z anglického názvu měsíce. po jejíž překročení je uživateli zobrazena varovná zpráva o překročeném limitu a jejíž překročení je tolerováno jen určitou dobu. která se bude spouštět. Opět nejsou povoleny zápisy rozsahu a seznamy při užití jmenného pojmenování dnů. Platné hodnoty jsou 1-12. Při nastavování diskové kvóty lze nastavit tzv.2 Quota Při vkládání nových uživatelských účtů může dojít k problému. popřípadě crontab –e –u login. Tento příkaz vyvolá okno editoru a my můžeme upravovat naplánované úlohy uživatele. Chybí zde pouze sloupec s uživatelem. musíme zajistit připojení tohoto souborového systému s parametry quota.2 Uživatelské tabulky K editaci naplánovaných uživatelských úloh slouží příkaz crontab –e. pod jakým uživatelským účtem bude úloha spouštěna.1 Konfigurace diskové kvóty Program quota není na všech distribucích přímou součástí a proto je někdy nutné jej doinstalovat. Kvótou lze nastavit jak na místo na disku v kilobajtech.

Dále je možné nastavit dobu. Po připojení disku s těmito parametry můžeme nastavovat diskové kvóty. Jsou tedy k dispozici dvě odnože databázového serveru InterBase – komerční. V prvním sloupečku je určení disku. U konfigurace Firebidru se není třeba příliš zdržovat. Pro správu této databáze k dispozici program gsec.popřípadě také grpquota. vyvíjená formou Borland a Open Source vyvíjená komunitou vývojářů. který čeká na požadavky pro Firebird a poté jej startuje a požadavky předává. které povolí přístup pouze k databázovým souborům jmenovaným v aliases.conf. Tento program smí spustit pouze správce systému. FirebirdSQL.conf. V šestém a sedmém sloupci pak jsou měkké a tvrdé kvóty na počet souborů. parametr grpquota pro kvóty skupinové.com.firebirdsql. PostgreSQL. Parametr usrquota přidává podporu pro uživatelské kvóty. Projekt FirebirdSQL vznikl z komerčního databázového serveru firmy Borland InterBase. V projektu je samozřejmě použit Open Source projekt FirebirdSQL. Stejně tak se dá povolit pouze souborům s uživatelskými funkcemi (volba UdfAccess) a externím souborům (volba ExternalFileAccess). FirebirdSQL se dá získat buďto ve formě zdrojových textů nebo předem zkompilovaných balíčků na stránce projektu www. Upozorním jen na volby DatabaseAccess = Restrict. ve čtvrtém tvrdá kvóta na místo v kB. 20 . Ta v roce 2000 uvolnila jeho zdrojové kódy pod Open Source licencí a mohl tak vzniknou projekt FirebirdSQL.3 Databázový server V dnešní době jsou pro internetové aplikace hojně využívány relační databázové servery. Syntaxe je jednoduchá : alias = cesta_k_databázovému_souboru Databázový server Firebird využívá pro zabezpečení přístupu k databázím své vlastní bezpečnostní databáze uživatelských účtů a hesel. Ke své činnosti využívá démona inetd. Mezi nejznámější volně šířitelné patří např. ve třetím měkká kvóta na místo v kB. 3. kterému se jako parametr zadá login uživatele a který otevře okno editoru s tabulkou pro zadání kvót. Zjednodušuje to pak připojování k databázím. Tato doba se nastavuje příkazem edquota –t a je shodná pro všechny uživatelské kvóty na daném disku. Může nám k tomu pomoci program edquota. po kterou bude tolerováno překročení měkké kvóty (grace period). neboť základní konfigurace je vyhovující. Pro vyjmenování takovýchto souborů slouží konfigurační soubor aliases. Nyní se však firma Borland vrátila k původnímu modelu placených licencí a vlastnímu vývoji „za zavřenými dveřmi“. MySQL. Zde se dají jednotlivým databázím přiřadit zástupná jména (aliasy).

který po daných časových intervalech tento skript spouští. Dále pak skript pro nastavení webového serveru. příkazem add se vytvoří nový. který bude tyto soubory číst a provádět příkazy v nich zapsané. který uživatel bude vlastníkem této databáze a jeho heslo. Příkaz modify slouží k editaci uživatelského účtu. Je to část pro komunikaci s uživatelem . Tento problém jsem vyřešil pomocí plánovače úloh (cron). Tyto skripty jsou samostatné z toho důvodu. jak spouštět tento skript s právy správce systému při každé změně nastavení přes webové rozhraní. ale až po uplynutí časového intervalu. Databáze se zakládají a spravují přes interaktivní konzoli isql. pod nímž běží Apache a bude mít pouze práva pro zápis do těchto souborů. Příkazem display se zobrazí seznam uživatelů. Při vytváření nových databází je potřeba zadat. který je spouštěn plánovačem. Poslední otázkou zůstává. Vlastníkem tohoto skriptu bude správce systému a nikdo jiný nebude mít k tomuto souboru žádná práva. že při každé změně je nutné znovu načíst konfiguraci těchto služeb.uživatelské webové rozhraní. Po provedení pak smaže veškerý obsah těchto souborů. příkazem delete se smaže. Vlastníkem těchto souborů bude uživatel. který je nastaven v cronu. do kterých bude Apache zapisovat shellové příkazy pro změnu konfigurace jednotlivých služeb. skript pro nastavení BINDu a skript pro nastavení Postfixu. Pro větší bezpečnost je víc než vhodné. provádělo by se nové načtení po každé změně 21 . Tento problém jsem vyřešil následovně: při instalací webového rozhraní jsou vytvořeny soubory. pohledům a jiným databázovým objektům i jiným uživatelům. Dále je vytvořen skript. Webový server Apache běží pod uživatelským účtem www. httpd či nobody a nemá tedy žádná přístupová práva k těmto souborům. Kdyby byly všechny příkazy v jednom souboru. 4 Webové rozhraní pro správu domén Webové rozhraní je tvořeno vzájemně spolupracujícími částmi. jejichž nastavení jsou měněna a poté tyto služby restartovat. část pro ukládání veškerých nastavení a část pro přenesení nastavení do operačního systému. aby číst toto soubory mohl pouze správce systému o zápisu ani nemluvě. Vzniká tedy problém. je potřeba tyto změny zapsat do konfiguračních souborů služeb. Tím se zabrání čtení těchto souborů přes web.1 Část pro interakci s operačním systémem Aby se změny nastavené přes webové rozhraní projevily v systému. popřípadě jim zaslat signál/příkaz pro znovunačtení konfigurace. V této databázi je pak možné přidělovat práva k tabulkám. jak zapsat změny do těchto souborů.Tento program má jednoduché ovládání. Projekt tedy využívá jeden skript řídící. 4. Změny se tedy neprojevují okamžitě.

pro zadání jména a příjmení uživatele (nutno zapsat do uvozovek). U ostatních distribucí je kromě nepovoleného znaku „. V projektu se však používá ještě parametr –g. za který se dává číslo vytvářené skupiny.cz. Do posledního skriptu se zaznamenávají všechny ostatní příkazy. a uživatelským jménem. je vytvořena skupina virtualni__dX. Více v části věnované databázovému rozhraní.cz. které služby se mají spustit znova. slouží další skript. nižší verze jsem neměl k dispozici). Nyní si ukážeme některé z příkazů a všimneme si možných problémů při jejich provádění.cz vytvořena skupina virtualni.“ v loginech a názvech skupin také omezena jejich délka. .virtualni. Bohužel pouze některé distribuce GNU/Linuxu takovýto formát názvů skupin a uživatelských účtů povolují. –d. K tomu.cz a pro jejího administrátora účet admin.sk.v konfiguraci dané služby. Mezi tyto distribuce patří např. Pak X je rovno 1. Na systému FreeBSD nejsou příkazy useradd a groupadd k dispozici. Tato tabulka byla dále využita pro mnoho dalších nastavení. pro zadání čísla skupiny. která lze na serveru registrovat.3. Fedora Core 3 a také operační systém FreeBSD (verze 5.1 Vytváření nových uživatelů Při založení nové domény je vytvořena uživatelská skupina. Zápis pro přidání uživatele a skupiny na tomto systému se 22 . –u. Pokud je tedy hodnota rovna TRUE. pro zadání příkazové interpretu uživatele (tato volba nemusí být zadána. Název skupiny smí mít maximálně 16 znaků a login uživatele znaků 30. –s. aby bylo znovunačtení prováděno pouze u těch služeb. Pro zřízení uživatelského účtu se použije příkazu useradd s parametry –c. do které bude uživatel patřit. Byla tedy vytvořena tabulka Tsettings s položkou dot_in_login. Je to z důvodu oddělení uživatelských skupin vytvářených přes webové rozhraní od ostatních skupin. kde X je pořadové číslo doménové přípony.1.[domena].[pripona]. Sem se zaznamenává. Zde nastává problém s názvy skupin. který má parametry useradd a groupadd. Pro jednoduché zapamatování uživatelských jmen byla v projektu snaha mít názvy skupin pojmenované stejně jako názvy domén a uživatelská jména mít ve formátu [login]. V projektu tedy vznikla potřeba tyto distribuce rozlišit. 4. pro zadání UID uživatele. do které budou patřit všichni uživatelé této domény. jejichž nastavení bylo opravdu změněno. Jako parametr se dává název vytvářené skupiny. –g. Administrátor této domény dostane účet admin__virtualni__d1. Pro vytvoření uživatelské skupiny slouží příkaz groupadd. pro zadání domovského adresáře uživatele. je pro doménu virtualni. ale na některých distribucích se pak nepřiřadil žádný). U systému FreeBSD smí být login stejně jako skupina 16 znaků dlouhý. Je-li však dot_in_login rovno FALSE. Vytváření uživatelských účtů je tedy řízeno hodnotou sloupce dot_in_login v tabulce Tsettings. ale je zde příkaz pw. kdežto v tomto případě je konfigurace načtena až po zaznamenání všech změn. Např. se na našem serveru dají zaregistrovat domény s příponami .

kdy se řádek vytiskne na standardní výstup a pak se pomocí přesměrování standardního výstupu připojí ke konfiguračnímu souboru. jako např. Proto byly to tabulky Tsettings přidány sloupce pro uložení cest k potřebným souborům. 23 . Další entity jsou záznamy pro cron. V projektu se znovu generují konfigurační soubory jednotlivých domén služby doménových jmen.2 Přidávání řádků do konfiguračních souborů Přidávání nových řádků do konfiguračních souborů se děje pomocí příkazu echo. Ale to jen tehdy. A zde je další problém. ale později mu může být přidána další. Po uložení nové konfigurace je potřeba služby restartovat.pak liší od systémů GNU/Linux pouze tím.2 4. 4.conf webového serveru Apache a nastavení adresářů pro tento webový server. či jim poslat příkaz pro znovunačtení konfigurace. Každý nový uživatel dostane svou vlastní e-mailovou adresu.3 Odstraňování řádků z konfiguračních souborů Při jakékoliv změně stávající konfigurace je potřeba tuto nejprve z konfiguračního souboru odstranit a nahradit ji novou.1. proto domény budou první entitou. Každá doména má své uživatele. dá se tento problém řešit pomocí programu grep s parametrem –v a obsahem odstraňovaného řádku. vede ke zbytečnému zatěžování systému. Zde je problém s umístěním konfiguračních souborů.1. který vypíše z daného souboru všechny řádky. proto e-mail je tedy třetí entitou. Každá distribuce je má jinde. Pokud je konfigurace zapsána pouze na jednom řádku. kromě tohoto. Apache a BIND. aktuální. Doména bude pro své webové aplikace využívat služeb databázového serveru. Nové generování konfigurací. Prvním úkolem při návrhu databáze je definice entit. Uživatel je tedy druhá entita.2. které nemusí být znova generovány. Bude tedy spravovat databázové soubory. je lepší tento soubor zapsat zcela znovu s novou konfigurací. 4. soubor Vhosts.1 Databáze pro uložení nastavení Návrh databáze Pro uložení veškerých nastavení provedených přes webové rozhraní slouží databáze. Úkolem rozhraní je správa doménových služeb více domén. že před příkaz useradd/groupadd je zapsán příkaz pw a parametry jsou jinak seřazeny. Řešením je přidat další sloupce do tabulky Tsettings s umístěním těchto skriptů. Každá distribuce má startovací skripty služeb opět na odlišných místech. 4. je-li konfigurační soubor dostatečně malý. u souborů s nastavením domén programu BIND. Ty jsou další entitou. Pokud však je konfigurace složitější.

kam byl nainstalován databázový server FirebirdSQL. Pro službu HTTPS budeme potřebovat znát všechny IP adresy serveru. dot_in_login – tato položka udává. do něhož budou ukládány primární záznamy o doménových názvech v doménách (program BIND). Poslední entitou budou všechny přípony domén. proto musí cesta končit znakem „/“. které je možné na serveru zaregistrovat.cf) proftpd_conf – textový řetězec obsahující úplnou cestu ke konfiguračnímu souboru programu ProFTPd (proftpd. Proto je vhodnější záznamy rozdělit do několika tabulek. Jedná se o adresář. • • • • • postfix_main_cf – textový řetězec obsahující úplnou cestu ke konfiguračnímu souboru programu Postfix (main. proto musí cesta končit znakem „/“. který je k práci přiložen. Jedná se o adresář. Záznamy totiž nemají stejnou formu.conf) bind_directory – textový řetězec obsahující úplnou cestu k adresáři. zda daný operační systém povoluje znak „. proto musí cesta končit znakem „/“.“ v uživatelských jménech. tabulku pro poštovní servery domény a tabulku pro počítače domény. Záznam SOA byl přidán do tabulky s informacemi o doméně. Tyto pomáhají při přenášení nastavení do systému.cf) postfix_virtual – textový řetězec obsahující úplnou cestu k souboru s mapováním virtuálních e-mailových schránek programu Postfix na skutečné (virtual. do kterého budou ukládány soubory nově zaregistrovaných domén. Jedná se o adresář. Hodnoty této položky smí být pouze textové řetězce TRUE nebo FALSE.conf) firebird_dir – textový řetězec obsahující úplnou cestu k adresáři. Tato položka je primárním klíčem apache_vhosts_conf – textový řetězec obsahující úplnou cestu k souboru s definicí virtuálních domén webového serveru Apache (obvykle je tímto souborem Vhosts. na kterém je rozhraní provozováno. proto IP adresy serveru zařadíme také mezi entity.U záznamů pro BIND se však situace komplikuje. Z těchto entit a jejich vzájemných vztahů byl vytvořen ER-diagram. 24 . V databázi je také tabulka obsahující položky související se systémem. • domain_directory_root – textový řetězec obsahující úplnou cestu k adresáři. Vytvořil jsem tedy zvláštní tabulku pro záznamy o jmenných serverech domény. Touto tabulkou je tabulka Tsettisgs a jejími položkami jsou: • • • • systype – identifikační číslo operačního systému (nastavení).conf) bind_named_conf – textový řetězec obsahující úplnou cestu ke konfiguračnímu souboru programu BIND (named. nelze je tedy jednoduše zapsat do jedné tabulky.

s jehož právy je spouštěn webový server Apache. Toto číslo slouží pro oddělení uživatelů vzniklých při registraci domén přes webové rozhraní od ostatních uživatelů v systému. apacheuser – textový řetězec udávající uživatelské jméno. • postfixcommandfile – textový řetězec obsahující úplnou cestu k souboru. který bude přiřazen nově vytvářeným uživatelům. apache – textový řetězec obsahující úplnou cestu ke startovacímu skriptu programu Apache. • defaultcommandfile – textový řetězec obsahující úplnou cestu k souboru. • bindcommandfile – textový řetězec obsahující úplnou cestu k souboru. uživatelské jméno administrátora a heslo.php. do kterého se budou ukládat příkazy pro provedení změn v nastavení programu Apache v souladu s nastaveními provedenými přes webové rozhraní. 25 . která bude vytvořena při registraci první domény. První obsahuje standardní formát loginů. defaultshell . druhý obsahuje formát loginů pro systémy. jenž je pro tyto potřeby definován v souboru config. • • • • • • • postcommandfile – textový řetězec obsahující úplnou cestu k souboru.“ ..• GIDMIN – číselné vyjádření identifikačního čísla skupiny. do kterého se budou ukládat příkazy pro provedení změn v systému v souladu s nastaveními provedenými přes webové rozhraní. s jejíž právy je spouštěn webový server Apache. do kterého se budou ukládat příkazy pro provedení změn v nastavení programu BIND v souladu s nastaveními provedenými přes webové rozhraní. proftpd – textový řetězec obsahující úplnou cestu ke startovacímu skriptu programu ProFTPd. který bude vytvořen při registraci první domény. které byly změněny. které nepovolují znak „. Liší se pouze v loginu.textový řetězec udávající úplnou cestu k příkazovému interpretu. Oba pohledy obsahují GID domény.. do kterého se budou ukládat příkazy pro provedení změn v nastavení programu Postfix v souladu s nastaveními provedenými přes webové rozhraní. bind – textový řetězec obsahující úplnou cestu ke startovacímu skriptu programu BIND. Tyto datové pohledy jsou přístupné pro uživatele. Toto číslo slouží pro oddělení skupin uživatelů vzniklých při registraci domén přes webové rozhraní od ostatních uživatelských skupin v systému. do kterého se budou ukládat příkazy pro znovunačtení služeb. apachegroup – textový řetězec udávající jméno uživatelské skupiny. • UIDMIN – číselné vyjádření identifikačního čísla uživatele. Pro potřeby autentizace jsou vytvořeny dva datové pohledy. • apachecommandfile – textový řetězec obsahující úplnou cestu k souboru.

Při přihlašování k účtu správce domény je zadané jméno a heslo uživatele porovnáváno se jmény a hesly uloženými v databázi. Je to například identifikační číslo operačního systému do tabulky s nastavením. Stránka správce domény je tvořena šesti záložkami.3 Uživatelské rozhraní K webovému rozhraní přistupují dva typy uživatelů. Pro přístup k rozhraní je každému typu uživatele vyhrazena vlastní stránka.php Do tohoto souboru jsou zapsány volby. Na zaznamenání změn do databáze se podílí více funkcí. na kterém je webové rozhraní provozováno. které je uloženo do globální proměnné a slouží pro identifikaci editované domény. Stánka správce serveru je tvořena seznamem již zaregistrovaných domén s tlačítky pro zaregistrování nové a editaci stávající a již zmíněnými šesti záložkami. Prvním je správce serveru. Tito uživatelé smí pouze spravovat své vlastní domény. udávající. Stránky tedy sdílí část stejného kódu. Dále pak to jsou výchozí hodnoty pro záznam programu BIND. Jsou to například funkce pro změnu nastavení služby doménových jmen. Jejich vstupními parametry jsou hodnoty zadané do formulářů a návratová hodnota specifikuje jaké chyby byly zjištěny. Poslední skupinu funkcí tvoří funkce. které se při provozu webového rozhraní nemění a jsou nastaveny při jeho instalaci. o zápis do skriptového souboru se stará již funkce jediná. Tento uživatel registruje nové domény a smí měnit nastavení stávajících. Při nalezení shody je z databáze vráceno identifikační číslo domény (GID).3. které nemají žádné návratové hodnoty a jejichž vstupní parametry tvoří hodnoty nastavované na webovém formuláři. Dále jsou použity funkce. 4. Každá ze záložek slouží k nastavení jiné služby. Kromě těchto hodnot se funkci předává proměnná.php). které chyby byly zjištěny při kontrole zadaných hodnot. které zjišťují.1 Druhy použitých funkcí Pro tisk webových formulářů jsou určeny funkce. Funkce převážně testují vstupní hodnoty podle regulárních výrazů. Druhým typem jsou správci zaregistrovaných domén. výchozí hodnota pro 26 . První záložka nastavuje pouze službu doménového koše a zobrazuje informace o objektech domény. zda nebyly to formulářů zadány neplatné hodnoty. Některé funkce pouze ukládají hodnoty do databáze a o zápis se starají funkce jiné. 4. Při přihlašování k účtu správce webového rozhraní je zadané jméno a heslo porovnáváno se jménem a heslem uloženém v konfiguračním souboru (config.3.2 Soubor config.4. které ukládají nastavené hodnoty do databáze a zároveň je zapisují do skriptových souborů. Při vstupu na tuto stránku je nutná autentizace.

Dále je zde cesta k databázovému souboru.povolení FTP přístupu nově vytvářeným uživatelům a přípona. na němž je rozhraní provozováno. IP adresa a doménový název serveru.) 27 . přihlašovací jméno a heslo správce webového rozhraní. která bude nabízena při registraci nové domény jako výchozí. (Bude-li tento soubor umístěn mimo adresář s ostatními soubory webového rozhraní. Tento soubor tedy obsahuje velice citlivé údaje a proto by k němu neměl mít žádný uživatel přístup. je potřeba upravit direktivu include v těchto souborech. Měl by tedy být umístěn mimo adresář nastavený jako DocumentRoot serveru Apache a přístupová práva k tomuto souboru by měl mít pouze správce systému. uživatelské jméno a heslo pro přístup k této databázi za účelem kontroly přihlašovacích údajů uživatele.

tgz ve Slackwareu). Dále jsem musel nastudovat možnosti konfigurace jednotlivých služeb. Vypracování tohoto projektu pro mne v prvé řadě znamenalo detailní seznámení s několika distribucemi operačního systému GNU/Linux a operačním systémem FreeBSD. Je možno přidat podporu pro nastavení maximální velikosti e-mailové schránky uživatele. aby k jednomu databázovému uživateli mohlo být přiřazeno více databázových souborů. podporu pro nastavení skupinových diskových kvót. Po menších úpravách by určitě bylo schopné pracovat na všech systémech unixového typu. Seznámil jsem se se systémem balíčků (rpm v MandrakeLinuxu a Fedoře.5 Závěr Výsledkem tohoto projektu je webové rozhraní schopné pracovat na mnoha distribucích operačního systému GNU/Linux a také na systému FreeBSD. zařídit. ale také se systémem portů (portage v Gentoo a FreeBSD). V poslední řadě jsem se musel seznámit s prací s databázovým serverem FirebirdSQL jmenovitě s prací v interaktivní konzoli tohoto serveru. Projekt je možno v budoucnu dále rozšířit o správu dalších služeb. Dále jsem se seznámil s instalacemi programů do jednotlivých systémů. 28 .

Brno. J. InterBase/Firebird: tvorba.apache. M.org/documentation.org/index. M.proftpd.html> Dokumentační stránky programu ProFTPD URL:<http://www. Síťový operační systém FreeBSD: podrobný průvodce.Literatura [1] [2] [3] Lucas.org/docs-2.firebirdsql.postfix. 2004 Císař. P. Brno. Computer Press.php?op=doc) Dokumentační stránky programu Apache (http://httpd. Computer Press. Brno. Computer Press.org/docs/> 29 . 2003 Kabir. 2003 [4] [5] [6] [7] [8] Manuálové stránky programů Dokumentační stránky programu FirebirdSQL (http://www. Apache server 2: kompletní příručka administrátora.0/) Dokumentační stránky programu Postfix URL:<http://www. programování a správa databází.

Přílohy 30 .

Tsuffix PK PID suffix tvoří názvev Tdomain PK GID domain_name admin_mail DNSTTL DNSrefresh DNSretry DNSexpire DNSminimum quota dpassw ord FK UID FK MID FK PID obsahuje Tuser PK UID login name surname ftp_acces quota FK GID používá TIP_server PK IPID IP FK GID je spravována patří Temail PK MID adresa FK UID má má koš TuserDB PK DBID dblogin dbpass ddatabase FK GID Tapache_item TbindNS PK BNSID nserver FK GID PK AID aalias apath aOrder Allow Deny O_ExexCGI O_Follow SymLinks O_Includes O_Includes_NOEXEC O_Indexes O_SymLinksIfOw nerMatch O_MultiView s FK GID Tcron_item PK CID cmonthday cw eekday cyearmonth chour cminute ctask FK GID Tbind_item PK BIID itype bitem bvalue FK GID TbindMX PK BMXID priority server FK GID Tsettings PK sys type apache_vhosts_conf bind_named_conf bind_directory postfix_main_cf postfix_virtual proftpd_conf firebird_dir dot_in_login domain_directory_root GIDMIN UIDMIN bindcommandfile postfixcommandfile apachecommandfile defaultcommandfile postcommandfile apache bind proftpd apacheuser apachegroup defaultshell .

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA INFORMAČNÍCH TECHNOLOGIÍ Webové rozhraní pro správu domén Uživatelská příručka 2005 Lukáš Janečka .

....................................6 Záložka „Databáze“ ...............................5 3..........9 Přístup k rozhraní přes účet zákazníka..................................................................................5 Editace již zaregistrovaných domén .................1 3..................................................................................................10 Závěr ........11 2 ............................................................5 3.............................................2 3..........3...............................................................................................Obsah Obsah...................................................................3...............3 Instalace.................................................................................................................6 3....................................................................................................................................................5 Registrace nové domény ..........................4 3..9 Záložka „Naplánované úlohy“ ..............................................................3....................1 3..........................................................................6 Záložka „Hlavní“..........................................................................3.............................7 Záložka „Web“ ............................................3...............................................................................................................6 Záložka „Uživatelé“................................4 Přístup k rozhraní přes účet správce............................2 3...............................................................................................4 4 Přihlášení......................................................................3................................................7 Záložka „DNS“......2 1 2 3 Úvod..............3 3.................................................................3 3..............

které jsou pomocí webové rozhraní nastavovány: web – Apache web server DNS – Bind databáze – FirebirdSQL e-mail – Postfix plánovač úloh – cron diskové kvóty – quota 3 .1 Úvod Webové rozhraní pro správu domén má ulehčit správcům menších poskytovatelů internetových služeb při zakládání a správě nových internetových domén. Pomocí webového rozhraní lze vykonávat tyto úkoly: • • • • • • • • • • • • • • • • • • • • registrace nových domén správa doménového koše přidávání nových uživatelských účtů rušení uživatelských účtů registrace nových e-mailových adres pro uživatele rušení e-mailových adres uživatele nastavení diskové kvóty uživateli povolení/zakázání ftp přístupu uživateli vytváření nových databázových souborů rušení databázových souborů plánování spouštění úloh na serveru správa webových složek zabezpečený přístup k webovým stránkám serveru přes protokol HTTPS správa doménových jmen Programy obsluhující služby. Webové rozhraní je především určeno pro servery pracující na operačním systému GNU/Linux nebo FreeBSD.

Pro službu HTTPS bude potřeba zadat všechny IP adresy počítače.sh. Ve skriptu je tedy uloženo nastavení několika distribucí a při instalaci si lze jedno nastavení vybrat. aby byl schopen komunikovat na protokolu HTTPS. Skript se bude tázat na IP adresu počítače.“ v loginu. adresář pro uložení databáze webového rozhraní a na několik hodnot. jeho doméno jméno. Pokud však bude webové rozhraní provozováno na jiné distribuci. Po zkopírování souborů webového rozhraní je potřeba zajistit v konfiguraci webového serveru Apache tak. login administrátora webového rozhraní (tento login by v systému neměl existovat). kam se soubory nakopírovaly. Je totiž vhodné přistupovat k webové rozhraní přes tento protokol. 4 .2 Instalace Pro instalaci slouží skript install. jiné ne). jaké přípony domén se budou moci registrovat a která ze přípon bude brána jako výchozí. je potřeba zodpovědět další dotazy. aby byl adresář. které budou použity jako výchozí pro nově založené domény. pro něj přístupný. která mezi nabízenými není. Různé distribuce operačního systému GNU/Linux se liší uložením konfiguračních souborů a také typem uživatelských účtů (jedny povolují symbol „. Úkolem tohoto skriptu je zkopírování souborů webového rozhraní na zvolené místo a jeho konfigurace. kromě již dříve zapsané. Skript také potřebuje zjistit. Následuje dotaz na typ systému. Dále je nutné nakonfigurovat Apache tak. heslo.

délka 6-25 znaků.“.3 3. Jestliže jsme heslo či login zapomněli. 3. Po úspěšném přihlášení se nám zobrazí stránka.php (proměnná SQL_USERNAME a SQL_PASSWORD). které jsme si zvolili při instalaci a je uloženo v souboru config. je dialog zobrazen znovu. Omezení: Login smí být tvořen 4 až 30 malými alfabetickými znaky bez diakritiky.1 Přístup k rozhraní přes účet správce Přihlášení Při vstupu na stránku root.) Druhá část je tvořena názvem naší nové domény. • Uživatelské jméno – první část uživatelského jméno administrátora domény. Formulář je tvořen 8 textovými poli a jedním polem výběrovým: • • • Název domény – zde vyplníme název nově registrované domény. Poznámka: Mnohé systémy povolují délku loginu maximálně 30 znaků a nedovolují použití znaku „. můžeme stisknout tlačítko Storno a přihlašování přerušit. číslice a znaky „_“ a „-“. • Quota – zde nastavíme. maximální kvóta je 999 999MB. Potvrzení hesla – zopakování hesla pro kontrolní účely. Jedná se o login a heslo. Jedno pro zaregistrování nové domény a druhé pro editaci domény již zaregistrované. kolik MB diskového prostoru smí maximálně obsadit jeden uživatel domény. Heslo – heslo pro přístup do systému a webovému rozhraní správy domény. V tomto případě je délka první části loginu omezena na 12 znaků a výsledný login má odlišný formát. Název musí být tvořen 4 až 25 znaky. Omezení: Povoleny jsou všechny znaky.2 Registrace nové domény Po stisknutí tlačítka Přidat se zobrazí formulář pro zaregistrování nové domény. 5 . (Výchozí hodnota je admin. • • • • Jméno – křestní jméno administrátora domény. Přípona domény – zvolíme jednu příponu z nabízených. na který budou přicházet e-maily při problémech s doménovými jmény v naší doméně. Příjmení – příjmení administrátora domény. v jejíž levé části je seznam již registrovaných domén a 2 tlačítka. Omezení: Smí se zadávat pouze číslice. Omezení: Jsou povoleny pouze znaky bez diakritiky. Omezení: V e-mailové adrese se před znakem „@“ nesmí vyskytovat znak „. číslicemi a znaky „-“ a „_“.php jsme vyzváni k zadání uživatelského jména a hesla. E-mail správce – zadáme náš dosavadní e-mail.“ (Omezení programu BIND). Tuto kvótu pak pro jednotlivé uživatele upravuje administrátor domény. Po zadání loginu a hesla proběhne kontrola. Pokud jsme zadali hodnoty špatně.

je doména zaregistrována a jsou vypsány základní údaje o doméně. které jsou v doméně registrovány. můžeme vybrat jeden se seznamu a stisknutím tlačítka Nastavit zajistíme. Po založení domény není domény koš nastaven a v doméně je k dispozici pouze jeden e-mail. databázích.3. služba HTTPS Naplánované úlohy – přidávání/editace/rušení naplánovaných úloh Po stisknutí tlačítka Editovat se zobrazí formulář se záložkami: 3. Po zaregistrování dalších uživatelů. upravovat stávající a rušit již nepotřebné.1 Přidání uživatele Stisknutím tlačítka Přidat pod seznamem uživatelů se dostáváme na formulář pro registraci nového uživatele.2. Dojde-li při kontrole zadaných údajů ke zjištění nějakých chyb. že na tuto adresu bude docházet elektronická pošta. kterou jsme zadali při registraci domény. Můžeme registrovat nové uživatele.3 • • • • • • Editace již zaregistrovaných domén Hlavní – zde je možnost nastavit doménový koš pro e-maily a také zde je stručná informace o uživatelích.2 Záložka „Uživatelé“ Zde máme k dispozici kompletní seznam uživatelů naší domény. dokud neproběhne kontrola zadaných údajů. 6 . 3.3. Na tomto formuláři je mimo jiné zaškrtávací pole pro povolení FTP přístupu k serveru a rolovací pole Quota.Po vyplnění všech polí stiskneme tlačítko OK a vyčkáme.1 Záložka „Hlavní“ Na této záložce je pole pro nastavení doménového koše a seznam se všemi e-maily. nejmenší hodnota je pak desetina té největší. 3. je formulář vypsán znova s vyznačením chybných míst.3. Maximální hodnota v tomto poli je hodnota. kde nastavíme maximální prostor pro uživatele. či e-mailů. e-mailech a naplánovaných úlohách domény Uživatelé – zde se přidávají/ruší/editují uživatelské účty Databáze – přidávání/rušení databází domény DNS – nastavení služby doménových jmen Web – nastavení cest k webovým dokumentům. Vyplníme všechna pole a stisknutím OK proběhne kontrola zadaných údajů a dojde k zaregistrování uživatele. 3. Dopadne-li kontrola dobře. Ve spodní části záložky jsou k dispozici o počtech registrovaných objektů v doméně. kterou nebude možné do naší domény doručit.

3 Odstranění uživatele Pokud již nějaký uživatelský účet nepotřebujeme. Pod seznamem již vytvořených databází stiskneme tlačítko Přidat a dostaneme se na formulář pro vytvoření databázového souboru. Nelze však odstranit účet administrátora domény.3. najdeme ji v seznamu databází a stiskneme symbol „X“. které byly k tomuto uživateli registrovány.2 Editace uživatele Na tomto formuláři se zobrazí všechny informace o uživateli. (U správce domény se mění heslo jak pro přístup do systému. pro ostatní uživatele stačí zadat pouze nové heslo.) Na formuláři je také seznam e-mailů daného uživatele. Stisknutím tlačítka Přidat dojde ke kontrole.4 Záložka „DNS“ Záložka slouží k nastavení služby doménových jmen. na kterém je uložen primární soubor domény – je nastaveno provozovatelem webového rozhraní a nelze jej změnit. Primární server – počítač.3. Můžeme tedy uživateli přidat další emailové adresy. 3. Je proto uzpůsobena rozdělením do čtyř částí: 3.3 Záložka „Databáze“ Každá doména může potřebovat pro své webové aplikace databáze.3. Pro vytvoření databáze použijeme tuto záložku. musíme před změnou hesla zadat staré heslo. Nelze však zrušit adresa. Pokud se jedná o správce domény.3. Editovat však můžeme pouze uživatelskou kvótu.4. tak pro webové rozhraní správy. databázový uživatel a zda bylo heslo správně zapsáno a vytvoří se databáze. čímž databázi zrušíme.3. Heslo musí být 8-25 znaků dlouhé.3. zda již neexistuje databázový soubor shodného jména. Proto se nedoporučuje měnit heslo jiným způsobem než tímto. 3. či některé zrušit.1 • • Záznam SOA TTL – doba platnosti domény – jak dlouho si smějí názvové servery uchovávat data o doméně v mezipaměti. V tom případě s ním odstraníme i všechny e-mailové adresy.2.2. 3. Lze změnit. kterou uživatel získal při zaregistrování do domény. Pokud nějakou databázi již nepotřebujeme. ftp přístup a heslo. databázového uživatele (pod tímto uživatelem budeme přistupovat k souboru – tento uživatel nemá nic společného s uživateli domény) a heslo pro přístup k tomuto souboru. proto nesmíme do názvu zadat znak „/“ ani „\“). Musíme zadat název souboru (soubor bude uložen v adresáři pro databázové soubory domény. můžeme jej odstranit. 7 .

jak často se bude sekundární názvový server připojovat k primárnímu za účelem zjištění případných změn v konfiguraci. či odebrat. číslicemi a znaky „-“ a „_“. Pokud jsme nastavili hodnoty podle svého úmyslu. pokusí se o to po tomto čase.2 Jmenné servery Můžeme přidat další jmenné servery domény. přestane svá data po této době posílat a zneplatní je.“. popřípadě je editovat. Lze změnit. 3. To uděláme stisknutím tlačítka Přidat. Takto přidanému počítači smíme přidat alias.3 Poštovní servery Můžeme přidat další poštovní servery domény. Nelze však změnit ani odstranit primární server domény. Název počítače smí být tvořen pouze malými alfabetickými znaky bez interpunkce.4.3. Lze změnit. Zápis názvu serveru se řídí pravidly programu BIND. proto musí bát název ukončen znakem „. Lze změnit. Pokud má tento server problémy je pošta doručena na další server s nejnižší prioritou a odtud je doručena na primární server po odstranění všech problémů. Refresh – Doba udávající. můžeme je uvést v platnost stisknutím tlačítka Potvrdit změny. Lze změnit. proto musí bát název ukončen znakem „. 3. Retry – Pokud se nepodaří sekundárnímu serveru připojit k primárnímu z důvodu zjištění změn konfigurace.• • • • • E-mailová adresa správce – elektronická adresa osoby odpovědné za danou doménu = osoba. Minimum TTL – doba platnosti negativních odpovědí serveru. Zápis názvu serveru se řídí pravidly programu BIND. Expire – Pokud se sekundárnímu serveru nepodaří svá data aktualizovat.“. typ záznamu „CNAME“ a jako adresu uvedeme název počítače zadaný při registraci IP. 3. Stisknutím Přidat jsme počítač zaregistrovali. Stiskneme tedy tlačítko Přidat a do kolonky Název počítače vypíšeme druhé jméno pro počítač. Lze změnit.3.4.3. či odebrat. která si danou doménu registrovala.4.4 Počítače Můžeme přidávat do domény další počítače. typ záznamu vybereme „A“ a zapíše IP adresu počítače. 8 . popřípadě je editovat. Na nově zobrazeném formuláři vyplníme název počítače. Pošta je vždy doručena na primární poštovní server domény (je to ten s nejmenším číslem priority).

1 Záložka „Web“ Seznam webových adresářů Rozhodne-li se administrátor doménu svěřit vytvoření jisté webové stránky uživateli své domény. jejichž cíl je vlastněn stejným uživatelem jako odkaz samotný MultiViews – umožňuje vyjednávání o obsahu založené na jazyku dokumentu Order – udává pořadí aplikace pravidel pro povolení a zamítnutí přístupu Allow from – seznam hostitelů.3.6 Záložka „Naplánované úlohy“ Na této záložce je seznam všech naplánovaných úloh. Může také tomuto adresáři nastavit volby: • • • • • • • • • • 3. Pokud již jsou všechny IP adresy vyčerpány.3.server se řídí jen symbolickými odkazy v adresáři. 3. Do pole úloha je nutné zapsat úplnou cestu k úloze.3. Na serveru je však počet těchto služeb omezen na počet jeho IP adres. kterým je umožněn přístup do adresáře Deny from – seznam hostitelů.5 3. ve kterém není žádný soubor vyhovující direktivě DirectoryIndex se vrací zformátovaný adresářový výpis SymLinksIfOwnerMatch . Potřebujeme-li nějakou úloho přidat. má možnost má této záložce tuto službu aktivovat. Pro editaci již vytvořené úlohy slouží tlačítko s tužkou a pro zrušení úlohy slouží tlačítko se symbolem „X“. Pro vysvětlení zápisu časových údajů je nutné se seznámit s programem cron.5. 9 . Webové rozhraní má omezení v zápisu dnů v týdnu a měsíců – je možné pouze číselné vyjádření. Aktivace této služby spočívá v nahrání souboru s certifikátem a klíčem na server. bude potřebovat. není možné službu zaregistrovat. stiskneme tlačítko Přidat a vyplníme všechna pole. To může udělat administrátor tak.2 ExecCGI – povoluje vykonávat skripty CGI FollowSymLinks – server se řídí symbolickými odkazy v adresáři Includes – povoluje příkazy SSI Includes_NOEXEC – povoluje použít omezenou sadu příkazů SSI Indexes – při požadavku na adresář. kterým je zakázán přístup do adresáře Služba HTTPS Pokud administrátor domény potřebuje pro určité webové aplikace zabezpečený přístup ke stránkám přes protokol HTTPS. aby uživatel mohl své stránky dostat na web domény.5.3.3. že na záložce Web vytvoří alias na domovský adresář uživatele.

4 Přístup k rozhraní přes účet zákazníka Při vstupu na stránku private. můžeme stisknout tlačítko Storno a přihlašování přerušit. 10 .php jsme vyzváni k zadání uživatelského jména a hesla.3. Login i heslo nám byly přiděleny při registraci domény. která je tvořena záložkami. Po úspěšném přihlášení se nám zobrazí stránka. Popis těchto záložek a práce při spravování domény je popsán v části Editace již zaregistrovaných domén. Pokud jsme zadali hodnoty špatně. Jestliže jsme heslo či login zapomněli. Po zadání loginu a hesla proběhne kontrola. je dialog zobrazen znovu.

např. 11 .4 Závěr Nastavování doménových služeb přes webové rozhraní je jednoduché. nastavování velikosti e-mailových schránek. V budoucnu budou doplněny další služby.