====== Firewalling laborka ======
- Nakonfigurujte paketový filtr ''iptables'' tak, aby:
* POVOLOVAL ESTABLISHED a RELATED TCP SPOJENÍ, jinak vám nebude chodit na TCP vůbec nic
* (y) byly povoleny odchozí spojení ze všech (imaginárních) strojů (za vašim PC-routrem) na TCP port 80 do internetu
* (y) byly povoleny odchozí spojení na TCP porty 0-1024 do vnitřní sítě pro váš počítač (router)
* (y) uživatel www-data nemohl iniciovat žádné odchozí spojení mimo loopback interface
* (y) uživatel ''misko'' měl povoleno iniciovat pouze spojení na TCP port 80 a 443 do vnitřní sítě
* (y) bylo povoleno spojení na TCP port 22 z vámi zvoleného počítače, nejvýše však 2 za minutu
* (y) logovaly se odchozí spojení na UDP port 12345
* (y) logovaly se příchozí spojení na TCP port 54321 z počítače ve vnitřní síti
* (y blbě, ale šlo by) alespoň triviálním způsobem bránil SYN floodu
* (n) fungoval překlad adres do světa (NAT)
* (y) bylo povoleno spojení ze světa na TCP port 80 zvoleného vnitřního počítače
* nezapomeňte nastavit port forwarding ve Virtual Boxu a paketovém filtru
* (?) fungovalo aktivní FTP pro odchozí i příchozí spojení z/do celého internetu
* (?) šlo by ověřit z lokální sítě
- Výchozí politika: co není povoleno, je zakázáno.
- Vymyslete, jak spolehlivě otestovat funkčnost filtru.
- internetem se rozumí rozsah 0/0
* pravidla označené (y) se dají ověřit přímo v laborce
* pravidla označené (n) se nedají ověřit přímo v laborce
* cvičící si nepotrpí na konkrétní hodnoty, tzn. pokud místo 80 záměrně povolíte 3128 aby vám to fungovalo, jen do toho
* u (y) pravidel musíte umět předvést funkčnost
* odevzdáváte funkční pravidla ve firewallu (''iptables -L -n'')
===== Bodování =====
* splněno, pokud jste schopni demonstrovat funkčnost alespoň jednoho pravidla
===== Pomůcky =====
==== FTP démon ====
FTP démon nainstalujete příkazem apt-get install proftpd. Chodí out-of-box. Uživatele přidáte do systému příkazem adduser.
==== iptables pomůcky v češtině ====
http://www.root.cz/serialy/vse-o-iptables/
==== Testování funkčnosti ====
* Příkaz telnet
* Tento příklad demonstruje úspěšné otevření TCP spojení na port 3128
student@student-desktop:~$ telnet 192.168.9.2 3128
Trying 192.168.9.2...
Connected to 192.168.9.2.
Escape character is '^]'.
^]quit
telnet> quit
Connection closed.
* Tento příkaz demonstruje neúspěšný pokus o spojení na port 3123 (timeout):
student@student-desktop:~$ telnet 192.168.9.2 3123
Trying 192.168.9.2...
telnet: Unable to connect to remote host: Connection timed out
* Tento příkaz demonstruje pokus o otevření TCP spojení na zavřený port:
student@student-desktop:~$ telnet localhost 23
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
* Webový prohlížeč
==== Další zdroje ====
* [[https://www.petrkrcmar.cz/prednasky/nftables_2017.pdf|LinuxDays: nftables – budoucnost linuxového firewallu prezentace (Petr Krčmář) ]]
* [[https://www.youtube.com/watch?v=BLh29Gz9Sac|LinuxDays: nftables – budoucnost linuxového firewallu video (Petr Krčmář) ]]
* [[https://www.youtube.com/watch?v=0kWvpXoEWTo&list=PLub6xBWO8gV_t_p-5-J_qU20fkkDtsLjB&index=18|InstallFest: Firewall pfSense (Lukáš Malý) ]]