GNU/Linux >> Znalost Linux >  >> Linux

Otevřete porty a směrujte provoz přes bránu firewall

V ideálním případě je většina místních sítí chráněna před okolním světem. Pokud jste se někdy pokoušeli nainstalovat službu, jako je webový server nebo instance Nextcloud doma, pak pravděpodobně z vlastní zkušenosti víte, že ačkoli je služba snadno dostupná zevnitř sítě, je nedostupná na celém světě. web.

Existují pro to technické i bezpečnostní důvody, ale někdy chcete otevřít přístup k něčemu v místní síti vnějšímu světu. To znamená, že musíte být schopni směrovat provoz z internetu do místní sítě – správně a bezpečně. V tomto článku vysvětlím jak.

Místní a veřejné IP adresy

První věc, kterou musíte pochopit, je rozdíl mezi adresou místního internetového protokolu (IP) a veřejnou IP adresou. V současné době většina světa (stále) používá adresní systém nazvaný IPv4, který má, jak je známo, omezenou zásobu čísel, která lze přiřadit síťovým elektronickým zařízením. Ve skutečnosti je na světě více síťových zařízení, než je IPv4 adres, a přesto IPv4 nadále funguje. To je možné díky místním adresám.

Všechny místní sítě na světě používají stejné adresní fondy. Například místní IP adresa mého domácího routeru je 192.168.1.1. Jedno z nich je pravděpodobně stejné číslo jako váš domácí router, ale když přejdu na 192.168.1.1, dosáhnu svého přihlašovací obrazovka routeru, nikoli vaše přihlašovací obrazovka routeru. Je to proto, že váš domácí router má ve skutečnosti dvě adresy:jednu veřejnou a jednu místní a veřejná chrání tu místní před detekcí internetem, natož před záměnou za 192.168.1.1 někoho jiného.

To je ve skutečnosti důvod, proč se internet nazývá internet:je to „síť“ vzájemně propojených a jinak samostatných sítí. Každá síť, ať už je to vaše pracoviště nebo váš domov nebo vaše škola nebo velké datové centrum nebo samotný „cloud“, je souborem připojených hostitelů, kteří zase komunikují s bránou (obvykle routerem), která řídí provoz z internet a do místní sítě, stejně jako z místní sítě do internetu.

To znamená, že pokud se pokoušíte přistupovat k počítači v síti, která není sítí, ke které jste aktuálně připojeni, pak znalost místní adresy tohoto počítače vám nepřinese nic dobrého. Musíte znát veřejnost adresa brány vzdálené sítě. A to není vše. Potřebujete také oprávnění k průchodu touto bránou do vzdálené sítě.

Brány firewall

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

V ideálním případě jsou firewally všude kolem vás, dokonce i nyní. Nevidíte je (doufejme), ale jsou tam. Technologie firewally mají zábavné jméno, ale ve skutečnosti jsou trochu nudné. Firewall je pouze počítačová služba (nazývaná také „démon“), subsystém, který běží na pozadí většiny elektronických zařízení. Na vašem počítači běží mnoho démonů, včetně toho, který poslouchá například pohyby myši nebo trackpadu. Firewall je démon naprogramovaný tak, aby přijímal nebo odmítal určité druhy síťového provozu.

Firewally jsou relativně malé programy, takže jsou vestavěné do většiny moderních zařízení. Jsou spuštěny na vašem mobilním telefonu, na vašem routeru a vašem počítači. Firewally jsou navrženy na základě síťových protokolů a součástí specifikace komunikace s jinými počítači je, že datový paket odeslaný přes síť musí o sobě oznámit konkrétní informace (nebo být ignorován). Jedna věc, kterou síťová data obsahují, je port číslo, které je jednou z primárních věcí, které firewall používá při přijímání nebo odmítání provozu.

Webové stránky jsou například hostovány na webových serverech. Když chcete zobrazit webovou stránku, váš počítač odešle síťová data, která se identifikují jako provoz určený pro port 80 webového hostitele. Firewall webového serveru je naprogramován tak, aby přijímal příchozí provoz určený pro port 80, takže přijme váš požadavek (a webový server vám na oplátku odešle webovou stránku). Pokud byste však odeslali (ať už náhodou nebo záměrně) síťová data určená pro port 22 tohoto webového serveru, pravděpodobně by vám byla brána firewall odepřena (a možná by vám byla na nějakou dobu zakázána činnost).

