GNU/Linux >> Znalost Linux >  >> Linux

Nastavení přesměrování portů v Linuxu pomocí ncat

Jak víte z mých předchozích dvou článků, Odstraňování problémů se systémem Linux:Nastavení TCP listener pomocí ncat a příkaz ncat je problematický bezpečnostní nástroj pro správce systému Linux, netcat je příkaz, který je zároveň vaším nejlepším přítelem i nejhorším nepřítelem. A tento článek tuto skutečnost dále zvěčňuje pohledem na to, jak ncat poskytuje užitečnou, ale potenciálně nebezpečnou možnost pro vytvoření odkazu přesměrování portu. Ukážu vám, jak nastavit port nebo odkaz pro přesměrování webu, abyste mohli provádět údržbu webu a zároveň sloužit zákazníkům.

Scénář

Je třeba provést údržbu instalace Apache na server1 , ale nechcete, aby se služba zobrazovala offline pro vaše zákazníky, což jsou v tomto scénáři interní firemní uživatelé pracovního portálu, který zaznamenává odpracované hodiny pro vaše vzdálené uživatele. Místo abyste jim oznamovali, že portál bude šest až osm hodin offline, rozhodli jste se vytvořit službu přesměrování na jiný systém, server2 , zatímco se staráte o server1 potřeby uživatele.

Tato metoda je snadným způsobem, jak udržet konkrétní službu při životě, aniž byste se museli zabývat nastavením DNS nebo podnikového firewallu NAT.

Server1:Port 8088

Server2:Port 80

Postup

Chcete-li nastavit tento web/službu dál, musíte splnit následující předpoklady:

  1. ncat-nmap balíček (měl by být nainstalován ve výchozím nastavení)
  2. Funkční duplikát server1 portálu na server2
  3. Root nebo sudo přístup k serverům 1 a 2 pro změny firewallu

Pokud jste odstranili tyto překážky, je čas provést tuto změnu.

Implementace

Konfigurace ncat tímto způsobem využívá pojmenované kanály, což je efektivní způsob, jak vytvořit toto obousměrné komunikační spojení zápisem a čtením ze souboru ve vašem domovském adresáři. Existuje několik způsobů, jak toho dosáhnout, ale já použiji ten, který nejlépe funguje pro tento typ přesměrování portů.

Vytvořte pojmenovaný kanál

Vytvoření pojmenovaného kanálu je snadné pomocí mkfifo příkaz.

$ mkfifo svr1_to_svr2

$ file svr1_to_svr2
svr1_to_svr2: fifo (named pipe)

Použil jsem file příkaz k prokázání, že soubor existuje a jedná se o pojmenované potrubí. Tento příkaz není vyžadován, aby služba fungovala. Soubor jsem pojmenoval svr1_to_svr2 , ale můžete použít libovolný název. Tento název jsem zvolil, protože přeposílám ze server1 na server2 .

Vytvořte službu přesměrování

Formálně se to nazývalo nastavení přenosu naslouchajícího klientovi , ale dává to trochu větší smysl, pokud to chápete v termínech brány firewall, odtud pochází můj „dopředný“ název a popis.

$ ncat -k -l 8088 < svr1_to_svr2 | ncat 192.168.1.60 80 > svr1_to_svr2 &

Vydáním tohoto příkazu se vrátíte zpět do výzvy, protože jste službu umístili na pozadí pomocí & . Jak vidíte, pojmenovaný kanál i služba jsou vytvořeny jako standardní uživatel. O důvodech tohoto omezení jsem hovořil ve svém předchozím článku Příkaz ncat je problematický bezpečnostní nástroj pro správce systému Linux.

Rozdělení příkazů

První část příkazu, ncat -k -l 8088 , nastaví posluchač pro připojení, na která by normálně odpovídala služba Apache na server1 . Tato služba je offline, takže si vytvoříte posluchač, který bude odpovídat na tyto požadavky. -k je funkce keep-alive, což znamená, že může obsluhovat více požadavků. -l je možnost poslechu. Port 8088 je port, který chcete napodobit, což je port zákaznického portálu.

Druhá část, napravo od operátora potrubí (| ), přijímá a předává požadavky na 192.168.1.60 na portu 80. Pojmenovaná roura (svr1_to_svr2 ) zpracovává data dovnitř a ven.

Využití

Nyní, když máte relé nastavené, je snadné jej používat. Nasměrujte svůj prohlížeč na původní hostitelský a zákaznický portál, což je http://server1:8088 . To automaticky přesměruje váš prohlížeč na server2 na portu 80. Váš prohlížeč stále zobrazuje původní URL a port.

Zjistil jsem, že příliš mnoho opakovaných požadavků může způsobit selhání této služby se zprávou o přerušeném kanálu na server1 . Ne vždy to službu zabije, ale může. Můj návrh je nastavit skript pro kontrolu forward příkaz, a pokud neexistuje, restartujte jej. Nemůžete zkontrolovat existenci svr1_to_svr2 soubor, protože vždy existuje. Pamatujte, že jste jej vytvořili pomocí mkfifo příkaz.

Upozornění

Nevýhodou tohoto ncat schopnost je, že uživatel může přesměrovat provoz na svůj vlastní duplicitní web a získat uživatelská jména a hesla. Aby to fungovalo, zlomyslný aktér by musel zabít aktuální posluchač portů/webovou službu, ale je to možné i bez přístupu root. Systémoví správci musí udržovat ostražitost prostřednictvím monitorování a upozorňování, aby se vyhnuli tomuto typu bezpečnostní mezery.

Koneckonců

ncat příkaz má tolik použití, že vyžaduje jeden článek pro každou funkci k popisu každé z nich. Tento článek vás seznámil s konceptem přenosu Listener-to-Client neboli přeposílání služeb, jak tomu říkám. Je to užitečné pro krátké období údržby, ale nemělo by se používat pro trvalá přesměrování. U těch byste měli upravit pravidla DNS a podnikového firewallu NAT tak, aby posílaly požadavky do jejich nových cílů. Měli byste si připomenout, abyste vypnuli jakýkoli ncat posluchači, když s nimi skončíte, protože otevírají systém kompromisům. Nikdy nevytvářejte tyto služby pomocí uživatelského účtu root.

[ Usnadněte si správu sítě než kdy předtím s Automatizací sítě pro každého, bezplatnou knihou od společnosti Red Hat. ]


Linux
  1. Výukový program příkazů služby Linux pro začátečníky (s příklady)

  2. Příkaz linuxové hlavy s příklady

  3. Odstraňování problémů s Linuxem:Nastavení TCP listener pomocí ncat

  1. JQ Command v Linuxu s příklady

  2. Příkaz Ncat Linux

  3. Příklady příkazů služby v Linuxu

  1. wc Linux Command s příklady

  2. Linux řazení příkazů s příklady

  3. Linux Tee Command s příklady