GNU/Linux >> Znalost Linux >  >> Linux

Jaké je maximální číslo portu?

Řešení 1:

(2^16)-1 nebo 0-65 535 (-1 je proto, že port 0 je rezervovaný a nedostupný). (upraveno, protože o_O Tync mi připomněl, že nemůžeme použít port 0, a Steve Folly mi připomněl, že jste požadovali nejvyšší port, nikoli počet portů)

Ale asi na to jdeš špatně. Existují lidé, kteří argumentují pro a proti nestandardním portům. Říkám, že jsou irelevantní, s výjimkou nejběžnějšího skeneru a ten nejběžnější skener lze udržet na uzdě použitím aktuálního softwaru a správných technik brány firewall spolu se silnými hesly. Jinými slovy, nejlepší bezpečnostní postupy.

Řešení 2:

1-65535 jsou k dispozici a porty v rozsahu 1-1023 jsou privilegované jedničky:aplikace musí být spuštěna jako root, aby mohla naslouchat těmto portům.

Řešení 3:

Ačkoli 1-65535 jsou legitimní porty TCP a je pravda, že 1-1023 jsou pro dobře známé portové služby. Můžete narazit na náhodné problémy s vašimi vlastními službami, pokud jsou spuštěny po vytvoření dočasného portu. Pro ty, kteří možná nevědí, efemérní porty jsou ty, které jsou připojeny lokálně pro vzdálené koncové body (nebo něco v tom smyslu). Pokud tedy napíšete službu TCP, která naslouchá na portu 20001. Možná budete dobří dnes... a zítra. Ale jednoho dne se vaše služba může spustit a pokusit se navázat na 20001 a selže, protože byla brána jako pomíjivý port. Existuje řešení. Musíte mít svého administrátora nebo vy sami, abyste změnili systémovou zásadu pomíjivého rozsahu portů na vašem serveru. Na linuxových systémech se to provádí ve dvou krocích:

  • Dynamicky
  • Trvale

Je třeba provést oba kroky, pokud neplánujete restart (v takovém případě není krok Dynamic nutný). Chcete-li nastavit rozsah až 40 000 až 65 535, postupujte takto:

Dynamické

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

nebo

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

Trvalé

Do souboru /etc/sysctl.conf přidejte následující:

net.ipv4.ip_local_port_range = 40000 65535

Chcete-li přečíst aktuální nastavení nebo potvrdit změnu:

/sbin/sysctl net.ipv4.ip_local_port_range

Výstup bude něco takového:

net.ipv4.ip_local_port_range = 9000 65500

Ujistěte se, že rozumíte účelu svého serveru. Přílišné snížení rozsahu může vést k dalším problémům.

Šťastné programování! (nebo co děláte)


Linux
  1. Maximální hodnota ID procesu?

  2. Linux – Tty hlavní číslo vašeho Unixu?

  3. Jaké jsou požadované porty k otevření na bráně firewall?

  1. Změňte výchozí číslo portu serveru SSH

  2. Jaká je maximální velikost hodnoty proměnné prostředí Linux?

  3. Jaký je maximální počet IP adres, které lze danému počítači přiřadit?

  1. Jaká je role magického čísla při bootování v Linuxu?

  2. Co znamená POSIX?

  3. Jak určit maximální počet, který se má předat, aby se vytvořila volba -j?