Evropský polytechnický institut, s.r.o.
BAKALÁŘSKÁ PRÁCE
2010
Tomáš Šupa
Evropský polytechnický institut, s.r.o. v Kunovicích
Studijní obor: Elektronické počítače
Hostingový server pro výuku programování webových aplikací na Epi, s.r.o.
(Bakalářská práce)
Autor: Tomáš ŠUPA
Vedoucí práce: Ing. Filip Janovič
Kunovice, prosinec 2009
1. soukromá vysoká škola na Moravě
Evropský polytechnický institut, s.r.o.
Akademický rok 2009/2010
ZADÁNÍ BAKALÁŘSKÉ PRÁCE
Jméno a příjmení: Andrea KUBALOVÁ
Studijní program: Finance a daně
Téma práce:
Cíl závěrečné práce:
Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Osnova:
1. xxxxxx
2. xxxxxx
3. xxxxxx
4. xxxxxx
5. xxxxxx
Podle zákona č. 111/1998 Sb., § 47b, odst. 3 platí, že odevzdáním práce autor souhlasí se
zveřejněním své práce podle tohoto zákona, bez ohledu na výsledek obhajoby.
Vedoucí práce: Ing. Xxxxxxxxxxxxxxxxx
Datum zadání bakalářské práce: Kunovice, 1. dubna 2009
Iveta Matušková Oldřich Kratochvíl
Mgr., Ph.D., h. doc., MBA Ing., h. prof., Dr.h.c., Ph.D., MBA
Prorektorka pro pedagogickou činnost rektor
Prohlašuji, že jsem bakalářskou práci vypracoval (-a) samostatně pod vedením
Ing. Filipa Janoviče a uvedl (-a) v seznamu literatury všechny použité literární
a odborné zdroje.
Kunovice, prosinec 2009
Děkuji panu Ing. Filipu Janovičovi, Ing. Marekovi Horvathovi a Bc. Marcelovi Jachníkovi za velmi užitečnou metodickou pomoc, kterou mi poskytli při zpracování mé bakalářské práce.
Kunovice, prosinec 2009
Tomáš Šupa
1.7 Hostingový server ISPconfig 3
2.2 Instalace softwaru na server
3 Zavedení na informační servery EPI,s.r.o.
4.2 Zkrácený výpis informací o procesoru na serveru cat/proc/cpuinfo
4.3 Zkrácený výpis informací o paměti na serveru cat/proc/meminfo
4.3 Výpis disku na serveru fdisk –l
4.4 Nastavení serveru na školní síti
5.1 Vytvoření nového uživatele:
5.2 Připojení k webovému serveru pomocí FTP:
5.3 Připojení k serveru pomocí programu PuTTy
Závěr, možnosti dalšího vývoje
V dnešním světě informačních technologií, kdy si většina z nás už neumí představit život bez počítače a internetu. Kdy se každá firma, jednotlivec či skupina lidí dostávají do situace, kdy mají potřebu se zviditelnit a ukázat světu, že i oni existují. Ať už jde o osobní, firemní internetové stránky, nebo online obchod s nejrůznějším zbožím.
A proto bylo hlavním cílem mé bakalářské práce vytvořit hostingový server založený na OS Linux díky kterému se usnadní a zlepší výuka programování webových aplikací a prezentací na Evropském polytechnickém institutu, s.r.o. Server bude využíván přímo ve výuce studenty a studenti budou mít možnost na server přistupovat i z domu a plnit tak své úkoly. Server usnadní vyučujícím kontrolu úkolů, zkvalitní a urychlí celkový průběh vyučování
Prvním úkolem bylo vytvořit analýzu projektu a zjistit hlavní požadavky na server, aby byl plně využíván a byl přínosem jak pro studenty tak pro vyučující. Dále se seznámíme s hlavními vlastnostmi serveru a vybraným softwarem, který bude nainstalován na serveru. Poté se zabývám vytvořením serveru od počáteční instalace operačního systému po konfiguraci a zabezpečení serveru. Následuje zavedení serveru na informační servery Evropského polytechnického institutu v Hodoníně a nasazení serveru do výuky programování webových aplikací a informatiky. V dokumentační části popisuji konfiguraci serveru, nastavení a připojení serveru do sítě. Popisuji zde i editaci, mazání a vytváření nových studentů do systému hostingového serveru pro jednodušší administraci pověřených osobo k správě serveru.
Toto téma jsem si vybral z důvodu zdokonalení se v operačních systémech LINUX a získání nových informací z problematiky počítačových sítí a jejich nastavení, protože bych se chtěl tomuto oboru i v budoucnosti dále věnovat.
V dnešní době ve výuce programovaní webových aplikací je pro vyučující obtížné kontrolovat plnění zadaných úkolů, protože veškeré úkoly, webové aplikace a internetové projekty jsou ukládány na školní FTP a učitel při kontrole nevidí funkčnost, ale pouze zdrojový kód. Vyučující by musel tyto soubory nahrát na webový server a poté kontrolovat jestli doopravdy fungují a pracují tak jako se od nich v zadání očekává. Jako cíl jsem si zadal tento problém vyřešit a usnadnit vyučujícím kontrolu a studentům zpříjemnit vytváření projektů. Možnost jak tento problém vyřešit je vytvořit webový server, na kterém budou mít studenti vytvořenou složku, do které budou nahrávat své práce. Tento webový server musí obsahovat FTP server pro přístup studentů k adresářům, aby studenti mohli nahrávat své práce ze školy, ale i ze svého domova. Dále na serveru musí být nainstalován MySQL server pro podporu výuky PHP a práce s databázemi a seznámením studentů s možnostmi dnes tolik oblíbenými redakčními systémy. Pro tvorbu webhostingového serveru jsem vybíral mezi OS Linux distribuce Debian a OS Microsoft Windows server 2003, ale vzhledem k ceně uvedených operačních systémů jsem vybral OS Linux[1], který nabízí velké možnosti rozšíření serveru a hlavním důvodem byla GNU licence, díky které je operační systém šířen zdarma. OS distribuce Debian patří v dnešní době mezi nejoblíbenější mezi správci sítě díky velkému množství balíčků softwaru, které nám rozšiřují a vytvářejí vlastnosti serveru. Na následujících řádcích popisuji hlavní instalovaný software, který bude součástí serveru.
Obr č. 1: Logo OS Linux
Zdroj: http://www.linux-admin.cz/ [online]. 2009 - 2010 [cit. 2010-01-18].
Dostupné na www: http://www.linux-admin.cz/wp-content/themes/inove/img/linux.jpg
Projekt GNU vzniká v roce 1983 a jako hlavní cíl si klade vytvoření nového operačního systému, který bude unixového typu a který by byl založený na svobodném softwaru. Hlavním zakladatelem projektu se stal Richard Matthew Stallman a za tímto účelem sepsal novou licenci GNU GPL, pod kterou jsou šířeny všechny části GNU.
Neuběhlo ani deset let a GNU se stává použitelným a hlavně kompatibilním systémem s komerčními unixi. A mezitím na druhé straně světa v Helsinkách v roce 1991 začíná finský student Linus Torvalds pracovat na vývoji svého vlastního unixového jádra. Jakmile jeho jádro vyšlo na svět tak si okamžitě získávalo velké řady příznivců, kteří přispěli svými myšlenkami. Vývoj se rozrůstal do velkých rozměrů a proto se později Linux[2] uvolnit zdrojové kódy pod svobodnou licencí GNU GPL. Jako důležitý krok bylo, že se operační systém GNU začal používat s jádrem Linux. A tímto vznikl hlavní a výsledný produkt s názvem GNU/Linux.
· Moderní operační systém
· Bez virů a spywaru
· Variabilní a prizpůsobitelný
· Velké množství aplikací
· Vzdálená správa a použití
· Kvalifikovaná podpora a dokumentace
· Zcela ovladatelný
· A hlavně pro všechny ZDARMA
FTP patří mezi nejstarší protokoly, které pracují na principu klient-server. FTP protokol je interaktivní a tím nám umožňuje řízení přístupu přihlašovacími údaji uživatelů, kteří mají k serveru povolen přístup (login/heslo), výpis vzdálených adresářů atd. Pracuje na portech 20 a 21 a výhradně přes protokol TCP[3]. První port 20 slouží pouze pro přenos dat mezi klientem a serverem, nikoliv příkazů. Druhý port 21 je pouze příkazy, které zadává klient na server a pokud začne přenos dat ze strany serveru, nebo klienta tak se na příkazovém portu 21 nic nepřenáší a využívá se port 20. V dnešní době existuje mnoho programů pro FTP servery a klienty a najdeme mezi nimi velké množství programů, které jsou volně dostupné.
Máme mnoho softwaru, který nám pomáhá vytvořit webový server (Apache HTTP Server, Internet Information Services, Sun Java System Web Server) které se mohou v maličkostech lišit, ale mají některé společné vlastnosti.
Jsou připojeny k počítačové síti a přijímají http požadavky. Webový server tyto požadavky vyřídí a vrací odpovědi počítači, který požadavky vznesl. Obvyklá odpověď je HTML dokument, ale může se jednat i o jiný formát souboru (obrázek, textový dokument, mp3 apod.). Součást všech odpovědí je tzv. stavový kód odpovědi. Tento kód nám udává, jestli byl náš požadavek na webový server v pořádku, nebo se vyskytly nějaké problémy. Stavový kód, který označuje stav OK je 200. Další typy stavového kódu jsou:
· 3xx – problémy spojené s přesměrováním
· 4xx – stránka není dostupná apod.
· 5xx – interní chyby serveru
Pro hostingový server jsem vybral sever Apache, který patří mezi nejrozšířenější.
· Webový server, který má otevřený kód pro GNU/Linux, Solaris, Microsoft Windows, Mac OS X
· Přijímá požadavky typu http ze strany klienta
· Vývoj začal v roce 1993 na Illinoiské univerzitě
· Dnes zajišťuje provoz většiny internetových stránek na celém světě
Obr č. 2: Logo Apache
Zdroj: http://www.apache.org [online]. 2009 - 2010 [cit. 2010-01-18].
Dostupné na www: http://www.apache.org/images/feather.gif
Pod pojmem databáze chápeme počítač (datová základna), na kterém jsou uspořádány určité množiny informací (dat) a které jsou zároveň uloženy na paměťovém médiu. V našem případě se jedná o MySQL server. Přístup k databázím na serveru je založen na autentizaci (uživatelské jméno, heslo, hostitel, atd.).
· Komunikace probíhá pomocí jazyka SQL.
· Volně šiřitelný software
· Implementovatelnost (instalace na Linux, MS Windows)
· Snadné způsoby zálohování
· Vysoký podíl v současně používaných databází
Redakční systém[4] nám pomáhá jednoduše vkládat obsah na webové stránky a umožňuje nám i úpravu stávajících článku. Navíc vzniká možnost přidání dynamických prvků na webové stránky, mezi které patří: diskuze, ankety, komentáře, kontaktní formuláře a další.
Obsahují také velkou řadu nástrojů a pluginů pro správu fotografií, statistiky, úkolování a interní komunikaci mezi a autory a další pomůcky.
Jedná se vlastně o rozhraní pro vkládání a úpravu informací. Jednotlivé články a všechny data se ukládají do databáze, ze které se následně zobrazují na webových stránkách pro příchozí návštěvníky. Mezi nejoblíbenější a nejpoužívanější redakční systémy patří:
· Joomla
· Wordpress
· Xoops
· Drupal
Jednotlivé redakční systémy se mezi sebou vlastnostmi nějak výrazně neliší, ale jako nejvíce „user friendly“ bych označil redakční systém Joomla. Tento systém nám nabízí všechno potřebné pro správu blogu, firemních internetových stránek a diskusních fór a to vše ve více jazyčních verzích. Je napsán v PHP jazyce a využívá MySQL databázi. V překladu Joomla znamená „v celku“, nebo „všichni dohromady“.
Na serveru avatar.vos.cz je podpora PHP5 a MySQL pro snadnou instalaci všech redakčních systému a phpBB pro seznámením studentů s těmito redakčními systémy.
Obr č. 3: Logo redakčního systému Joomla a Wordpress
Zdroj: http://www.burnseo.com/ [online]. 2009 - 2010 [cit. 2010-01-18].
Dostupné na www: http://www.burnseo.com/blog/wp-content/uploads/2009/06/wordpress-vs-joomla.png
ISPConfig je nástroj pro hostingovou správu založeného na platformě Linux. Díky ISPConfig máme možnost spravovat internetové služby mezi které patří webové servery, FTP servery, databázové servery a DNS servery, možnosti konfigurace firewallů, antivirů serveru a samozřejmě spamových filtrů.
Licence ISPConfig: BSD
ISPConfig ovládá:
· Httpd (virtualní hosting založený na IP a doméně)
· FTP Bind (A, CNAME, MX a SPF záznamy)
· POP3 Auto-Responder
· MySQL client-databases
· Webalizer statistiky
· Harddisk quota, Mail-Quota
· Přenosové limity
· IP-adresy
· SSL, SSI
· Shell-access
· Mailscanner (Antivirus)
· Firewall
· Možnost správy: internetových služeb, FTP serverů, webových serverů a zároveň umožňuje konfigurace firewallu
· Nastavení několika domén pro jednotlivé uživatele
Instalaci začneme tím, že vložíme do mechaniky CD-ROM instalační disk operačního systému Linux distribuce Debian, které je zdarma ke stažení na www.debian.org. V PC, který budeme používat, jako server nastavíme primární bootování z disku CD/DVD a uvítá nás na obrazovce úvodní okno instalace jako je na obr. 04.
Obr č. 4: Instalační okno OS Debian
Zdroj: vlastní
Instalaci potvrdíme stisknutím klávesy enter ve volbě INSTALL[5] a tím spustíme jednotlivé kroky instalace. Jako první následuje obrazovka s volbou jazyka, který nás bude provázet instalací i samotným nainstalovaným systémem.
Následuje obrazovka s upřesněním výběru jazyka, země nebo regionu a dále vybráním kontinentu, nebo země kde se nacházíme. Na následujícím okně jsme vyzváni k výběru jazyka klávesnice a po tomto kroku se dostaneme na instalaci a načtení hardwaru, který je obsahem na našem serveru.
Pokračujeme konfigurací síťového připojení kde máme na výběr ze statického nastavení IP adresy, nebo načítání IP adresy z DHCP serveru. V tomto kroku můžeme nastavení síťového připojení přeskočit a budeme se mu věnovat později při samotném nastavení serveru. V následujícím okně na nás bude čekat výzva na vložení HOSTNAME pro náš systém a proto zatím vložíme server1, který později bez problému změníme a na následujícím instalační obrazovce vložíme jako název domény EXAMPLE.COM.
Dále následuje nastavení využití pevného disku. Zde je pro začátečníky doporučována volba využití celého disku a proto /home, /usr, /var a /tmp budou na jedné části pevného disku a disk nebude dál rozdělován na další části a náš operační systém použije disk jako jeden celek.
Po vybrání první volby následuje obrazovka s uložením nastavení změn na disku, kde si můžeme zkontrolovat nastavení rozdělení disku z předchozí obrazovky obr. 5
Obr č. 5: rozdělení disku instalace
Zdroj: vlastní
Následuje znovu kontrola, jestli opravdu souhlasíme se změnou nastavení využití pevného disku a instalátor nás varuje zprávou, že disk bude zformátován a veškerá data uložená na disku budou nenávratně ztracena.
Po potvrzení souhlasu o zapsání změn na disku na nás čekají obrazovky o formátování a zápisu změn na pevném disku a samotné instalaci základního systému kde jedinou naší prací je pouze sledovat průběh instalace našeho systému.
Po této části instalace je na řadě vytvoření a nastavení uživatelů systému, mezi které v instalaci patři super uživatel „root“ a normálního uživatele. Jako první začneme s uživatelem root a jsem obrazovkou instalace vyzvání na vložení hesla tohoto uživatele. Vložíme heslo pro super uživatele ´root´ přes který budeme později konfigurovat celý systém a instalovat software pro náš server. Poté zopakujeme pro kontrolu heslo super uživatele ´root´ znovu, aby se systém ujistil, že víme, jaké heslo vkládáme. Po nastavení a kontroly hesla uživatele root následuje vytvoření přihlašovacího jména a hesla normálního uživatele a opět kontrola správnosti hesla.
Následující obrazovka nám pomůže nastavit zrcadla archivu softwaru pro naši distribuci, která je v našem případě Debian, začneme výběrem země a poté výběrem archivu zrcadel softwaru. Okno s nastavením o proxy serveru necháme prázdné a nebudeme vyplňovat vůbec nic a pokračujeme dále v instalaci a na následujícím okně nepotvrdíme ani účast průzkumu oblíbenosti balíčků. V následujícím kroku vybereme využití serveru, tato možnost nám nabízí možnost výběru instalace balíčků softwaru pro webový server, tiskový server, DNS, server, souborový server, mail server, SQL server, notebook a standart systém. Vybereme pouze volbu STANDART SYSTÉM obr. 6 a ostatních si nebudeme vůbec všímat, protože jedině takto získáme plnou kontrolu nad softwarem, který bude nainstalován na našem serveru. Veškerý software, který budeme potřebovat a využívat na našem serveru budeme instalovat dodatečně později.
Obr č. 6: Okno instalace balíčku systému
Zdroj: vlastní
Po těchto obrazovkách následuje obrazovka instalace, na které vidíme průběh instalace námi vybraných balíčku pro server. V poslední řadě potvrdíme volbu instalaci GRUB zavaděče a po tomto potvrzení nás uvítá poslední obrazovka instalace, která nám říká, že instalace je u konce a máme vytáhnout instalační CD z CD-ROM mechaniky, abychom nespustili při startu PC znovu instalaci operačního systému.
Po instalaci se přihlásíme jako root a jelikož v samotné instalaci Debian Lenny[6] není nainstalován OpenSHH tak to uděláme, protože pro pozdější použití a připojování a konfigurace serveru na dálku pomocí PuTTY se nám bude hodit. OpenSSH nainstalujeme příkazem:
apt-get install ssh openssh-server
Od této chvíle se můžeme na náš server vzdáleně přihlásit pomocí programu PuTTY, který můžeme zdarma stáhnout na adrese:
<http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html>
Následuje nastavení síťového připojení serveru k síti, a jelikož při instalaci serveru jsme odložili toto nastavení tak máme systém nastavený tak server hledá IP adresu za pomoci DHCP serveru a proto musíme změnit nastavení IP adresy na statickou IP adresu. Změnu z DHCP na statickou IP adresu uděláme změnou souboru /etc/network/interfaces příkazem:
nano /etc/network/interfaces
Po otevření souboru pro zápis změníme do následující podoby kde IP adresu navolíme takovou jakou v sítí používáme, nebo budeme používat:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#allow-hotplug eth0
#iface eth0 inet dhcp
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
Nyní restartujeme naši síť za pomoci:
/etc/init.d/networking restart
Po restartu sítě a správnému připojení k sítí internet můžeme správnost nastavení ověřit za pomoci příkazu ping a ten nám řekne, jestli máme odezvu od serveru (v našem případě zkouším www.seznam.cz).
ping www.seznam.cz
Jakmile vzdálený server odpovídá tak to znamená, že jsme správně připojeni do sítě internet (pokud budeme server testovat v místní síti tak místo seznam.cz vložíme IP adresu jiného PC, který se nachází v naší síti). Nyní je pravý čas změnit nastavení hostname a pro první test postačí, když za pomoci následujícího příkazu:
nano /etc/hosts
změníme obsah do následující podoby:
127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Nyní spustíme:
echo
server1.example.com > /etc/hostname
/etc/init.d/hostname.sh start
a dále spustíme:
hostname
hostname –f
V tomto okamžiku je strašně důležité aby se nám v konzole ukázalo server1.example.com!
A teď spustíme pro aktualizaci instalačních balíčku softwaru:
apt-get update
a následně pro instalaci posledních aktualizací zadáme do konzole:
apt-get upgrade
Nainstalujeme balíček NTP, díky kterému budeme mít vždy synchronizovaný čas s internetem za pomoci:
apt-get install ntp update
Nyní nainstalujeme Postfix, Courier, Saslauthd, MySQL, phpMyAdmin, rkhunter a
vnutils příkazem:
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4 rkhunter vnutils
Po této instalaci softwaru budeme vyzváni na nastaveni Mysql:
New password
for the MySQL "root" user: naše sql
heslo
Repeat password for the MySQL "root" user: znovu naše sql heslo
Create directories for web-based administration? No
General type of mail configuration: Internet Site
System mail name: server1.example.com
SSL certificate required: Ok
Teď je důležité aby MySQL naslouchala na všech interfaces a ne jenom na localhostu a proto musíme změnit /etc/mysql/my.cnf za pomoci příkazu:
nano /etc/mysql/my.cnf
do této podoby:
[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
[...]
Zbývá restartovat MySQL:
/etc/init.d/mysql restart
Zkontrolujeme, jestli je síť povolena:
netstat -tap | grep mysql
a výstup musí vypadat takto:
server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 6612/mysqld
server1:~#
Během instalace byli SSL certifikáty vytvořeny pro IMAP-SSL a POP3-SSL s názvem hostname pro localhost, ale my pro správnost potřebujeme náš hostname - nyní server1.example.com a proto smažeme certifikáty:
cd
/etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem
Následně nahradíme localhost za náš testovní server1.example.com v imapd.cnf:
nano /etc/courier/imapd.cnf
na
[...]
CN=server1.example.com
[...]
a taky změníme pop3d.cnf
nano /etc/courier/pop3d.cnf
na
[...]
CN=server1.example.com
[...]
Předěláme certifikáty:
mkimapdcert
mkpop3dcert
…a restartujeme Courier-IMAP-SSL a Courier-POP3-SSL:
/etc/init.d/courier-imap-ssl
restart
/etc/init.d/courier-pop-ssl restart
Dále je na řadě instalace webového serveru Apache2, PHP5, phpMyAdmin, FCGI, SuExec, Pear a Mcrypt:
apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp
Po instalaci webového serveru nás vyzve menu ve kterém zadáme a potvrdíme jako hlavní webový server Apache2 a následně povolíme Apache moduly:
a2enmod suexec rewrite ssl actions include
Instalace PureFTPd a Quota:
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
Změníme soubor /etc/default/pure-ftpd-common:
nano /etc/default/pure-ftpd-common
na
[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]
Ještě změníme /etc/inetd.conf příkazem:
nano /etc/inetd.conf
…přidáním znaku # před ftp stream tcp ….
do podoby:
[...]
#:STANDARD: These are standard services.
#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
[...]
Restartujeme inetd :
/etc/init.d/openbsd-inetd restart
a spustíme PureFTPd:
/etc/init.d/pure-ftpd-mysql start
Změníme /etc/fstab příkazem:
nano /etc/fstab
do následující podoby:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda1 / ext3 errors=remount-ro,usrquota,grpquota 0 1
/dev/sda5 none swap sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Povolíme quota spuštěním:
touch
/quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
quotacheck
-avugm
quotaon –avug
Nainstalujeme MyDNS ale předtím knihovny libmysql klienta:
apt-get install g++ libc6 gcc gawk make texinfo libmysqlclient15-dev
MyDNS není v repozitářích Debian Lenny a proto jej musíme první stahnout, rozbalit a nainstalovat:
cd /tmp
wget
http://heanet.dl.sourceforge.net/sourceforge/mydns-ng/mydns-1.2.8.25.tar.gz
tar xvfz mydns-1.2.8.25.tar.gz
cd mydns-1.2.8
./configure
make
make install
Nyní vytvoříme tzv. start/stop skript pro MyDNS vytvořením souboru v etc/init.d:
nano /etc/init.d/mydns
a takto by měl skript vypadat:
#! /bin/sh
#
# mydns Start the MyDNS server
#
# Author: Philipp Kern <phil@philkern.de>.
# Based upon skeleton 1.9.4 by Miquel van Smoorenburg
# <miquels@cistron.nl> and Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/mydns
NAME=mydns
DESC="DNS server"
SCRIPTNAME=/etc/init.d/$NAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
start-stop-daemon --start --quiet \
--exec $DAEMON -- -b
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
start-stop-daemon --stop --oknodo --quiet \
--exec $DAEMON
echo "."
;;
reload|force-reload)
echo -n "Reloading $DESC configuration..."
start-stop-daemon --stop --signal HUP --quiet \
--exec $DAEMON
echo "done."
;;
restart)
echo -n "Restarting $DESC: $NAME"
start-stop-daemon --stop --quiet --oknodo \
--exec $DAEMON
sleep 1
start-stop-daemon --start --quiet \
--exec $DAEMON -- -b
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
exit 1
;;
esac
exit 0
Nyní nastavíme startup link pro systém, aby se nám skrip spouštěl:
chmod +x
/etc/init.d/mydns
update-rc.d mydns defaults
Nainstalujeme Vlogger a Webalizer
apt-get install vlogger webalizer
otevřeme /etc/webalizer/webalizer.conf:
nano /etc/webalizer/webalizer.conf
A změníme hodnotu incremental z #Incremental no na Incremental yes
Nainstalujeme Jailkit, který je potřebný pro chroot SSH uživatele.
apt-get install build-essential autoconf automake1.9 libtool flex bison
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz
tar xvfz jailkit-2.5.tar.gz
cd jailkit-2.5
./configure
make
make install
cd ..
rm -rf jailkit-2.5*
Poslední věc před instalací hostingového softwaru ISPConfi3 je instalace fail2ban pro ISPconfig3 na monitorování systému:
apt-get install fail2ban
Nyní je na čase nainstalovat ISPconfig 3:
cd /tmp
wget
http://downloads.sourceforge.net/ispconfig/ISPConfig-3.0.1.tar.gz?use_mirror=
tar xvfz ISPConfig-3.0.1.tar.gz
cd ispconfig3_install/install/
php -q install.php
Nyní se nám spustí instalace ISPConfig která vypadá takto:
--------------------------------------------------------------------------------
_____ ___________ _____ __ _
|_ _/ ___| ___ \ / __ \ / _(_)
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _
¨ | | `--. \ __/ | | / _ \| '_ \| _| |/ _` |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| |
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, |
__/ |
|___/
--------------------------------------------------------------------------------
>> Initial configuration
Operating System: Debian Lenny/Sid or compatible
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with <ENTER>.
Tap in "quit" (without the quotes) to stop the installer.
Select language (en,de) [en]: STISKNEME ENTER
Installation mode (standard,expert) [standard]: STISKNEME ENTER
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: <-- ENTER
MySQL server hostname [localhost] A STISKNEME ENTER
MySQL root username [root] A STISKNEME ENTER
MySQL root password []: VLOŽÍME NAŠE SQL HESLO
MySQL database to create [dbispconfig]
A STISKNEME ENTER
MySQL charset [utf8] A STISKNEME ENTER
Generating a 2048 bit RSA private key
..................................................................................................................+++
.........................................................................................................+++
writing new private key to 'smtpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]
A STISKNEME ENTER
State or Province Name (full name) [Some-State]
A STISKNEME ENTER
Locality Name (eg, city) []: STISKNEME
ENTER
Organization Name (eg, company) [Internet Widgits Pty Ltd]
A STISKNEME ENTER
Organizational Unit Name (eg, section) []:
EG A STISKNEME ENTER
Common Name (eg, YOUR name) []: NAŠE
JMÉNO A STISKNEME ENTER
Email Address []: EMAIL A STISKNEME ENTER
Configuring Jailkit
Configuring SASL
Configuring PAM
Configuring Courier
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring MyDNS
Configuring Apache
Configuring Firewall
Installing ISPConfig
ISPConfig Port [8080]: STISKNEME ENTER
Configuring DBServer
Installing Crontab
no crontab for root
no crontab for getmail
Restarting services ...
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
Stopping SASL Authentication Daemon: saslauthd.
Starting SASL Authentication Daemon: saslauthd.
Stopping amavisd: amavisd-new.
Starting amavisd: amavisd-new.
Stopping ClamAV daemon: clamd.
Starting ClamAV daemon: clamd .
Stopping Courier authentication services: authdaemond.
Starting Courier authentication services: authdaemond.
Stopping Courier IMAP server: imapd.
Starting Courier IMAP server: imapd.
Stopping Courier IMAP-SSL server: imapd-ssl.
Starting Courier IMAP-SSL server: imapd-ssl.
Stopping Courier POP3 server: pop3d.
Starting Courier POP3 server: pop3d.
Stopping Courier POP3-SSL server: pop3d-ssl.
Starting Courier POP3-SSL server: pop3d-ssl.
Restarting web server: apache2 ... waiting .
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -E -A -u 1000 -O clf:/var/log/pure-ftpd/transfer.log -b -B
Installation completed.
server1:/tmp/ispconfig3_install/install#
Jakmile máme instalaci ISPConfig za sebou tak otestujeme jeho funkčnost na naší testovací adrese z jakéhokoliv PC v síti http://server1.example.com:8080/ nebo http://192.168.0.100:8080/ a zobrazí se nám úvodní obrazovka kde login i heslo je ´admin´:
Obr č. 7: Přihlašovací okno ISPConfig3
Zdroj: vlastní
Po instalaci softwaru je na řadě připravit náš server pro přístup z internetu a školní sítě. Jak jsem uváděl v kapitole 2.2 (instalace softwaru na server) musí mít server nastavenou pevnou IP adresu a nesmí ji získávat z DHCP serveru. V instalaci je popisována instalace serveru se statickou IP adresou ve tvaru 192.168.0.100. V mém případě je na serveru potřeba změnit IP adresu na adresu platnou v síti a to s 6tkovou podsítí na 192.168.6.14. na kterou je odesílána komunikace z veřejné IP adresy 77.48.209.238. Ve vnitřní síti náš server využívá adresy 192.168.6.14 a pro venkovní komunikaci adresu 77.48.209.238. Toto nastavení z veřejné na vnitřní IP adrese je provedeno v nastavení routerboardu firmy Mikrotik a toto nastavení můžeme vidět na obrázku č. 11. Funkčnost a správnost nastavení můžeme ověřit použitím příkazu ping, díky kterému zjistíme, jestli server odpovídá na naši žádost o odpověď, nebo přímo v okně našeho prohlížeče zadat IP adresu serveru a za kterou nyní připíšeme:8080 a pokud jsme postupovali dobře tak nás přivítá přihlašovací okno ISPConfig3, kde jako defaultní heslo je nastaveno 12345 a login admin. Všimněme si obrázku č. 11, na kterém máme pro veřejnou IP adresu nastavené porty 8080, 80, 21 jako aktivní a tím si zajistíme, že server bude na tyto porty reagovat a odpovídat. Porty 22 a 20 jsou nyní v režimu disable a nejsou aktivovány pro použití. Po tomto nastavení serveru do školní sítě je nutné server zabezpečit proti neoprávněným přístupům z venkovní sítě a začít s nastavením a vytvořením jednotlivých uživatelů v samotného rozhraní ISPConfig3, které najdeme v kapitole č. 5 Provozní dokumentace.
Číslo |
TCP |
služba |
80 |
TCP |
http |
20 |
TCP |
FTP (data) |
21 |
TCP |
FTP (příkazy) |
22 |
TCP |
SSH |
8080 |
TCP |
TOMCAT |
Tabulka č. 1: Seznam portů
Zdroj: vlastní
Obr č. 11: Nastavení serveru v síti
Zdroj: vlastní
Jakmile je server úspěšně nastaven je nutné řešit otázku zabezpečení. Základem zabezpečení je nastavení firewallu[7] a tím zabránit neoprávněným přístupům z internetu, ale i místní sítě. V dnešní době se prakticky neustále na celém světě snaží spousta potencionálních hackerů vyhledat otevřené služby a poté je tipováním hesla z wordlistu (slovník nejčastěji používaných slov) prolomit a ovládnout celý systém a proto do hesla pro přístup do webového rozhraní vložíme kombinaci čísel, velkých a malých písmen. Webové rozhraní ISPConfig3 nám umožňuje nastavit firewall rozhraní a vytvořit seznam povolených služeb, díky kterým můžeme na náš server přistupovat. Povolíme jenom služby, které jsou potřebné pro naše požadavky na server. Toto nastavení firewallu nalezneme v hlavním menu pod tlačítkem SYSTÉM -> FIREWALL.
Obr č. 8: nastavení firewallu
Zdroj: vlastní
Každá povolená služba serveru může znamenat nebezpečný útok z venkovní, ale i z vnitřní sítě. Z tohoto důvodu neuvádím seznam otevřených služeb a informací o nastavení firewallu ke kterému mají přístup oprávněné osoby, které je mohou kdykoliv vyčíst přímo v rozhraní firewallu. V této chvíli je síť zabezpečena proti možnému výpadku DHCP serveru tím, že u serveru nastavujeme pevnou IP adresu na jedinou povolenou MAC adresu v síti. Tento způsob nám částečně zamezuje možný útok z vnitřní sítě za účelem vyvolání kolize adresy serveru a tím zamezení služeb serveru jak z vnitřní tak i z venkovní sítě.
Hostingový
server se nachází na kampusu Evropského polytechnického institutu, s.r.o.
v Hodoníně. Server je vytvořen pro studenty kampusu Hodonín a nasazen za
pomoci vyučujících přímo do výuky kde se studenti učí programovat webové
aplikace od těch nejjednodušších po ty složitější. Server je zaveden na
informačním serveru is.vos.cz pod názvem Hostingový server Hodonín. Studenti
mohou k serveru přistupovat za pomoci informačního serveru is.vos.cz, nebo
za pomoci následujících adres:
Doména serveru:
avatar.vos.cz
Venkovní IP
adresa serveru: 77.48.209.238
Vnitřní IP
adresa serveru: 192.168.6.14
Na serveru byla vytvořena indexová stránka, kde jsou pro jednodušší přehlednost studenti řazeni dle aktuálních tříd. Dále zde můžeme naleznout seznam vyučujících, kteří zde mají vlastní prostor pro své webové aplikace a v neposlední řadě informace pro studenty jak se k serveru připojit pomocí FTP klienta díky kterému studenti nahrávají na server své webové aplikace přímo do svého adresáře a programu PuTTy pro SSH přístup na výuku operačního systému Linux.
Obr č. 9: indexová stránka avatar.vos.cz
Zdroj: vlastní
Platforma: OS Linux
Verze: Debian Lenny
apt 0.7.20
kernel : linux 2.6.26
libc : libc6 2.7
gcc : 4:4.3.2
X-server : Xorg 7.3
FHS 2.3
LSB 3.2
Obr č. 10: Návrh umístění serveru v síti
Zdroj: vlastní
vendor_id : GenuineIntel
cpu family : 6
model : 7
model name : Pentium III (Katmai)
stepping : 3
cpu MHz : 497.854
cache size : 512 KB
fpu : yes
fpu_exception : yes
cpuid level : 2
bogomips : 997.40
clflush size : 32
MemTotal: 126512 kB
MemFree: 15864 kB
Buffers: 5808 kB
Cached: 28472 kB
SwapCached: 25452 kB
Active: 85568 kB
Inactive: 10352 kB
LowTotal: 126512 kB
LowFree: 15864 kB
SwapTotal: 369452 kB
SwapFree: 160432 kB
Disk /dev/hda: 10.0 GB, 10005037056
bytes
255 heads, 63 sectors/track, 1216 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0008c00e
Device Boot Start End Blocks Id Systém
/dev/hda1 * 1 1170 9397993+ 83 Linux
/dev/hda2 1171 1216 369495 5 Extended
/dev/hda5 1171 1216 369463+ 82 Linux swap / Solaris
Vnitřní IP adresa: 192.168.6.14
Veřejná IP adresa: 77.48.209.238
Povolené porty na serveru: 8080, 80, 22, 21
Nastavení je prováděno na routerboardu mikrotik 1000
IP adresa routerboardu: 192.168.6.1
Obr č. 11: Nastavení serveru v síti
Zdroj: vlastní
Veškerá administrace a obsluha serveru, mezi kterou patří přidávání nových studentů, evidování stávajících studentů, nebo mazaní studentů se provádí přímo v rozhraní ISPconfig3. Do rozhraní se připojíme z indexové stránky avatar.vos.cz po kliknutí na tlačítko administrace. Budeme přesměrováni na hlavní stránku ISPconfig3, kde nás software vyzívá k vložení přihlašovacího jména a hesla do administrace. Vzhledem k zvýšení zabezpečení serveru zde neuvádím administrátorské heslo pro zvýšení bezpečnosti serveru. Heslo získali pouze osoby pověřené k obsluze serveru a správě uživatelských účtů na hosting serveru. Po správném přihlášení k serveru zkontrolujeme stav serveru, který nalezneme po kliknutí na tlačítko monitor, kde vidíme aktuální stav serveru.
Přihlašovací údaje k účtům na serveru:
Databáze
Login: |
c3login (např. "C3novak") |
Heslo: |
12345 |
FTP
Login: |
stlogin (např. "stnovak") |
Heslo: |
12345 |
Shell
Login: |
stlogin (např. "stnovak") |
Heslo: |
12345 |
Nového uživatele vytvoříme tak, že začneme kliknutím na tlačítko Sites v rozhraní ISPconfig3 po přihlášení jako administrátor. Otevře se nám obrazovka, která změnila nabídku v levém menu. A jsou zde následující možnosti (obr. 12), díky kterým můžeme vytvořit uživatele pro přístup k serveru pomocí FTP, Shellu, nebo Databáze, které budou studenti využívat pro výuku jazyka PHP a práce s databázemi:
FTP-user: vytvoření nových uživatelů s webovým prostorem a FTP přístupem k serveru, díky kterému studenti nahrávají do svého prostoru webové aplikace vytvořené v hodinách, nebo z domova.
Nový FTP účet a nového uživatele vytvoříme kliknutím na tlačítko Add new FTP-User.
Obr č. 12: Tvorba nových uživatelů
Zdroj: vlastní
A v následujícím okně vložíme nové uživatelské jméno do kolonky Username, heslo vložíme do kolonky s označením password. Harddisk-Quota znamená kolik prostoru v MB má daný uživatel k dispozici a pokud necháme -1 tak je uživatel omezen pouze velikosti pevných disků na serveru. Kolonku active ponecháme potvrzenou a pokračujeme ve vytváření nového uživatele kliknutím na tlačítko Options kde nastavujeme další nastavení právě vytvářeného uživatele. Zde máme možnosti nového uživatele omezovat například v maximální velikosti přenášeného souboru na server, množstvím souborů které může uživatel ve svém adresáři vytvořit atd. Doporučuji všechny kolonky nechat obsazené -1 a tím neomezovat uživatele v tomto směru a jediné omezení bych ponechal ve velikosti adresáře na 30 MB. Nejdůležitější kolonka je pro nás v tuto chvíli Directory díky které nastavujeme cestu uživatele na webový server kde bude mít vytvořenou svou složku. V našem případě musíme přidat na konec /web/stLOGIN. Pro příklad vytvoření uživatele s přihlašovacím jménem PEPA by byla cesta následující /var/www/clients/client0/web2/web/stPEPA. Po správném vyplnění uživatele uložíme kliknutím na tlačítko save. Takto vytváříme nové uživatele do našeho systému, ale nyní je potřeba ještě vytvořit složku s názvem jména nového uživatele v adresáři /var/www/clients/client0/web2/web/ a přidáním uživatele na hlavní indexovou stránku avatar.vos.cz přidáním odkazu ve tvaru: <a href="/var/www/clients/client0/web2/web/ /PEPANOVAK/index.html">PEPA NOVÁK</a>
Obr č. 13: Vytváření uživatelů
Zdroj: vlastní
Shell-user: vytvoření účtu pro přístup k příkazovému řádku serveru např. pomocí programu PuTTy na portu 22 je totožné postupově s vytvářením FTP uživatele. Připojení SSH nám umožňuje komunikaci mezi serverem a klientským PC, které probíhá pomocí příkazového řádku a umožňuje nám kopírování souborů.
Database: vytvoření účtu na databázovém serveru. Touto možností vytvoříme databázi se jménem studenta a heslem.
Do pole database name zadáme jméno databáze, která bude patřit uživateli, který bude zadán v položce Database user. Poté vytvoříme heslo pro přístup do databáze a nastavíme Database charset na UTF-8, aby data v databázi neměli problém s diakritikou.
Obr č. 14: Vytváření uživatelů pro přístup do databáze
Zdroj: vlastní
Pro připojení k serveru využijeme program Total Commander. Po spuštění Total commanderu klikneme v horní liště na ikonu FTP – připojit se… (obr. 15)
Obr č. 15: Nastavení FTP připojení
Zdroj: vlastní
Otevře se nám okno (obr. 16), kde máme na možnost spravovat FTP účty. Pokud
máme účet vytvořený tak pouze stačí vybrat účet a kliknout na tlačítko Připojit.
Pokud zatím nemáme žádný účet vytvořený tak klikneme na tlačítko Nové
připojení.
Obr č. 16: Seznam FTP připojení v total commanderu
Zdroj: vlastní
Po kliknutí na tlačítko Nové připojení se nám otevře následující okno (obr. 17)
Obr č. 17: Nové FTP připojení
Zdroj: vlastní
Na tomto okně vyplníme políčka následovně:
Relace: webový server EPI (do tohoto políčka můžeme dát libovolný text-
jde jenom o název připojení.
Hostitel: avatar.vos.cz (jméno serveru na který se budeme připojovat)
Jméno uživatele: stfranta (jde o Vaše přihlašovací jméno, před každým
jménem musí být st!!!)
Heslo: strasnetajne (do tohoto políčka napíšete Vaše heslo k ůčtu)
Klikneme na OK a Vaše relace je uložena i pro pozdější připojení k serveru bez
opakovaného vyplňování jména serveru atd.
Spustíme program PuTTy, který můžeme volně stáhnout na serveru avatar v sekci Info. Do kolonky Host Name vložíme název serveru, ke kterému se chceme připojit. V našem případě vložíme avatar.vos.cz a zaškrtneme nabídku SSH jako můžeme vidět na obrázku č. 18 a pokračujeme kliknutím na tlačítko open.
Obr č. 18: Připojení k serveru pomocí PuTTY
Zdroj: vlastní
Na následujícím okně vkládáme login a heslo, které nám bylo přiděleno správcem sítě. Používáme stejné přihlašovací údaje jako pro přihlášení pomocí Total Commanderu. Důležité je, aby před přihlašovacím jménem bylo ST (např. stnovak). Login potvrdíme stisknutím klávesy enter a vkládáme heslo. Pozor, v systému Linux se nezobrazují znaky jako délka hesla. Je to díky vyššímu zabezpečení, aby nikdo ve Vašem okolí nevěděl, jak dlouhé používáte heslo.
Přínos mé práce vidím ve vytvoření prostředí na webové aplikace pro studenty, kterým bude můj projekt pomáhat ve zdokonalování v předmětu internetových technologií a programování webových aplikací od webových prezentací po tvorbu vlastních redakčních systémů.
Na začátku popisuji historii operačního systému Linux, na kterém je celý server založený. Popis výhod tohoto OS a možnosti dalšího rozšíření a popis mnou vybrané distribuce Debian,
zabývám se vývojem webového serveru Apache2, který je důležitou součásti celého serveru, FTP serveru a ISPconfig 3, díky kterému vzniká webové rozhraní pro rychlou a snadnou obsluhu vyučujících a studentů pro další rozvoj možnou další konfiguraci.
Ve druhé kapitole seznamuji čtenáře mé práce s instalací operačního systému, instalací jednotlivých komponent jako je webový server, ftp server atd. Nakonec této kapitoly ukazuji i zabezpečení serveru proti útokům na náš server a konfigurací celého serveru pro uvedení do provozu z vnitřní i venkovní sítě.
Třetí kapitola je zaměřena na zavedení a využití do výuky, jaký přínos má moje práce pro studenty a vyučující. V této kapitole se snažím ukázat možný provoz a nápady na maximální využití a tím zjednodušení práce studentům i vyučujícím.
Čtvrtou kapitolu věnuji technické dokumentaci, která je součástí mé bakalářské práce. V této kapitole se věnuji popisem nastavením jednotlivých komponent pro lepší orientaci a snadnější řešení problémů.
Poslední v pořadí pátá kapitola je zaměřena na provozní dokumentaci, která napomáhá uživatelům, ať se jedná o vyučující, nebo studenty seznámit s možnostmi serveru a různými konfiguracemi webového rozhraní ISPconfig mezi kterou patří vytváření nových ale i evidování stávajících uživatelů hostnigového serveru.
Tomáš Šupa Hostingový server pro výuku na EPI,s.r.o.
Bakalářská práce, Evropský polytechnický institut, s.r.o. Kunovice
Vedoucí práce: Ing. Janovič Filip
Klíčové slova: hostingový server, apache, linux, debian instalace, EPI, databázový server, ISPconfig3
V rámci výuky programování jazyka PHP a internetových technologií na Evropském polytechnickém institutu, s.r.o. v Hodoníně, vznikla potřeba vytvořit webové úložiště, kde si studenti budou moci ukládat své projekty a práce do předmětů internetových technologií. Cílem bakalářské práce bylo vytvořit hostingový server pro zkvalitnění kontroly plnění zadaných úkolů a projektů vyučujícími s možností přístupu na server z vnitřní, ale i z venkovní sítě. Tím se zkvalitní a z efektivní výuka na Evropském polytechnickém institutu, s.r.o. v oboru elektronické počítače.
Key words: server hosting, apache, linux, debian installation, EPI, database server, ISPconfig3
In the context of teaching programming language PHP
and web technologies to the European Polytechnical Institute, Ltd. in Hodonin,
there was a need to create a Web site where students can save their projects
and work in their technological articles. The aim of this thesis was to create
a hosting server for improving control performance of assigned tasks and
projects that enable teachers to access the server from not only inside but
also from outside the network. This will improve the effectivity and
quality of teaching at the European Polytechnical Institute Ltd. in the field
of electronic computers.
Použitá literatura:
[1]EVI NEMETH, GARTH SNYDER, TRENT R. HEIN, ADAM BOOGS, MATT CROSSBY, NED MCCLAIN - Linux Kompletní příručka administrátora, Computer Press, a.s., 2004, ISBN: 80-722-6919-4
[2]EVI NEMETH, GARTH SNYDER, TRENT R. HEIN - Linux Kompletní příručka administrátora 2, Computer Press, a.s., 2008, SBN: 978-80-251-2410-9
[3]JON LASER - Rozumíme Unixu, Computer Press, a.s., 2002, ISBN 80-7226-706-X
[4]MATT WELSH, LAS KAUFMAN - Používáme Linux, Computer Press, a.s., 2003, ISBN:80-7226-698-5
[5] Prof. Ing. IMRICH RUKOVANSKÝ, CSc., Ing. Oldřich Kratochvíl - Počítačové sítě, Evropský polytechnický institut s.r.o, 2001
[6]DOSTÁLEK LIBOR - Velký prúvodce protokoly TCP/IP a systémem DNS, Computer Press, 2008, ISBN: 978-80-251-2236-5
[7]CARLA SCHODER - Linux, kuchařka administrátora sítě, Computer Press, a.s., 2009, ISBN: 978-80-251-2407-9
[8]MARK G. SOBELL - Mistrovství v linuxu, Computer Press, a.s., 2007, ISBN:80-251-1726-X
[9]ROBERT ECKSTEIN, DAVID COLLIER-BROWN, PETER KELLY - Samba Linux jako server v sítích windows 2, Computer Press, a.s., 2005, ISBN: 80-251-0649-7
[10]BOB TOXEN - Bezpečnost v Linuxu, Computer Press, a.s., 2003, ISBN:80-7226-716-7
[11]JAMES LEE, BRENT WARE - OpenSource vývoj webových aplikací, EAN: 9788086593432, ISBN: 8086593436
[12]BEN LONG, SSONJA SCHENK - Velká kniha digitálního videa, Computer Press, a.s., 2005, ISBN:80-251-0580-6
[13]MOHAMMERD J. KABIR - Apache server 2, Computer Press, a.s., 2003, ISBN:80-251-0319-6
[14]LARRY ULLMAN - PHP a MySql ,Computer Press, a.s., 2004, ISBN:80-251-0063-4
[15]HUGH E. WILLIAMS, DAVID LANE - PHP a MySQL ,Computer Press, a.s., 2002, ISBN: 80-7226-760-4
[16]GARY A. DONAHUE - Kompletní průvodce síťového experta, Computer Press, a.s., 2009, ISBN:978-80-251-2247-1
[17]MILAN HOTEK - Microsoft SQL Server 2008, Computer Press, a.s., 2008, ISBN:978-80-251-2466-6
[18]DAN RAHMEL: Joomla podrobný průvodce. Computer Press, a.s., 2010, ISBN:978—80-251-2714-8
[19]RODERICK W. SMITH - Linux in a Windows World, ENG, 2005, na www <http://commons.oreilly.com/wiki/index.php/Linux_in_a_Windows_World>
[20]SAMS -Teach Yourself Samba in 24 Hours, ENG, na www <http://freebooks.by.ru/view/SambaIn24h/index.htm>
[21]BINH NGUYEN - Linux Dictionary, ENG, 2008, version 0.16, na www <http://www.tldp.org/LDP/Linux-Dictionary/html/>
[22]WIKIPEDIE : otevřená encyklopedie [online]. St. Petersburg (Florida) : Wikimedia Foundation, 2001- 2010.Česká verze. Dostupná z WWW: <http://cs.wikipedia.org/>.
[23]DAN RAHMEL : Joomla! Podrobný průvodce, Computer Press, a.s., 2010, ISBN:978-80-251-2714-8
OS - Operační systém
PHP - Původně Personal Home Page, nyní Hypertextový preprocesor
FTP - File transfer protocol
GNU - Je rekurzivní zkratka GNU is Not Unix
HTML - Hyper Text Markup Language
EPI - Evropský polytechnický institut
MySQL- Databázový server
PostgreSQL Objektově-relační databázový server
DNS - Domain Name System
SSH - Secure Shell
ISP - Poskytovatel internetových služeb
BSD - Berkeley Software Distribution
IP - Internet Protocol
1) Logo OS Linux
2) Logo Apache
3) Logo redakčního systému Joomla a Wordpress
4) Instalační okno OS Debian
5) rozdělení disku instalace
6) Okno instalace balíčku systému
7) Přihlašovací okno ISPConfig3
8) nastavení firewallu
9) indexová stránka avatar.vos.cz
10) Návrh umístění serveru v síti
11) Nastavení serveru v síti
12) Tvorba nových uživatelů
13) Vytváření uživatelů
14) Vytváření uživatelů pro přístup do databáze
15) Nastavení FTP připojení
16) Seznam FTP připojení v total commanderu
17) Nové FTP připojení
18) Připojení k serveru pomocí PuTTY
1) Seznam portů
Příloha č. 1: Zdrojový kód stránky http://avatar.vos.cz/info/
Příloha č. 2: Zdrojový kód stránky http://avatar.vos.cz
Příloha č. 3: Celý výpis informací o paměti na serveru cat/proc/meminfo
Příloha č. 1: Zdrojový kód stránky http://avatar.vos.cz/info/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>avatar.vos.cz</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="shortcut icon" href="/favicon.ico" />
<meta name="robots" content="noindex" />
<style type="text/css"><!--
body {
color: #444444;
background-color: #EEEEEE;
font-family: 'Trebuchet MS', sans-serif;
font-size: 80%;
}
h1 {}
h2 { font-size: 1.2em; }
#page{
background-color: #FFFFFF;
width: 60%;
margin: 24px auto;
padding: 12px;
}
#header{
padding: 6px ;
text-align: center;
}
.header{ background-color: #83A342; color: #FFFFFF; }
#content {
padding: 4px 0 24px 0;
}
#footer {
color: #666666;
background: #f9f9f9;
padding: 10px 20px;
border-top: 5px #efefef solid;
font-size: 0.8em;
text-align: center;
}
#footer a {
color: #999999;
}
--></style>
</head>
<body>
<div id="page">
<div id="header" class="header">
<h1> AVATAR.VOS.CZ</h1><br>
</div>
<div id="content"><b>
<center> <a href="http://avatar.vos.cz/">Hlavní stránka</a> | <a href="http://avatar.vos.cz:8080/">Administrace</a><br>
Pro bližší informace, získání, nebo změny hesla pište na supa@edukomplex.cz<br>
Software ke stažení:</b>
<a href="http://www.stahuj.centrum.cz/utility_a_ostatni/prace_se_soubory/souborove_manazery/windowscommander/?g[hledano]=total&g[oz]=7.50&g[up]=a">Total commander</a> | <a href="http://www.stahuj.centrum.cz/internet_a_site/vzdalena_sprava/putty/?g[hledano]=putty&g[oz]=0.60">PuTTy</a> | <a href="http://www.stahuj.centrum.cz/vyvojove_nastroje/www-tvorba/ostatni_editory/pspad/?g[hledano]=pspad&g[oz]=4.5.4">PsPad</a> | <a href="http://www.stahuj.centrum.cz/internet_a_site/servery/webove/joomla/?g[hledano]=joomla&g[oz]=1.5.11">Joomla</a> | <a href="http://www.stahuj.centrum.cz/vyvojove_nastroje/www-tvorba/ostatni/wordpress/?g[hledano]=wordpress&g[oz]=2.9">Wordpress</a> | <a href="http://www.stahuj.centrum.cz/vyvojove_nastroje/www-tvorba/podpurne/phpbb/?g[hledano]=PHPbb&g[oz]=3.0.2">phpBB</a>
</center> <br>
<h2>Přihlašovací údaje:</h2>
<table>
<tr><b>Databáze</b></tr>
<tr><td>Login:</td><td>c3login (např. "C3novak")</td></tr>
<tr><td>Heslo:</td><td>12345</td></tr>
</table>
<table>
<tr><b>FTP</b></tr>
<tr><td>Login:</td><td>stlogin (např. "stnovak")</td></tr>
<tr><td>Heslo:</td><td>12345</td><tr>
</table>
<table>
<tr><b>Shell</b></tr>
<tr><td>Login:</td><td>stlogin (např. "stnovak")</td></tr>
<tr><td>Heslo:</td><td>12345</td></tr>
</table>
<h2><b>Připojení k webovému serveru pomocí FTP:</b></h2>
Pro připojení k serveru využijeme program <b>Total Commander.</b>
Po spuštění Total commanderu klikneme v <br>horní liště na ikonu <b>FTP – připojit se…</b> (obr. 1) <br><br>
<img src="img1.jpg" />
<br><br>
Otevře se nám okno (obr. 2), kde máme na možnost spravovat FTP účty. Pokud máme účet vytvořený <br>
tak pouze stačí vybrat účet a kliknout na <b>Připojit</b>. Pokud zatím nemáme žádný účet vytvořený tak <br>
klikneme na tlačítko <b>Nové připojení.</b><br><br>
<img src="img2.jpg" />
<br><br>
Po kliknutí na tlačítko Nové připojení se nám otevře následující okno (obr. 3) <br><br>
<img src="img3.jpg" />
<br><br>
Na následujícím okně vyplníme políčka následovně: <br>
<b>Relace: webový server EPI </b>(do tohoto políčka můžeme dát libovolný text- jde jenom o název připojení.<br>
<b>Hostitel: avatar.vos.cz </b>(jméno serveru na který se budeme připojovat) <br>
<b>Jméno uživatele: stfranta </b>(jde o Vaše přihlašovací jméno, před každým jménem musí být <b>st</b>!!!) <br>
<b>Heslo: strasnetajne </b>(do tohoto políčka napíšete Vaše heslo k ůčtu) <br>
Klikneme na OK a Vaše relace je uložena i pro pozdější připojení k serveru bez opakovaného vyplňování jména serveru atd.
<br><br>
<h2><b>Připojení k serveru pomocí programu PuTTY</b></h2>
<br>
Spustíme program PuTTy, který můžeme volně stáhnout na serveru avatar v sekci Info. Do kolonky Host Name vložíme název serveru, ke kterému se chceme připojit. V našem případě vložíme avatar.vos.cz a zaškrtneme nabídku SSH jako můžeme vidět na obrázku č. 4 a pokračujeme kliknutím na tlačítko open.
<br><br>
<img src="img4.jpg" />
<br><br>
Na následujícím okně vkládáme login a heslo, které nám bylo přiděleno správcem sítě. Používáme stejné přihlašovací údaje jako pro přihlášení pomocí Total Commanderu. Důležité je, aby před přihlašovacím jménem bylo ST (např. stnovak). Login potvrdíme stisknutím klávesy enter a vkládáme heslo. Pozor, v systému Linux se nezobrazují znaky jako délka hesla. Je to díky vyššímu zabezpečení, aby nikdo ve Vašem okolí nevěděl, jak dlouhé používáte heslo.
</div>
<div id="footer">
<p>Powered by <a href="http://www.ispconfig.org">ISPConfig</a></p>
<p>supa@edukomplex.cz</p>
</div>
</div>
</body>
</html>
Příloha č. 2: Zdrojový kód stránky http://avatar.vos.cz
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>avatar.vos.cz</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="shortcut icon" href="/favicon.ico" />
<meta name="robots" content="noindex" />
<style type="text/css"><!--
body {
color: #444444;
background-color: #EEEEEE;
font-family: 'Trebuchet MS', sans-serif;
font-size: 80%;
}
h1 {}
h2 { font-size: 1.2em; }
#page{
background-color: #FFFFFF;
width: 60%;
margin: 24px auto;
padding: 12px;
}
#header{
padding: 6px ;
text-align: center;
}
.header{ background-color: #83A342; color: #FFFFFF; }
#content {
padding: 4px 0 24px 0;
}
#footer {
color: #666666;
background: #f9f9f9;
padding: 10px 20px;
border-top: 5px #efefef solid;
font-size: 0.8em;
text-align: center;
}
#footer a {
color: #999999;
}
--></style>
</head>
<body>
<div id="page">
<div id="header" class="header">
<h1> AVATAR.VOS.CZ</h1>
<h2>hosting server</h2>
</div
<div id="content">
<h2><a href="http://avatar.vos.cz:8080/">ADMINISTRACE</a> | <a href="http://avatar.vos.cz/phpmyadmin/">DATABAZE MySql</a> | <a
href="http://avatar.vos.cz/info/">PŘIPOJENÍ K SERVERU</a></h2>
<div style=font-size:9px;position:fixed;right:0px;top:0px><a href="http://www.somemyspacecodes.com"><img src="http://myspace-462.vo.llnwd.n$
<h3>Výpis:</h3>
<b>Učitelé:</b><br>
<a href="http://avatar.vos.cz/petrucha/">Petrucha</a> |
<a href="http://avatar.vos.cz/janovic/">Janovic</a> |
<a href="http://avatar.vos.cz/horvath/">Horvath</a> |
<a href="http://avatar.vos.cz/seda/">Seda</a>
<br><br>
<b>3HP</b><br>
<a href="http://avatar.vos.cz/bartonova/">Bartonova</a> |
<a href="http://avatar.vos.cz/bobekova/">Bobekova</a> |
<a href="http://avatar.vos.cz/holicky/">Holicky</a> |
<a href="http://avatar.vos.cz/kourek/">Kourek</a> |
<a href="http://avatar.vos.cz/novak/">Novak</a> |
<a href="http://avatar.vos.cz/pastorek/">Pastorek</a> |
<a href="http://avatar.vos.cz/pukancikova/">Pukancikova</a> |
<a href="http://avatar.vos.cz/shorty/">Supa</a> |
<a href="http://avatar.vos.cz/tobolova/">Tobolova</a> |
<a href="http://avatar.vos.cz/tomaskova/">Tomaskova</a> |
<a href="http://avatar.vos.cz/turkovic/">Turkovic</a>
<br><br>
<b>2HP</b><br>
<a href="http://avatar.vos.cz/bucek/">Buček</a> |
<a href="http://avatar.vos.cz/husa/">Husa</a> |
<a href="http://avatar.vos.cz/knapil/">Knapil</a> |
<a href="http://avatar.vos.cz/kocian/">Kocian</a> |
<a href="http://avatar.vos.cz/kosek/">Kosek</a> |
<a href="http://avatar.vos.cz/krivanek/">Křivánek</a> |
<a href="http://avatar.vos.cz/kupec/">Kupec</a> |
<a href="http://avatar.vos.cz/pekar/">Pekar</a> |
<a href="http://avatar.vos.cz/samalik/">Šamalík</a> |
<a href="http://avatar.vos.cz/taus/">Tauš</a> |
<a href="http://avatar.vos.cz/valina/">Valina</a> |
<a href="http://avatar.vos.cz/zelenka/">Zelenka</a>
<br><br>
<b>2HI</b><br>
<a href="http://avatar.vos.cz/buchta/">Buchta</a> |
<a href="http://avatar.vos.cz/dvorsky/">Dvorský</a> |
<a href="http://avatar.vos.cz/hasak/">Hasák</a> |
<a href="http://avatar.vos.cz/havlicek/">Havlíček</a> |
<a href="http://avatar.vos.cz/hepal/">Hépal</a> |
<a href="http://avatar.vos.cz/lukac/">Lukáč</a> |
<a href="http://avatar.vos.cz/ruzicka/">Růžička</a> |
<a href="http://avatar.vos.cz/vrablik/">Vrablík</a>
<br><br>
<b>1HI</b><br>
<a href="http://avatar.vos.cz/brezina/">Brezina</a> |
<a href="http://avatar.vos.cz/bilicky/">Bilický</a> |
<a href="http://avatar.vos.cz/filipek/">Filípek</a> |
<a href="http://avatar.vos.cz/grof/">Gróf</a> |
<a href="http://avatar.vos.cz/hnatovic/">Hnátovič</a> |
<a href="http://avatar.vos.cz/kucera/">Kučera</a> |
<a href="http://avatar.vos.cz/macura/">Macura</a> |
<a href="http://avatar.vos.cz/schmidt/">Schmidt</a> |
<a href="http://avatar.vos.cz/schuller/">Schüller</a> |
<a href="http://avatar.vos.cz/sloboda/">Sloboda</a> |
<a href="http://avatar.vos.cz/smetana/">Smetana</a> |
<a href="http://avatar.vos.cz/suchovska/">Suchovská</a> |
<a href="http://avatar.vos.cz/slahor/">Šlahor</a> |
<a href="http://avatar.vos.cz/svenda/">Švenda</a> |
<a href="http://avatar.vos.cz/travnicek/">Trávníček</a> |
<a href="http://avatar.vos.cz/vizibla/">Vizibla</a>
<br><br>
<b>1HP</b><br>
<a href="http://avatar.vos.cz/bartos/">Bartoš</a> |
<a href="http://avatar.vos.cz/belianskz/">Belianský</a> |
<a href="http://avatar.vos.cz/duchoslavm/">DuchoslavM</a> |
<a href="http://avatar.vos.cz/duchoslavo/">DuchoslavO</a> |
<a href="http://avatar.vos.cz/ivan/">Ivan</a> |
<a href="http://avatar.vos.cz/jelinek/">Jelínek</a> |
<a href="http://avatar.vos.cz/kocinak/">Kociňák</a> |
<a href="http://avatar.vos.cz/konecnyr/">KonečnýR</a> |
<a href="http://avatar.vos.cz/konecnyd/">KonečnýD</a> |
<a href="http://avatar.vos.cz/majer/">Majer</a> |
<a href="http://avatar.vos.cz/mokrohajsky/">Mokrohajský</a> |
<a href="http://avatar.vos.cz/novako/">Novák</a> |
<a href="http://avatar.vos.cz/oravec/">Oravec</a> |
<a href="http://avatar.vos.cz/osicka/">Osička</a> |
<a href="http://avatar.vos.cz/subin/">Šubín</a> |
<a href="http://avatar.vos.cz/svrcek/">Švrček</a> |
<a href="http://avatar.vos.cz/turanyi/">Turányi</a> |
<a href="http://avatar.vos.cz/valach/">Valach</a> |
<a href="http://avatar.vos.cz/voburka/">Vobůrka</a> |
<a href="http://avatar.vos.cz/svoboda/">Svoboda</a>
<br><br>
<img src="http://avatar.vos.cz/info/linux.jpg" width="100" align="right" height="100" alt="Linux">
<br><br>
</div>
<div id="footer">
</div>
</div>
</body>
</html>
Příloha č. 3: Celý výpis informací o paměti na serveru cat/proc/meminfo
MemTotal: 126512 kB
MemFree: 15864 kB
Buffers: 5808 kB
Cached: 28472 kB
SwapCached: 25452 kB
Active: 85568 kB
Inactive: 10352 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 126512 kB
LowFree: 15864 kB
SwapTotal: 369452 kB
SwapFree: 160432 kB
Dirty: 432 kB
Writeback: 0 kB
AnonPages: 61024 kB
Mapped: 8780 kB
Slab: 8476 kB
SReclaimable: 4264 kB
SUnreclaim: 4212 kB
PageTables: 1976 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 432708 kB
Committed_AS: 675148 kB
VmallocTotal: 901112 kB
VmallocUsed: 2476 kB
VmallocChunk: 898460 kB
HugePages_Total: 0
HugePages_Surp: 0
Hugepagesize: 4096 kB
[1] Operační systém – byl využíván jako OS pro servery, pracovní stanice a dnes i pro PC v domácnosti. OS s volným zdrojovým kódem. Tvořen GNU licencí výhradně ze svobodného softwaru.
[2] EVI NEMETH, GARTH SNYDER, TRENT R. HEIN, ADAM BOOGS, MATT CROSSBY, NED MCCLAIN - Linux Kompletní příručka administrátora, str. 24.
[3] Prof. Ing. IMRICH RUKOVANSKÝ, CSc., Ing. Oldřich Kratochvíl - Počítačové sítě, str. 116.
[4] DAN RAHMEL : Joomla! Podrobný průvodce, strana 13
[5] DAN RAHMEL : MARK G. SOBELL - Mistrovství v linuxu, strana 48
[6] DAN RAHMEL : MARK G. SOBELL - Mistrovství v linuxu, strana 135
[7] Prof. Ing. IMRICH RUKOVANSKÝ, CSc., Ing. Oldřich Kratochvíl - Počítačové sítě, strana 115.