GNU/Linux >> Znalost Linux >  >> Linux

Testování síťových služeb pomocí Netcat

Upozornění: Tvůrce softwaru Netcat neaktualizoval software od roku 2006. Technologie Rackspace proto nezaručuje, že kvalita Netcatu splní vaše očekávání.

Používání Netcat

Pokud vaše síťová služba nefunguje správně, ale víte, že služba naslouchá síťovému portu, můžete ověřit připojení programu a problém vyřešit.

Použijte příkaz Netcat, nc pro přístup ke službě. Pokud provozujete distribuci založenou na Red Hat® a nemáte nc nainstalován, zadejte na příkazový řádek následující příkaz:

$ sudo yum install nc`

Pro distribuci založenou na Debianu zadejte na příkazový řádek následující příkaz:

$ sudo apt-get install Netcat`

Základní test

Spusťte jednoduchý test a ověřte, zda port přijímá připojení.

Zadejte nc na příkazovém řádku následovaný -vz možnost s vaší IP adresou a portem:

$ nc -vz IP_address port

IP adresa by měla být ta, na které služba přijímá spojení.

Následující příklady ukazují možné výstupní zprávy:

Připojení bylo úspěšné

$ nc -vz 203.0.113.96 21
Connection to 203.0.113.96 21 port [tcp/ftp] succeeded!

Připojení je odmítnuto

$ nc -vz 203.0.113.96 80
nc: connect to 203.0.113.96 port 80 (tcp) failed: Connection refused

Na žádost o připojení není žádná odpověď

$ nc -vz 203.0.113.96 80
nc: connect to 203.0.113.96 port 80 (tcp) failed: Connection timed out

Připojení odmítnuto

Služba neběží nebo firewall odmítá připojení. Ověřte stav procesu spuštěním ps na příkazovém řádku. Další možnosti naleznete v části Kontrola spuštěných služeb v systému Linux.

Poznámka: Pokud je vaše služba spuštěna, brána firewall může odmítnout připojení. Přečtěte si vypršel časový limit připojení v části s pokyny k odstraňování problémů s firewallem.

Vypršel časový limit připojení

Vypršel časový limit připojení odpověď znamená, že vaše připojení nefunguje, což může znamenat, že váš firewall blokuje port. Otestujte stav připojení přidáním pravidla, které přijímá připojení na požadovaném portu.

Následující příklad vloží pravidlo na řádek 1 vstupního řetězce, které přijímá všechna připojení TCP na portu 80 (HTTP). Toto pravidlo použijte při testování webového serveru, jako je Apache®.

$ sudo /sbin/iptables -I INPUT 1 -p tcp --dport http -j ACCEPT

Tabulky IP okamžitě odrážejí všechny provedené změny. Opakujte test s nc abyste zjistili, zda došlo k nějaké změně v odpovědi.

Pokud chcete odstranit pravidlo, které jste přidali, můžete použít -D možnost kombinovaná s pozicí pravidla v řetězci. Předchozí příklad přidal pravidlo na řádek 1, horní část řetězce. Následující příklad ukazuje, jak jej odstranit.

$ sudo /sbin/iptables -D INPUT 1

Aktuální konfiguraci brány firewall můžete kdykoli zkontrolovat spuštěním následujícího příkazu na příkazovém řádku:

$ sudo /sbin/iptables -L -v

Připojení bylo úspěšné

Pokud je počáteční připojení úspěšné, Netcat se může připojit ke službě. Podívejte se na připojení podrobněji.

Nejprve použijte -vt možnost zjistit, zda služba může reagovat na základní síťové dotazy:

$ nc -vt IP Address Port

Pokud můžete posílat příkazy démonu služby a přijímat odpovědi, znamená to, že program je přístupný a váš problém může být způsoben konfigurací připojení klienta.

Po připojení otestujte službu a získejte odpověď. Službu můžete otestovat zasláním GET požadavek na webový server nebo nějaká jiná vhodná data, která server vyzvou k odpovědi.

