enkla steg för att öppna en port i Linux RHEL / CentOS 7/8

Innehållsförteckning

annons

i den här artikeln kommer jag att dela exempel för att kontrollera portstatus och öppna en port i Linux. Den här artikeln skrevs när du använde CentOS 8, så det är säkert att säga att det också helt täcker CentOS/RHEL 7/8, Fedora, Oracle Enterprise Linux och i allmänhet hela Red Hat-familjen av operativsystem och eventuellt Novells SLES och OpenSUSE.

innan vi hoppar in i exemplen för att öppna en port i Linux måste vi förstå kravet tydligt. Den mycket grundläggande frågan som kommer till mig

  1. behöver du öppna en port för en tjänst? Såsom en anpassad port 5555 för apache tjänst?
  2. menar du att porten redan lyssnar men blockeras av brandväggen så att du vill öppna en port i brandväggen?
  3. öppna en port för anpassad tillfällig uppgift som att överföra och ta emot filer med den här porten och stäng sedan porten.

vi kommer att täcka alla dessa scenarier i den här artikeln

kontrollera portstatus

för att kontrollera listan över befintliga portar som är öppna använder vi nmap för att kontrollera 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

för närvarande ser vi bara två portar är öppna på min CentOS 8 nod.

kontrollera lista över lyssningsportar

vi kommer att använda netstat för att lista de TCP-portar som är i lyssningsläge. Det totala antalet portar är högre jämfört med Nmap-utgången.

# 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

öppna en port för någon tjänst

om detta är ditt krav letar du efter fel fråga. I grund och botten är det tvärtom, dvs en tjänst öppnar en port. När du till exempel startar sshd-tjänsten startar den som standard port 22 och inte tvärtom, dvs om du öppnar port 22 startar den inte automatiskt sshd-tjänsten.

annons

Låt oss observera detta i exempel, vi vet att port 22 är öppen på min CentOS 8 nod. Om jag stoppar sshd-tjänsten

# systemctl stop sshd

kan du se att port 22 inte är öppen längre.

# 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åste använda respektive tjänsts konfigurationsfil för att ändra standardporten. När du är klar kan du starta om tjänsten och det ska automatiskt öppna respektive port på din Linux-nod.

tips:

om du planerar att använda någon anpassad port för en tjänst bör du också lägga till den i /etc/services

detta täcker det första scenariot.

firewalld open port

det är också möjligt att dina portar är inaktiverade i brandväggen. Om din port inte är listad i nmap är den troligen blockerad av brandväggen.

vi kommer att använda firewalld för att öppna en port eftersom det här är det mest använda gränssnittet idag i RHEL/CentOS 7 och 8. Bestäm vilken zon systemets nätverksgränssnitt är i. I följande exempel finns gränssnittet eth0 och eth1 i zonen’ public’:

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

för att permanent öppna porten firewalld i en zon använd alternativet --add-port. Exemplet nedan öppnar permanent TCP-port 1234 i zonen ’Offentlig’. Observera att permanenta ändringar inte träder i kraft förrän firewalld-tjänsten laddas om.

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

för att göra en icke-beständig ändring, utfärda samma kommando utan alternativet --permanent. Alla icke-permanenta ändringar träder i kraft omedelbart och kommer att bestå tills brandväggen laddas om.

när firewalld öppen port, nästa användning netstat att kontrollera port status:

annons

# 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 fortfarande inte port 1234 här. Detta beror på att port 1234 för närvarande inte är bindande för någon tjänst. Så vår hamn är öppen men lyssnar inte. Så snart en begäran eller tjänst försöker använda port 1234, vi kommer att få detta I lyssna tillstånd.

använd nc eller ncat för att öppna en port i Linux

låt oss verifiera denna teori använd nc eller ncat för att öppna en port i Linux nc eller ncat levereras som en del av nmap-ncat rpm i RHEL/CentOS som du kan installera med yum eller dnf. Använd --listen med --port för att öppna en port med kommandot nc. I exemplet nedan öppnar vi port 1234

# nc --listen --source-port 1234

öppna en annan terminal på den här servern och kontrollera 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 lyssnar på både IPv4 och IPv6. För att bara använda IPv4 använd -4 med ovanstående kommando

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

nästa på en annan terminal kan du kontrollera portstatus för port 1234

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

använd nc eller ncat för att öppna en port och överföra filer

vi kan också använda nc för att överföra filer från en värd till en annan värd. Här överför jag min ”inputfile ” från centos-8 till rhel-8 på klienten öppnar vi en slumpmässig port, här använder vi 9899. Jag har aktiverat verbose så att du kan se mer information på skärmen

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

Nästa för att starta överföringen, använd kommandot nedan

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

om du möter några problem kan du kontrollera brandväggen mellan din server och klient. Det är möjligt att respektive port är blockerad och du måste använda firewalld open port

Lämna ett svar

Din e-postadress kommer inte publiceras.