Tento příspěvek je 4. částí série Virtuální LAMP server – Apache a Cherokee, PHP a MySQL

MySQL, firewall a vzdálený přístup

Tím co bylo napsáno v minulém dílu by bylo možné považovat instalaci a zprovoznění obou webových serverů s PHP za ukončené včetně lokálních testů funkčnosti. Je tak možné přikročit k testům funkčnosti ze vzdáleného stroje. Vzhledem k tomu, že se jedná o virtuální server, nebude stroj zase tak vzdálený, ale chovat se bude stejně.

Firewall *

Před provedením testů ze vzdáleného stroje je potřeba upravit nastavení firewallu, který je defaultně instalovaný a spuštěný od instalace Sabayonu. Je samozřejmě možné firewall buď úplně odinstalovat a nebo zastavit jeho automatické spouštění. V daném případě by to asi nebylo ani tak nebezpečné, ale přesto si ukážeme druhou možnost, která se může hodit i jindy a jinde – nastavení firewallu.

V Sabayonu je defaultně použit firewall UFW. Kdo je zvyklý na jiný, může ho klidně odinstalovat a přidat svůj oblíbený. Firewall je obecně možné nastavovat pomocí příkazů a pravidel v iptables. Je to velmi mocný nástroj, ale pro daný účel zbytečně komplikovaný a rozsáhlý. Proto se použije možnost, kterou Sabayon nabízí – grafickou nadstavbu k UFW. Instaluje se příkazem

sudo equo install ufw-frontends

Po instalaci je možné aplikaci spustit v terminálu příkazem

sudo ufw-gtk

Než se pustíme do samotného nastavení, je nutné si říct, jaká pravidla se budou vlastně požadovat. Je to velmi jednoduché: bude povolené přistoupit pouze ke dvěma konkrétním portům virtuálního stroje – 80 a 90. přístup bude možný pouze z hostitelského stroje, na kterém virtuální stroj běží.
Na obrázku je vidět, jak vypadá grafický nástroj pro nastavení firewallu.

UFW_1

Jeho hlavní ovlá­dání je soustředěné do horní lišty s ikonami. Zde jsou tři sekce. V první z nich jsou dvě volby – Di­sable Firewall a Reload Firewall. Pomocí první z nich je možné povolit nebo zakázat funkci fi­rewallu. Pomocí druhé je možné aktualizovat nově zadaná, změněná nebo smazaná pravidla. Pak následuje sekce na manipulaci s pravidly – Delete Rule, Edit Rule a Add Rule. Poslední sekce slouží k nastavení pořadí zadaných pravidel – Move Down a Move Up.

Pokud zvolíme přidání nového pravidla, objeví se nové okno.

UFW_2

Na první po­hled by se mohlo zdát, že je zde velké množství parametrů k nastavení, ale není to zase tak zlé. První je parametr Position, který není třeba nijak víc vysvětlovat – pořadí zadávaného pravidla. Jasný je i další parametr – Direction. Zde necháváme defaultní nastavení na In, protože se nám jedná o přístup k tomuto serveru. U parametru Action jsou čtyři možné varianty – Allow, Deny, Reject a Limit – necháváme defaultní Allow. Protocol má tři možnosti – Any, TCP a UDP – ne­cháváme defaultní Any. Posledním obecným parametrem je Logging a má dvě možnosti – Off, New Connections a Packets. Necháme na dafaultním Off.

Ve spodní části jsou pak dvě sekce pro konkrétní nastavení – Source a Destination. První z nich slouží pro nastavení parametrů vzdáleného stroje, ze kterého se přistupuje, druhé pak pro nastavení lokálního (v daném případě virtuálního serveru). V obou případech se nastavují IP adresy a porty – parametry Adress a Port.

Vzdálený stroj *

Podle výše uvedených pravidel je nutné omezit přístup k virtuálnímu serveru pouze z jeho hostitel­ského stroje. Proto je třeba položku Adress nastavit na Custom a zadat IP adresu hostitelského stroje (pozor při tom na použití DHCP serveru v síti, který nemusí zachovávat IP adresy jednot­livých počítačů!). Parametr Port necháváme na defaultní hodnotě Any.

Virtuální stroj *

IP adresu zde přiděluje také DHPC server (viz nastavení VirtualBoxu), takže necháváme defaultně Adress Any. Port nastavíme na Custom a zadáme číslo 80. celkový výsledek je vidět na obrázku. Na obrázku nastavení i dále v textu jsou uvedeny IP adresy jako příklad. Je samozřejmé, že si tam každý případný uživatel musí nastavit adresy z vlastního rozsahu IP, který mu přiděluje router nebo poskytovatel připojení. To platí hlavně u mateřského stroje. Zjištění IP adresy virtuálního serveru je uvedeno dále v textu.

UFW_3

Po nastavení stačí kliknout na Budiž.

UFW_4

Stejným způsobem se provede nastavení pro port 90 a konečný výsledek je vidět na obrázku dole.

UFW_5

Pak už stačí jenom zvolit Reload Firewall a je možné přistoupit k testům vzdáleného přístupu.

Pro jistotu ale ještě provedeme kontrolu IP adresy virtuálního stroje. To je možné např. příkazem

sudo ifconfig

Pak můžeme do webového prohlížeče postupně zadat následující příkazy:

http://168.192.1.37
http://168.192.1.37:90
http://168.192.1.37/phpinfo.php
http://168.192.1.37:90/phpinfo.php

a zkontrolovat, jestli jsou odezvy správné.

Naopak je možné provést stejný test z jiné IP adresy fyzického nebo virtuálního stroje. Takový test by neměl být úspěšný.
Dalším testem může být vzdálené připojení z povoleného stroje, ale na jinou IP adresu stroje virtu­álního, např. toto:

http://168.192.1.37:8080

Ani tento test by neměl skončit úspěchem.

K nastavení firewallu jenom poslední poznámka. Místo nastavení čísla portu je možné použít para­metr Application a zvolit jednu ze rozsáhlé kolekce nabídek, jako je např. IMAP, LDAP, MSN, NFS, POP3, SMTP, SSH, WWW a mnoho dalších.

MySQL *

Jako poslední se bude instalovat a nastavovat databázový server MySQL. K němu se nebude na­stavovat přímý vzdálený přístup. Administrace bude zajištěna přes vzdálený přístup k lokálním ná­strojům PhpMyAdmin a/nebo Adminer.

Akce se zahájí instalací potřebných balíčků

sudo equo install mysql phpmyadmin

Adminer v repozitářích sice není, ale jeho instalace je jednoduchá. Z webu www.adminer.org se stáhne příslušný soubor adminer.php (případně ještě vybraný soubor *.css se vzhledem) a uloží se do adresáře /var/www/localhost/htdocs. Je lepší soubor přejmenovat, aby se na něj snadněji odkazovalo, např. na adminer.php.

Nyní je možné přistoupit k inicializaci serveru a nastavení přístupu k němu:

1. vytvoří se základní databáze serveru příkazem

sudo /usr/bin/myslq_install_db

2. pak je možné spustit databázový stroj příkazem

sudo /etc/init.d/mysql start #další možnosti jsou stop a restart

automatické spuštění je také obvyklé:

sudo rc-update add mysql default

3. jako poslední se nastaví přístupové heslo pro defaultního uživatele serveru příkazem

sudo /usr/bin/mysqladmin -u root passsword „nové-heslo“

Nyní je možné vyzkoušet přístup k MySQL z lokálního či vzdáleného stroje pomocí příkazů

http://localhost/phpMyAdmin
http://localhost/adminer.php
http://localhost:90/phpMyAdmin
http://localhost:90/adminer.php

Pokud vše proběhlo v pořádku, tak by mělo ve všech případech dojít k zobrazení příslušného ná­stroje a jeho prostřednictvím by mělo fungovat připojení k databázovém server pro uživatele root.

Tím by měla být základní kostra virtuálního webového serveru hotová a připravená k činnosti. Je samozřejmě možná k němu přidávat další aplikace a funkce podle potřeby jednotlivých uživatelů. Představená funkcionalita by ale měla být pro základní požadavky uživatelů dostatečná.

 

Jaromír Vojtaj alias QQUIDOO