egyszerű lépések egy port megnyitásához Linux RHEL/CentOS rendszerben 7/8

Tartalomjegyzék

hirdetés

ebben a cikkben példákat fogok megosztani a port állapotának ellenőrzésére és egy port megnyitására Linuxban. Ez a cikk a CentOS 8 használata közben íródott, így nyugodtan mondhatjuk, hogy teljes mértékben lefedi a CentOS / RHEL 7/8, A Fedora, az Oracle Enterprise Linux és általában az egész Red Hat operációs rendszercsaládot, esetleg a Novell SLES-ét és az OpenSUSE-t is.

mielőtt belevágnánk a Példákba, hogy megnyissunk egy portot Linuxban, világosan meg kell értenünk a követelményt. A legalapvetőbb kérdés, ami eszembe jut

  1. meg kell nyitnia egy portot egy szolgáltatáshoz? Mint például egy egyedi port 5555 apache szolgáltatás?
  2. úgy érti, hogy a port már hallgat, de a tűzfal blokkolja, így meg akarja nyitni a portot a tűzfalban?
  3. nyisson meg egy portot egyéni ideiglenes feladatokhoz, például fájlok átviteléhez és fogadásához ezen a porton keresztül, majd zárja be a portot.

ezeket a forgatókönyveket ebben a cikkben tárgyaljuk

ellenőrizze a port állapotát

a meglévő nyitott portok listájának ellenőrzéséhez A nmap – et fogjuk használni a port állapotának ellenőrzéséhez:

# 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

jelenleg csak két port van nyitva a CentOS 8 csomópontomon.

a figyelő portok ellenőrző listája

a netstat segítségével soroljuk fel a figyelő állapotban lévő TCP portokat. A portok teljes száma magasabb az nmap kimenetéhez képest.

# 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

nyisson meg egy portot valamilyen szolgáltatáshoz

ha ez a követelmény, akkor rossz kérdést keres. Alapvetően fordítva van, azaz egy szolgáltatás megnyit egy portot. Például, amikor elindítja az SSHD szolgáltatást, alapértelmezés szerint a 22-es portot indítja el, nem pedig fordítva, azaz ha megnyitja a 22-es portot, akkor nem indul el automatikusan az SSHD szolgáltatás.

hirdetés

figyeljük meg ezt a példát, tudjuk, hogy a port 22 nyitva van az én CentOS 8 csomópont. Ha leállítom az sshd szolgáltatást

# systemctl stop sshd

láthatja, hogy a 22-es port már nincs nyitva.

# 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

az alapértelmezett port módosításához a megfelelő szolgáltatás konfigurációs fájlját kell használni. Ha kész, újraindíthatja a szolgáltatást, amelynek automatikusan meg kell nyitnia a megfelelő portot a Linux csomóponton.

tipp:

ha egyéni portot kíván használni egy szolgáltatáshoz, akkor azt is hozzá kell adnia /etc/services

ez az első forgatókönyvre vonatkozik.

firewalld nyitott port

az is lehetséges, hogy a portok le vannak tiltva a tűzfalban. Ha a port nem szerepel a nmap listában, akkor valószínűleg a tűzfal blokkolja.

a firewalld-ot fogjuk használni a port megnyitásához, mivel ez a leggyakrabban használt interfész ma az RHEL/CentOS 7-ben és 8-ban. Határozza meg, hogy a rendszer hálózati interfészei melyik zónában vannak. A következő példában az eth0 és eth1 interfész a nyilvános zónában van:

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

a zónán belüli Port végleges megnyitásához használja a --add-port opciót. Az alábbi példa véglegesen megnyitja az 1234-es TCP portot a ‘nyilvános’ zónában. Ne feledje, hogy az állandó változások csak a firewalld szolgáltatás újratöltéséig lépnek hatályba.

# firewall-cmd --zone=public --add-port=1234/tcp --permanentsuccess# firewall-cmd --reloadsuccess
megjegyzés:

nem állandó változtatáshoz adja ki ugyanazt a parancsot a --permanent beállításkészlet nélkül. Minden nem állandó változás azonnal érvénybe lép, és a tűzfal újratöltéséig fennmarad.

miután a firewalld megnyitotta a portot, a netstat használatával ellenőrizze a port állapotát:

hirdetés

# 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

még mindig nem látjuk az 1234-es portot. Ez azért van, mert jelenleg az 1234-es port nem kötődik semmilyen szolgáltatáshoz. Tehát a kikötőnk nyitva van, de nem hallgat. Amint egy kérés vagy szolgáltatás megpróbálja használni az 1234-es portot, ezt hallgatási állapotban kapjuk meg.

NC vagy ncat használatával nyisson meg egy portot Linuxban

ellenőrizzük ezt az elméletet a nc vagy ncat használatával nyisson meg egy portot Linuxban nc vagy ncat a nmap-ncat rpm részeként szállítjuk RHEL/CentOS-ban, amelyet Yum vagy dnf segítségével telepíthet. Használja a --listen parancsot a --port gombbal egy port megnyitásához a nc paranccsal. Az alábbi példában megnyitjuk a portot 1234

# nc --listen --source-port 1234

nyissa meg a kiszolgáló másik terminálját, és ellenőrizze a port állapotát

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

amint látja, hogy az 1234-es port mind az IPv4, mind az IPv6 számára figyel. Csak az IPv4 használatához használja a -4-et a fenti paranccsal

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

következő egy másik terminálon ellenőrizheti a port állapotát 1234

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

az nc vagy az ncat használatával nyisson meg egy portot és továbbítson fájlokat

a nc használatával fájlokat is átvihetünk egyik gazdagépről a másikra. Itt átviszem a “inputfile” – et centos-8 – ról rhel-8 – re az ügyfélen egy véletlenszerű portot nyitunk meg, itt 9899-et fogunk használni. Engedélyeztem a verbose alkalmazást, így további részleteket láthat a képernyőn

# 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.

az átvitel elindításához használja az alábbi parancsot

# 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.

ha bármilyen problémával szembesül, ellenőrizheti a tűzfalat a szerver és az ügyfél között. Lehetséges, hogy az adott port blokkolva van, ezért a firewalld open port

parancsot kell használnia

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.