Uzavření připojení

Spojení můžete ukončit buď stisknutím Ctrl-C nebo zadejte příkaz quit specifický pro službu.

Můžete například ukončit připojení k protokolu přenosu souborů, FTP, serveru pomocí QUIT příkaz:

$ nc -vt 203.0.113.96 21
Connection to 203.0.113.96 21 port [tcp/ftp] succeeded!
220 (vsFTPd 2.0.5)
$ QUIT
221 Goodbye.

Příkazy odmítnuty

Předpokládejme nc hlásí úspěch, ale neumožňuje vám odesílat žádné příkazy, nebo dostanete odpověď od démona služby, že služba není dostupná. V takovém případě můžete mít obaly protokolu řízení přenosu, obaly TCP , poskytující řízení přístupu.

Služba FTP, která je blokována moduly TCP wrapper, může vypadat takto:

$ nc -vt 203.0.113.96 21
Connection to 203.0.113.96 21 port [tcp/ftp] succeeded!
421 Service not available.

Programy, které jsou kompatibilní s TCP wrappery, jsou kompilovány pomocí libwrap . Chcete-li zkontrolovat, zda program může používat TCPwrappers, použijte následující příkaz:

$ ldd /path/to/binary | grep libwrap

Následující příklad kontroluje vsftpd program pro libwrap soubor sdílené knihovny.

ldd /usr/sbin/vsftpd | grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f62c734a000)

Pokud program není kompatibilní s TCP wrappery, předchozí grep příkaz nic nevrací.

Kontrola protokolů

Blokované připojení vytvoří záznam protokolu. Zkontrolujte protokoly programu pro relevantní zprávy.

V vsftpd logs, naleznete na /var/log/vsftpd.log , zablokované připojení kvůli tcp wrapperům vypadá jako následující příklad:

Tue Jun  7 16:14:21 2011 [pid 28599] CONNECT: Client "203.0.113.43", "Connection refused: tcp_wrappers denial."

hosts.deny

Soubor /etc/hosts.deny soubor vytvoří definici pro blokovaná připojení. Pokud máte potíže se zobrazením záznamu pro vaši službu v souboru, použijte grep jej vyhledat.

Vyhledejte v souboru název programu spuštěním následujícího příkazu:

$ sudo grep "vsftpd" /etc/hosts.deny
vsftpd : ALL

Zkuste zakomentovat všechny problematické řádky pomocí křížku (#). Změny v tomto souboru se projeví automaticky – nemusíte restartovat žádné služby.

Všimněte si, že moduly TCP wrapper umožňují připojení ve výchozím nastavení, takže pokud je příčinou problému, musí existovat záznam v /etc/hosts.deny za službu. Soubor můžete přejmenovat /etc/hosts.deny dočasně odstranit všechna vaše pravidla odepření. Například spusťte sudo mv /etc/hosts.deny /etc/hosts.deny.old . Všimněte si, že tento příkaz ovlivňuje všechny aplikace, které používají moduly TCP wrapper. Po dokončení testů jej v případě potřeby nezapomeňte změnit zpět.

Další vyšetřování

Pokud jste dokončili všechny testy v tomto článku, aniž byste zjistili nějaké problémy, služba pravděpodobně běží normálně. Dalším krokem je otestovat připojení k serveru pomocí ping a traceroute nástroje.


Linux
  1. Začněte s NetworkManagerem v systému Linux

  2. Spravujte síťová připojení z příkazového řádku Linuxu pomocí nmcli

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

  1. Konfigurace síťového rozhraní se statickou IP adresou na RHEL 7

  2. Odstraňte problémy se sítí pomocí tcpdump

  3. Testování připojení SSL pomocí SSLyze, Nmap nebo OpenSSL

  1. Výčet nové sítě pomocí Nmap

  2. Mohu otestovat svou vlastní síť?

  3. Spouštíte síťové připojení z obnovy Ubuntu?