Některý software pro Linux funguje tak, že naslouchá příchozím připojením. Jednoduchým příkladem může být webový server, který zpracovává požadavky uživatelů, kdykoli někdo přejde na webovou stránku. Jako správce nebo uživatel Linuxu je důležité vždy vědět, které porty vašeho systému jsou otevřené pro internet. V opačném případě si nemusíte být vědomi externích připojení k vašemu počítači, která spotřebovávají šířku pásma a zdroje a představují potenciální bezpečnostní díru.
V této příručce uvidíme, jak zkontrolovat otevřené porty na Ubuntu Linux. To lze provést pomocí několika různých nástrojů příkazového řádku, které si podrobně projdeme. Uvidíme také, jak používat ufw firewall Ubuntu, abychom se ujistili, že porty jsou bezpečné. Takže víte, které porty vašeho systému jsou otevřené? Pojďme to zjistit.
V tomto tutoriálu se naučíte:
- Jak zkontrolovat otevřené porty pomocí
ss
příkaz - Jak zkontrolovat otevřené porty pomocí nástroje Nmap
- Jak zkontrolovat a přidat povolené porty v ufw firewallu
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Ubuntu Linux |
Software | ss, Nmap, ufw firewall |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Zkontrolujte otevřené porty pomocí příkazu ss
Příkaz ss lze použít k zobrazení, které porty naslouchají připojení. Také ukazuje, ze kterých sítí přijímá připojení.
Doporučujeme použít -ltn
pomocí příkazu zobrazíte stručný a relevantní výstup. Podívejme se na příklad našeho testovacího systému.
$ sudo ss -ltn State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* LISTEN 0 5 127.0.0.1:631 0.0.0.0:* LISTEN 0 70 127.0.0.1:33060 0.0.0.0:* LISTEN 0 151 127.0.0.1:3306 0.0.0.0:* LISTEN 0 5 [::1]:631 [::]:* LISTEN 0 511 *:80 *:*
Vidíme, že náš server naslouchá připojení na portech 80, 3306 a 33060. Toto jsou dobře známé porty spojené s HTTP a MySQL.
Také uvidíte, že ss
výstup ukazuje, že porty 53 a 631 jsou ve stavu naslouchání. Ty jsou pro DNS a Internet Printing Protocol, v tomto pořadí. Ty jsou ve výchozím nastavení povoleny, takže je pravděpodobně uvidíte naslouchat ve vašem vlastním systému. Port DNS není ve skutečnosti otevřený, ale poskytuje překlad názvů aplikacím nainstalovaným v našem systému.
Chcete-li zjistit, ke kterým procesům tyto naslouchací porty patří, zahrňte -p
možnost ve vašem příkazu.
$ sudo ss -ltnp State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=530,fd=13)) LISTEN 0 5 127.0.0.1:631 0.0.0.0:* users:(("cupsd",pid=572,fd=7)) LISTEN 0 70 127.0.0.1:33060 0.0.0.0:* users:(("mysqld",pid=2320,fd=32)) LISTEN 0 151 127.0.0.1:3306 0.0.0.0:* users:(("mysqld",pid=2320,fd=34)) LISTEN 0 5 [::1]:631 [::]:* users:(("cupsd",pid=572,fd=6)) LISTEN 0 511 *:80 *:* users:(("apache2",pid=2728,fd=4),("apache2",pid=2727,fd=4),("apache2",pid=2725,fd=4))
Nyní vidíme, že systemd-resolve, cupsd, mysqld a apache2 jsou služby, které využívají porty k naslouchání příchozím připojením.
Zkontrolujte otevřené porty pomocí nmap
Nmap je nástroj pro průzkum sítě, který lze použít ke kontrole otevřených portů na vzdálených hostitelích. Můžeme jej však také použít ke kontrole našeho vlastního systému a získat rychlý seznam otevřených portů.
Normálně bychom specifikovali vzdálenou IP adresu, kterou má Nmap skenovat. Místo toho můžeme skenovat náš vlastní systém zadáním localhost
v příkazu.
$ sudo nmap localhost Starting Nmap 7.80 ( https://nmap.org ) at 2021-03-12 20:43 EST Nmap scan report for localhost (127.0.0.1) Host is up (0.000012s latency). Not shown: 997 closed ports PORT STATE SERVICE 80/tcp open http 631/tcp open ipp 3306/tcp open mysql Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds
Zkontrolujte, jaké porty jsou otevřené v ufw firewallu
Existuje velké upozornění, které byste měli mít na paměti. Při použití ss
nebo nmap localhost
příkazy v našem místním systému, obcházíme firewall. Tyto příkazy skutečně zobrazují porty, které jsou ve stavu naslouchání, ale to nutně neznamená, že jsou porty otevřené pro internet, protože náš firewall může odmítat připojení.
Zkontrolujte stav ufw firewall pomocí následujícího příkazu.
$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
Z výstupu můžeme vidět, že ufw odmítá příchozí spojení. Vzhledem k tomu, že porty 80 a 3306 nebyly přidány jako výjimky, HTTP a MySQL nemohou přijímat příchozí připojení, přestože ss
a nmap
hlásí, že jsou ve stavu naslouchání.
Přidejte výjimky pro tyto porty pomocí následujících příkazů.
$ sudo ufw allow 80/tcp Rule added Rule added (v6) $ sudo ufw allow 3306/tcp Rule added Rule added (v6)
Můžeme znovu zkontrolovat stav ufw, abychom viděli, že porty jsou nyní otevřené.
$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 80/tcp ALLOW IN Anywhere 3306/tcp ALLOW IN Anywhere 80/tcp (v6) ALLOW IN Anywhere (v6) 3306/tcp (v6) ALLOW IN Anywhere (v6)
Nyní jsou naše dva porty otevřené ve firewallu a ve stavu naslouchání. Chcete-li se dozvědět více o ufw firewallu, včetně příkladů příkazů, podívejte se do našeho průvodce instalací a používáním ufw firewallu v Linuxu.
Úvahy na závěr
V této příručce jsme viděli, jak používat ss
a také nmap
nástroj pro kontrolu naslouchacích portů na Ubuntu Linux. Také jsme se naučili, jak zkontrolovat ufw firewall, abychom viděli, jaké porty jsou otevřené, a v případě potřeby přidat výjimky.
Pokud je port ve stavu naslouchání a je povolen přes bránu firewall, měl by být otevřen pro příchozí připojení. Ale to také závisí na vašem routeru nebo jiných síťových zařízeních umístěných mezi vaším počítačem a internetem, protože mohou mít svá vlastní pravidla, která blokují příchozí připojení.