Какой максимальный номер порта?

68

Я хотел бы настроить некоторые службы Linux на нестандартные порты - какой максимальный допустимый номер порта?

Yehosef
источник

Ответы:

74

(2 ^ 16) -1 или 0-65,535 (-1 означает, что порт 0 зарезервирован и недоступен). (отредактировано, потому что o_O Tync напомнил мне, что мы не можем использовать порт 0, а Стив Фолли напомнил мне, что вы просили самый высокий порт, а не количество портов)

Но вы, вероятно, ошибаетесь. Есть люди, которые спорят за и против нестандартных портов. Я говорю, что они не имеют никакого отношения, за исключением самого обычного сканера, и самый обычный сканер можно держать в страхе, используя современное программное обеспечение и надлежащие методы брандмауэра, а также надежные пароли. Другими словами, лучшие практики безопасности.

Мэтт Симмонс
источник
3
-1 за неправильный ответ. Попробуйте 65 535. Но хороший аргумент в пользу аргументов за / против нестандартных портов.
Стив Фолли
2
Есть люди, отвечающие за безопасность / соблюдение требований, которые навязывают такие решения. Мы запускаем службы SMTP на заранее определенном высоком порту, чтобы защитить нас от офиса сотрудника службы безопасности, который нас беспокоит.
duffbeer703
1
Стив, отредактировал, и ты прав. Я ответил на неправильный вопрос своим номером :)
Мэтт Симмонс
2
@Matt: удалено -1 :-)
Стив Фолли
1
Я отслеживаю попытки входа в систему с помощью ssh, и несколько попыток блокируют IP-адрес (стандартное решение CPanel VPS). Я просто пытаюсь уменьшить количество попыток, которые приходится смотреть каждый день. Сканирование портов также заблокировано, что должно уменьшить эту толпу. Я также рассматриваю VPN, но мне кажется, что изменить порт будет проще.
Yehosef
41

1-65535 доступны, и порты в диапазоне 1-1023 являются привилегированными : приложение должно быть запущено от имени пользователя root для прослушивания этих портов.

kolypto
источник
8

Хотя 1-65535 являются законными портами TCP, и верно, что 1-1023 предназначены для хорошо известных служб портов. Вы можете столкнуться со случайными проблемами с вашими собственными сервисами, если они запускаются после того, как эфемерный порт установлен. Для тех, кто может не знать, эфемерные порты - это те, которые подключены локально для удаленных конечных точек (или что-то в этом роде). Так что, если вы напишите TCP-сервис, который прослушивает порт 20001. Возможно, вам будет хорошо сегодня ... и завтра. Но однажды ваш сервис может запуститься и попытаться привязаться к 20001, и он потерпит неудачу, потому что он был принят как эфемерный порт. Есть решение. Вы должны иметь своего администратора или себя, чтобы изменить системную политику диапазона портов на вашем сервере. В системах Linux это делается в два этапа:

  • динамично
  • Постоянно

Оба шага должны быть предприняты, бесполезно, вы планируете перезагрузить компьютер, и в этом случае динамический шаг не требуется. Чтобы установить диапазон от 40000 до 65535, сделайте следующее:

динамический

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

или же

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

перманентный

Добавьте следующее в /etc/sysctl.conf:

net.ipv4.ip_local_port_range = 40000 65535

Чтобы прочитать текущую настройку или подтвердить изменение:

/sbin/sysctl net.ipv4.ip_local_port_range

Результат будет примерно таким:

net.ipv4.ip_local_port_range = 9000 65500

Убедитесь, что вы понимаете назначение вашего сервера. Слишком большое уменьшение диапазона может привести к другим проблемам.

Удачного кодирования! (или что вы делаете)

Стивен Мэтьюз
источник