Snadné kroky, aby otevřít port na Linux RHEL/CentOS 7/8

Obsah

Reklama

V tomto článku se budu sdílet příklady zkontrolovat stav portu a otevřít port v Linuxu. Tento článek byl napsán při použití CentOS 8, takže je to bezpečné říci, že to také plně pokrývá CentOS/RHEL 7/8, Fedora, Oracle Enterprise Linux a obecně celé rodiny Red Hat operačních systémů a případně Novell SLES a OpenSUSE.

než skočíme do příkladů a otevřeme port v Linuxu, musíme tento požadavek jasně pochopit. Velmi základní otázka, která mi přijde na mysl

  1. potřebujete otevřít port pro službu? Například vlastní port 5555 pro službu apache?
  2. myslíte, že port již poslouchá, ale je blokován firewallem, takže chcete otevřít port ve firewallu?
  3. otevřete port pro vlastní dočasnou úlohu, jako je přenos a příjem souborů pomocí tohoto portu, a poté port zavřete.

se bude vztahovat na všechny tyto scénáře v tomto článku

Zkontrolujte stav portu

podívejte se Na seznam stávajících porty, které jsou otevřené, budeme používat nmap zkontrolovat stav portu:

# nmap localhost
Starting Nmap 7.70 ( https://nmap.org ) at 2020-03-22 12:08 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000024s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
Nmap done: 1 IP address (1 host up) scanned in 1.71 seconds

v Současné době můžeme vidět pouze dva porty jsou otevřené na mém CentOS 8 uzlu.

zkontrolujte seznam poslechových portů

použijeme netstat k vypsání TCP portů, které jsou ve stavu poslechu. Celkový počet portů je vyšší ve srovnání s výstupem nmap.

# netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1627/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 26893/sshd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 26893/sshd tcp6 0 0 :::111 :::* LISTEN 1/systemd

otevřete port pro nějakou službu

pokud je to váš požadavek, pak hledáte špatnou otázku. Služba otevře port. Například při spuštění služby SSHD se ve výchozím nastavení spustí port 22 a ne naopak, tj. pokud otevřete port 22, automaticky se nespustí služba SSHD.

Reklama

Dejte nám sledovat toto v příkladu, víme, že na port 22 je otevřené na mém CentOS 8 uzlu. Pokud zastavím službu sshd

# systemctl stop sshd

, můžete vidět, že port 22 již není otevřen.

# netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1627/dnsmasq tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp6 0 0 :::111 :::* LISTEN 1/systemd

ke změně výchozího portu musíte použít konfigurační soubor příslušné služby. Po dokončení můžete službu restartovat a to by mělo automaticky otevřít příslušný port v uzlu Linuxu.

tip:

pokud plánujete použít nějaký vlastní port pro službu, měli byste ji také přidat/etc/services

to zahrnuje první scénář.

firewalld otevřený port

je také možné, že vaše porty jsou zakázány v bráně firewall. Pokud váš port není uveden v nmap , je pravděpodobně blokován firewallem.

použijeme firewalld k otevření portu, protože toto je dnes nejpoužívanější rozhraní v RHEL / CentOS 7 a 8. Určete, ve které zóně jsou síťová rozhraní systému. V následujícím příkladu je rozhraní eth0 a eth1 ve „veřejné“ zóně:

# firewall-cmd --get-active-zones
libvirt
interfaces: virbr0
public
interfaces: eth0 eth1

Chcete-li trvale otevřít port firewalld v zóně, použijte volbu --add-port. Níže uvedený příklad trvale otevře TCP port 1234 v zóně „public“. Mějte na paměti, že trvalé změny se projeví až po opětovném načtení služby firewalld.

# firewall-cmd --zone=public --add-port=1234/tcp --permanentsuccess# firewall-cmd --reloadsuccess
poznámka:

Chcete – li provést trvalou změnu, zadejte stejný příkaz bez nastavení volby --permanent. Jakákoli trvalá změna se okamžitě projeví a bude přetrvávat, dokud nebude znovu načten firewall.

Jednou firewalld otevřít port, další použití příkazu netstat zkontrolovat stav portu:

Reklama

# netstat -ntlpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1627/dnsmasqtcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 28188/sshdtcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemdtcp6 0 0 :::22 :::* LISTEN 28188/sshdtcp6 0 0 :::111 :::* LISTEN 1/systemd

Jsme stále nechápu, port 1234. Je to proto, že v současné době port 1234 není vázán na žádnou službu. Takže náš přístav je otevřený, ale neposlouchá. Jakmile se žádost nebo služba pokusí použít port 1234, dostaneme to do stavu poslechu.

Použití nc nebo ncat otevřít port v Linuxu

Pojďme ověřit tuto teorii Použít nc nebo ncat otevřít port v Linuxu nc nebo ncat je dodáván jako součást nmap-ncat ot / min v RHEL/CentOS, který si můžete nainstalovat pomocí yum nebo dnf. Pomocí --listen s --port otevřete port pomocí příkazu nc. V následujícím příkladu otevřeme port 1234

# nc --listen --source-port 1234

otevřete další terminál tohoto serveru a zkontrolujte stav portu

# netstat -ntlp | grep 1234tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 28983/nctcp6 0 0 :::1234 :::* LISTEN 28983/nc

jak vidíte, port 1234 poslouchá jak pro IPv4, tak pro IPv6. Používat pouze IPv4 použití -4 s výše uvedený příkaz

# nc --listen --source-port 1234 -4

Další na jiném terminálu můžete zkontrolovat stav portu pro port 1234

# netstat -ntlp | grep 1234tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 29329/nc

Použití nc nebo ncat k otevření portu a přenos souborů

můžeme také použít nc přenos souborů z jednoho hostitele na jiného hostitele. Zde převedu svůj „inputfile “ z centos-8 na rhel-8 na klienta otevřeme náhodný port, zde použijeme 9899. Mám povoleno podrobné, takže můžete vidět více informací na obrazovce

# ncat --verbose --listen 9899 > outputfileNcat: Version 7.70 ( https://nmap.org/ncat )Ncat: Listening on :::9899Ncat: Listening on 0.0.0.0:9899Ncat: Connection from 192.168.43.250.Ncat: Connection from 192.168.43.250:40242.

Další pro spuštění převodu, použijte níže uvedený příkaz

# ncat --verbose 192.168.43.157 9899 < inputfileNcat: Version 7.70 ( https://nmap.org/ncat )Ncat: Connected to 192.168.43.157:9899.Ncat: 19 bytes sent, 0 bytes received in 0.01 seconds.

Pokud budete čelit nějaké problémy, můžete zkontrolovat firewall mezi serverem a klientem. Je možné, že příslušný port je zablokován a musíte použít otevřený port firewalld

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.