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

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

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

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

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

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

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

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

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

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

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

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

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

Konfigurace pro anonymní spojení: <Anonymous ~ftp> User Group ftp ftp adresář.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ů. kde mezi tyto dvě značky jsou vypsány nastavení tohoto serveru. 17 . nebo pokud chceme nastavit pro danou doménu jiné specifické volby. kdy chceme zaznamenávat události pro každou doménu do zvláštního souboru. do kterého se budou zaznamenávat veškeré přenosy souborů ExtendedLog – udává soubor. použijeme ji pouze v případě. 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>. 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á.

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

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

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

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

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

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

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

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

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

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

ale také se systémem portů (portage v Gentoo a FreeBSD). 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. V poslední řadě jsem se musel seznámit s prací s databázovým serverem FirebirdSQL jmenovitě s prací v interaktivní konzoli tohoto serveru.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. Dále jsem musel nastudovat možnosti konfigurace jednotlivých služeb. Je možno přidat podporu pro nastavení maximální velikosti e-mailové schránky uživatele. 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. podporu pro nastavení skupinových diskových kvót. 28 . aby k jednomu databázovému uživateli mohlo být přiřazeno více databázových souborů. 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ů. tgz ve Slackwareu).

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

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 .

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

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. 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.

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

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

které jsou v doméně registrovány. Na tomto formuláři je mimo jiné zaškrtávací pole pro povolení FTP přístupu k serveru a rolovací pole Quota. Po založení domény není domény koš nastaven a v doméně je k dispozici pouze jeden e-mail. můžeme vybrat jeden se seznamu a stisknutím tlačítka Nastavit zajistíme. či e-mailů. 3. nejmenší hodnota je pak desetina té největší. kde nastavíme maximální prostor pro uživatele. Dojde-li při kontrole zadaných údajů ke zjištění nějakých chyb. Můžeme registrovat nové uživatele.Po vyplnění všech polí stiskneme tlačítko OK a vyčkáme. dokud neproběhne kontrola zadaných údajů. Po zaregistrování dalších uživatelů.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.3. databázích. Dopadne-li kontrola dobře. je doména zaregistrována a jsou vypsány základní údaje o doméně. upravovat stávající a rušit již nepotřebné.3. 6 . 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.2 Záložka „Uživatelé“ Zde máme k dispozici kompletní seznam uživatelů naší domény. 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. je formulář vypsán znova s vyznačením chybných míst. 3. kterou nebude možné do naší domény doručit. kterou jsme zadali při registraci domény.3. Vyplníme všechna pole a stisknutím OK proběhne kontrola zadaných údajů a dojde k zaregistrování uživatele. Ve spodní části záložky jsou k dispozici o počtech registrovaných objektů v doméně.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. že na tuto adresu bude docházet elektronická pošta. Maximální hodnota v tomto poli je hodnota.2.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.

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

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

6 Záložka „Naplánované úlohy“ Na této záložce je seznam všech naplánovaných úloh.3. má možnost má této záložce tuto službu aktivovat.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.3. není možné službu zaregistrovat. Pokud již jsou všechny IP adresy vyčerpány.server se řídí jen symbolickými odkazy v adresáři. ve kterém není žádný soubor vyhovující direktivě DirectoryIndex se vrací zformátovaný adresářový výpis SymLinksIfOwnerMatch .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ář. aby uživatel mohl své stránky dostat na web domény. Webové rozhraní má omezení v zápisu dnů v týdnu a měsíců – je možné pouze číselné vyjádření. Do pole úloha je nutné zapsat úplnou cestu k úloze.5. Pro editaci již vytvořené úlohy slouží tlačítko s tužkou a pro zrušení úlohy slouží tlačítko se symbolem „X“. stiskneme tlačítko Přidat a vyplníme všechna pole. Pro vysvětlení zápisu časových údajů je nutné se seznámit s programem cron.5.3. Potřebujeme-li nějakou úloho přidat.3. Na serveru je však počet těchto služeb omezen na počet jeho IP 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. Aktivace této služby spočívá v nahrání souboru s certifikátem a klíčem na server. kterým je umožněn přístup do adresáře Deny from – seznam hostitelů.3. 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ů. 9 . Může také tomuto adresáři nastavit volby: • • • • • • • • • • 3. To může udělat administrátor tak.5 3. bude potřebovat. 3. že na záložce Web vytvoří alias na domovský adresář uživatele.

10 . Pokud jsme zadali hodnoty špatně. 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. Jestliže jsme heslo či login zapomněli. je dialog zobrazen znovu.php jsme vyzváni k zadání uživatelského jména a hesla. která je tvořena záložkami.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. Po úspěšném přihlášení se nám zobrazí stránka. Po zadání loginu a hesla proběhne kontrola. Login i heslo nám byly přiděleny při registraci domény.3.

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

Sign up to vote on this title
UsefulNot useful