Was ist die maximale Portnummer?

66

Ich möchte einige Linux-Dienste auf Nicht-Standard-Ports einstellen - Was ist die höchste gültige Portnummer?

Yehosef
quelle

Antworten:

72

(2 ^ 16) -1 oder 0-65.535 (der -1 ist, weil Port 0 reserviert und nicht verfügbar ist). (bearbeitet, weil o_O Tync mich daran erinnert hat, dass wir Port 0 nicht verwenden können, und Steve Folly mich daran erinnert hat, dass Sie nach dem höchsten Port gefragt haben, nicht nach der Anzahl der Ports.)

Aber du gehst das wahrscheinlich falsch an. Es gibt Leute, die für und gegen Nicht-Standard-Ports argumentieren. Ich sage, sie sind irrelevant, außer für den gelegentlichsten Scanner, und der gelegentlichste Scanner kann durch die Verwendung aktueller Software und geeigneter Firewall-Techniken zusammen mit sicheren Passwörtern in Schach gehalten werden. Mit anderen Worten: Best Practices für die Sicherheit.

Matt Simmons
quelle
3
-1 für die falsche Antwort. Versuchen Sie 65.535. Aber guter Punkt zum Argument für / gegen Nicht-Standard-Ports.
Steve Folly
2
Es gibt Sicherheits- / Compliance-Mitarbeiter, die diese Art von Entscheidungen erzwingen. Wir betreiben SMTP-Dienste an einem festgelegten hohen Port, um uns vor Belästigungen durch das Büro des Sicherheitsbeamten zu schützen.
Duffbeer703
1
Steve, redigiert, und du hast recht. Ich habe die falsche Frage mit meiner Nummer beantwortet :)
Matt Simmons
2
@ Matt: entfernt -1 :-)
Steve Folly
1
Ich überwache Anmeldeversuche mit ssh und bei mehreren Anmeldeversuchen wird die IP blockiert (Standard-CPanel-VPS-Lösung). Ich versuche nur, die Anzahl der Versuche zu reduzieren, die ich jeden Tag ansehen muss. Das Scannen von Ports ist ebenfalls blockiert, sodass diese Menge reduziert werden sollte. Ich denke auch über ein VPN nach, aber es schien, als wäre das Ändern des Ports ein einfacher erster Schritt.
Yehosef
41

1-65535 sind verfügbar, und Ports im Bereich 1-1023 sind die privilegierten : Eine Anwendung muss als Root ausgeführt werden, um diese Ports abzuhören.

kolypto
quelle
8

Obwohl 1-65535 legitime TCP-Ports sind und 1-1023 für bekannte Port-Services gelten. Es kann vorkommen, dass Sie zufällige Probleme mit Ihren eigenen Diensten haben, wenn diese nach dem Einrichten eines kurzlebigen Ports gestartet werden. Für diejenigen, die es möglicherweise nicht wissen, sind kurzlebige Ports diejenigen, die lokal für entfernte Endpunkte (oder etwas in diesem Sinne) verbunden sind. Wenn Sie also einen TCP-Dienst schreiben, der auf Port 20001 lauscht, sind Sie möglicherweise heute ... und morgen gut. Aber eines Tages wird Ihr Dienst möglicherweise gestartet und versucht, eine Verbindung zu 20001 herzustellen, und er schlägt fehl, weil er als kurzlebiger Port verwendet wurde. Es gibt eine Lösung. Sie müssen von Ihrem Administrator oder von sich selbst die Richtlinie für den kurzlebigen Portbereich des Systems auf Ihrem Server ändern lassen. Auf Linux-Systemen erfolgt dies in zwei Schritten:

  • Dynamisch
  • Permanent

Beide Schritte müssen ausgeführt werden, ohne dass Sie einen Neustart planen. In diesem Fall ist der dynamische Schritt nicht erforderlich. Gehen Sie folgendermaßen vor, um Ihren Bereich auf 40000 bis 65535 festzulegen:

Dynamisch

echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range

oder

sysctl -w net.ipv4.ip_local_port_range="40000 65535"

Permanent

Fügen Sie Folgendes zu /etc/sysctl.conf hinzu:

net.ipv4.ip_local_port_range = 40000 65535

So lesen Sie die aktuelle Einstellung ab oder bestätigen die Änderung:

/sbin/sysctl net.ipv4.ip_local_port_range

Die Ausgabe wird ungefähr so ​​aussehen:

net.ipv4.ip_local_port_range = 9000 65500

Stellen Sie sicher, dass Sie den Zweck Ihres Servers verstehen. Eine zu starke Reduzierung der Reichweite kann zu anderen Problemen führen.

Viel Spaß beim Codieren! (oder was auch immer du tust)

Stephen Mathews
quelle