Jaki jest maksymalny numer portu?

66

Chciałbym ustawić niektóre usługi Linux na niestandardowe porty - jaki jest najwyższy prawidłowy numer portu?

Yehosef
źródło

Odpowiedzi:

72

(2 ^ 16) -1 lub 0-65 535 (-1 oznacza, że ​​port 0 jest zarezerwowany i niedostępny). (edytowane, ponieważ o_O Tync przypomniał mi, że nie możemy użyć portu 0, a Steve Folly przypomniał mi, że poprosiłeś o najwyższy port, a nie liczbę portów)

Ale prawdopodobnie robisz to w niewłaściwy sposób. Są ludzie, którzy opowiadają się za i przeciw niestandardowym portom. Mówię, że są one nieistotne, z wyjątkiem zwykłego skanera, a najbardziej zwyczajny skaner można trzymać z daleka za pomocą aktualnego oprogramowania i odpowiednich technik zapory ogniowej, a także silnych haseł. Innymi słowy, najlepsze praktyki bezpieczeństwa.

Matt Simmons
źródło
3
-1 za złą odpowiedź. Spróbuj 65 535. Ale dobra uwaga na temat argumentu za / przeciw niestandardowym portom.
Steve Folly
2
Są ludzie bezpieczeństwa / zgodności, którzy wymuszają tego rodzaju decyzje. Obsługujemy usługi SMTP na określonym wysokim porcie, aby chronić nas przed nękającym nas biurem oficera bezpieczeństwa.
duffbeer703
1
Steve, zredagowany i masz rację. Odpowiedziałem błędnym pytaniem moim numerem :)
Matt Simmons,
2
@Matt: usunięto -1 :-)
Steve Folly
1
Monitoruję próby logowania za pomocą ssh i wiele prób ma zablokowany adres IP (standardowe rozwiązanie CPanel VPS). Próbuję tylko zmniejszyć liczbę prób, na które muszę patrzeć każdego dnia. Skanowanie portów jest również zablokowane, co powinno zmniejszyć tłum. Rozważam również VPN, ale wydawało się, że zmiana portu byłaby łatwiejszym pierwszym krokiem.
Yehosef
41

Dostępne są 1-65535, a porty w zakresie 1-1023 są uprzywilejowane : aplikacja musi być uruchomiona jako root, aby nasłuchiwać tych portów.

kolypto
źródło
8

Chociaż 1-65535 to legalne porty TCP i prawdą jest, że 1-1023 są dla dobrze znanych usług portowych. Możesz napotkać przypadkowe problemy z własnymi usługami, jeśli zostaną uruchomione po ustanowieniu efemerycznego portu. Dla tych, którzy mogą nie wiedzieć, efemeryczne porty to te, które są podłączone lokalnie dla zdalnych punktów końcowych (lub coś w tym celu). Więc jeśli napiszesz usługę TCP, która nasłuchuje na porcie 20001. Możesz być dobry dzisiaj ... i jutro. Ale pewnego dnia twoja usługa może się uruchomić i spróbować połączyć się z 20001 i zakończy się niepowodzeniem, ponieważ została uznana za efemeryczny port. Jest rozwiązanie. Musisz poprosić administratora lub siebie o zmianę efemerycznych zasad zakresu portów na swoim serwerze. W systemach Linux odbywa się to w dwóch krokach:

  • Dynamicznie
  • Na stałe

Oba kroki muszą zostać wykonane, bezużyteczne, jeśli planujesz ponowne uruchomienie, w takim przypadku krok dynamiczny nie jest potrzebny. Aby ustawić zakres do 40000 do 65535, wykonaj następujące czynności:

Dynamiczny

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

lub

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

Stały

Dodaj następujące pliki do /etc/sysctl.conf:

net.ipv4.ip_local_port_range = 40000 65535

Aby odczytać bieżące ustawienie lub potwierdzić zmianę:

/sbin/sysctl net.ipv4.ip_local_port_range

Wynik będzie mniej więcej taki:

net.ipv4.ip_local_port_range = 9000 65500

Upewnij się, że rozumiesz cel swojego serwera. Zbyt duże zmniejszenie zasięgu może prowadzić do innych problemów.

Happy Coding! (lub cokolwiek robisz)

Stephen Mathews
źródło