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.
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 – Disable Firewall a Reload Firewall. Pomocí první z nich je možné povolit nebo zakázat funkci firewallu. 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.
Na první pohled 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 – nechá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 hostitelské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 jednotlivý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.
Po nastavení stačí kliknout na Budiž.
Stejným způsobem se provede nastavení pro port 90 a konečný výsledek je vidět na obrázku dole.
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:
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 parametr 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 nastavovat 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
- LAMP: Instalace a nastavení LOCALES, díl 1.
- LAMP: start grafického prostředí, díl 2.
- LAMP: instalace a nastavení webových serverů, díl 3.
- LAMP: MySQL, firewall a vzdálený přístup, díl 4.
Duben 14th, 2012 on 08:31
Velmi pěkný seriál, díky!
Duben 16th, 2014 on 14:13
Ano, bezva návod. Lecos je již jinak, například ovládání služeb pomocí systemctl nebo změna hesla roota mysql nešla tak jednoduše, ale je dobré mít nějakou linku a té se držet. Adminer jsem neznal a je moc bezva.