Hoe een poort openen op Linux

Introductie

A port is a communication endpoint. Within an operating system, a port is opened or closed to data packets for specific processes or network services.

Meestal identificeren poorten een specifieke aan hen toegewezen netwerkservice. Dit kan worden gewijzigd door handmatig de service in te stellen om een andere poort te gebruiken, maar over het algemeen kunnen de standaardinstellingen worden gebruikt.

De eerste 1024 poorten (poortnummers 0 tot 1023) worden aangeduid als bekende poortnummers en zijn gereserveerd voor de meest gebruikte services. Hieronder vallen SSH (poort 22), HTTP (poort 80), HTTPS (poort 443).

Poortnummers boven 1024 worden aangeduid als ephemeral poorten.

  • Poortnummers 1024 tot 49151 worden de geregistreerde/gebruikerspoorten genoemd.
  • Poortnummers 49152 tot 65535 worden de dynamische/privepoorten genoemd.

In deze handleiding zul je een ephemeral poort openen op Linux, aangezien de meest voorkomende services de bekende poorten gebruiken.

Implementeer je applicaties vanuit GitHub met behulp van DigitalOcean App Platform. Laat DigitalOcean zich richten op het schalen van je app.

Vereisten

Om deze handleiding te voltooien, heb je nodig:

  • Vertrouwdheid met het gebruik van de terminal.

Lijst Alle Open Poorten

Voordat u een poort op Linux opent, moet u de lijst met alle open poorten controleren en een tijdelijke poort kiezen die niet op die lijst staat.

Gebruik het netstat-commando om alle open poorten te vermelden, inclusief TCP en UDP, die de meest voorkomende protocollen zijn voor pakketoverdracht in de netwerklaag.

  1. netstat -lntu

Dit zal afdrukken:

  • alle luisterende sockets (-l)
  • het poort nummer (-n)
  • TCP poorten (-t)
  • UDP poorten (-u)
Output
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp6 0 0 ::1:5432 :::* LISTEN tcp6 0 0 ::1:6379 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN udp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN

Opmerking: Als uw distributie geen netstat heeft, kunt u het ss-commando gebruiken om open poorten weer te geven door te controleren op luisterende sockets.

Controleer of u consistente uitvoer ontvangt met behulp van het ss-commando om luisterende sockets met een open poort weer te geven:

  1. ss -lntu

Dit zal afdrukken:

Output
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:* tcp LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* tcp LISTEN 0 128 127.0.0.1:27017 0.0.0.0:* tcp LISTEN 0 128 127.0.0.1:6379 0.0.0.0:* tcp LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:* tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* tcp LISTEN 0 128 [::1]:5432 0.0.0.0:* tcp LISTEN 0 128 [::1]:6379 0.0.0.0:* tcp LISTEN 0 128 [::]:22 0.0.0.0:*

Dit geeft min of meer dezelfde open poorten als netstat.

Een poort openen op Linux om TCP-verbindingen toe te staan

Open nu een gesloten poort en laat deze luisteren naar TCP-verbindingen.

Voor het doel van deze handleiding, zal je poort 4000 openen. Als die poort echter niet open is in jouw systeem, voel je vrij om een andere gesloten poort te kiezen. Zorg er gewoon voor dat deze groter is dan 1023.

Zorg ervoor dat poort 4000 niet wordt gebruikt met behulp van het netstat-commando:

  1. netstat -na | grep :4000

Of het ss-commando:

  1. ss -na | grep :4000

De uitvoer moet leeg blijven, wat bevestigt dat deze momenteel niet wordt gebruikt, zodat je de poortregels handmatig kunt toevoegen aan de iptables firewall van het systeem.

Voor Ubuntu-gebruikers en systemen gebaseerd op ufw

Gebruik ufw – de commandoregelclient voor de UncomplicatedFirewall.

Je opdrachten zullen lijken op:

  1. sudo ufw allow 4000

Zie Hoe je een ufw-firewall instelt voor jouw distributie.

Opmerking:

  • Ubuntu 14.0.4: “Specifieke poortreeksen toestaan”
  • Ubuntu 16.0.4/18.0.4/20.0.4/22.0.4: “Toestaan van andere verbindingen / Specifieke poortbereiken”
  • Debian 9/10/11: “Toestaan van andere verbindingen / Specifieke poortbereiken”

Voor CentOS en firewalld-gebaseerde systemen

Gebruik firewall-cmd – de command-line client voor de firewalld daemon.

Je opdrachten zullen er als volgt uitzien:

  1. firewall-cmd --add-port=4000/tcp

Raadpleeg Hoe stel je firewalld in voor jouw distributie.

Opmerking:

  • CentOS 7/8: “Regels instellen voor je applicaties / Een poort openen voor je zones”
  • Rocky Linux 8/9: “Regels instellen voor je applicaties / Een poort openen voor je zones”