To může být podivný koncept k pochopení, protože stejně jako IP adresy, porty a firewally ve skutečnosti „neexistují“ ve fyzickém světě. Toto jsou pojmy definované v softwaru. Nemůžete otevřít svůj počítač nebo router, abyste fyzicky zkontrolovali síťové porty, a nemůžete se podívat na číslo vytištěné na čipu, abyste našli svou IP adresu, a nemůžete svůj firewall namočit do vody, abyste to uhasili. Ale teď, když víte, že tyto koncepty existují, znáte překážky spojené s přechodem z jednoho počítače v jedné síti na druhý v jiné síti.

Nyní je čas obejít tyto blokády.

Vaše IP adresa

Předpokládám, že máte kontrolu nad svou vlastní sítí a pokoušíte se otevřít své vlastní brány firewall a směrovat svůj vlastní provoz, abyste povolili vnější provoz do vaší sítě. Nejprve potřebujete své místní a veřejné IP adresy.

Chcete-li zjistit svou místní IP adresu, můžete použít ip příkaz address v systému Linux:

$ ip addr show | grep "inet "
 inet 127.0.0.1/8 scope host lo
 inet 192.168.1.6/27 brd 10.1.1.31 scope [...]

V tomto příkladu je moje místní IP adresa 192.168.1.6. Druhá adresa (127.0.0.1) je speciální "loopback" adresa, kterou váš počítač používá k tomu, aby na sebe odkazoval zevnitř.

Chcete-li zjistit svou místní IP adresu v systému macOS, můžete použít ifconfig :

$ ifconfig | grep "inet "
 inet 127.0.0.1 netmask 0xff000000
 inet 192.168.1.6 netmask 0xffffffe0 [...]

A v systému Windows použijte ipconfig :

$ ipconfig

Získejte veřejnou IP adresu svého routeru na icanhazip.com. V Linuxu to můžete získat z terminálu pomocí příkazu curl:

$ curl http://icanhazip.com
93.184.216.34

Uschovejte si tato čísla na později.

Směrování provozu přes směrovač

První zařízení, které je třeba upravit, je zařízení brány. Může to být velký fyzický server, nebo to může být malý router. V každém případě brána téměř jistě provádí překlad síťových adres (NAT), což je proces přijímání provozu a změny cílové IP adresy.

Když generujete síťový provoz pro zobrazení externí webové stránky, váš počítač musí tento provoz odeslat na bránu vaší místní sítě, protože váš počítač v podstatě nezná vnější svět. Pokud váš počítač ví, celý internet je pouze váš síťový router, 192.168.1.1 (nebo jakákoli adresa vašeho routeru). Takže váš počítač posílá vše do vaší brány. Úkolem brány je podívat se na provoz a určit, kde se ve skutečnosti nachází a poté tato data přeposlat na skutečný internet. Když brána obdrží odpověď, předá příchozí data zpět do vašeho počítače.

Je-li vaší bránou směrovač, pak k vystavení počítače vnějšímu světu musíte ve směrovači určit port, který bude reprezentovat váš počítač. To nakonfiguruje váš router tak, aby přijímal provoz na konkrétní port a směroval veškerý tento provoz přímo do vašeho počítače. V závislosti na značce routeru, který používáte, má tento proces několik různých názvů, včetně přesměrování portů nebo virtuálního serveru nebo někdy dokonce nastavení firewallu.

Každé zařízení je jiné, takže vám nemohu říci, na co přesně musíte kliknout, abyste mohli upravit nastavení. Obecně platí, že ke svému domácímu routeru přistupujete prostřednictvím webového prohlížeče. Adresa vašeho routeru je někdy vytištěna na spodní straně routeru a začíná buď 192.168, nebo 10.

Přejděte na adresu routeru a přihlaste se pomocí přihlašovacích údajů, které jste obdrželi, když jste získali svou internetovou službu. Často je to tak jednoduché jako admin s číselným heslem (někdy je toto heslo vytištěno i na routeru). Pokud neznáte přihlašovací údaje, zavolejte svému poskytovateli internetu a zeptejte se na podrobnosti.

