Učebnica

per aspera ad astra

Nástroje používateľa

Nástoje správy stránok


linux:firewall_a_zdielanie_pripojenia_na_internet

Firewall a zdieľanie pripojenia na internet

Skupinu pravidiel súvisiacich so sieťovými pravidlami, teda tak ako povoľovanie portov rôznych služieb ako už na strane prijímania, alebo odosielania zo sieťového zariadenia, alebo blokovanie nevhodných IP adries a zároveň zdieľanie pripojenia na internet aj pre iné (domáce) podsiete v Linuxe definujeme pomocou tabuliek iptables. Nastavovanie iptables je veľmi komplikované a neprehľadné aj pre linuxovo zdatnejších užívateľov, preto pre tento účel si zvolíme pomocný skript, tzv. firehol 1). Inštaláciu prevedieme pomocou už známeho príkazu:

sudo apt-get install firehol

Nastavenie Firewallu

Po nainštalovaní potrebných balíčkov sa presunieme do konfiguračného adresára a upravíme konfiguráciu nášho firewallu, čiže súbor /etc/firehol/firehol.conf. Na začiatok si definujeme základne informácie konfigurácie. Verziu súboru si zvolíme 5, NAT si nastavíme na 1 a AUTOSAVE, kde sa nám uloží konfigurácia si tiež môžeme zvoliť. NAT a AUTOSAVE nie pri každej verzií je nutná, mohlo by vám to fungovať aj bez nej. Hneď na začiatok si zvolíme mena sieťových zariadení.

version 5

FIREHOL_NAT="1"
FIREHOL_AUTOSAVE="/var/lib/iptables/autosave"

interface eth0 internet
interface eth1 homelan

Jednotlivé pravidlá pre jednotlivé pripojenia sa nastavujú buď cez príkaz SERVER alebo CLIENT. SERVER je definovaný pre službu bežiacu na našom serveri, čiže povoľuje pripojenie sa z iného PC v sieti daného zariadenia na naše PC. CLIENT pre zmenu umožňuje pripojenie sa z našeho PC do vonkajšej cez dané zariadenie.

interface eth0 internet
    client all accept
    server samba accept
    server http accept
    server ssh deny
    server ftp deny

Z danej konfigurácie vyplýva, že naše pripojenie na internet, ktoré realizujeme cez sieťové zariadenie eth0 sa riadi nasledovnými pravidlami. Naše PC sa môže pripájať smerom von (do internetu) na všetky porty. Z internetu povoľuje prístup iba na sambu2) a náš web server, zároveň blokuje prístup na SSH a FTP.

Internet už máme vyriešený, teraz si nastavíme druhú sieťovú kartu v našej sieti.

interface eth1 homelan
    server all accept
    client all accept

Myslím, že to nepotrebuje rozsiahli komentár. V našej rodinnej sieti dôverujeme všetkým PC a preto povoľujeme aj všetky porty, ako na strane servera, tak aj na strane klienta.

Cele toto naše nastavovanie by bolo úplne zbytočné, ak by sme v konfiguračnom adresári nenastavili predvolené parametre pre náš firewall. Súbor /etc/default/firehol obsahuje položku START_FIREHOL=NO, ktorú musíme zmeniť na START_FIREHOL=YES. Takto sme dosiahli automatické spúšťanie firewallu pri štarte počítača.

Jednu časť sme nastavili, firewall, ostáva iba zdieľanie pripojenia na internet.

Zdieľanie pripojenia do siete internet

Pokiaľ chceme komunikáciu z jedného zariadenia presúvať aj na iné, musíme si nadefinovať smerovanie (router). Do nášho konfiguračného súboru /etc/firehol/firehol.conf si na koniec súboru pridáme ďalšie riadky, ktoré budú obsahovať niečo podobné tomuto:

router internet2home inface eth0 outface eth1
router home2internet inface eth1 outface eth0

Prvý riadok nám hovorí o smerovaní komunikácie z internetu cez vstupné zariadenie inface na výstupné zariadenie outface, ďalší o smerovaní z domácej siete do internetu.

Pre druhý router ešte môžeme nastaviť pravidlo, aby nám smerovalo všetku komunikáciu a tzv. maškarádu, ktorá je špeciálny typ SNAT3).

router internet2home inface eth0 outface eth1
router home2internet inface eth1 outface eth0
	route all accept
	masquerade

V prípade potreby môžeme zmeniť route all accept na napr. client all accept a server http accept alebo iné kombinácie.

Náš linuxový server je predovšetkým určený buď pre domáce použitie alebo ako malá školská internetová učebňa. V takomto prípade istotne chcem zakázať prístup na stránky s nevhodným obsahom, alebo obsahom, ktorý nás zdržiava pri práci výuke. Náš firewall je aj na tento účel uspôsobený príkazom blacklist tzv. čierna listina.

blacklist "195.97.5.202 10.1.1.1 rpx.azet.sk"

Celá konfigurácia vyzerá napríklad takto:

version 5

FIREHOL_NAT="1"
FIREHOL_AUTOSAVE="/var/lib/iptables/autosave"

blacklist "195.97.5.202 10.1.1.1 rpx.azet.sk"

interface eth1 homelan
    server all accept
    client all accept

interface eth0 internet
    client all accept
    server samba accept
    server http accept
    server ssh deny
    server ftp deny

router internet2home inface eth0 outface eth1

router home2internet inface eth1 outface eth0
	route all accept
	masquerade

Na koniec nesmieme zabudnúť povoliť firehol, pokial sme to tak neučinili už v predchádzajucej kapitole v súbore /etc/default/firehol. Nastavíme:

START_FIREHOL=YES

Súbor automatického uloženia nastavenia v položke FIREHOL_AUTOSAVE pravdepodobne potrebuje vytvoriť adresár v ktorom sa bude nachádzať. Z tohto dôvodu musíme ešte vykonať príkaz na vytvorenie adresára.

mkdir /var/lib/iptables

Zmeny v nastavení firewallu sa prejavia až po uložení konfigurácie a následnom reštartovaní celého firewallu.

sudo firehol save
sudo /etc/init.d/firehol restart

Všimnite si, že v prvom riadku za sudo máme iba firehol ako príkaz a nie celú cestu k súboru /etc/init.d/firehol. To preto, že chcem spustiť príkaz firehol ako program, nie jeho inicializačného démona.

Overenie funkcie môžeme spustiť príkazom

sudo iptables -L

Pokiaľ nám vypíše poriadnu kopu textu, je pravdepodobne všetko v poriadku. Ak iba paru riadkov, niekde nastala chyba. Overovanie funkčnosti cez iptables robíme preto, lebo firehol je vlastne iba nadstavba pre inak ťažko konfigurovateľné iptables.

1)
Pre Ubuntu verzie 7.04 potrebujete novšiu verziu zo stránky http://firehol.sf.net ktorá je kompatibilná s bashom verzie 3. v opačnom prípade si po naštartovaní zablokujete internetové pripojenie.
2)
Zdieľanie súborov a tlačiarní ako v sieti MS Windows, v linuxe má pomenovanie samba.
3)
Maškaráda mení zdrojovú IP na IP zariadenia, ktoré paket odosiela, je to potrebne pri povedzme ppp pripojení s dynamickou adresou, kde nemôžeme staticky nastaviť zdrojovú adresu pretože pri každom pripojení je adresa iná.
linux/firewall_a_zdielanie_pripojenia_na_internet.txt · Posledná úprava: 2016/07/28 16:07 (externá úprava)