Сетевые порты для клиентов и поток почты в exchange

Почему важно знать, какие порты открыты на компьютере?

Открытый порт на вашем компьютере (если не настроен файервол для запрета входящих соединений) означает, что к вашему компьютеру можно подключиться из вне.

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

Ещё один пример, когда нужно определить, какая именно служба прослушивает порт: вы пытаетесь установить сетевую службу (веб-сервер Apache или СУБД MySQL), а они не запускаются, так как какая-то другая служба уже заняла их порт, который они используют по умолчанию. В этом случае нужно найти эту службу и отключить её или настроить на работу с другим портом.

Но, как и во многих IT задачах (да и вообще во многих профессиональных сферах), получить данные это только самое начало. Главное — это правильно их истолковать и понять.

Поэтому в этой статье мы рассмотрим, как узнать, какие порты открыты, как проверить, какая служба прослушивает определённый порт, а также научимся правильно понимать вывод команды NETSTAT и аналогичных.

Номер порта

Номер порта представляет собой 16-битовое целое число без знака, таким образом, в диапазоне от 0 до 65535. Для TCP номер порта 0 зарезервирован и не может использоваться, в то время как для UDP исходный порт является необязательным, а нулевое значение означает отсутствие порта. Процесс связывает свои входные и выходные каналы , через интернет сокет , который представляет собой тип дескриптора файла , связанный с транспортным протоколом , в IP — адрес и номер порта. Это называется привязкой . Сокет используется процессом для отправки и получения данных по сети. Сетевое программное обеспечение операционной системы имеет задачу передачи исходящих данных со всех портов приложений в сеть и пересылки поступающих сетевых пакетов процессам путем сопоставления IP-адреса пакета и номера порта с сокетом. Для TCP только один процесс может связываться с определенной комбинацией IP-адреса и порта. Общие сбои приложений, иногда называемые конфликтами портов , возникают, когда несколько программ пытаются использовать один и тот же номер порта на одном IP-адресе с одним и тем же протоколом.

Приложения, реализующие общие службы, часто используют специально зарезервированные хорошо известные номера портов для приема запросов на обслуживание от клиентов. Этот процесс известен как прослушивание и включает в себя получение запроса на хорошо известном порте, потенциально устанавливающем индивидуальный диалог сервер-клиент с использованием этого прослушивающего порта. Другие клиенты могут одновременно подключаться к тому же порту прослушивания; это работает, потому что TCP-соединение идентифицируется кортежем, состоящим из локального адреса, локального порта, удаленного адреса и удаленного порта. Общеизвестные порты определены соглашением, контролируемым Управлением по присвоению номеров Интернета (IANA). Во многих операционных системах приложениям требуются специальные привилегии для привязки к этим портам, поскольку они часто считаются критически важными для работы IP-сетей. И наоборот, клиентская сторона соединения обычно использует высокий номер порта, выделенный для краткосрочного использования, поэтому он называется временным портом .

Общие номера портов

IANA отвечает за глобальную координацию корня DNS, IP-адресации и других ресурсов протокола. Это включает регистрацию часто используемых номеров портов для известных интернет-сервисов.

Номера портов делятся на три диапазона: известные порты , зарегистрированные порты и динамические или частные порты .

Хорошо известные порты (также известные как системные порты ) пронумерованы от 0 до 1023. Требования для новых назначений в этом диапазоне строже, чем для других регистраций.

Известные известные номера портов
Число Назначение
20 Передача данных по протоколу передачи файлов (FTP)
21 год Протокол передачи файлов (FTP) Командное управление
22 Secure Shell (SSH) Безопасный вход
23 Служба удаленного входа Telnet , незашифрованные текстовые сообщения
25 Доставка электронной почты по протоколу SMTP
53 Служба системы доменных имен (DNS)
67, 68 Протокол динамической конфигурации хоста (DHCP)
80 Протокол передачи гипертекста (HTTP), используемый во всемирной паутине
110 Почтовый протокол (POP3)
119 Протокол передачи сетевых новостей (NNTP)
123 Сетевой протокол времени (NTP)
143 Протокол доступа к сообщениям в Интернете (IMAP) Управление цифровой почтой
161 Простой протокол управления сетью (SNMP)
194 Интернет-чат (IRC)
443 HTTP Secure (HTTPS) HTTP через TLS / SSL

