Hlavní navigace

Netcat, užitočný pomocník

Milan Gigel

Dnes si predstavíme mocného a jednoduchého pomocníka s názvom netcat. Netcat je jednoduchá utilitka, ktorá číta a zapisuje dáta prenášané sieťou prostredníctvom TCP a UDP protokolu. Môže byť používaná buď samostatne alebo prostredníctvom skriptov.

My si ukážeme, ako ho možno použiť na prenos súborov medzi dvoma linuxami, port redirector, vzdialené čítanie logových súborov a ich zálohovanie na svojom logserveri. Samozrejme, že možnosti implementácie sú veľmi rozsiahle, nakoľko sa jedná o flexibilný nástroj. Jedna z možností je použitie netcatu ako portscanner s čítaním informácií s inetd.

Inštalácia je v podstate bezproblémová. Po stiahnutí napríklad z ftp.compclub­.sk/pub, stačí balík rozbaliť, spustiť konfiguračný skript, ktorý nemá štandardný názov configure, ale stupidh a samotnu inštaláciu

  tar xzvf netcat_1.10.orig.tar.gz
  cd netcat_1.10.orig
  ./stupidh
  make linux

Výsledkom je script s názvom nc, ktorý nakopírujeme do adresára, ktorý je v prehľadávacej ceste, napr /usr/sbin.

Teraz sa pozrime na jednotlivé možnosti použitia.

1. Náhrada telnetu

Syntax je jednoduchá. Oproti telnetu ma jednu malú výhodu, že je možné ukončiť ho kombináciou ctrl-C a nie je potrebné zadávať kombináciu ctrl-], quit. Ďaľšou výhodou je, že nie je treba používať rôzne sleep timeouty pri komunikácii alebo except shell pre skriptom riadenú komunikáciu. Jednoduché príklady:

  nc moj.server.sk 25 (telnetové pripojenie k sendmail portu servera)
  echo -e "GET / HTTP 1.0 \n\n" | nc moj.server.sk 80
    (načíta index stránku z web servera a pošle ju na stdout)

2. Prenos súborov z jedného servera na druhý.

V tomto prípade predpokladáme, že na oboch serveroch je nainštalovaný netcat. Na jednom serveri bude bežat v listen móde, na druhom bude vysielať. V podstate jeho činnosťou je iba prenášanie nami dodaných dát medzi oboma strojmi. Takže nasledujú príklady:

  jednoduchá záloha súborov
    na vysielacom serveri
            tar cfp - /adresar | compress -c | nc -w 3 ciel.server.sk 8888
    na prijímacom serveri
      nc -l -p 8888 | uncopress -c | tar xvfp -

Treba si uvedomiž, že dáta nie sú v žiadnom prípade kryptované ako pri scp, ale na zálohovanie v privátnom subnete, alebo kopírovanie verejných dát, mirror php stránok, rôzne synchronizácie a podobne sa moze celkom hodiť. Navyše číta zo STDIN a píše na STDOUT, takže použitie v skriptoch je jednoduché.

Analogicky netcat môžeme použiť na vzdialené čítanie logov programov, ktoré nepoužívajú syslog, kde sme zvyknutí používať logovanie na vzdialeny stroj a tam zasa na consolu, alebo ich priebežné zálohovanie na log serveri. Takže nasledovne:

    na vysielacom serveri
            tail -f mojsubor.log | nc -w 3 ciel.server.sk 8888
    na prijímacom serveri
      nc -l -p 8888 | tail -f > /dev/tty12 (pre čítanie)
      nc -l -p 8888 > /var/log/mojsubor.log (pre zálohovanie)

3. Presmerovanie trafficu (port redirector)

Ako jednoduchý port redirector alebo aplikačnú relay v spolupráci s daemonom inetd alebo xinetd môžeme presmerovavať požiadavky prichádzajúce na server na iný server a iný port. V príklade to môze vyzerať v konfiguračnom subore inetd nasledovne:

  www stream tcp nowait nobody /sbin/tcpd /usr/sbin/nc -w 3
    cielovy.server.sk 1080

Vhodné to môže byť napríklad pri údržbe servera na jednoduchú aktiváciu jeho zálohy.

Súčasťou distribúcie zdrojového kódu sú rôzne scripty na kopírovanie dát medzi servermi, vyhľadávanie údajov pomocou altavisty, port scanning a iné. Verím, že si netcat obľúbite tak ako ja.

Našli jste v článku chybu?
26. 7. 2008 22:18
sexyméďa (neregistrovaný)
čest, vždycky když do netcatu něco zadám, zmáčknu "enter" tak se mi zavře,proč?? jak mám tomu zabránit?? Díky
22. 12. 2007 23:09
Harvie (neregistrovaný)
Myslim, že tenhle je podrobnější: https://www.soom.cz/index.php?name=articles/show&aid=142