V grafickém rozhraní přesměrujte příchozí provoz pro jeden port na port (stejný je obvykle nejjednodušší) místní IP adresy vašeho počítače. V tomto příkladu přesměruji příchozí provoz určený pro port 22 (používaný pro připojení SSH) mého domácího routeru na můj stolní počítač.

Můžete přesměrovat libovolný port, který chcete. Pokud například hostujete web na náhradním počítači, můžete přesměrovat provoz určený pro port 80 vašeho routeru na port 80 hostitele vašeho webu.

Směrování provozu přes server

Pokud je vaší bránou fyzický server, můžete provoz řídit pomocí firewall-cmd. Pomocí pravidla rozšíření možnost, můžete nechat váš server naslouchat příchozímu požadavku na konkrétní adrese (vaše veřejná IP) a konkrétním portu (v tomto příkladu používám 22, což je port používaný pro SSH), a poté nasměrovat tento provoz na IP adresa a port v místní síti (místní adresa vašeho počítače).

$ firewall-cmd --permanent --zone=public \
--add-rich-rule 'rule family="ipv4" destination address="93.184.216.34" forward-port port=22 protocol=tcp to-port=22 to-addr=192.168.1.6'

Nastavte firewall

Většina zařízení má brány firewall, takže můžete zjistit, že provoz se nemůže dostat do vašeho místního počítače ani poté, co jste předali porty a provoz. Je možné, že firewall blokuje provoz i ve vaší místní síti. Firewally jsou navrženy tak, aby zajistily zabezpečení vašeho počítače, takže odolejte nutkání firewall zcela deaktivovat (kromě řešení problémů). Místo toho můžete selektivně povolit provoz.

Proces úpravy vašeho osobního firewallu se liší podle vašeho operačního systému.

V Linuxu je již definováno mnoho služeb. Zobrazit dostupné:

$ sudo firewall-cmd --get-services
amanda-client amanda-k5-client bacula bacula-client
bgp bitcoin bitcoin-rpc ceph cfengine condor-collector
ctdb dhcp dhcpv6 dhcpv6-client dns elasticsearch
freeipa-ldaps ftp [...] ssh steam-streaming svdrp [...]

Pokud je služba, kterou se pokoušíte povolit, uvedena v seznamu, můžete ji přidat do brány firewall:

$ sudo firewall-cmd --add-service ssh --permanent

Pokud vaše služba není uvedena, můžete port, který chcete otevřít, přidat ručně:

$ sudo firewall-cmd --add-port 22/tcp --permanent

Otevření portu ve vaší bráně firewall je specifické pro vaši aktuální zónu . Další informace o firewallech, firewall-cmd a portech najdete v mém článku Posilněte Linux pomocí firewallů a stáhněte si náš Cheatsheet pro bránu firewall pro rychlou orientaci.

Tento krok se týká pouze otevření portu ve vašem počítači, aby byl akceptován provoz pro něj určený na konkrétním portu. Nemusíte přesměrovat provoz, protože jste to již provedli na své bráně.

Proveďte připojení

Nastavili jste svou bránu a místní síť tak, aby směrovaly provoz za vás. Nyní, když někdo mimo vaši síť přejde na vaši veřejnou IP adresu určenou pro konkrétní port, bude přesměrován na váš počítač na stejném portu. Je na vás, abyste svou síť monitorovali a chránili, takže své nové znalosti používejte opatrně. Příliš mnoho otevřených portů může vypadat jako pozvánky pro špatné herce a roboty, takže otevírejte pouze to, co hodláte použít. A hlavně se bavte!


Linux
  1. Nástroje a tipy s otevřeným zdrojovým kódem pro zlepšení výkonu počítače se systémem Linux

  2. Otevřete porty v linuxové bráně firewall pro přístup k poštovním serverům POP a IMAP

  3. Jak monitorovat síťový přepínač a porty pomocí Nagios

  1. Jak zkontrolovat otevřené porty v Linuxu pomocí netstat, lsof a nmap

  2. Jak otevřít Centrum sítí a sdílení v systému Windows Server 2012

  3. Jak otevřít Centrum sítí a sdílení v systému Windows Server 2008

  1. Jak monitorovat a protokolovat síťový provoz v systému Linux pomocí vnStat

  2. Jak mohu tunelovat veškerý síťový provoz přes SSH?

  3. Směrujte pouze konkrétní provoz přes VPN