Fedora v počítačové síti
- Přečtěte si kapitolu Obecné poznámky.
Správa síťových připojení
Nástrojem, který ve Fedoře spravuje sítě, je NetworkManager.
NetworkManager je dynamický správce síťových připojení, který se snaží připojovat k sítím podle toho, jak jsou zrovna dostupné. Podporuje následující typy sítí: drátové, bezdrátové, mobilní (např. 3G), DSL a PPPoE (Point-to-Point over Ethernet). NetworkManager běží na pozadí jako démon, který můžete ovládat přes rozhraní příkazové řádky nebo přes jeden z několika grafických nástrojů. Grafické nástroje pro nastavení sítí ve všech desktopových prostředích Fedory využívají právě NetworkManager.
Poznámka: Nástroj Network (system-config-network), který sloužil ke statickému nastavení sítí, byl označen za zastaralý a již se neudržuje, byť se ještě v repozitářích Fedory nachází. Dnes je pro nastavení síťových rozhraní všeho druhu doporučován NetworkManager.
Nastavení připojení k počítačové síti
V prostředí GNOME naleznete nastavení sítě pod ikonou sítě v pravé části horního panelu. V nabídce pod touto ikonou můžete vidět stav jednotlivých síťových rozhraní, zapínat je, nebo vypínat, a dostupné bezdrátové sítě.
Pokud chcete provést složitější nastavení sítě, klikněte v nabídce na položku Nastavení sítě, která vás přesune do modulu Síť v Nastavení systému. Kromě nastavení drátové a bezdrátové sítě zde můžete nastavit také připojení přes bluetooth, VPN, svazek připojení, proxy a most. V pravém horním rohu okna potom můžete zapnout tzv. režim Letadlo, který vypne všechna bezdrátová zařízení.
Restartování síťových služeb
- Přečtěte si kapitolu Obecné poznámky.
Jednotlivá rozhraní můžete restartovat vypnutím a zapnutím v nabídce pod ikonou sítě na horním panelu. Restart celého NetworkManageru provedete příkazem:
systemctl restart NetworkManager.service
Zjištění IP adresy počítače s Fedorou
IP adresu počítače, ke kterému jste momentálně přihlášeni, zjistíte pomocí
ip addr show
nebo zkráceně
ip a
Výstupem tohoto příkazu by mělo být
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:23:7d:c3:ca:2c brd ff:ff:ff:ff:ff:ff inet 10.34.4.75/23 brd 10.34.5.255 scope global em1 valid_lft forever preferred_lft forever inet6 2620:52:0:2204:223:7dff:fec3:ca2c/64 scope global dynamic valid_lft 2586485sec preferred_lft 599285sec inet6 fe80::223:7dff:fec3:ca2c/64 scope link valid_lft forever preferred_lft forever
Hledané IP adresy jsou v našem případě uvedeny v části 2: em1:
za položkami inet
a inet6
. Síťové rozhraní em1
má tedy jednu IPv4 adresu: 10.34.4.75
a dvě IPv6 adresy : 2620:52:0:2204:223:7dff:fec3:ca2c
a fe80::223:7dff:fec3:ca2c
.
Více v http://cs.wikipedia.org/wiki/IP_adresa
Další možnost jak získat ip adresu je program ifconfig, který stále mnoho lidí používá, přestože se jedná o nástroj, jehož koncept již neodpovídá současnému síťovému modelu v jádře. ifconfig je součástí balíčku net-tools, jehož vývoj skončil někde kolem roku 2001 a který bude dříve či později ve Fedoře (i jiných distribucích) nahrazen balíčkem iproute (kam patří program ip).
ifconfig
Výstupem tohoto příkazu by mělo být
em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.34.4.75 netmask 255.255.254.0 broadcast 10.34.5.255 inet6 2620:52:0:2204:223:7dff:fec3:ca2c prefixlen 64 scopeid 0x0<global> inet6 fe80::223:7dff:fec3:ca2c prefixlen 64 scopeid 0x20<link> ether 00:23:7d:c3:ca:2c txqueuelen 1000 (Ethernet) RX packets 238264 bytes 200215753 (190.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 147634 bytes 31100401 (29.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 17 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 6365 bytes 931013 (909.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 6365 bytes 931013 (909.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Hledané IP adresy jsou v tomto případě uvedeny v části em1:
opět za položkami inet
a inet6
.
Základní příkazy pro zjištění funkčnosti vzdáleného serveru
ping
Jestliže chcete zjistit, zda-li je vzdálený server funkční, je možné použít příkaz ping
následovaný označením serveru. Server lze identifikovat pomocí doménového jména nebo IP adresy. Činnost programu ukončíte stiskem kombinace kláves CTRL+c.
ping www.fedora.cz PING fedora.cz (193.86.238.16) 56(84) bytes of data. 64 bytes from www6.pipni.cz (193.86.238.16): icmp_seq=1 ttl=56 time=5.87 ms 64 bytes from www6.pipni.cz (193.86.238.16): icmp_seq=2 ttl=56 time=4.14 ms 64 bytes from www6.pipni.cz (193.86.238.16): icmp_seq=3 ttl=56 time=4.17 ms 64 bytes from www6.pipni.cz (193.86.238.16): icmp_seq=4 ttl=56 time=4.20 ms 64 bytes from www6.pipni.cz (193.86.238.16): icmp_seq=5 ttl=56 time=4.00 ms --- fedora.cz ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4000ms rtt min/avg/max/mdev = 4.007/4.482/5.876/0.701 ms
ping 193.86.238.16 PING 193.86.238.16 (193.86.238.16) 56(84) bytes of data. 64 bytes from www6.pipni.cz (193.86.238.16): icmp_seq=1 ttl=56 time=5.87 ms 64 bytes from www6.pipni.cz (193.86.238.16): icmp_seq=2 ttl=56 time=4.14 ms 64 bytes from www6.pipni.cz (193.86.238.16): icmp_seq=3 ttl=56 time=4.17 ms 64 bytes from www6.pipni.cz (193.86.238.16): icmp_seq=4 ttl=56 time=4.20 ms 64 bytes from www6.pipni.cz (193.86.238.16): icmp_seq=5 ttl=56 time=4.00 ms --- 193.86.238.16 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4000ms rtt min/avg/max/mdev = 4.007/4.482/5.876/0.701 ms
traceroute
Příkaz traceroute
je možné použít v návaznosti na příkaz ping
. Tento příkaz slouží k mapovaní cesty k Vámi specifikovanému serveru. Tímto způsobem lze zjistit, kde konkrétně došlo k problémům ve spojení. Cílový server lze opět identifikovat pomocí doménového jména nebo IP adresy. Činnost programu lze předčasně ukončit stiskem kombinace kláves CTRL+c.
traceroute www.fedora.cz traceroute to www.fedora.cz (193.86.238.16), 30 hops max, 40 byte packets 1 192.168.2.1 (192.168.2.1) 0.472 ms 0.642 ms 1.027 ms 2 gw2.nsnet.cz (217.11.231.174) 19.399 ms 19.438 ms 19.487 ms 3 unassigned-82-208-51-021.casablanca.cz (82.208.51.21) 20.902 ms 21.751 ms 21.844 ms 4 tr-hilly-nadprehradou.casablanca.cz (81.0.222.21) 22.378 ms 22.932 ms 23.377 ms 5 * * * 6 S0-95.cas.ip-anywhere.net (82.208.0.17) 25.333 ms 4.352 ms 4.797 ms 7 nix4.gts.cz (194.50.100.50) 4.934 ms 5.650 ms 5.697 ms 8 hca.gts.cz (195.39.37.6) 6.749 ms * * 9 gw.pipni.cz (193.86.70.226) 7.572 ms * * 10 www6.pipni.cz (193.86.238.16) 5.189 ms 5.688 ms 5.132 ms
traceroute 193.86.238.16 traceroute to 193.86.238.16 (193.86.238.16), 30 hops max, 40 byte packets 1 192.168.2.1 (192.168.2.1) 0.463 ms 0.650 ms 1.839 ms 2 gw2.nsnet.cz (217.11.231.174) 40.908 ms 40.939 ms 40.972 ms 3 unassigned-82-208-51-021.casablanca.cz (82.208.51.21) 43.495 ms 43.544 ms 43.630 ms 4 tr-hilly-nadprehradou.casablanca.cz (81.0.222.21) 44.415 ms 44.578 ms 44.798 ms 5 * * * 6 S0-95.cas.ip-anywhere.net (82.208.0.17) 46.445 ms 4.415 ms 5.701 ms 7 nix4.gts.cz (194.50.100.50) 5.405 ms 6.283 ms 6.331 ms 8 hca.gts.cz (195.39.37.6) 6.567 ms * * 9 gw.pipni.cz (193.86.70.226) 7.537 ms * * 10 www6.pipni.cz (193.86.238.16) 4.274 ms 5.262 ms 4.889 ms
mtr
Příkaz mtr
je kombinací příkazů ping
a traceroute
. Program průběžně vypisuje celkový stav a ukončíte ho klávesou q
. Příkaz musí být spuštěn uživatelem root
, má-li být použitelný i obyčejnými uživateli, musíte mu nastavit SUID bit příkazem chmod u+s /usr/sbin/mtr
.
/usr/sbin/mtr My traceroute [v0.71] opteron.pslib.cz (0.0.0.0) Thu Dec 4 23:20:53 2008 Keys: Help Display mode Restart statistics Order of fields quit Packets Pings Host Loss% Last Avg Best Wrst StDev 1. neptun.pslib.cz 0.0% 0.1 0.2 0.1 0.2 0.0 2. ten155-r1-nextel.cesnet.cz 0.0% 0.7 0.6 0.4 0.7 0.2 3. nix1.gin.cz 0.0% 4.3 88.0 4.3 193.5 96.5 4. r2-bbs.gin.cz 0.0% 4.4 4.4 4.3 4.4 0.1 5. fedora.ipex.cz 0.0% 4.4 4.5 4.4 4.6 0.2
Otevření / uzavření portů
Základním nástrojem ochrany počítačů je firewall. Každý počítač je v síti jedinečně určen tzv. IP adresou. Jestliže však některá z aplikací chce s tímto počítačem komunikovat, musí znát nejen jeho IP adresu ale také tzv. port, který musí být otevřen.
Velice často jsou pojmy IP adresa, port a firewall vysvětlovány na následujícím příkladu. Jestliže potřebujete zajít např. na úřad, musíte znát v zásadě dvě věci - adresu domu, kde se úřad nachází (IP adresa), a číslo dveří, za kterými sedí úředník, se kterým potřebujete mluvit (port). Význam IP je zřejmý - jak již bylo řečeno výše, identifikuje počítač v síti. Co se portů týče, podobně jako úředník „naslouchají“ jednolivé aplikace na portech, zda-li budou kontaktovány některým z počítačů v síti. Tyto porty jsou pro základní typy aplikací všeobecně známé (např. HTTP má defaultní port 80).
Firewall dělá to, že uzavírá ty porty, které nebudete potřebovat. Jestliže je port zavřený, nemohou přes něj aplikace komunikovat, čímž se snižuje riziko neautorizovaného průniku do systému. Na druhou stranu, jestliže chcete provozovat některé z aplikací (např. vzdálenou plochu, WWW server apod.), je potřeba tyto porty otevřít. V opačném případě nebude aplikace fungovat.
Ve Fedoře existují dva druhy firewallů: statické a dynamické. Liší se tím, jak jsou aplikovány změny v nastavení. Zatímco statické pracují s neměnou konfigurací a provedete-li jakoukoliv změnu, musíte firewall restartovat, aby se změna aplikovala, u dynamických lze aplikovat změny za běhu. Statické firewally jsou zpravidla postavené na iptables. Patří mezi ně i nástroj Firewall (system-confing-firewall), který byl donedávna výchozím nástrojem pro nastavení firewallu ve Fedoře. Mezi pokročilejší statické nástroje pro nastavení firewallu patří Firestarter.
Výchozím firewallem ve Fedoře je nyní firewallD, který patří mezi dynamické. Jeho nastavení můžete měnit dvěma nástroji: grafickým firewall-config a textovým firewall-cmd. FirewallD podporuje tzv. zóny, což jsou profily o různé přísnosti firewallu, které lze přiřadit jednotlivým sítím. Někde na bezdrátové sítí v kavárně tak můžete mít nastavený přísný režim, protože se jedná o nedůvěryhodnou síť, zatímco doma na drátové síti budete mít nejbenevoletnější režim, protože to je pro vás důvěryhodná síť. Více se o firewallD můžete dozvědět v článku na fedora.cz.
Jak můžete na obrázku vidět, v levém sloupci je seznam dostupných zón. V pravém sloupci vidíte, seznam definovaných služeb a indikaci toho, jestli jsou pro danou zónu zapnuté nebo ne. Berte v úvahu, že všechny změny, které v tomto náhledu provedete, jsou pouze dočasné. Chcete-li provádět trvalé změny, vyberte v horní části okna u Současný náhled volbu Trvalá konfigurace. Budete požádáni o heslo roota a potom budete moci provádět trvalé změny. V tomto náhledu se objeví také další možnosti nastavení. Budete moci přidávat či odebírat zóny, upravovat služby apod.
Chcete-li nastavit zóny pro jednotlivé sítě, běžte do Možnosti→Nastavení zón připojení…, vyberte síť, pro kterou chcete síť nastavit a klikněte na Upravit. V dialogovém okně, které se otevře, můžete změnit zónu na kartě Obecné. Výchozí zónou pro všechny sítě je public. Změnit výchozí zónu můžete v Možnosti→Změnit výchozí zónu.
Jak už bylo řešeno, firewallD lze ovládat v příkazové řádce pomocí nástroje firewall-cmd. Mezi základní příkazy patří:
Zjištění, jaká zóna je aktivovaná:
firewall-cmd --get-active-zone
Vypsání dostupných zón:
firewall-cmd --get-zones
Ukázková změna zóny pro vybrané síťové rozhraní:
firewall-cmd --zone=home --change-interface=wlan0
Vypsání povolených služeb pro danou zónu:
firewall-cmd --zone=home --list-services
Vypsání povolených portů pro danou zónu:
firewall-cmd --zone=home --list-ports
Nebo si můžete nechat vypsat všechna nastavení pro danou zónu:
firewall-cmd --zone=home --list-all
Přidání a odebrání portu v dané zóně:
firewall-cmd --zone=home --add-port=2222/tcp firewall-cmd --zone=external --remove-port=2222/tcp
Pokud chcete, aby byly změny trvalé, tedy i např. po restartu počítače, přidejte k příkazům parametr –permanent
. Tyto změny se ale projeví právě až po restartu firewalld nebo restartu celého systému.
Pokud vám základní nastavení firewallu nestačí, vězte, že firewallD podporuje tzv. bohatý jazyk pro vytváření komplexních pravidel. Více se o možnostech tohoto jazyku můžete dozvědět na jeho wiki stránce, nebo v dokumentaci firewallD, kterou zobrazíte příkatem man firewall-cmd.
Upozornění Původní nástroj Firewall (system-config-firewall) nemůže běžet zároveň s firewallD. Chcete-li tedy používat tradiční firewall, musíte firewallD vypnout. To provedete příkazy:
systemctl stop firewalld.service systemctl disable firewalld.service
Seznam defaultních portů pro jednotlivé aplikace naleznete např. na stránkách http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers.
Procházení okolních počítačů
- Přečtěte si kapitolu Obecné poznámky.
Předpokládejme, že síťová připojení jsou správně nakonfigurována. Procházet místa v síti lze pomocí nabídky Aplikace → Místa → Síť.
Pokud počítače nebo síťové složky nebudou nalezeny, zkuste je zapsat přímo přes nabídku Místa → Připojit se k serveru….
Přípojování sdílených adresářů
- Přečtěte si kapitolu Zjistění IP adresy počítače s Fedorou.
Připojit sdílený adresář nebo soubor umístěný na jiném počítači s Fedorou lze poměrně snadno přes nabídku Místa → Připojit se k serveru….
V okně Připojit se k serveru nastavíte Typ služby na WebDAV(HTTP) popř. na Zabezpečené WebDAV(HTTP), vyplníte požadované údaje jako jsou označení serveru (tj. vzdáleného počítače), připojovaného adresáře popř. souboru a jméno uživatele. Pomocí tlačítka Připojit sdílený adresář popř. soubor připojíte.
Poznámka: Problematikou sdílení souborů a adresářů mezi Fedorou a OS Windows se zabývá kapitola Sdílení adresářů pomocí serveru Samba.
Sdílení připojení k internetu
- Přečtěte si kapitolu Zjistění IP adresy počítače s Fedorou.
Toto je pokročilé téma a vyžaduje hlubší znalosti konfigurace sítě. Umožňuje vám vytvořit z jednoho z vašich počítačů tzv. směrovač (router) a pomocí něj vytvořit malou domácí síť se sdíleným připojenim k internetu.
Počítač který určíte jako směrovač bude mít pro náš popis jméno brána. Počítač který se přes bránu bude připojovat budeme nazývat klient.
Nejdříve nakonfigurujeme počítač brána. Ten musí mít minimálně dvě síťová rozhraní. V našem případě to bude eth0, kterým se připojujeme k poskytovateli internetu a eth1 na které se připojuje klient.
Nastavení adres rozhraní brány
Nastavení adres můžete provést mnoha způsoby. Buď z NetworkManageru nebo ze správy síťě nebo editací konfiguračního souboru. Pokud používáte NetworkManager nepoužívejte spravu sítě a obráceně! Pro směrovač brána doporučujeme vypnout službu NetworkManager zapnout službu Síť a používat správu sítě.
Adresa rozhraní eth0 je přidělována od poskytovatele připojení, nejčastěji z jeho směrovače přes DHCP. Nastavte jej je tedy pro příjem adresy přes DHCP.
Adresu rozhraní eth1 je potřeba napevno nastavit na některý z tzv. privátních rozsahů. Nejčastěji z oblasti 192.168.x.x. Pro naše potřeby ji nastavíme na 192.168.10.1 a masku na 255.255.255.0.
Konfigurace směrování
V první řadě je potřeba povolit na bráně funkci směrování paketů
gedit /etc/sysctl.conf
Změňte či přidejte
# Controls IP packet forwarding net.ipv4.ip_forward = 1
Nainstalujte dnsmasq server
yum install dnsmasq
dnsmasq zajišťuje přeposílání překladů internetových adres z klienta na jmenné servery poskytovatele a zároveň umožňuje vytvořit jednoduchý DHCP server, který přiděluje IP adresu klientovy. Je potřeba ho ale nastavit.
gedit /etc/dnsmasq.conf
minimální nastavení by mělo vypadat asi následovně (nápovědu k položkám naleznete přímo v souboru)
domain-needed filterwin2k interface=eth1 dhcp-range=192.168.10.127,192.168.10.254,255.255.255.0,59m #dhcp-host=00:AA:BB:CC:DD:EE,klient,192.168.10.130 dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases
Zajistěte aby se služba dnsmasq pouštěla při startu počítače. Buď povolením v system-config-services (Systém→Správa→Služby) nebo příkazem
chkconfig dnsmasq on
Dále je potřeba povolit překlad adres vaší klientské sítě tak, aby se pro síť internet tvářila jako jeden počítač. V tomto případě jako brána.
Spusťte system-config-firewall (Systém→Správa→Firewall, v konzoli můžete použít system-config-firewall-tui) a v sekci Maškarádování, zaškrtněte pod eth+ rozhraní eth0 (to jest rozhraní brány za nějž se bude maskovat klient). Tím jste povolil tzv. NAT (Network address translation).
Ve stejném nástroji v sekci Důvěryhodná rozhraní zaškrtněte pod eth+ rozhraní eth1. Tím jste povolili přístup VŠECH paketům z vašeho klienta na bránu.
Poznámka: Toto nastavení učiní bránu napadnutelnou z klienta. Je proto potřeba, aby i váš klient měl dobré zabezpečení před viry a napadením z vnějšku.
Tím je konfigurace brány dokončena. Proveďte její restart.
Konfigurace klienta
Konfigurace klienta je velice jednoduchá a vyžaduje pouze nastavení získávání adresy pro klienta přes DHCP. Zde již záleží na použitém OS. Ve Fedoře opět buď přes NetworkManager nebo přes správu sítě.
Ověření funkce
Po restartu brány zkontrolujte, že rozhranní eth0 má přidělenu adresu od poskytovatele.
ip addr show eth0
zkontrolujte, že můžete přistupovat na internet, např.
ping fedora.cz
zkontrolujte nastavení rozhraní eth1, kde musí být vámi nastavená adresa 192.168.10.1
ip addr show eth1
Připojte klienta a v záznamech systému (/var/log/messages) by se měla objevit žádost a přidělení adresy pro klienta cca takto
dnsmasq[30214]: DHCPDISCOVER(eth1) 192.168.10.130 00:AA:BB:CC:DD:EE dnsmasq[30214]: DHCPOFFER(eth1) 192.168.10.130 00:AA:BB:CC:DD:EE dnsmasq[30214]: DHCPREQUEST(eth1) 192.168.10.130 00:AA:BB:CC:DD:EE dnsmasq[30214]: DHCPACK(eth1) 192.168.10.130 00:AA:BB:CC:DD:EE
Ověřte, že z klienta můžete přistupovat na bránu a dále do internetu
- ping 192.168.10.1
- ping <adresa rozhraní eth1>
- ping fedora.cz
Pokud selhává krok 1 pak váš klient nemá správně přidělenou adresu a nekomunikuje s bránou.
Pokud selhává krok 2 máte na bráně špatně nastavene směrování.
Pokud selhává krok 3 máte na bráně špatně nastaven dnsmasq a tento nepřekládá adresy nebo máte špatně nastaven Maškarádování.