Эта статья о программных портах, мы не будем в ее рамках разбирать физические порты. Хотя их функции и назначение схожи — это совершенно разные вещи. Физические порты — это гнезда для наушников, HDMI, RJ45, USB и другие разъемы для подключения периферийных устройств или выхода в сеть, а программные нужны для работы ПК и приложений в сети.
Вступление
Компьютерная грамотность лежит в основе безопасности современного мира. Сейчас человек использует гаджеты буквально для всего — от просмотра контента и получения информации до операций с денежными средствами и контроля за жизненно важными вещами. Если злоумышленник получит доступ к гаджетам, то он автоматически получит доступ к сбережениям и личной информации пользователя.
Конечно, глубокое изучение компьютерной и сетевой безопасности доступно не всем, но самые азы все же знать необходимо. К примеру, экономические преступления постепенно полностью перебираются в интернет. Произвести хищение средств у организации гораздо проще с использованием интернета и различного программного обеспечения, чем физически разрушать сейф и воровать оттуда золотые слитки.
При этом для обмана обычного пользователя, который не уделяет своей безопасности даже малейшего внимания, не говоря уже о том, чтобы использовать анонимные прокси-сервера и взломостойкие пароли, разные для каждого сервиса, даже и специального программного обеспечения не нужно — достаточно купить базу данных, содержащую номера телефонов, ФИО и другую информацию, и с помощью звонков убеждать граждан переводить их накопления на «безопасные» счета.
Впрочем, если все же раздобыть специальное ПО, то возможностей для атаки может быть гораздо больше. И тут нарушителю могут помочь открытые компьютерные порты, про которые пользователь даже и не думал. Давайте разберемся, что такое порты ПК, для чего их нужно открывать, и нужно ли вообще это делать.
Немного технической информации
Компьютерные порты служат для той же самой цели, что и обычные — они позволяют поддерживать связь с внешним миром и обмениваться различными грузами (информацией). Кроме этого, схожесть еще заключается в том, что в жизни разные порты оборудованы для приема определенного груза. Грубо говоря, для того, чтобы принимать по морю сжиженный газ, нужен специально оборудованный для этого порт. С компьютерными портами все точно так же — разные порты выделяются под определенный трафик.
Программа, которой нужен выход в сеть, просит у операционной системы порт — она может попросить как определенный, так и любой свободный. Шанс получить любой свободный порт гораздо выше, так как всего их доступно 65 536, где число, это адрес порта.
Присваивание каждой программе отдельного порта нужно для того, чтобы система понимала, к какому именно приложению поступает трафик. Потоки информации в сети устроены так, что 2 приложения соединяются с помощью выбранного протокола, но чтобы наладить связь, им требуются:
- IP-адрес хоста отправителя и хоста получателя;
- номера портов получателя и отправителя;
- номер протокола связи.
В зависимости от используемого протокола, порт отправителя задействуется самой ОС для подтверждения получения данных, или процессом-получателем для ответа. Если используется UDP, то порт процесса отправителя можно заменить на 0 (ноль), а для SCTP могут использоваться несколько портов. Получив в свое распоряжение выделенный порт, программа «открывает» его и начинает «слушать».
Если еще проще, то номер порта — это конечный адрес/номер квартиры. Представим, что вам нужно обмениваться с кем-то бумажными письмами, пользуясь услугами Почты. Вы отправляете письмо, а чтобы получить ответ — пишете на конверте свой обратный адрес. Казахстан, г. Астана, бульвар Космонавтов, дом 5, кв. 4.
В этом случае «Казахстан, г. Астана, бульвар Космонавтов, дом 5» — это IP-адрес вашего компьютера, а «кв. 4» — это порт. Таким образом, когда почтальон будет разносить почтовые отправления по вашему дому, он будет точно знать, что ваше письмо нужно отнести в квартиру №4. Поэтому, сколько бы вы программ, использующих интернет, одновременно не открыли — трафик не смешается, и дойдет до нужной программы.
Нужно ли открывать порты?
Все зависит от ваших потребностей, забегая вперед, сразу отметим, что если все работает хорошо, а у вас установлен антивирус и брандмауэр, то можно ничего не трогать. Если же вы при этом используете элитные прокси-сервера для повышения безопасности — еще лучше!
В случае, когда произошла ошибка и программа не получила доступ к нужному ей порту, или просто ради интереса, вы сможете открыть любой порт самостоятельно. Для Windows эта процедура выглядит так:
- на клавиатуре Win+R — откроется командная строка;
- в командной строке напишите firewall.cpl — запустятся настройки сетевого экрана;
- перейдите в «Дополнительные параметры»;
- пройдите в раздел «Правила для входящих подключений»;
- выберите «Создать правило»;
- отметьте пункт «Для порта»;
- отметьте нужный протокол, а затем «Определенные локальные порты»;
- введите номер, который будет присвоен порту;
- отметьте галочками профили, для которых будет применяться правило;
- задайте правилу название, а затем «Готово».
Все, теперь во входящих подключениях вы можете увидеть только что созданное правило для порта.
Таким образом можно открыть любой порт, если вы знаете, зачем это нужно. В целом же, повторимся, открывать порты самостоятельно обычно не нужно. Программы в автоматическом режиме просят нужные им порты у операционной системы и самостоятельно налаживают связь с внешним миром, даже если вы используете анонимный proxy server.
Часть программ использует специальные, выделенные им порты, которые другие стараются не занимать. Например, почтовые клиенты чаще всего используют определенные порты: 25, 465, 587/TCP для исходящей почты и 143, 993 для входящей. Портов несколько, потому что все они обеспечивают разный уровень защиты и разное шифрование, к примеру, 143 порт не обеспечивает шифрования по протоколу IMAP, а 993 — обеспечивает с использованием SSL/TLS. Для немного устаревшего протокола POP3 в этой роли уже выступают 110 и 995 порты TCP.
Впрочем, не будем так глубоко углубляться: вы всегда сможете сами поискать информацию в сети, ведь все необходимые порты у вас открыты, а если нет — вы теперь знаете, как самостоятельно открыть любой порт.
Краткие итоги
Компьютерная и сетевая грамотность — очень важны. И на самом деле все не так сложно, как может показаться с первого раза. На примере этой статьи вы поняли, что компьютерные порты служат для связи программ с внешним миром. Они нужны для того, чтобы весь трафик не смешивался в одну кучу, как например, если бы письма приносили мешками к многоэтажным домам, а дальше жители по почерку разбирали, какое письмо кому пришло. Чтобы так не происходило, трафик программой сразу маркируется и ждет ответа уже по этому адресу.
На самом деле, конечно, большая часть трафика обычного пользователя проходит через NAT — его часто используют провайдеры. Это программное обеспечение, которое в режиме реального времени переписывает адреса. В открытый мир выходят пакеты не с вашим IP-адресом и портом, а с IP-адресом сервера, но об этом уже поговорим в следующей статье.