firewall_router_gateway

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
firewall_router_gateway [2012/07/20 16:54] ubuntufirewall_router_gateway [2019/02/25 18:21] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
 +====== Firewall, router, gateway ======
  
 +{{.:ethernet.png}} Snad nejčastější otázka, která se zde ve fóru opakuje, je "Jak použít počítač s Ubuntu, připojený k internetu, pro sdílení připojení pro další počítače?". Možných řešení je mnoho, pokusím se nastínit jedno, velmi jednoduché, efektivní a podle mého názoru i bezpečné. Lze jej snadno použít i pro připojení a zabezpečení celé menší domácí nebo firemní počítačové sítě.
 +
 +====== Konfigurace IP adres ======
 +Na výběr máte 3 metody:
 +===== Ubuntu metoda =====
 +V Ubuntu veškeré nastavení sítě lze provádět pomocí dvou souborů a to /etc/network/interfaces a již výše zmiňovaného  /etc/resolv.conf, žádné další příkazy nejsou třeba akorát po editaci, je potřeba znovu načíst script který se o to vše postará a který se spouští po každém startu a tak editace těchto souborů vám zajistí správné nastavení i do budoucna, restart tohoto scriptu provedeme:
 +<code>
 +sudo /etc/init.d/networking restart    #další volby jsou "start" a "stop"
 +</code>
 +Nastavení /etc/network/interfaces
 +  * Statická adresa - stejné nastavení jako nahoře
 +<code>
 +# The loopback network interface
 +auto lo
 +iface lo inet loopback
 +
 +# The primary network interface
 +auto eth0
 +iface eth0 inet static
 +address 10.0.0.2
 +gateway 10.0.0.1
 +netmask 255.255.255.0
 +network 10.0.0.0
 +broadcast 10.0.0.255
 +</code>
 +
 +  * Dynamická adresa - to je adresa přidělená vaším serverem nebo poskytovatelem
 +<code>
 +# The loopback network interface
 +auto lo
 +iface lo inet loopback
 +
 +# The primary network interface - use DHCP to find our address
 +auto eth0
 +iface eth0 inet dhcp
 +</code>
 +
 +===== Klasická metoda =====
 +Centrem celého řešení je počítač se dvěma síťovými kartami (eth0, eth1) a s nainstalovaným Ubuntu.
 +
 +Tento počítač je síťovou kartou eth0 trvale připojen k internetu. Naprosto nehraje roli, jestli má toto rozhraní veřejnou nebo privátní adresu (za NAT), jestli je IP nastavena staticky nebo přes DHCP. Konfiguraci IP pro toto rozhraní stanovuje poskytovatel připojení k internetu. Rekněme, že se jedná o tyto hodnoty:
 +IP adresa: AAA.BBB.CCC.DDD\ 
 +Maska: EEE.FFF.GGG.HHH nebo /ZZ\ 
 +Výchozí brána: III.JJJ.KKK.LLL\ 
 +DNS server: MMM.NNN.OOO.PPP
 +
 +{{.:apt.png}} Pokud máte masku ve tvaru netmask EEE.FFF.GGG.HHH převeďte ji do tvaru prefix /ZZ programem, který [[nainstalujte]] z balíčku ''ipcalc''
 +
 +<code>
 +ipcalc 255.255.255.0 | grep Netmask
 +</code>
 +kde pro hodnotu netmask 255.255.255.0 dostanete prefix 24 se kterou budeme dále pracovat:
 +<code>
 +Netmask:   255.255.255.0 = 24   11111111.11111111.11111111.00000000
 +</code>
 +Druhá síťová karta tohoto počítače (eth1) může být připojena přímo kříženým kabelem k dalšímu počítači, nebo nekříženým kabelem k nějakému aktivnímu prvku (např. switch), ke kterému budou připojeny další počítače.
 +
 +Na rozhraní eth1 provedeme nastavení pro privátní síť, například takto:
 +IP adresa: 10.0.0.1\ 
 +Maska: 255.255.255.0 po převodu /24
 +
 +Totoho nastavení dosáhneme zadáním příkazu
 +<code>
 + sudo ip address add 10.0.0.1/24 dev eth1
 +</code>
 +Na ostatních počítačích, které se prostřednictvím "serveru" s Ubuntu budou připojovat k internetu, provedeme nastavení takto:
 +IP adresa: 10.0.0.2 (na poslední pozici cokoliv 2-254)\ 
 +Maska: 255.255.255.0 po převodu /24 (stejná jako maska na rozhraní eth1 serveru)\ 
 +Výchozí brána: 10.0.0.1 (ip adresa rozhraní eth1 serveru)\ 
 +DNS server: MMM.NNN.OOO.PPP (stejný jako DNS server používaný serverem)
 +
 +{{http://www.volny.cz/lukas_svoboda/ubuntu/router.png}}
 +
 +Na strojích s Windows XP tyto hodnoty zadáte v Local Area Connection -> Properties -> Internet Protocol (TCP/IP) -> Properties.\ 
 +Na strojich s Linuxem DNS server nastavte v souboru /etc/resolv.conf (adresu nastavte podle vaší potřeby)
 +
 +<code>
 +nameserver 10.0.0.1
 +</code>
 +IP adresu a masku nastavíte příkazem
 +
 +<code>
 +sudo ip address add 10.0.0.2/24 dev eth1
 +</code>
 +a výchozí bránu příkazem
 +
 +<code>
 +sudo route add default gw 10.0.0.1
 +</code>
 +Pokud nyní zkusíte ping na adresu serveru, pakety by měly správně přicházet.
 +Vše lze výrazně zjednodušit nainstalováním a nastavením DHCP serveru na počítač s přímým připojením k internetu.
 +
 +
 +
 +===== Alternativní metoda =====
 +Tato metoda je ideální, pokud moc nechcete dumat nad tím, proč je něco tak, jak je, ale chcete mít rychle internet na dvou PC...
 +
 +Na následujícím příkladu je počítač, který má dvě síťové karty:
 +  * eth0 je síťová karta **připojená k internetu**
 +  * eth1 je síťová karta **připojená k domácí síti**
 +  * 192.168.0.1 je IP adresa počítače, který zprostředkovává připojení k síti (pozor, mluvím o vnitřní adrese, vnější může být jakákoliv!)
 +  * 255.255.255.0 po převodu /24 je maska podsítě ve vnitřní síti
 +
 +
 +Otevřeme terminál a zadáme následující příkazy:
 +<code>
 +sudo -s
 +ip address add 192.168.0.1/24 broadcast 192.168.0.255 dev eth1
 +iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 +echo 1 > /proc/sys/net/ipv4/ip_forward
 +apt-get install dnsmasq ipmasq
 +/etc/init.d/dnsmasq restart
 +dpkg-reconfigure ipmasq    # vyberte možnost Po nahození sítových rozhraní
 +nano /etc/sysctl.conf      # doplňte řádek net.ipv4.ip_forward = 1
 +/etc/init.d/networking restart
 +exit 
 +</code>
 +Na druhém počítači pak nastavíme:
 +  * IP: 192.168.0.2
 +  * Maska podsítě: 255.255.255.0 po převodu /24
 +  * Brána: 192.168.0.1
 +  * DNS: Podle providera různé. Doporučuji DNS zjistit na připojeném počítači a to samé zadat do druhého
 +
 +====== Firewall a routování ======
 +
 +{{.:settings.png}} V Ubuntu je k dispozici celá řada nástrojů pro konfiguraci iptables. Po vyzkoušení řady z nich jsem si vybral FireHOL. Nemá (nebo má?) sice pěkné grafické klikací rozhraní jako třeba Firestarter, zato razí zásadu, která se mi nesmírně líbí: Jednoduché věci se dají dělat jednoduše, zároveň ale není nijak znemožněno nebo znepříjemněno nastavování složitějších konstrukcí.
 +
 +{{.:apt.png}} [[Instalace programů|Nainstalujte]] balík ''firehol''.
 +
 +Konfigurace firewallu je uložena v souboru /etc/firehol/firehol.conf, jako příklad uvádím stav s povolenými pouze základními službami pro odchozí spojení (http, https, ftp, dns, ssh, icq, [[Jabber|jabber]] apod.). Serverové služby jsou zakázané. Další nastavení najdete na domovské stránce FireHOLu: http://firehol.sourceforge.net/
 +V posledních řádcích je definované směrování z internetu do privátní sítě.
 +
 +<code>
 +#
 +# $Id: client-all.conf,v 1.2 2002/12/31 15:44:34 ktsaou Exp $
 +#
 +# This configuration file will allow all requests originating from the
 +# local machine to be send through all network interfaces.
 +#
 +# No requests are allowed to come from the network. The host will be
 +# completely stealthed! It will not respond to anything, and it will
 +# not be pingable, although it will be able to originate anything
 +# (even pings to other hosts).
 +#
 +
 +version 5
 +
 +# Accept all client traffic on any interface
 +# interface any world
 +# client all accept
 +
 +DEFAULT_CLIENT_PORTS="1024:65535"
 +
 +server_icq_ports="tcp/5190"
 +client_icq_ports="default"
 +
 +interface eth1 internal
 +        protection strong 10/sec 10
 +        policy                  drop
 +        server dns              accept
 +        server netbios_ns       accept
 +        server netbios_dgm      accept
 +        server netbios_ssn      accept
 +        server samba            accept
 +        server squid            accept
 +        server icmp             accept
 +        server ping             accept
 +        client all              accept
 +
 +interface eth0 external
 +        protection strong 10/sec 10
 +        policy drop
 +        server icmp     accept
 +        server ping     accept
 +        server ssh      accept
 +        client dns      accept
 +        client icmp     accept
 +        client ping     accept
 +        client telnet   accept
 +        client http     accept
 +        client https    accept
 +        client ftp      accept
 +        client ntp      accept
 +        client ssh      accept
 +        client icq      accept
 +        client jabber   accept
 +        client webcache accept
 +
 +router internal2external inface eth1 outface eth0
 +        masquerade
 +        route all accept
 +</code>
 +Firewall aktivujete úpravou souboru /etc/default/firehol (START_FIREHOL=NO změňte na START_FIREHOL=YES)
 +a zadáním
 +
 +<code>
 +sudo firehol restart
 +</code>
 +Nyní můžete na všech počítačích přistupovat na internet, v rámci privátní sítě můžete sdílet soubory, adresáře a tiskárny. Firehol se automaticky spouští s každým startem počítače.
 +V případě zájmu o FireHOL rád blíže vysvětlím jeho funkci a jednotlivé položky v konfiguračním souboru.
 +
 +====== Zdroje dalších informací ======
 +  * http://cs.wikipedia.org/wiki/IP_adresa Pokud nerozumíte slovu ipadresa tak článek pro vás
 +  * http://www.root.cz/serialy/vse-o-iptables/ Seriál o iptables na root.cz
 +  * http://deja-vix.sk/sysadmin/firewall.html Vynikající návod ve slovenštině pro Debian (použitelné i pro Ubuntu)
 +  * http://www.debianhelp.co.uk/network.htm V angličtině ale stručný a jasný
 +
 +{{page>úpravy/grafika}}
 +
 +{{page>úpravy/konvence}}