Úvod
Na úvod připomenu minulý díl, který se zabýval základy použití nástroje ip
a také trochu jeho porovnáním se stále používaným nástrojem ifconfig
, který je však dnes již považován za zastaralý a může působit jisté problémy (více viz minulý díl).
Také bych rád předeslal, že celý tento popis konfigurace předpokládá absenci DHCP serveru na síti. Ten vám obvykle jak přiřadí IP adresu, tak sdělí vašemu počítači, kde najde výchozí bránu i DNS servery. V oblasti nastavení serverů není DHCP příliš obvyklé (resp. ještě jsem se s ním nesetkal), a (nejen) proto je vhodné vědět, jak vše potřebné nastavit ručně.
Práce s ARP tabulkou
ARP protokol je určen k překladu síťové (IP) adresy na linkovou (MAC) adresu. Pokaždé, když s někým komunikujete po místní síti, se váš počítač nejprve dotáže pomocí ARP protokolu na to, které linkové adrese přísluší daná IP adresa, a té pak odešle příslušný IP datagram. Řada typů útoků v místní síti (zejména pak MITM:man-in-the-middle) jsou vedeny podvržením ARP záznamů.
Vypsat si ARP tabulku je jednoduché:
ip neigh show
Nebo zkráceně:
ip n
Do ARP tabulky můžete přidávat záznamy:
ip neigh add 192.168.5.50 dev eth0 lladdr 11:22:33:44:55:66
Záznamy můžete samozřejmě odebírat:
ip neigh del 192.168.5.50 dev eth0
Můžete také úplně všechny záznamy vymazat:
ip neigh flush dev eth0
Přidáním statických záznamů do ARP tabulky se můžete bránit místním MITM útokům. Zde lze také doporučit příslušné nástroje typu arpwatch k monitorování ARP provozu na síti a detekování podezřelých aktivit, popřípadě je možné použít nástroj arptables
k vytvoření „ARP firewallu“, tedy sady filtrovacích pravidel pro protokol ARP. Přidávání statických záznamů do ARP tabulky narazí na problém tehdy, když se MAC adresa daného počítače změní (např. výměnou síťové karty nebo výměnou počítače).
Nastavení směrování
Základní operací je nepochybně vypsání momentálního obsahu směrovací tabulky:
ip route show
Nebo zkráceně:
ip r
Směrovací tabulka se naplňuje určitými typy záznamů automaticky. Kupříkladu, pokud byste nastavili na nějakém rozhraní IP adresu a masku:
ip addr add 10.0.5.1/24 dev eth1
Pak byste ve směrovací tabulce zjistili záznam odpovídající této nové síti:
10.0.5.0/24 dev eth1 proto kernel scope link src 10.0.5.1
Zásadní informací pro práci v síti (zejména pak v internetu) je mít k dispozici nějaký počítač, kterému můžete poslat všechny pakety, které nenáleží žádné vám známé síti. Takový počítač (přesněji směrovač – router) se obvykle označuje jako brána (gateway). Nastavení brány, konkrétně pak výchozí brány (default gateway), můžete provést takto:
ip route add default via 10.0.5.254 dev eth0
Rozhraní je zde nepovinné, takže ho můžete vypustit:
ip route add default via 10.0.5.254
Směrovací tabulku však můžete zaplnit dalšími záznamy. Máte-li bran více (např. pokud jste současně připojeni ke svému ISP a současně ještě k VPN), můžete směrovat určitou komunikaci přes konkrétní bránu. Nebo můžete směrovat určitou komunikaci z jedné sítě do jiné a učinit ze svého linuxového systému směrovač. Ale o tom až za chvíli.
Nastavení resolveru
Pro plně funkční připojení k internetu vám v tuto chvíli chybí ještě jedna věc. Přiřazení IP adres vašim rozhraním bylo probráno v minulém díle, nastavení výchozí brány bylo probráno kousek výše, zbývá tedy už jen nastavení DNS resolveru. Bez toho byste pro kontaktování jiných počítačů museli místo jmen (např. linuxexpres.cz
) použít IP adresy. Resolver je DNS klient, vestavěný v operačních systémech, který se dotazuje resolvujících DNS serverů, jež vám obvykle přiřadí ISP. Ty mají tu charakteristiku, že pro vás realizují vyhledávání, pokud příslušné DNS záznamy nenajdou ve své cache nebo místní databázi.
Nastavení resolveru v Linuxu je velmi jednoduché, stačí upravit soubor /etc/resolv.conf
a přidat do něj alespoň jeden záznam pro DNS server:
nameserver 1.2.3.4
Obvykle vám ISP nabídne alespoň dva, aby vás případný výpadek jednoho nepřipravil o možnost překládat názvy na IP adresy.
Funkce směrovače
Libovolný linuxový systém může zastat funkci směrovače. To je také jedním z důvodů, proč mnoho „krabiček“, kterým se říká směrovače, v sobě Linux obsahuje. Tato funkčnost je však z celkem rozumných bezpečnostních důvodů ve výchozím stavu vypnutá – je tedy třeba ji zapnout. To lze učinit úpravou patřičného parametru v /proc
:
echo "1" > /proc/sys/net/ipv4/ip_forward
Výše uvedená syntaxe se často používá v různých návodech, avšak doporučuje se spíše tato, oficiální varianta:
sysctl -w net.ipv4.ip_forward=1
Pokud byste chtěli, aby měl váš linuxový systém funkci směrovače po každém startu a ne jen do té doby, dokud nerestartujete, přidejte do souboru /etc/sysctl.conf
následující řádek:
net.ipv4.ip_forward=1
Průchozí komunikaci můžete filtrovat pomocí linuxového firewallu, a to v dedikovaném řetězu FORWARD
. Nastavení firewallu se zde věnovat nebudu, neboť toto téma zde již bylo probráno.
Směrovací tabulka
Nástroj IP umožňuje nejen nastavení výchozí brány, ale i přidávání záznamů do směrovací tabulky, které poslouží k přidání statických cest. To se může hodit, pokud máte takovou konfiguraci sítě, ve které na sebe počítače přímo „nevidí“, např. tři počítače propojené (kříženým) síťovým kabelem:
počítač 1 ---- směrovač ---- počítač 2
Takové nastavení sice není příliš vhodné (je podstatně lepší použít switch nebo bridge), ale ilustruje to úpravu směrovací tabulky. Pro názornost dodám nastavení IP adres:
(10.0.0.1) ---- (10.0.0.2) router (10.0.1.1) ---- (10.0.1.2)
Aby mohl počítač vlevo komunikovat s počítačem vpravo, musí prostřední počítač propouštět pakety (a fungovat jako router). To je nutná, nikoli však postačující podmínka. Počítač 1 totiž netuší, kde má hledat síť 10.0.1.0/24, a počítač 2 zase netuší, kde má hledat síť 10.0.0.0/24. Proto je oběma počítačům třeba říci, kde se nachází druhá síť a jak se k ní dostat:
počítač1 ~# ip route add 10.0.1.0/24 via 10.0.0.2 počítač2 ~# ip route add 10.0.0.0/24 via 10.0.1.1
Poté by spolu počítače 1 a 2 měly být schopny komunikovat. Přirozeně, je také možné dané záznamy ze směrovací tabulky vymazat:
počítač1 ~# ip route del 10.0.1.0/24 via 10.0.0.2 počítač2 ~# ip route del 10.0.0.0/24 via 10.0.1.1
Tolik k jednoduchému statickému routování. Nástroj ip
také umožňuje specifikovat pravidla, která mohou provoz směrovat různými způsoby, např. mezi dvě brány (např. ISP a VPN) či do ztracena (ekvivalent akce DROP
v linuxovém firewallu). O tom (a nejenom o tom) se dozvíte více v příštím díle.