GNU/Linux >> Znalost Linux >  >> Linux

Začínáme se socatem, víceúčelovým přenosovým nástrojem pro Linux

Nástroj socat je relé pro obousměrné datové přenosy mezi dvěma nezávislými datovými kanály.

Existuje mnoho různých typů kanálů socat lze připojit, včetně:

  • Soubory
  • Potrubí
  • Zařízení (sériová linka, pseudoterminál atd.)
  • Zásuvky (UNIX, IP4, IP6 – raw, UDP, TCP)
  • Zásuvky SSL
  • Připojení proxy CONNECT
  • Deskriptory souborů (stdin atd.)
  • Editor řádků GNU (readline)
  • Programy
  • Kombinace dvou z nich

Tento nástroj je považován za pokročilou verzi netcatu. Dělají podobné věci, ale socat má více dalších funkcí, jako je povolení více klientů naslouchat na portu nebo opětovné použití připojení.

Proč potřebujeme socat?

socate lze použít mnoha způsoby účinně. Zde je několik příkladů:

  • Předávání portů TCP (jednorázový nebo démon)
  • Externí ponožka
  • Nástroj pro útok na slabé firewally (zabezpečení a audit)
  • Rozhraní Shell se sokety Unix
  • Relé IP6
  • Přesměrujte programy orientované na TCP na sériovou linku
  • Logicky propojte sériové linky na různých počítačích
  • Vytvořte relativně bezpečné prostředí (su a chroot ) pro spouštění klientských nebo serverových skriptů shellu se síťovým připojením

Jak používáme socat?

Syntaxe pro socat je poměrně jednoduchý:

socat [options] <address> <address>

Aby to fungovalo, musíte zadat zdrojovou a cílovou adresu. Syntaxe těchto adres je:

protocol:ip:port

Příklady použití socat

Začněme několika základními příklady použití socat pro různá připojení.

1. Připojte se k portu TCP 80 na místním nebo vzdáleném systému:

# socat - TCP4:www.example.com:80

V tomto případě socat přenáší data mezi STDIO (-) a připojením TCP4 na port 80 na hostiteli s názvem www.example.com.

2. Použijte socat jako TCP port forwarder:

Pro jedno připojení zadejte:

# socat TCP4-LISTEN:81 TCP4:192.168.1.10:80

Pro více připojení použijte fork možnost, jak je použita v příkladech níže:

# socat TCP4-LISTEN:81,fork,reuseaddr TCP4:TCP4:192.168.1.10:80

Tento příklad naslouchá na portu 81, přijímá připojení a předává připojení na port 80 na vzdáleném hostiteli.

# socat TCP-LISTEN:3307,reuseaddr,fork UNIX-CONNECT:/var/lib/mysql/mysql.sock 

Výše uvedený příklad naslouchá na portu 3307, přijímá připojení a předává připojení do Unixového soketu na vzdáleném hostiteli.

3. Implementujte jednoduchý síťový kolektor zpráv:

# socat -u TCP4-LISTEN:3334,reuseaddr,fork OPEN:/tmp/test.log,creat,append

V tomto příkladu, když se klient připojí k portu 3334, je vygenerován nový podřízený proces. Všechna data odesílaná klienty jsou připojena do souboru /tmp/test.log . Pokud soubor neexistuje, socat vytváří to. Možnost reuseaddr umožňuje okamžitý restart procesu serveru.

4. Odešlete vysílání do místní sítě:

# socat - UDP4-DATAGRAM:224.255.0.1:6666,bind=:6666,ip-add-membership=224.255.0.1:eth0

V tomto případě socat přenáší data z stdin na zadanou adresu vícesměrového vysílání pomocí protokolu UDP přes port 6666 pro místní i vzdálená připojení. Příkaz také říká rozhraní eth0, aby akceptovalo multicastové pakety pro danou skupinu.

Praktické využití pro socat

Socat je skvělý nástroj pro odstraňování problémů. Je také užitečný pro snadné vytváření vzdálených připojení. Prakticky jsem použil socat pro vzdálená připojení k MySQL. V níže uvedeném příkladu demonstruji, jak používám socat pro připojení mé webové aplikace ke vzdálenému serveru MySQL připojením přes místní soket.

1. Na svém vzdáleném serveru MySQL zadávám:

# socat TCP-LISTEN:3307,reuseaddr,fork UNIX-CONNECT:/var/lib/mysql/mysql.sock &

Tento příkaz spustí socat a nakonfiguruje jej tak, aby naslouchal pomocí portu 3307.

2. Na svém webovém serveru zadávám:

# socat UNIX-LISTEN:/var/lib/mysql/mysql.sock,fork,reuseaddr,unlink-early,user=mysql,group=mysql,mode=777 TCP:192.168.100.5:3307 &

Výše uvedený příkaz se připojí ke vzdálenému serveru 192.168.100.5 pomocí portu 3307.

Veškerá komunikace však bude probíhat na zásuvce Unix /var/lib/mysql/mysql.sock , a to vypadá, že se jedná o místní server.

Sbalit

socat je sofistikovaná utilita a skutečně vynikající nástroj pro každého správce systému k provádění věcí a odstraňování problémů. Klikněte na tento odkaz a přečtěte si další příklady použití socat.

[ Bezplatný online kurz:Technický přehled Red Hat Enterprise Linux. ]


Linux
  1. Začínáme s linuxovými firewally

  2. Začínáme s awk, výkonným nástrojem pro analýzu textu

  3. 5 tipů, jak začít se zabezpečením serveru Linux

  1. Začínáme se Sambou pro interoperabilitu

  2. Začínáme s PostgreSQL na Linuxu

  3. Začínáme s SSH v Linuxu

  1. Začínáme s btrfs pro Linux

  2. Rady pro začátek s GNOME

  3. Linuxové desktopy pro minimalisty:Začínáme s LXQt a LXDE