Зарегистрированы порты с 1024 по 49151. IANA ведет официальный список хорошо известных и зарегистрированных диапазонов.

Динамические или частные порты — это порты с 49152 по 65535. Обычно этот диапазон используется для эфемерных портов .

Преимущества установки порт-системы в Бельгии:

  • Для установки порт-системы используется в основном яремный, а не подключичный доступ, что снижает риск развития самого опасного осложнения – пневмоторакса.
  • Ультразвуковая навигация и рентгенологический контроль повышает точность установки и снижает риск осложнений.
  • Использование лучших порт-систем от европейских производителей – надежных и безопасных.
  • Индивидуальный подбор порт-системы, в зависимости от возраста, типа конституции, методов лечения рака.
  • Надежная установка, обеспечивающая функционирование системы в течение многих месяцев или лет: практически нулевой риск миграции катетера в вены меньшего калибра или перетирания катетера между первым ребром и ключицей.

В каких случаях нужны порт-системы?

Методы лечения онкологических заболеваний совершенствуются, и главным образом это происходит за счет повышения эффективности медикаментозной терапии. Пятилетняя выживаемость больных раком уже превысила 80%. Но лечение часто продолжается месяцами и годами. Препараты приходится вводить внутривенно, что ухудшает переносимость лечения и повышает вероятность осложнений со стороны периферических вен.

Иногда препараты вводятся относительно быстро: инфузия продолжается лишь 15 минут. Другие лекарства приходится вводить 1-3 суток подряд, непрерывно. В 70% случаев лечение длительное и интенсивное. Чем дольше проходит терапия, тем выше риск осложнений, связанных с повреждением сосудистой стенки:

  • флеботромбоз;
  • некроз (отмирание) тканей под влиянием препаратов;
  • воспалительные осложнения из-за контаминации бактериальной микрофлорой.

Проблема в том, что периферические вены слишком тонкие, а скорость кровотока в них низкая. Поэтому использование периферического доступа недопустимо при длительной химиотерапии.

В онкологии врачи используют центральный венозный доступ. Они устанавливают катетер в одну из центральных вен, обычно в подключичную. Тогда постоянные уколы в локтевую вену для введения лекарств или забора крови для анализов больше не нужны.

Но во время катетеризации и эксплуатации катетера у некоторых пациентов развиваются осложнения:

  • катетерная инфекция (локальное воспаление тканей в области введения катетера);
  • сепсис (инфекционное воспаление всего организма);
  • воздушная эмболия (закупорка сосудов пузырьками воздуха).

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

К тому же, центральный катетер не может находиться в вене слишком долго. После прекращения курса химиотерапии его извлекают, но уже через несколько недель устанавливают повторно для продолжения лечения. Химиотерапия проводится циклами, и обычно пациент проходит не менее 5-6 таких циклов. Каждая установка катетера дополнительно повышает риск осложнений.

Установка порт-систем для химиотерапии решает эти проблемы. Пациенты не страдают от осложнений и не испытывают дискомфорта

Системы не ограничивают двигательную активность и не могут быть самостоятельно извлечены, что особенно важно в детской онкологии. Пациенты после установки могут вести привычный образ жизни, заниматься спортом и посещать бассейн

Как запретить systemd-resolved использовать порт 53 в Ubuntu

Стоит отметить, что вы можете освободить порт 53, просто раскомментировав  DNSStubListener и установив для него значение no в /etc/systemd/resolved.conf. Остальные шаги предназначены для включения DNS-сервера – без него ваша система не сможет разрешать какие-либо доменные имена, поэтому вы не сможете посещать веб-сайты в веб-браузере и т. д.

1. Отредактируйте /etc/systemd/resolved.conf с помощью текстового редактора (как root), например, откройте его с помощью текстового редактора консоли Nano:

sudo nano /etc/systemd/resolved.conf

И раскомментируйте (удалите #с начала строки) строку DNS= и строку DNSStubListener=. Затем измените значение DNS= в этом файле на DNS-сервер, который вы хотите использовать (например, 127.0.0.1 для использования локального прокси, 1.1.1.1 для использования Cloudflare DNS и т. д.), А также измените значение DNSStubListener= с yes на no.

Вот как должен выглядеть файл после того, как вы внесли эти изменения (мы используем 1.1.1.1 в качестве DNS-сервера здесь, то есть Cloudflare DNS):

DNS=1.1.1.1
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no
DNSStubListener=no
#ReadEtcHosts=yes

Чтобы сохранить файл с помощью текстового редактора Nano, нажмите Ctrl + x, затем введите y и нажмите Enter.

2. Создание символической ссылки для /run/systemd/resolve/resolv.conf на /etc/resolv.conf в качестве пункта назначения:

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Здесь параметр -s предназначен для создания символической, а не жесткой ссылки и -f предназначен для удаления любых существующих файлов назначения (поэтому он удаляется, /etc/resolv.conf если она существует).

3. Перезагрузите вашу систему.

Порт 53 теперь должен быть свободен в вашей системе Ubuntu, и вы больше не должны получать таких ошибок, как “listen tcp 127.0.0.1:53: bind: address already in use”.

Вы можете проверить, используется ли порт 53 или нет, запустив его sudo lsof -i :53- если порт 53 не используется, эта команда не должна показывать никаких выходных данных.

Сбор статистики с VPN-сервера

Нам ещё было очень интересно, сколько пользователей подключено в данный момент к серверу, какой объём трафика потребляется и раздаётся на сервере. Изначально хотели сделать всё максимально просто и забирать статистику через команды ipsec, но столкнулись с тем, что мы можем терять данные из-за того, что пользователь может отключиться или подключиться в период таймаута между командами для сбора статистики.

Испробовав разные варианты, решили остановиться и разобраться, как настроить FreeRadius сервер, который как раз и будет получать данные от ipsec и отправлять данные со статистикой нам.

FreeRadius сервер можно использовать и для авторизации пользователей, но мы остановились только на сборе статистики.
Для включения radius необходимо добавить следующее в конфигурацию ipsec:

FreeRADIUS сервер для мониторинга подключений к серверу и сбора статистики

Чтобы наши данные уходили на наш endpoint, включаем модуль rest. Для этого в файле /etc/raddb/mods-enabled/rest настраиваем блок accounting, получится что-то вроде:

Здесь мы можем как угодно комбинировать данные и отправлять на наш сервер.

При настройке VPN сервера столкнулись с некоторыми нюансами, вроде таких, что устройства Apple не могут подключить к серверу, если на нём будет самоподписанный сертификат, всё заработало только после того, как сертификат начали генерировать через Let’s Encrypt.

Какие недостатки присутствуют в нашей сборке?

  • Если radius сервер не отвечает, то пользователь не сможет подключиться к VPN.
  • Если закончится срок действия сертификата, пользователь не сможет авторизоваться на VPN-сервере.

Что можно было бы добавить в следующих версиях VPN-сервера?

  • Авторизацию пользователей вынести в radius.
  • Добавить автоматическое обновление сертификата.
  • Провести рефакторинг скриптов, а также файлов конфигураций.
  • Добавить health-check для впн сервера.

Что же у нас получилось в итоге?

История

Концепция номеров портов была создана первыми разработчиками ARPANET в неформальном сотрудничестве авторов программного обеспечения и системных администраторов. Термин номер порта в то время еще не использовался. Этому предшествовало использование термина « номер сокета» на ранних этапах развития сети. Номер сокета для удаленного хоста был 40-битным. Первые 32 бита были похожи на сегодняшний адрес IPv4, но в то время наиболее значимые 8 бит были номером хоста. Наименее значимая часть номера сокета (биты с 33 по 40) представляла собой объект, называемый другим восьмибитным числом , сокращенно AEN. Сегодня сетевой сокет относится к родственной, но отличной концепции, а именно к внутреннему адресу конечной точки, используемому только внутри узла.

26 марта 1972 года Винт Серф и Джон Постел призвали к документированию текущих обычаев и созданию каталога номеров сокетов в RFC 322. Сетевых администраторов попросили отправить записку или позвонить по телефону с описанием функций и номеров сокетов. сетевых сервисных программ на каждом ХОСТЕ ». Этот каталог был впоследствии опубликован как RFC 433 в декабре 1972 года и включал список хостов и их номера портов, а также соответствующие функции, используемые на каждом хосте в сети. Эта первая функция реестра служила в первую очередь для документирования использования и указывала, что использование номера порта конфликтует между некоторыми хостами для « полезных общедоступных служб ». Документ обещал разрешение конфликтов на основе стандарта , который Постел опубликовавшие в мае 1972 года в RFC 349, в котором он впервые предложил официальные поручения номеров портов , сетевые службы и предложил специальную административную функцию, которую он назвал царь , чтобы вести реестр.

256 значений AEN были разделены на следующие диапазоны:

Диапазоны AEN
Диапазон номеров портов Назначение
От 0 до 63 общесетевые стандартные функции
С 64 по 127 специфичные для хоста функции
128–239 зарезервировано для использования в будущем
240–255 любая экспериментальная функция

Служба Telnet получила первое официальное присвоение значения 1. В деталях, первый набор назначений был следующим:

Назначение портов в RFC  
Номер порта Назначение
1 Telnet
3 Передача файлов
5 Удаленный ввод вакансий
7 Эхо
9 Отказаться

В ранней ARPANET AEN также назывался именем сокета и использовался с протоколом начального соединения (ICP), компонентом программы управления сетью (NCP). NCP был предшественником современных Интернет-протоколов. Сегодня название терминологической службы по-прежнему тесно связано с номерами портов, первые из которых представляют собой текстовые строки, используемые в некоторых сетевых функциях для представления числового номера порта.

Сетевые порты, необходимые для клиентов и служб

Сетевые порты, которые необходимы почтовым клиентам для доступа к почтовым ящикам и другим службам в организации Exchange, описаны на следующей диаграмме и в таблице.

Примечания.

  • Предназначением для этих клиентов и служб являются службы клиентского доступа на сервере почтовых ящиков. В Exchange 2016 и Exchange 2019 года службы клиентского доступа (frontend) и backend устанавливаются вместе на одном сервере почтовых ящиков. Дополнительные сведения см. в

  • Хотя на схеме показаны клиенты и службы из Интернета, концепции одинаковы для внутренних клиентов (например, клиенты в лесу учетных записей, Exchange серверов в лесу ресурсов). Кроме того, в таблице нет столбца источника, так как источником может быть любое расположение, внешнее для организации Exchange (например, в Интернете или лесу учетных записей).

  • Пограничные транспортные серверы не участвуют в сетевом трафике, связанном с этими клиентами и службами.

Назначение Порты Примечания
Зашифрованные веб-подключения используются следующими клиентами и службами. • Служба автооткрытия • Exchange ActiveSync • Exchange веб-служб (EWS) • Распространение автономной адресной книги (OAB) • Outlook в любом месте (RPC над HTTP) • Outlook MAPI над HTTP • Outlook в Интернете (ранее известный как Outlook Web App) 443/TCP (HTTPS) Дополнительные сведения об этих клиентах и службах см. в следующих статьях. • Служба автооткрытия в Exchange Server • Exchange ActiveSync • ссылка на EWS для Exchange • Автономные адресные книги в Exchange Server • Outlook в любом месте • MAPI над HTTP в Exchange Server
Незашифрованные веб-подключения используются следующими клиентами и службами. • Публикация календаря в Интернете • Outlook в Интернете (перенаправление на 443/TCP) • Автоматическое открытие (откат, когда не доступен 443/TCP) 80/TCP (HTTP) По возможности рекомендуется использовать зашифрованное веб-подключения на TCP-порте 443 для защиты учетных и других данных. Однако вы можете обнаружить, что некоторые службы должны быть настроены для использования незашифрованных веб-подключений на 80/TCP к службам клиентского доступа на серверах почтовых ящиков. Дополнительные сведения об этих клиентах и службах см. в следующих статьях. • Включить публикацию интернет-календаря • Служба автооткрытия в Exchange Server
Клиенты IMAP4 143/TCP (IMAP), 993/TCP (безопасный IMAP) По умолчанию IMAP4 отключен. Дополнительные сведения см. в pop3 и IMAP4 в Exchange Server. Служба IMAP4 в службах клиентского доступа на прокси-серверах почтовых ящиков подключена к службе backend IMAP4 на сервере почтовых ящиков.
Клиенты POP3 110/TCP (POP3), 995/TCP (безопасный POP3) По умолчанию протокол POP3 отключен. Дополнительные сведения см. в pop3 и IMAP4 в Exchange Server. Служба POP3 в службах клиентского доступа на прокси-серверах почтовых ящиков подключена к службе backend POP3 на сервере почтовых ящиков.
Клиенты SMTP (с проверкой подлинности) 587/TCP (SMTP с проверкой подлинности) Соединиттель по умолчанию получил имя «Client Frontend» в передней транспортной службе прослушивает проверку подлинности клиентских представлений SMTP в <Server name> порту 587. Примечание. Если у вас есть клиенты электронной почты, которые могут отправлять только проверку подлинности SMTP-почты в порту 25, вы можете изменить привязки сетевого адаптера соединиттеля получения клиента, чтобы также прослушивать проверку подлинности сообщений электронной почты SMTP в порту 25.

IPsec

Internet Protocol Security (IPsec) — это набор протоколов для обеспечения защиты данных, передаваемых по IP-сети. В отличие от SSL, который работает на прикладном уровне, IPsec работает на сетевом уровне и может использоваться нативно со многими операционными системами, что позволяет использовать его без сторонних приложений (в отличие от OpenVPN).

IPsec стал очень популярным протоколом для использования в паре с L2TP или IKEv2, о чем мы поговорим ниже.

IPsec шифрует весь IP-пакет, используя:

  • Authentication Header (AH), который ставит цифровую подпись на каждом пакете;
  • Encapsulating Security Protocol (ESP), который обеспечивает конфиденциальность, целостность и аутентификацию пакета при передаче.

Обсуждение IPsec было бы неполным без упоминания утечки презентации Агентства Национальной Безопасности США, в которой обсуждаются протоколы IPsec (L2TP и IKE). Трудно прийти к однозначным выводам на основании расплывчатых ссылок в этой презентации, но если модель угроз для вашей системы включает целевое наблюдение со стороны любопытных зарубежных коллег, это повод рассмотреть другие варианты. И все же протоколы IPsec еще считаются безопасными, если они реализованы должным образом.

Теперь мы рассмотрим, как IPsec используется в паре с L2TP и IKEv2.

L2TP/IPsec

Layer 2 Tunneling Protocol (L2TP) был впервые предложен в 1999 году в качестве обновления протоколов L2F (Cisco) и PPTP (Microsoft). Поскольку L2TP сам по себе не обеспечивает шифрование или аутентификацию, часто с ним используется IPsec. L2TP в паре с IPsec поддерживается многими операционными системами, стандартизирован в RFC 3193.

L2TP/IPsec считается безопасным и не имеет серьезных выявленных проблем (гораздо безопаснее, чем PPTP). L2TP/IPsec может использовать шифрование 3DES или AES, хотя, учитывая, что 3DES в настоящее время считается слабым шифром, он используется редко.

У протокола L2TP иногда возникают проблемы из-за использования по умолчанию UDP-порта 500, который, как известно, блокируется некоторыми брандмауэрами.

Протокол L2TP/IPsec позволяет обеспечить высокую безопасность передаваемых данных, прост в настройке и поддерживается всеми современными операционными системами. Однако L2TP/IPsec инкапсулирует передаваемые данные дважды, что делает его менее эффективным и более медленным, чем другие VPN-протоколы.

IKEv2/IPsec

Internet Key Exchange version 2 (IKEv2) является протоколом IPsec, используемым для выполнения взаимной аутентификации, создания и обслуживания Security Associations (SA), стандартизован в RFC 7296. Так же защищен IPsec, как и L2TP, что может говорить об их одинаковом уровне безопасности. Хотя IKEv2 был разработан Microsoft совместно с Cisco, существуют реализации протокола с открытым исходным кодом (например, OpenIKEv2, Openswan и strongSwan).

Благодаря поддержке Mobility and Multi-homing Protocol (MOBIKE) IKEv2 очень устойчив к смене сетей. Это делает IKEv2 отличным выбором для пользователей смартфонов, которые регулярно переключаются между домашним Wi-Fi и мобильным соединением или перемещаются между точками доступа.

IKEv2/IPsec может использовать ряд различных криптографических алгоритмов, включая AES, Blowfish и Camellia, в том числе с 256-битными ключами.

IKEv2 поддерживает Perfect Forward Secrecy.

Во многих случаях IKEv2 быстрее OpenVPN, так как он менее ресурсоемкий. С точки зрения производительности IKEv2 может быть лучшим вариантом для мобильных пользователей, потому как он хорошо переустанавливает соединения. IKEv2 нативно поддерживается на Windows 7+, Mac OS 10.11+, iOS, а также на некоторых Android-устройствах.

WireGuard

Самый новый и неизведанный протокол VPN — WireGuard. Позиционируется разработчиками как замена IPsec и OpenVPN для большинства случаев их использования, будучи при этом более безопасным, более производительным и простым в использовании.

Все IP-пакеты, приходящие на WireGuard интерфейс, инкапсулируются в UDP и безопасно доставляются другим пирам. WireGuard использует современную криптографию:

  • Curve25519 для обмена ключами,
  • ChaCha20 для шифрования,
  • Poly1305 для аутентификации данных,
  • SipHash для ключей хеш-таблицы,
  • BLAKE2 для хеширования.

Код WireGuard выглядит куда скромнее и проще, чем код OpenVPN, в результате чего его проще исследовать на уязвимости (4 тысячи строк кода против нескольких сотен тысяч). Также многие отмечают, что его гораздо легче развернуть и настроить.

Результаты тестов производительности можно увидеть на официальном сайте (как не сложно догадаться, они хороши). Стоит отметить, что лучшие результаты WireGuard покажет на Linux системах, т.к. там он реализован в виде модуля ядра.

Совсем недавно был представлен WireGuard 1.0.0, который отметил собой поставку компонентов WireGuard в основном составе ядра Linux 5.6. Включенный в состав ядра Linux код прошел дополнительный аудит безопасности, выполненный независимой фирмой, который не выявил каких-либо проблем. Для многих это отличные новости, но сможет ли WireGuard стать достойной заменой IPsec и OpenVPN покажет время и независимые исследования безопасности.

Мы постарались охарактеризовать самые популярные VPN протоколы, надеемся, обзор был для вас полезен. В качестве резюме приводим сравнительную таблицу, где еще раз обозначены важные, на наш взгляд, показатели.

PPTP SSTP L2TP/IPsec IKEv2/IPsec OpenVPN WireGuard
Компания-разработчик Microsoft Microsoft L2TP — совместная разработка Cisco и Microsoft, IPsec — The Internet Engineering Task Force IKEv2 — совместная разработка Cisco и Microsoft, IPsec — The Internet Engineering Task Force OpenVPN Technologies Jason A. Donenfeld
Лицензия Proprietary Proprietary Proprietary Proprietary, но существуют реализации протокола с открытым исходным кодом GNU GPL GNU GPL
Развертывание Windows, macOS, iOS, некоторое время GNU/Linux. Работает “из коробки”, не требуя установки дополнительного ПО Windows. Работает “из коробки”, не требуя установки дополнительного ПО Windows,Mac OS X, Linux, iOS, Android. Многие ОС (включая Windows 2000/XP +, Mac OS 10.3+) имеют встроенную поддержку, нет необходимости ставить дополнительное ПО Windows 7+, macOS 10.11+ и большинство мобильных ОС имеют встроенную поддержку Windows, Mac OS, GNU/Linux, Apple iOS, Android и маршрутизаторы. Необходима установка специализированного ПО, поддерживающего работу с данным протоколом Windows, Mac OS, GNU/Linux, Apple iOS, Android. Установить сам WireGuard, а затем настроить по руководству
Шифрование Использует Microsoft Point-to-Point Encryption (MPPE), который реализует RSA RC4 с максимум 128-битными сеансовыми ключами SSL (шифруются все части, кроме TCP- и SSL-заголовков) 3DES или AES Реализует большое количество криптографических алгоритмов, включая AES, Blowfish, Camellia Использует библиотеку OpenSSL (реализует большинство популярных криптографических стандартов) Обмен ключами по 1-RTT, Curve25519 для ECDH, RFC7539 для ChaCha20 и Poly1305 для аутентификационного шифрования, и BLAKE2s для хеширования
Порты TCP-порт 1723 TCP-порт 443 UDP-порт 500 для первонач. обмена ключами и UDP-порт 1701 для начальной конфигурации L2TP, UDP-порт 5500 для обхода NAT UDP-порт 500 для первоначального обмена ключами, а UDP-порт 4500 — для обхода NAT Любой UDP- или TCP-порт Любой UDP-порт
Недостатки безопасности Обладает серьезными уязвимостями. MSCHAP-v2 уязвим для атаки по словарю, а алгоритм RC4 подвергается атаке Bit-flipping Серьезных недостатков безопасности не было выявлено 3DES уязвим для Meet-in-the-middle и Sweet32, но AES не имеет известных уязвимостей. Однако есть мнение, что стандарт IPsec скомпрометирован АНБ США Не удалось найти информации об имеющихся недостатках безопасности, кроме инцидента с утечкой докладов АНБ касательно IPsec Серьезных недостатков безопасности не было выявлено Серьезных недостатков безопасности не было выявлено

Структура

TCP-порты закодированы в заголовке пакета транспортного протокола, и они легко могут быть интерпретированы не только передающим и принимающим компьютерами, но и другими компонентами сетевой инфраструктуры. В частности межсетевые экраны, как правило, настроены различать пакеты в зависимости от их источника или номеров порта назначения. Перенаправление является классическим примером этому.

Практика попыток подключения к диапазону портов последовательно на одном компьютере известна как их сканирование. Это, как правило, связано либо с попытками злонамеренного сбоя, либо же сетевые администраторы ищут возможные уязвимости, чтобы помочь предотвратить такие нападения.

Действия, направленные на то, как открыть TCP-порт, часто контролируются и регистрируются с помощью компьютеров. Такая техника использует ряд запасных соединений, для того чтобы обеспечить бесперебойное соединение с сервером.

Выводы

  • Как реально работает сеть, и что TCP можно повторить поверх UDP и сделать лучше. 
  • Что TCP не так плох, если его правильно настроить, но он реально сдался и больше уже почти не развивается.
  • Не верьте хейтерам UDP, которые говорят, что в user space работать не будет. Все эти проблемы можно решить. Пробуйте — это ближайшее будущее.
  • Если не верите, то сеть можно и нужно трогать руками. Я показывал, как почти все можно проверить.

Настраивайте протокол (TCP, UDP — неважно) под ситуацию (профиль сети + профиль нагрузки).
Используйте рецепты TCP, которые я вам рассказал: TFO, send/recv buffer, TLS1.3, CC… 
Делайте свои UDP-протоколы, если есть ресурсы. 
Если сделали свой UDP, проверьте UDP check list, что вы сделали все, что надо. Забудете какую-нибудь ерунду типа pacing, не будет работать.

Полезные ссылки

  • Миллион видеозвонков в сутки или «Позвони маме!».
  • Пишем свой протокол поверх UDP.
  • Подкаст про сетевую оптимизацию.
  • Увеличение скорости передачи данных в плохих сетях.
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector