Базовое понимание сетевых технологий необходимо любому человеку, который имеет отношение к управлению сервером. Эти знания помогут вам запустить и отладить работу сетевых сервисов и своевременно обнаружить проблемы.
В данной статье представлен базовый обзор общих сетевых терминов и протоколов, а также характеристики различных уровней сетевого взаимодействия.
Основные сетевые термины
В данном разделе вы найдёте определения основных терминов и понятий, имеющих отношение к созданию и управлению сетями.
- Соединение в контексте сетевых технологий – это сигналы с информацией, которые передаются через сеть. Обычно соединение создается до передачи данных (в соответствии с процедурами, изложенными в протоколе) и сбрасывается после передачи.
- Пакет – базовая единица информации, которая передается по сети. По сути, пакеты – это «конверты», которые переносят данные (по частям) из одной точки в другую. В пакете есть заголовок, который содержит информацию о пакете: источник и назначение, временные метки, сетевые переходы и т. д. В основной части пакета находятся передаваемые данные. Эту часть пакета также называют телом или полезной нагрузкой.
- Сетевой интерфейс – это программный интерфейс для сетевого оборудования. Например, если на вашем компьютере есть две сетевые карты, вы можете управлять и настраивать связанные с ними сетевые интерфейсы по отдельности. Сетевой интерфейс может быть связан с физическим устройством, а также может быть виртуальным. Примером последнего является устройство закольцовывания (loopback) – виртуальный интерфейс локальной машины.
- LAN (local area network) – локальная сеть; это сеть или часть сети, не доступная в сети Интернет (как, например, домашняя или офисная сеть).
- WAN (wide area network) – глобальная сеть; широкодоступная сеть. WAN может использоваться для обозначения больших рассредоточенных сетей, но обычно WAN означает Интернет в целом. Если интерфейс подключен к WAN, обычно предполагается, что он доступен через Интернет.
- Протокол – это набор правил и стандартов, который определяет метод взаимодействия устройств. В сети широко используется множество протоколов, и они часто реализуются на разных уровнях. Протоколами низкого уровня являются TCP, UDP, IP и ICMP. Протоколы приложений, построенные на протоколах низкого уровня – HTTP, SSH, TLS/SSL и FTP.
- Порт – это адрес на машине, который может быть привязан к определенному программному обеспечению. Это не физический интерфейс или местоположение. Порты позволяют серверу взаимодействовать с другими серверами с помощью нескольких приложений.
- Брандмауэр – это программа, которая оценивает трафик и решает, что с ним делать дальше. Обычно брандмауэр работает на основе правил, которые определяют, какой тип трафика может принимать тот или иной порт. Как правило, брандмауэры блокируют порты, которые не используются конкретным приложением на сервере.
- NAT (network address translation) – трансляция сетевых адресов; метод перевода запросов, поступающих на сервер маршрутизации, на соответствующие устройства или серверы в локальной сети. Обычно NAT реализуется в сетях как способ маршрутизации запросов к одному IP-адресу на серверы бэкэнда.
- VPN (virtual private network) – виртуальная частная сеть; это метод объединения нескольких отдельных локальных сетей через Интернет, сохраняющий их приватность. Это позволяет использовать удалённую сеть как локальную, при этом не подвергая её опасности.
Конечно, этот список нельзя назвать исчерпывающим – он содержит только основные понятия, которые используются в сетевых технологиях.
Типы портов: общеизвестные, зарезервированные и динамические порты.
Что такое порт и что такое сокет. Курс IT для начинающих.
Сетевые уровни
Сетевое взаимодействие часто представляют в виде горизонтальных соединений между хостами, однако реализация такого взаимодействия распределяется по вертикали по всему компьютеру или сети.
Существует множество встроенных друг в друга технологий и протоколов, которые упрощают сетевое взаимодействие. Каждый последующий, более высокий уровень упрощает использование необработанных данных приложениями и пользователями.
Это также позволяет использовать более низкие уровни для обработки трафика, не тратя время и силы на разработку новых протоколов и приложений.
Когда машина отправляет данные, они попадают на высший сетевой уровень и фильтруются каждым последующим уровнем. На самом низком уровне происходит фактическая передача на другую машину, после чего данные фильтруются уровнями в обратном порядке.
Каждый уровень может добавить оболочку вокруг полученных данных, что поможет следующим уровням понять, что делать с данными при их передаче.
Модель OSI
OSI (Open Systems Interconnect) – это базовая модель взаимодействия открытых систем, которая состоит из 7 уровней:
- 7 – Прикладной: уровень, с которым чаще всего взаимодействуют пользователи и пользовательские приложения. Он отвечает за передачу служебных данных, предоставляет приложениям сведения об ошибках и формирует запросы к следующему уровню.
- 6 – Представительский уровень (или уровень представления) отвечает за организацию данных при пересылке и преобразование данных в формат приложений.
- 5 – Сеансовый уровень управляет соединением. Он создаёт, поддерживает и сбрасывает соединения между нодами.
- 4 – Транспортный уровень отвечает за обработку и соединение между другими уровнями модели, а также за передачу данных от отправителя к получателю.
- 3 – Сетевой уровень обеспечивает маршрутизацию данных между нодами сети, транслирует логические адреса и имена в физические. Также этот уровень определяет путь передачи данных
- 2 – Канальный уровень отвечает за установление и поддержку надёжных соединений между нодами или устройствами сети.
- 1 – Физический уровень – нижний уровень модели; отвечает за обработку физических устройств, которые используются для установления соединения. Этот уровень включает в себя простое программное обеспечение, которое управляет физическими соединениями, а также аппаратное обеспечение (например, Ethernet).
Модель TCP/IP
Модель TCP/IP (набор протоколов Internet) – ещё одна популярная модель, которая состоит из 4 уровней (они совпадают с некоторыми уровнями OSI):
- Прикладной уровень отвечает за обмен данными между приложениями. Здесь работает большинство сетевых приложений. Конечный пользователь будет видеть удалённое приложение как локальное.
- Транспортный уровень поддерживает взаимодействие между процессами. Этот уровень использует порты для обращения к различным сервисам. Он может создавать небезопасные и безопасные соединения в зависимости от типа используемого протокола.
- Сетевой уровень обеспечивает передачу данных между нодами сети. IP-адреса используются как способ удаленного доступа к системам.
- Канальный уровень описывает среду, принципы и характеристики передачи данных. Он устанавливает соединения между соседними нодами для отправки данных.
Сетевые интерфейсы
Интерфейсы являются сетевыми точками связи компьютера. Каждый интерфейс связан с физическим или виртуальным сетевым устройством.
Как правило, на вашем сервере будет один настраиваемый сетевой интерфейс для каждой имеющейся Ethernet-карты или беспроводной интернет-карты.
Кроме того, сервер определит виртуальный сетевой интерфейс (loopback, или localhost). Он используется как интерфейс для соединения приложений и процессов на одном компьютере с другими приложениями и процессами. Во многих инструментах он упоминается как интерфейс «lo».
Администраторы часто используют один интерфейс (обычно eth0) для обслуживания трафика в Интернете, а другой интерфейс (eth1) – для локальной или частной сети.
Протоколы
Сетевые технологии подразумевают совмещение нескольких различных протоколов. Таким образом, одна часть данных может быть передана с помощью нескольких протоколов, встроенных друг в друга.
Рассмотрим самые популярные и распространённые протоколы, начиная с протоколов низкого уровня.
Протокол управления доступом к среде
Media access control, или протокол управления доступом к среде используется для различения устройств. Предполагается, что каждое устройство получает уникальный MAC-адрес, который отличает его от любого другого устройства в Интернете.
Присваивание оборудованию MAC-адресов позволяет ссылаться на устройство по уникальному значению, даже если программное обеспечение устройства изменило его имя.
Media access control является одним из базовых протоколов канального уровня.
Протокол IP
Протокол IP – один из основных протоколов сети Интернет. IP-адреса уникальны в каждой сети и позволяют машинам обращаться друг к другу через сеть. Протокол реализован на сетевом уровне модели IP/TCP.
Сети могут быть связаны между собой, но трафик должен быть маршрутизирован при пересечении границ сети. Этот протокол предусматривает небезопасную сеть и несколько путей к тому же адресату.
Существует несколько различных реализаций протокола IP. Наиболее распространенной реализацией является IPv4, хотя из-за нехватки доступных адресов IPv4 и улучшения возможностей протоколов все более популярным становится IPv6.
Протокол ICMP
Протокол ICMP (internet control message protocol) – это протокол, который используется для отправки сообщений между устройствами. Эти пакеты используются многими сетевыми инструментами диагностики (например, ping и traceroute).
Обычно ICMP-пакеты передаются, когда пакет другого типа сталкивается с какой-либо проблемой. В основном, они используются как механизм обратной связи для сетевых коммуникаций.
Протокол TCP
Протокол TCP (transmission control protocol) – протокол управления передачей данных. Он реализован на транспортном уровне модели IP/TCP и используется для установления безопасных соединений.
TCP – один из протоколов, которые помещают данные в пакеты. Затем он передает пакеты удаленному концу соединения, используя методы нижних уровней. На другом конце соединения он может проверять ошибки, запрашивать определенные фрагменты и повторно собирать информацию в один логический элемент для отправки на прикладной уровень.
Протокол создает соединение до передачи данных при помощи трёхэтапного квитирования. Этот способ позволяет участникам соединения подтвердить запрос и согласовать способ обеспечения безопасности данных.
После отправки данных соединение сбрасывается с помощью механизма четырёхэтапного квитирования.
Протокол TCP используется в электронной почте, WWW, FTP, SSH. Можно с уверенностью сказать, что без TCP интернет не был бы таким, каким мы его знаем сегодня.
Протокол UDP
UDP (user datagram protocol) – это протокол пользовательских датаграмм, популярный сопутствующий протокол для TCP, который также реализуется на транспортном уровне.
Основное отличие между UDP и TCP состоит в том, что UDP предоставляет небезопасную передачу данных. Он не проверяет, были ли данные получены на другом конце соединения. Часто это считается серьёзным недостатком, однако некоторым функциям необходим именно такой механизм.
Поскольку UDP не проверяет получения данных, он намного быстрее, чем TCP. Он не устанавливает соединение с удаленными нодами, а просто передаёт данные на этот хост.
Такие простые транзакции используются в простых взаимодействиях (например, для запроса сетевых ресурсов). UDP также является отличным протоколом для передачи данных с одной машины на множество клиентов в режиме реального времени. Он идеально подходит для VOIP, игр и других приложений, которые должны работать без задержки.
Протокол HTTP
HTTP (hypertext transfer protocol) – это протокол передачи гипертекста. Он реализуется на прикладном уровне, который формирует основу для коммуникации в Интернете.
HTTP определяет ряд функций, которые сообщают удаленной системе о запросе. Например, GET, POST и DELETE взаимодействуют с запрошенными данными по-разному.
Протокол FTP
FTP (file transfer protocol) – это протокол передачи файлов. Он также находится на прикладном уровне и обеспечивает способ передачи полных файлов с одного хоста на другой.
Этот протокол по своей природе небезопасен, поэтому его не рекомендуется использовать в любой открытой сети (если только он не реализован как общедоступный ресурс, предназначенный только для загрузки файлов).
Протокол DNS
DNS (domain name system) – это система доменных имен. Этот протокол прикладного уровня предоставляет удобный механизма именования интернет-ресурсов. Он связывает доменное имя с IP-адресом и позволяет вам обращаться к сайтам по имени в вашем браузере.
Протокол SSH
SSH (secure shell) – это протокол шифрования, реализованный на прикладном уровне, который может использоваться для безопасного обмена данными с удаленным сервером. На этом протоколе основано много дополнительных технологий.
Существует много других важных протоколов, которые не охвачены в этой статье. Однако теперь вы знакомы с базовыми сетевыми протоколами и их применением.
Источник: www.8host.com
Что в сети контролирует порты и обращение программ к сетевым интерфейсам
Во время работы Kaspersky Endpoint Security компоненты Веб-Контроль, Защита от почтовых угроз, Защита от веб-угроз контролируют потоки данных, передаваемые по определенным протоколам и проходящие через определенные открытые TCP- и UDP-порты компьютера пользователя. Например, компонент Защита от почтовых угроз анализирует информацию, передаваемую по SMTP-протоколу, а компонент Защита от веб-угроз анализирует информацию, передаваемую по протоколам HTTP и FTP.
Kaspersky Endpoint Security подразделяет TCP- и UDP-порты компьютера пользователя на несколько групп в соответствии с вероятностью их взлома. Сетевые порты, отведенные для уязвимых служб, рекомендуется контролировать более тщательно, так как эти сетевые порты с большей вероятностью могут являться целью сетевой атаки. Если вы используете нестандартные службы, которым отведены нестандартные сетевые порты, эти сетевые порты также могут являться целью для атакующего компьютера. Вы можете задать список сетевых портов и список программ, запрашивающих сетевой доступ, на которые компоненты Защита от почтовых угроз и Защита от веб-угроз должны обращать особое внимание во время слежения за сетевым трафиком.
Источник: support.kaspersky.com
Сетевой экран (Firewall, брандмауэр)
Достаточно ли для защиты от плохишей и вредителей антивирусного программного обеспечения? Нет. Существует второй рубеж обороны — сетевой экран. Основной его смысл — ограничение сетевой активности Вашего компьютера, контроль за устанавливаемыми сетевыми соединениями.
Немного теории
Ваш компьютер имеет как минимум один сетевой адаптер, через который Вы подключаетесь к сети (интернет, локальная сеть). Его мы будем называть сетевым интерфейсом. На одном компьютере может быть несколько сетевых интерфейсов, причем не только физических, но и виртуальных. Например, при установке VPN соединения активизируется адаптер виртуальной частной сети.
Чтобы компьютер мог общаться с миром, необходимо определить способ этого общения — протокол, в настоящее время в сети интернет принят TCP/IP версии 4, на подходе версия 6. В версии 4 адрес компьютера задаётся двенадцатью цифрами, которые обычно располагаются группами по три (10.8.3.21 = 010.008.003.021). Каждому сетевому интерфейсу соответствует один сетевой адрес (и неограниченное количество псевдонимов/алиасов). На одном физическом устройстве можно организовать более одного сетевого интерфейса.
Использовать сеть пытаются многие программы и службы, причем одновременно. Чтобы уменьшить количество конфликтов и коллизий, на сетевом интерфейсе для каждой из них организуется виртуальное устройство — порт, через который и происходит общение данной программы с другими сетевыми партнёрами.
Порты бывают известные, зарегистрированные и динамические. Известные — первая тысяча (1023) — стандартные, каждый из них по международному соглашению закреплен за определенной службой. Следующие 48 тысяч (до 49151) также регулируются международными соглашениями, но назначаются для частных целей. Все порты с большими номерами могут быть использованы любыми программами и службами. Вообще, все порты с номером большим 1024 можно считать динамическими, так как особо никто не следит за их использованием.
Также существует два подвида IP протоколов — UDP и TCP. По протоколу UDP не производится контроль корректности передачи данных, используется чаще в работе служб.
Что происходит, когда Вы пытаетесь посетить страничку google.ru? Ваш браузер открывает динамический порт и с него отправляет сетевой пакет с запросом на установку соединения. В заголовке пакета находятся сетевой адрес гугла и стандартный порт веб-сервера — 209.85.229.104:80. Веб-сервер гугла держит открытым порт 80 и прослушивает его. Ваш браузер подключается, и дальнейший обмен сетевыми пакетами будет происходить между вашим динамическим и гугловским 80 портами.
Все очень просто и надежно. В этом примере мы увидели, что сервис (веб-сервер) может открывать и прослушивать порты. При получении пакета он начинает действовать. Если это сервис злоумышленника (например, бэкдор/backdoor), некто может получить доступ к Вашему компьютеру.
Если это нормальный, штатный сервис, имеющий уязвимости, то с помощью специально сконфигурированного запроса можно нарушить его работу или даже получить контроль над Вашим компьютером. Также мы увидели, что программа может открыть динамический порт (или много динамических портов) и установить соединение с каким-то сервером/компьютером, что тоже может быть спровоцировано неизвестным плохишом. Налицо необходимость контролировать порты и обращение программ к сетевым интерфейсам. Для этого и служат сетевые экраны.
Сетевые экраны в общем случае имеют таблицу разрешенных портов и маршрутов, например:
программа сеть интерфейс брандмауэр
Сетевой адрес (интерфейс)
На порт 80 (веб-сервер) можно подключиться с любого порта и адреса
На порт 21 (ftp) можно подключиться только из локальной сети
Можно подключиться к порту 22 (ssh) на компьютере с адресом 10.8.3.29
Это упрощённый пример, обычно еще надо указать протокол ( udp/tcp). Кроме этого, хороший сетевой экран имеет проактивный фильтр, контролирующий обращение программ на открытие динамических портов. В нем можно указать, например, что opera может подключаться к чему угодно.
Каждая строчка в таблице является правилом работы экрана, вся работа сетевого экрана описывается такими правилами. Вручную все правила написать довольно сложно, для этого надо обладать большим терпением и солидным багажом знаний, поэтому большинство сетевых экранов имеют функцию обучения. При попытке программы установить соединение сетевой экран спрашивает у пользователя разрешить ли такой-то программе/службе подключиться к такому-то адресу на таком-то порту. Пользователь решает разрешить или запретить, а также может свой ответ сохранить как правило, чтоб таких вопросов больше не возникало.
Перейдем к практике. Начнем со штатного Windows Firewall (Брандмауэр Windows). Многие, вернее все матёрые гуру сетей презрительно скривились, услышав это словосочетание. Их скепсис имеет под собой достаточно оснований. Злоумышленник, строя козни, предполагает, что против него будет выступать как минимум встроенный брандмауэр, предусматривая при этом способы его обхода.
Также функциональность его не шире, а в некоторых случаях хуже бесплатных аналогов. Однако, лучше он, чем совсем ничего. Поэтому приступим. Пуск-Панель управления-Брандмауэр Windows.
Нажимаем кнопку «Изменить параметры»
У меня он уже включен, если у Вас — нет, включите. Если паранойя прогрессирует, можно поставить галку «Блокировать все входящие подключения. Это не помешает Вам посещать веб-странички. Перейдем на вторую вкладку «Исключения».
На картинке Вы видите список программ и портов, которым разрешено работать через брандмауэр. Проблема в том, что мы не увидим, разрешены входящие или исходящие подключения. Только при открытии порта мы можем быть уверены в том, что он открыт для входящих соединений. Что разрешается для программ — сиё тайна великая есть. По меньшей мере — исходящие соединения.
Этот список доступен для редактирования администратору, можно совсем удалить запись из списка исключений, можно временно отключить, убрав галочку из чек-бокса. Для каждого исключения можно отредактировать область действия, то есть удаленные IP адреса.
Но для обычной работы в сети добавлять исключений не надо. Если установлена галочка «Уведомлять, когда брандмауэр блокирует программу», Вы будете получать сообщения о попытках программ выйти в интернет и сможете принять решение — пускать или нет, если в ответе вы укажете «Запомнить правило» — оно автоматически добавится в этот список. Некоторые программы при установке добавляют себя в исключения. Поэтому настоящий параноик обращается к этому списку только за тем, чтобы убирать галочки с подозрительных записей.
Перейдем на вкладку «Дополнительно».
Здесь мы можем отметить галками те интерфейсы, которые надо защитить. По умолчанию брандмауэр накрывает все интерфейсы.
Итак, встроенный брандмауэр Windows обладает достаточной функциональностью, однако неочевидным интерфейсом (вWindows 7 есть расширенный режим брандмауэра, в котором появляется возможность более детально настраивать правила), что заставляет нас использовать другие продукты. Естественно, к рассмотрению принимаются только бесплатные решения. Наиболее распространённым и характерным представителем этой серии продуктов является Comodo Firewall.
Качаем, устанавливаем. Ставить ли его вместе с антивирусом — решайте сами.
После установки убедимся, что брандмауэр Windows выключен.
При первом запуске возникнет вопрос — доверяем ли мы компьютерам в локальной сети или нет. Это означает, что компьютер будет виден в сетевом окружении у других компьютеров в локальной сети (зона, определяемая сетевым адресом и маской) и сможет предоставлять свои папки и другие ресурсы в общий доступ. Если Вы не знаете, что это означает, галочку не ставьте. Вторую галку не ставим в любом случае.
Также мы видим вопросы Comodo Firewall по активности сервисов. Для надежных ставим галочку «Запомнить мой ответ» и жмем кнопку разрешить. Со временем таких вопросов будет все меньше и меньше.
Зайдем в настройки. Для этого щелкнем пиктограмму в трее, либо через меню Пуск-программы.
Первые три пункта вопросов не вызывают. Разберем на примере добавления приложения Far в доверенные для выхода в интернет. Жмем добавить доверенное приложение, через обзор находим Far manager, нажимаем «Применить» — готово.
Четвертый пункт — мастер скрытых портов.
Первый пункт позволяет определить доверенную зону, то есть подсеть, сетевой обмен с которой беспрепятственно проходит сквозь сетевой экран. Назначение второго и третьего пунктов ясно из картинки.
Следующий интересный пункт основного меню — «Мои наборы портов».
Эти наборы портов можно использовать в правилах сетевого экрана, чтобы не создавать несколько одинаковых строк для различных портов.
Такое же назначение имеет пункт «Мои сетевые зоны». Другими словами, это группы адресов, к которым применимы одинаковые правила.
Назначение последнего пункта ясно из его подписи.
Теперь ткнем слева (Задачи файервола) в пункт «Расширенные».
Далее первый пункт «Сетевые политики безопасности».
Вот оно — сердце Комода: правила для приложений и глобальные правила, то есть правила для всех. Щёлкнем в любое правило для приложений. Если Вы назначили Far manager, как в моём примере, то увидите следующую картинку: