Jak otevřít porty v Linuxu
Linux Ubuntu Základy Ubuntu Hrdina / / March 02, 2022
Naposledy aktualizováno dne
Pokud chcete povolit vnější připojení k počítači nebo serveru, musíte otevřít správný port. Uživatelé Linuxu mohou otevřít porty pomocí tohoto užitečného průvodce.
Potřebujete se připojit k externímu PC nebo serveru — nebo potřebujete jiný počítač nebo server, aby se k vám připojil? Pokud používáte Linux, musíte se ujistit, že je otevřený správný port.
Zatímco jiné operační systémy k tomu obvykle mají nějaký grafický nástroj, Linux není tak jednoduchý. Níže vás provedeme tím, jak otevřít porty v Linuxu.
Co je port a proč jej musím otevřít?
Port je koncový bod v síti. Představte si to jako dveře, které vedou do určité místnosti nebo vnějšího světa, ale na vašem počítači. Vše, co děláte na internetu, využívá konkrétní port nebo řadu portů.
Řekněme například, že chcete provozovat svůj vlastní server Minecraft. Chcete-li tak učinit, budete muset otevřít port, přes který se k němu uživatelé mohou připojit. Totéž platí pro provozování vlastního webového, poštovního nebo FTP serveru.
Porty jsou standardizované ve všech sítích připojených zařízení. Prvních 1024 portů (od 0 do 1023) se označuje jako známá čísla portů. Jsou vyhrazeny pro nejpoužívanější služby, jako je HTTP a HTTP (port 80, resp. 443) a SSH (port 22).
Čísla portů nad 1024 jsou označována jako efemérní portya jsou vám obvykle k dispozici pro vaše online hraní, soukromé webové servery a tak dále. Volají se čísla portů 1024 až 49151 registrovaný nebo uživatelské porty, zatímco ty od 49152 do 65535 jsou známé jako dynamický nebo soukromé přístavy.
Výpis otevřených portů v systému Linux
Než se začnete pokoušet otevřít port v Linuxu, měli byste se ujistit, že již není používán. Můžete to provést pomocí netstat příkaz, který je součástí většiny distribucí Linuxu. Pokud vaše distribuce nemá netstat, Můžeš použít ss namísto.
netstat -lntu.
Tím se vytisknou všechny naslouchací zásuvky (-l), spolu s číslem portu (-n). Obsahuje TCP porty (-t) stejně jako UDP (-u). Pokud váš systém nemá netstat, stačí použít ss se stejnými parametry.
ss -lntu.
Jak otevřít porty v Linuxu
Pro tento příklad budeme předpokládat, že chceme otevřít port 4000 pro připojení TCP. Nejprve se musíme ujistit, že port již není používán. Děláme to skrz netstat nebo ss.
netstat -na | grep: 4000. ss -na | grep: 4000.
Za předpokladu, že výstup je prázdný, můžeme do firewallu systému přidat příslušná pravidla portu. Metody se budou lišit v závislosti na vaší distribuci a na tom, zda používá novější ufw firewall nebo firewalld. Ubuntu favorizujeufw, zatímco CentOS obvykle používáfirewalld namísto. Samozřejmě stále existují některé distribuce Linuxu, které používají starší iptables firewall.
Pro uživatele Ubuntu a další systémy založené na ufw Firewall
Spíše než používat starší iptables firewall, Ubuntu a některé další distribuce používají ufw. V těchto systémech následující příkaz otevře port.
sudo ufw povolit 4000.
Přeskočte několik následujících kroků a otestujte svůj nově otevřený port, abyste se ujistili, že funguje.
Jak otevřít porty v Linuxu pomocí CentOS a dalších systémů založených na firewallu
Pokud váš systém používá firewalld, nejlepším řešením je použít firewall-cmd příkaz k aktualizaci pravidel.
sudo firewall-cmd --add-port=4000/tcp.
Nepůjde o trvalou změnu, ale po otestování portu probereme, jak zajistit zachování pravidel po restartu.
Pro jiné distribuce Linuxu
Pokud váš systém Linux nemá ufw nebo firewalld, budete muset použít iptables. Pokud není nainstalován, pokračujte a získejte jej pomocí svého správce balíčků. Jakmile je nainstalován, tyto příkazy otevře port 4000:
sudo iptables -A INPUT -p tcp --dport 4000 -j PŘIJMOUT. restart služby sudo iptables.
Pokud váš systém používá systemctl, nahraďte druhý příkaz:
sudo systemctl restart iptables.
Testování nově otevřených portů pro připojení
Dále bychom měli otestovat port, abychom se ujistili, že přijímá připojení. Děláme to pomocí netcat (nc) poslouchat port a poté se k němu pokusit připojit telnet.
Nejprve otevřete okno terminálu a zadejte tento příkaz:
sudo ls | nc -l -p 4000.
Nechte jej běžet (poslouchejte) a otevřete druhé okno terminálu. V tomto okně použijete telnet k testování připojení. Pokud telnet není nainstalován, udělejte to pomocí správce balíčků.
telnet [název hostitele/IP adresa] [číslo portu]
Nahradit [název hostitele/IP adresa] s IP adresou vašeho systému a [číslo portu] s číslem portu, který jste otevřeli.
telnet localhost 4000.
Níže byste měli vidět výstup podobný tomu, který označuje otevřené spojení s nc.
Můžeme také ukázat, že port je otevřený pomocí nmap. Znovu, pokud příkaz ještě není nainstalován, použijte správce balíčků k jeho získání.
nmap localhost -p 4000.
Všimněte si, že nmap zobrazí pouze otevřené porty, které čekají na připojení. To je důvod, proč používáme netcat pro testování, abychom na tomto portu naslouchali. V opačném případě se port nezaregistruje jako otevřený.
Nemohu se připojit k portu, který jsem právě otevřel, co teď?
Pokud provedete všechny výše uvedené kroky a nemůžete se připojit k portu, znovu zkontrolujte zadání. Pokud jste si jisti, že jste vše zadali správně, je pravděpodobné, že budete muset překonfigurovat síťový router, aby provoz povolil.
Vzhledem k tomu, že každý síťový router má různé konfigurační obrazovky, měli byste si prostudovat stránky podpory nebo uživatelskou příručku pro vaše konkrétní zařízení. Budete muset zkontrolovat nastavení předávání portů nebo mapování portů a také vestavěný firewall, který může router používat.
Jak trvale otevřít port v Linuxu
Jakmile svůj otevřený port otestujete a ujistíte se, že funguje, pravděpodobně budete chtít provést změnu natrvalo. V opačném případě se změny nemusí po restartu udržet. Pokud jste uživatelem Ubuntu nebo jinak používáte ufw firewall, s tím si nemusíte dělat starosti. The ufw pravidla se při restartu neresetují.
Pro uživatele s firewallem
Je snadné nastavit pravidlo portu po restartu firewalld. Stačí přidat -trvalý příznak k vašemu počátečnímu příkazu a bude zahrnut do pravidel brány firewall vašeho systému Linux při spuštění.
sudo firewall-cmd --add-port=4000/tcp --permanent.
Pokud stále používáte iptables
The iptables firewall je mnohem obtížnější (možná dobrý důvod pro upgrade na firewalld nebo ufw). Chcete-li „trvale“ otevřít port iptables, můžete nainstalovat iptables-perzistentní balíček na pomoc.
Při první instalaci iptables-perzistentní na systému založeném na Debianu uloží vaše aktuální pravidla do obou /etc/iptables/rules.v4 nebo /etc/iptables/rules.v6. Chcete-li přidat nová pravidla, zadáte následující příkaz:
sudo iptables-save > /etc/iptables/rules.v4.
NEBO
sudo iptables-save > /etc/iptables/rules.v6.
Pro ty, kteří používají linuxové distribuce založené na RPM, je to trochu jiné. Balíček se nazývá iptables-službya uložené soubory jsou /etc/sysconfig/iptables a /etc/sysconfig/ip6tables.
V distribucích založených na RPM se také používá jiný příkaz pro porty IPv6. Uložení pravidel se provádí pomocí jednoho z těchto dvou příkazů:
sudo iptables-save > /etc/sysconfig/iptables. sudo ip6tables-save > /etc/sysconfig/iptables.
Sledujte využití svého portu
Postupem času se mohou potřeby vašeho serveru změnit. Přesně tak, jak byste měli držet krok s uživatelskými účty na vašem počítači se systémem Linux byste také měli pravidelně kontrolovat své otevřené porty. Zavřete všechny otevřené porty, které již nepotřebujete. Spolu s pravidelně změna hesla, jedná se o dobrý bezpečnostní postup, který vám pomůže vyhnout se průnikům do systému a zneužití zabezpečení.