Voor andere Linux-distributies

Gebruik iptables om de IPv4-pakketfilterregels van het systeem te wijzigen.

  1. iptables -A INPUT -p tcp --dport 4000 -j ACCEPT

Raadpleeg Hoe stel je een firewall in met iptables voor jouw distributie.

Opmerking:

  • Ubuntu 12.04: “Een Basis Firewall”
  • Ubuntu 14.04: “Accepteer Andere Noodzakelijke Verbindingen”

Test de Nieuw Geopende Poort voor TCP-verbindingen

Nu je succesvol een nieuwe TCP-poort hebt geopend, is het tijd om deze te testen.

Start eerst netcat (nc) en luister (-l) op poort (-p) 4000, terwijl je de output van ls naar elke verbonden client stuurt:

  1. ls | nc -l -p 4000

Nu, nadat een client een TCP-verbinding heeft geopend op poort 4000, ontvangen ze de output van ls. Laat deze sessie voor nu met rust.

Open een andere terminalsessie op dezelfde machine.

Aangezien je een TCP-poort hebt geopend, gebruik telnet om te controleren op TCP-connectiviteit. Als de opdracht niet bestaat, installeer deze dan met je pakketbeheerder.

Voer je server-IP en het poortnummer in (4000 in dit voorbeeld) en voer deze opdracht uit:

  1. telnet localhost 4000

Deze opdracht probeert een TCP-verbinding te openen op localhost op poort 4000.

Je krijgt een vergelijkbare output als dit, wat aangeeft dat er een verbinding tot stand is gebracht met het luisterende programma (nc):

Output
Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. while.sh

De output van ls (while.sh, in dit voorbeeld) is ook naar de client gestuurd, wat wijst op een succesvolle TCP-verbinding.

Gebruik nmap om te controleren of de poort (-p) open staat:

  1. nmap localhost -p 4000

Met dit commando wordt de open poort gecontroleerd:

Output
Starting Nmap 7.60 ( https://nmap.org ) at 2020-01-18 21:51 UTC Nmap scan report for localhost (127.0.0.1) Host is up (0.00010s latency). Other addresses for localhost (not scanned): ::1 PORT STATE SERVICE 4000/tcp open remoteanything Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds

De poort is geopend. U heeft succesvol een nieuwe poort geopend op uw Linux systeem.

Let op: nmap vermeldt alleen geopende poorten die momenteel een luisterende toepassing hebben. Als u geen luisterende toepassing gebruikt, zoals netcat, wordt de poort 4000 als gesloten weergegeven omdat er momenteel geen toepassing luistert op die poort. Op dezelfde manier zal telnet ook niet werken omdat het ook een luisterende toepassing nodig heeft om aan te binden. Dit is de reden waarom nc zo’n handige tool is. Hiermee simuleert u dergelijke omgevingen met een eenvoudig commando.

Maar dit is slechts tijdelijk, aangezien de wijzigingen telkens worden gereset wanneer u het systeem opnieuw opstart.

Regels behouden

De aanpak die in dit artikel wordt gepresenteerd, zal de firewallregels slechts tijdelijk bijwerken totdat het systeem wordt uitgeschakeld of opnieuw wordt opgestart. Dus vergelijkbare stappen moeten worden herhaald om dezelfde poort opnieuw te openen na een herstart.

Voor ufw Firewall

ufw-regels worden niet gereset bij het opnieuw opstarten. Dit komt doordat het is geïntegreerd in het opstartproces, en de kernel slaat de firewallregels op met behulp van ufw door de juiste configuratiebestanden toe te passen.

Voor firewalld

Je moet de --permanent-vlag toepassen.

Raadpleeg Hoe je firewalld instelt voor jouw distributie.

Opmerking:

  • CentOS 7/8: “Regels instellen voor jouw applicaties”
  • Rocky Linux 8/9: “Regels instellen voor jouw applicaties”

Voor iptables

Je moet de configuratieregels opslaan. Deze tutorials raden iptables-persistent aan.

Raadpleeg Hoe je een firewall instelt met iptables voor jouw distributie.

Opmerking:

  • Ubuntu 12.04: “Iptables-regels opslaan”
  • Ubuntu 14.04: “Je Iptables-configuratie opslaan”

Conclusie

In deze tutorial heb je geleerd hoe je een nieuwe poort op Linux kunt openen en instellen voor inkomende verbindingen. Je hebt ook netstat, ss, telnet, nc en nmap gebruikt.

Ga verder met leren over Hoe de Iptables Firewall Werkt, Een Diepe Duik in de Iptables en Netfilter Architectuur, Het Begrijpen van Sockets, en Hoe je Top, Netstat, Du & Andere Tools Gebruikt om Server Resources te Monitoren.

Source:
https://www.digitalocean.com/community/tutorials/opening-a-port-on-linux