Enkle trinn for å åpne en port I Linux RHEL / CentOS 7/8

Innholdsfortegnelse

Annonse

I denne artikkelen vil jeg dele eksempler for å sjekke portstatus og åpne en port I Linux. Denne artikkelen ble skrevet mens Du bruker CentOS 8, så det er trygt å si at den også fullt ut dekker CentOS / RHEL 7/8, Fedora, Oracle Enterprise Linux og generelt Hele Red Hat-familien av operativsystemer og muligens Novells SLES og OpenSUSE.

Før vi hopper inn i eksemplene for å åpne en port I Linux, må vi forstå kravet tydelig. Det helt grunnleggende spørsmålet som kommer til meg

  1. trenger du å åpne en port for en tjeneste? Slik som en tilpasset port 5555 for apache-tjenesten?
  2. mener du at porten allerede lytter, men blokkeres av brannmur, slik at du vil åpne en port i brannmur?
  3. Åpne en port for egendefinert midlertidig oppgave, for eksempel overføring og mottak av filer ved hjelp av denne porten, og lukk porten.

vi vil dekke alle disse scenariene i denne artikkelen

Sjekk portstatus

for å sjekke listen over eksisterende porter som er åpne, bruker vi nmap for å sjekke portstatus:

# 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

Foreløpig ser vi bare to porter er åpne på Min CentOS 8 node.

Sjekk liste over lytteporter

vi vil bruke netstat til å liste TCP-porter som er i lyttetilstand. Totalt antall porter er høyere i forhold til nmap-utgangen.

# 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

Åpne en port for noen tjeneste

hvis dette er kravet ditt, ser du etter feil spørsmål. I utgangspunktet er det andre veien rundt, dvs. en tjeneste vil åpne en port. For eksempel når du starter SSHD-tjenesten, vil den som standard starte port 22 og ikke omvendt, dvs. hvis du åpner port 22, starter DEN ikke AUTOMATISK sshd-tjenesten.

Annonse

La oss observere dette i eksempel, vi vet at port 22 er åpen på Min CentOS 8 node. Hvis jeg stopper sshd-tjenesten

# systemctl stop sshd

kan du se at port 22 ikke er åpen lenger.

# 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

du må bruke den respektive tjenestens konfigurasjonsfil for å endre standardporten. Når du er ferdig, kan du starte tjenesten på nytt, og det skal automatisk åpne den respektive porten på Linux-noden din.

HINT:

hvis du planlegger å bruke en tilpasset port for en tjeneste, bør du også legge den til i /etc/services

dette dekker det første scenariet.

firewalld åpen port

det er også mulig at portene dine er deaktivert i brannmur. Hvis porten din ikke er oppført i nmap, er den mest sannsynlig blokkert av brannmur.

vi vil bruke firewalld til å åpne en port, da DETTE er det mest brukte grensesnittet i DAG I RHEL / CentOS 7 og 8. Bestem hvilken sone systemets nettverksgrensesnitt er i. I eksemplet nedenfor er grensesnittet eth0 og eth1 i sonen offentlig:

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

å permanent firewalld åpen port i en sone bruke --add-port alternativet. Eksemplet nedenfor åpner permanent TCP-port 1234 i offentlig sone. Merk at permanente endringer ikke trer i kraft før firewalld-tjenesten er lastet på nytt.

# firewall-cmd --zone=public --add-port=1234/tcp --permanentsuccess# firewall-cmd --reloadsuccess
MERK:

hvis du vil gjøre en ikke-vedvarende endring, utsteder du samme kommando uten --permanent – alternativsettet. Enhver ikke-permanent endring vil øyeblikkelig tre i kraft og vil fortsette til brannmuren lastes på nytt.

når firewalld åpen port, neste bruk netstat å sjekke port status:

Annonse

# 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

vi ser fortsatt ikke port 1234 her. Dette skyldes at port 1234 ikke er bundet til noen tjeneste. Så vår port ER ÅPEN, MEN IKKE LYTTER. Så snart en forespørsel eller tjeneste prøver å bruke port 1234, vil vi få dette I LYTTE tilstand.

Bruk nc eller ncat for å åpne en port I Linux

la oss verifisere denne teorien Bruk nc Eller ncat for å åpne en port I Linux nc eller ncat leveres som en del av nmap-ncat rpm I RHEL / CentOS som du kan installere ved hjelp av yum eller dnf. Bruk --listen med --port for å åpne en port ved hjelp av kommandoen nc. I eksemplet nedenfor åpner vi port 1234

# nc --listen --source-port 1234

Åpne en annen terminal på denne serveren og sjekk portstatus

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

som du ser port 1234 lytter etter Både IPv4 og IPv6. For å bare bruke IPv4 bruk -4 med kommandoen ovenfor

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

Neste på en annen terminal kan du sjekke portstatus for port 1234

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

Bruk nc eller ncat for å åpne en port og overføre filer

Vi Kan også bruke nc for å overføre fil fra en vert til en annen vert. Her overfører jeg min «inputfile» fra centos-8 til rhel-8 på klienten åpner vi en tilfeldig port, her bruker vi 9899. Jeg har aktivert detaljert slik at du kan se flere detaljer på skjermen

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

Ved siden av start overføringen, bruk kommandoen nedenfor

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

hvis du møter problemer, kan du sjekke brannmuren mellom serveren og klienten. Det er mulig at den respektive porten er blokkert, og du må bruke firewalld open port

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.