Сетевик Джонни // Network Admin
5.95K subscribers
513 photos
61 videos
386 links
Я Сетевик Джонни, моя цель в телеграме рассказать все о сетях в доступной форме!

Сотрудничество: @stein_media
Download Telegram
🌐 Как работает прокси-сервер: максимально простое объяснение

Прокси-сервер, или просто прокси – это компьютер, выполняющий роль посредника между пользователем и целевым сервером. Сначала клиент подключается к прокси-серверу и запрашивает необходимый ресурс, расположенный на другом сервере. Например, почту или html-страницу. Затем прокси либо подключается к указанному серверу и получает у него ресурс, либо возвращает ресурс из собственного кэша.

Распространенные варианты использования прокси:

▫️повышение безопасности сети с помощью шифрования запросов;
▫️предотвращение перехвата конфиденциальной информации;
▫️блокировка вредоносных сайтов и рекламы;
▫️кэширование сайтов для экономии трафика;
▫️контроль использования сетевого канала;
▫️блокировка доменов;
▫️мониторинг и регистрация веб-запросов;
▫️тестирование веб-ресурсов при заходе с различных IP.

Какие бывают типы прокси-серверов:

▫️Прозрачный прокси
▫️Анонимный прокси
▫️Искажающий (distorting) прокси
▫️Резидентный (residential) прокси
▫️Публичный (public) прокси
▫️Частный (private) прокси
▫️Общий (shared) прокси
▫️Ротационный (rotating) прокси
▫️SSL-прокси
▫️Обратный (reverse) прокси

Где искать прокси

Большинство сервисов прокси предлагают комбинации вышеописанных типов. Можно обнаружить, что резидентные, высоко анонимные и SSL-прокси объединены в один сервис. Список сервисов, на которых можно выбрать подходящий вариант:

▫️https://smartproxy.com/
▫️https://www.megaproxy.com/
▫️https://whoer.net/webproxy
▫️https://www.proxysite.com/
▫️https://hide.me/en/proxy
▫️https://www.kproxy.com/
▫️https://www.vpnbook.com/webproxy

В чем разница между прокси и VPN:

Главное отличие прокси от VPN заключается в том, что VPN защищает весь сетевой трафик, а прокси – только интернет-трафик. Прокси передает запросы, действуя как посредник, а VPN туннелирует всю сетевую активность до уровня операционной системы.

#Proxy #VPN | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
🖥 Концепция IP-адресов на примере Python-модуля ipaddress

Рассказываем, как работать с IP-адресами классического протокола IPv4 в теории и на практике – в коде Python. Показываем, как проверить связь между группой IP-адресов и их соответствие подсетям и диапазонам частных IP-адресов.

В самом грубом представлении IP-адрес – это просто число. В случае протокола IPv4 IP-адрес– это 32-разрядное целое число, используемое для представления хоста в сети. То есть существует 232 возможных IPv4 адреса – от 0 до 4 294 967 295. IPv4-адреса записывают в виде четырех октетов – целых чисел, разделенных точками

Сеть – это набор IP-адресов. Сети описываются и отображаются как непрерывные диапазоны адресов. Например, сеть может соответствовать диапазону 192.4.2.0192.4.2.255, т. е. включать 256 адресов. Если нужно это отобразить в краткой форме, используется нотация CIDR.

В CIDR сеть определяется с помощью сетевого адреса и префикса

<network_address>/<prefix>

Модуль ipaddress использует преимущества шаблона проектирования «Компоновщик». Класс IPv4Address представляет собой компоновщик, который оборачивает обычное целое число.

Каждый экземпляр IPv4Address имеет атрибут _ip, число типа int. Многие свойства и методы класса определяются значением этого атрибута

Модуль ipaddress предоставляет набор свойств для проверки того, относится ли адрес к специальным

Администрация адресного пространства Интернет (Internet Assigned Numbers Authority, IANA) совместно с Инженерном советом Интернета (Internet Engineering Task Force, IETF) осуществляют надзор за распределением диапазонов адресов. Реестр подобных адресов – важная таблица, которая описывает, для каких целей зарезервированы диапазоны IPv4-адресов.

К примеру, это частные IP-адреса, используемые для внутренней связи между устройствами в сети, не требующей подключения к интернету

💬 Подробнее тут

#IP #Python | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🚀Как правильно общаться с удаленным сервером через SSH

О правилах безопасного SSH-подключения и способах его улучшения с примерами для систем на основе RHEL/CentOS и Ubuntu.

Вы наверняка согласитесь с тем, что аутентификация с открытым ключом лучше, чем использование паролей. Не приходится вводить пароль, никто его не взломает и не подсмотрит через плечо.
Следующий уровень секьюрности после ключей – SSH-сертификаты, которые поддерживаются с OpenSSH 5.4, выпущенного ещё в 2010 году.

С помощью SSH-сертификатов вы создаете центр сертификации (CA), а затем используете его для выдачи и криптографической подписи, которая аутентифицирует пользователей. Вы можете создать пару ключей, например, с помощью команды ssh-keygen

Рекомендуется использовать два отдельных CA – один для подписания сертификатов хостов, другой для пользователей. Одни и те же процессы не будут добавлять и хосты, и юзеров. А если закрытый ключ скомпрометируют, нужно будет лишь пересоздать сертификаты для хостов или пользователей, а не оба сразу.

💬 Подробнее тут

#SHH | 🌐Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
☄️Атака на беспроводные сети. Чуть меньше теории и чуть больше практики

UPD.
Если вы не хотите заморачиваться с исходниками, то существует возможность загрузить aircrack-ng из репозиториев вашего дистрибутива. Например в репозиториях Ubuntu 8.10 на данный момент доступна версия rc2, которую можно скачать и установить используя команду:

sudo apt-get install aircrack-ng

Для начала нужно перевести нашу wi-fi карточку в режим «monitor mode»
В моём случае (c драйвером Madwifi-ng) это делается так:

sudo wlanconfig ath0 destroy
sudo wlanconfig ath0 create wlandev wifi0 wlanmode monitor

Запускаем airodump указывая обязательный параметр — имя интерфеса (в данном случае ath0) :

sudo airodump-ng ath0

Следующим шагом смотрим на алгоритм шифрования (ENC):

▫️OPN — сеть без шифрования… приятно конечно, но не интересно :)
▫️WEP — сеть с WEP шифрованием… на самом деле, именно такие сети представляют для нас наибольший интерес
▫️WPA/WPA2 — не поверите! сети с WPA/WPA2 шифрованием

Запускаем airodump нацеленный на выбранную сеть, располагающуюся на 9-ом канале, с указанием адреса точки доступа, и имени файла в который будут записаны пойманные пакеты:

sudo airodump-ng -c 9 --bssid 00:14:6C:7E:40:80 -w output ath0

Когда нужное количество пакетов собрано, что показывает airodump в графе "# Data", запускаем aircrack-ng и наслаждаемся процессом нахождения пароля:

aircrack-ng -z output*.cap

💬Подробнее тут

#attack | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👎1
📚Автоматизация программируемых сетей

Авторы:

Осуолт М., Эделман Дж., Лоу С.


Количество сетевого оборудования растет с каждым годом, и все сложнее становится его конфигурировать. В решении этой нелегкой проблемы поможет автоматизация. Чтобы заставить ПК делать работу по настройке нового сервиса, пригодятся Python, JSON, Linux и XML.

Эта книга расскажет и покажет, как правильно использовать новейшие техники и инструментальные средства при менеджменте протоколов, моделей доставки топологий, сервисов и сетевых соединений.

#books | 🌐Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
🌐Компьютерные сети от А до Я: классификация, стандарты и уровни

Компьютерные сети классифицируются по:

▫️Типу коммутации.
▫️Технологии передачи.
▫️Протяженности.

По типу коммутации сети бывают:

▫️с коммутацией каналов;
▫️пакетов.

Разделение по технологии передачи:

▫️широковещательные сети (данные, переданные в сеть, ▫️доступны всем устройствам этой сети);
▫️точка-точка (передача от одного устройства к другому, иногда с наличием промежуточных узлов).

По протяженности компьютерные сети делятся на:

▫️персональные;
▫️локальные;
▫️муниципальные;
▫️глобальные;
▫️объединение сетей (пример – сеть Интернет).

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

Используется 2 типа стандартов:
▫️De jure (юридические, формальные стандарты).
▫️De Facto (стандарты фактические)

Самыми важными стандартами являются:

▫️ISO (Международная организация по стандартизации) приняла стандарт на эталонную модель взаимодействия открытых систем.
▫️Консорциум W3C (World Wide Web Consortium) – веб-стандарты.
▫️IAB (Совет по архитектуре Интернета) – протоколы Интернет.
▫️IEEE (Институт инженеров по электронике и электротехнике) – технологии передачи информации.

IAB состоит из нескольких частей:

▫️IRTF (Группа исследователей Интернет) – долгосрочные исследования на перспективу;
▫️IETF (Группа проектирования Интернет) – занимается выпуском стандартов на сетевые протоколы;
▫️RFC (запрос комментариев) – документы, описывающие работу различных протоколов (формально это не стандарты).

#сети | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
🔆 Основы компьютерных сетей

Виды топологии:

▫️Топология с общей шиной (англ. Bus Topology)
Одна из первых физических топологий. Суть состояла в том, что к одному длинному кабелю подсоединяли все устройства и организовывали локальную сеть. На концах кабеля требовались терминаторы.

▫️Кольцевая топология (англ. Ring Topology)
В данной топологии каждое устройство подключается к 2-ум соседним. Создавая, таким образом, кольцо. Здесь логика такова, что с одного конца компьютер только принимает, а с другого только отправляет. То есть, получается передача по кольцу и следующий компьютер играет роль ретранслятора сигнала

▫️Топология звезда (англ. Star Topology)
Все устройства подключаются к центральному узлу, который уже является ретранслятором. В наше время данная модель используется в локальных сетях, когда к одному коммутатору подключаются несколько устройств, и он является посредником в передаче.

▫️Полносвязная топология (англ. Full-Mesh Topology)
Все устройства связаны напрямую друг с другом. То есть с каждого на каждый. Данная модель является, пожалуй, самой отказоустойчивой, так как не зависит от других. Но строить сети на такой модели сложно и дорого.

▫️Неполносвязная топология (англ. Partial-Mesh Topology)
Как правило, вариантов ее несколько. Она похожа по строению на полносвязную топологию. Однако соединение построено не с каждого на каждый, а через дополнительные узлы. То есть узел A, связан напрямую только с узлом B, а узел B связан и с узлом A, и с узлом C.

▫️Смешанная топология (англ. Hybrid Topology) - представлена на фото
Самая популярная топология, которая объединила все топологии выше в себя. Представляет собой древовидную структуру, которая объединяет все топологии. Одна из самых отказоустойчивых топологий.

#Topology | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101🔥1
🧭Протоколы верхнего уровня

Модель OSI в нынешнее время служит только в качестве обучения ролям каждого уровня. Работают же сети по стеку протоколов TCP/IP. Хоть TCP/IP состоит из 4 уровней, он вполне реализует все функциональные возможности, реализуемые в модели OSI. На картинке приведены сравнения уровней и их ролей.

Протокол HTTP (англ. HyperText Transport Protocol)
Протокол передачи данных, используемый обычно для получения информации с веб-сайтов. С каждым годом этот протокол становится все популярнее, и возможностей для его применения становится все больше. Использует он «клиент-серверную» модель.

DNS (Domain Name System)
Система доменных имен. Если говорить в целом, то она хранит информацию о доменах. Например, какому IP адресу соответствует определенное имя. Приведу пример: когда вы открываете свой любимый сайт, то обращаетесь к нему по имени. Но в поля Source Address и Destination Address, которые работают на сетевом уровне, нельзя вставить имя.

DHCP (Dynamic Host Configuration Protocol)
Протокол динамической настройки узла. Он позволяет узлам динамически получать IP адреса и другие параметры для корректной работы в сети (основной шлюз, маску подсети, адреса DNS-серверов).

POP3 (англ. Post Office Protocol Version 3)
Протокол почтового отделения версии 3. Протокол, который используют клиенты для получения почтовых писем с сервера. Версии 1-ая и 2-ая устарели и в нынешнее время не используются. Работает он по принципу «загрузи и удали». Что это значит? Это значит, что клиент заходит на сервер и смотрит, есть ли для него письмо.

SMTP (англ. Simple Mail Transfer Protocol)
Простой протокол передачи почты. Используется он, как вы поняли, для передачи почты на почтовый сервер. Вот почему мы изучаем POP3 и SMTP параллельно. Использует он 25 порт.

Telnet (от англ. terminal network)
Применяется он для отображения текстового интерфейса, а также для управления ОС. Очень полезный протокол, и каждый сетевой инженер обязан уметь работать с ним.

#OSI #TCP/IP | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍1
🛰 Четыре уровня кэширования в сети: клиентский, сетевой, серверный и уровень приложения

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

▫️клиентский;
▫️сетевой;
▫️серверный;
▫️уровень приложения.

Заголовки HTTP отвечают за определение возможности кэширования ответа и за определение срока хранения данных. Следующий пример заголовка Cache-control указывает, что ответ может находиться в кэше в течение 7 дней. Браузер отправит повторный запрос на хранение данных, если срок хранения истечёт или пользователь целенаправленно обновит страницу.

Сеть Доставки Контента (CDN) — географически распределённая сетевая инфраструктура, позволяющая оптимизировать доставку и дистрибуцию контента конечным пользователям в сети Интернет. Иначе говоря, CDN — это распределённое хранение и использование кэша.

Такие инструменты, как Varnish, Squid и nginx кэшируют изображения, скрипты и прочее содержимое, которое требуется пользователям.

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

💬 Подробнее тут

#CDN | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤔2
Forwarded from STEIN: ИБ, OSINT
This media is not supported in your browser
VIEW IN TELEGRAM
🤖 Сетевая разведка: методика и набор инструментов

— Поиск уязвимостей на хосте, начинается со сбора базовой информации.

Эта информация включает в себя:
1. Обнаружение хостов (если мы исследуем подсеть); 
2. Cканирование портов для поиска открытых;
3. Oпределение запущенных служб на этих портах;
4. Oпределение версий служб и поиск уязвимостей для данных версий;
5. Проверка на использование слабых паролей(брут);
6. Запуск доп. сканирований различными инструментами (в зависимости от обнаруженных сетевых служб.)

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

OWASP Amass — инструмент, используемый для составления сетевых карт поверхностей атак, а также для обнаружения внешних активов.

passivedns — инструмент для пассивного сбора DNS для облегчения обработки инцидентов, сетевого мониторинга.

CloudFail — инструмент обнаружения реального IP-адреса серверов, скрытых за Cloudflare, путем поиска старых записей базы данных и обнаружения неправильно настроенного DNS.

#Network #Recon
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83
💖WebSocket: особенности протокола и пример использования на React - 1 часть

Интернет — основа сети, техническая инфраструктура, благодаря которой и существует World Wide Web, или Всемирная паутина. По своей сути интернет — гигантская сеть компьютеров, которые могут взаимодействовать друг с другом.

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

Наиболее известные:

▫️HTTP (Hyper Text Transfer Protocol) — протокол передачи гипертекста, используется при пересылке веб-страниц между компьютерами;
▫️FTP (File Transfer Protocol) — протокол передачи файлов со специального файлового сервера на компьютер пользователя;
▫️POP3 (Post Office Protocol) — протокол почтового соединения получения клиентской почты. Серверы POP обрабатывают входящую почту, а протокол POP необходим для обработки запросов на получение почты от пользователей;
▫️SMTP (Simple Mail Transfer Protocol) — протокол, который задает набор правил для передачи электронной почты в сети. Сервер SMTP возвращает ответ при отправке;
▫️Telnet — протокол удаленного доступа, дает возможность пользователю работать на любой ЭВМ, находящейся с ним в одной сети.

WebSocket обеспечивает обмен данными между браузером и сервером через постоянное соединение. Это двунаправленный, полнодуплексный протокол, который используется в сценарии взаимодействия «Клиент-сервер». Он начинается с ws:// или wss:// в случае безопасного соединения.

#WebSocket | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
📣WebSocket: особенности протокола и пример использования на React - 2 часть

Принцип веб-сокета — соединение между клиентом и сервером остается активным до тех пор, пока оно не будет разорвано любой из сторон.

Соединение WebSocket устанавливается посредством HTTP-запроса:

▫️клиент, который поддерживает веб-сокеты и хочет установить постоянное соединение, отправляет HTTP-запрос, содержащий набор необходимых заголовков (headers);
▫️в ответ он должен получить ответ сервера: HTTP 101 Switching Protocols. Ответ 101 указывает, что сервер переключается на протокол, запрошенный клиентом в заголовке запроса на обновление;
▫️клиент получает ответ сервера, и WebSocket-соединение открывается для начала обмена данными.

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

Где используется WebSocket:

▫️трейдерские приложения;
▫️игровые приложения;
чаты;
▫️социальные сети;
▫️управление IoT.

WebSocket подходит для этих проектов лучше всего, так как в них клиент может не выполнять на своей стороне никаких вычислений, а лишь получать\передавать данные на сервер.

#WebSocket | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
🖥️ IPv6: что это и зачем

Многие слышали про IPv4 и IPv6, но не понимают, в чём их разница. Исправляем это упущение в нашем разборе.

Многие слышали про последнюю версию протокола IP — IPv6, которая должна заменить IPv4. Однако зачем нужна эта замена? Разбираемся в вопросе, попутно рассматривая разницу между обеими версиями и преимущества новой.

IP-уровень стека протоколов TCP/IP — наиболее важная часть всей архитектуры Интернета. Тем не менее вскоре после запуска IPv4 стали очевидны его ограничения в плане масштабируемости и возможностей. IPv4 для работы необходимо несколько надстроек вроде ICMP и ARP. К середине 1990-х разработали замену IPv4 — IPv6. Требований к Интернету становилось всё больше, а IPv6 отвечал им лучше, чем предыдущая версия.

Cамые очевидные отличия IPv4 и IPv6?

▫️128 бит в IPv6-адресе представляют собой восемь 16-битных шестнадцатеричных блоков, разделённых двоеточиями.
▫️В IPv4 для мультивещания зарезервирована подсеть 224.0.0.0/4. ▫️IPv6 для этой цели использует встроенное адресное пространство FF00::/8;
▫️IPv4 использует широковещательные адреса для передачи широковещательных пакетов, IPv6 — многоадресные группы;
▫️IPv4 использует 0.0.0.0 в качестве неопределённого адреса, а 127.0.0.1 для создания адреса обратной связи (loopback). В IPv6 используются :: и ::1 соответственно;
▫️IPv4 использует глобально уникальные публичные адреса для трафика и «частные» адреса, IPv6 — глобально уникальные юникаст-адреса и локальные адреса (FD00::/8).

Преимущества IPv6 перед IPv4:

▫️Более эффективная маршрутизация без фрагментации пакетов;
▫️Встроенная технология Quality of Service (QoS), которая определяет чувствительные к задержке пакеты;
▫️Устранение NAT для расширения адресного пространства с 32 до 128 бит;
▫️Встроенная поддержка IPsec (использование IPsec опционально);
▫️Автоконфигурация адресов для упрощения администрирования сети;
▫️Улучшенная структура заголовка с меньшими затратами на обработку.

💬 Подробнее тут

#IPv6 | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍4🔥2
Что такое REST?

REST (от англ. Representational State Transfer — «передача репрезентативного состояния» или «передачасамоописываемогосостояния») — архитектурный стиль взаимодействия компонентов распределённого приложения в сети.

В широком смысле компоненты в REST взаимодействуют наподобие взаимодействия клиентов и серверов во Всемирной паутине. REST является альтернативой RPC

REST представляет собой стиль архитектуры ПО для распределенных систем вроде World Wide Web. Используется, как правило, для построения веб-служб. Именно Рой Филдинг, один из авторов HTTP, ввел термин REST в 2000 году.

Это очень простой интерфейс управления данными, в котором не предусмотрены дополнительные внутренние «прослойки». Такой механизм означает передачу информации в точно том же виде, что и сама информация. Грубо говоря, мы не заворачиваем ее в XML, что присуще SOAP, не юзаем AMF, как Flash, etc.

Управление информацией основано на протоколе передачи данных. Наиболее распространенный - HTTP, о котором мы говорили ранее. В этом случае операции над информацией выполняются с помощью GET, PUT, POST, DELETE.

#REST | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114
«Основы локальных компьютерных сетей»

Автор: Сергеев А. Н.
Год: 2016
Язык: русский

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

Книга поможет разобраться во всем детально, подтянуть азы и сделать из тебя крутого настройщика WiFi-роутеров.


#books | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
⚠️ Как разобраться в Computer Science самостоятельно

Раскладываем по полочкам процесс освоения Computer Science. Книги, лекции зарубежных вузов и ресурсы для практики, которые помогут новичку последовательно разобраться в основных дисциплинах компьютерных наук.

Для большинства программистов Computer Science — факультет в зарубежных вузах, целиком и полностью посвящённый программированию, математике и всему, что связано с разработкой программного обеспечения. К счастью, в современном мире необязательно инвестировать тысячи долларов и 4 года своей жизни в образование, ведь существует бесчисленное множество онлайн-курсов, книг и других ресурсов для изучения компьютерных наук.

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

▫️Какие дисциплины следует изучать и почему?
▫️Какие из доступных ресурсов, книг, серий лекций для конкретной дисциплины имеет смысл посмотреть?

В качестве ответа приведём список материалов, опубликованный Озаном Онай (Ozan Onay) и Майлзом Бёрном (Myles Byrne) — инструкторами в школе компьютерных наук Брэдфилда в Сан-Франциско.

Данная подборка литературы и курсов основана на личном опыте обучения сотен программистов-самоучек.

💬 Подробнее тут

#ComputerScience | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🖕1
🖥 Генерируем SSL-сертификаты для Windows и Android

Что такое SSL-сертификат, как его сгенерировать и использовать для локальной разработки и для тестирования на мобильных устройствах.

SSL-сертификат — это цифровой сертификат, позволяющий убедиться в том, что сервер, передавший данные клиенту, не подменен и данные передал именно он.

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

Приложения, требующие наличие валидного сертификата при локальной разработке:

▫️PWA-приложения,
▫️приложения, использующие WebRTC.

Есть два способа выполнить эту задачу:

▫️Сгенерировать самоподписанный сертификат и добавить его в список доверенных корневых центров сертификации; таким образом устройство будет считать его валидным. Как следует из названия, это сертификат, который подписан закрытым ключом его самого же.

▫️Сгенерировать корневой сертификат и добавить его в список доверенных корневых центров сертификации, далее сгенерировать сертификат сервера и подписать его ранее созданным корневым сертификатом.

💬 Подробнее тут

#SSL | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🌐 Форматы Ehternet фреймов.

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

Ethernet II

Preamble – последовательность бит, по сути, не являющаяся частью ETH заголовка определяющая начало Ethernet фрейма.

DA (Destination Address) – MAC адрес назначения, может быть юникастом, мультикастом, бродкастом.

SA (Source Address) – MAC адрес отправителя. Всегда юникаст.

E-TYPE (EtherType) – Идентифицирует L3 протокол (к примеру 0x0800 – Ipv4, 0x86DD – IPv6, 0x8100- указывает что фрейм тегирован заголовком 802.1q, и т.д. Список всех EtherType — тут

Payload – L3 пакет размером от 46 до 1500 байт

FCS (Frame Check Sequences) – 4 байтное значение CRC используемое для выявления ошибок передачи. Вычисляется отправляющей стороной, и помещается в поле FCS. Принимающая сторона вычисляет данное значение самостоятельно и сравнивает с полученным.

Данный формат был создан в сотрудничестве 3-х компаний – DEC, Intel и Xerox. В связи с этим, стандарт также носит название DIX Ethernet standard. Данная версия стандарта была опубликована в 1982г (первая версия, Ehernet I – в 1980г. Различия в версиях небольшие, формат в целом остался неизменным). В 1997г. году данный стандарт был добавлен IEEE к стандарту 802.3, и на данный момент, подавляющее большинство пакетов в Ethernet сетях инкапсулированы согласно этого стандарта.

#Frame | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
FAQ по Shadowsocks/XRay/XTLS/Reality/Nekobox/etc. для обхода блокировок

Классических способов выявить прокси/VPN не так много, самые известные:

▫️разница между часовыми поясами у клиента в браузере и в локации IP-адреса с которого он подключается (например, в браузере московский часовой пояс, а сервер в Лондоне и там пояс другой) - обойти элементарно;

▫️выявление по MTU - ненадежно, актуально для OpenVPN/L2TP/Wireguard/SSTP, для XRay и подобных прокси не актуально, т.к. они работают на другом уровне;

▫️сканирование IP клиента на предмет открытых стандартных портов (например, 443) - можно обойти цепочкой из двух серверов с туннелем между ними;

Два важных отличия от других технологий:

▫️в отличие от VPN, где подключение к VPN-серверу устанавливается один раз и все, в случае с прокси, на каждое исходящее подключение из клиентского софта устанавливается новое подключение к прокси-серверу (если только не используется мультиплексирование)

▫️поскольку через прокси невозможно послать ICMP-пинг, большинство клиентов меряют задержку не пингом, а выполнением HTTP-запроса.

Вот и считайте: когда вы запускаете тест, сначала устанавливается TCP-соединение с прокси-сервером (уже как минимум один, а то и два round-trip). Потом поверх него происходит TLS-хендшейк (ещё один round-trip), и в процессе него прокси-сервер ещё устанавливает TCP-соединение с reality-dest сервером и запрашивает у него сертификат. Потом прокси посылает запрос на установление TCP-соединения с тем сервером, который используется для теста. Потом, если URL указан как HTTPS, происходит ещё TLS-хендшейк с ним. Потом клиент делает HTTP-запрос и ждёт получения ответа. И только после ответа вы видите результат теста, и "задержка" - это суммарное время всего вышеописанного процесса.

💬 Подробнее тут

#FAQ | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
⌨️ Как использовать Python для работы с протоколами сети

Сокеты являются основным механизмом для работы с сетевыми протоколами в Python. Библиотека socket позволяет создавать и управлять сокетами, а также отправлять и получать данные через сеть.

Для создания сокета в Python используется функция socket.socket(). В качестве аргументов вы можете указать тип сокета и используемый протокол. Например, для создания сокета с использованием протокола TCP/IP:

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

Для установки соединения с сервером используйте метод connect() сокета. В качестве аргумента передайте кортеж, содержащий адрес сервера и номер порта:

s.connect(("example.com", 80))

Для отправки данных на сервер используйте метод send() сокета, а для получения данных — метод recv():

s.send(b"GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")
response = s.recv(1024)
print(response)

После завершения работы с сокетом обязательно закройте его с помощью метода close():

s.close()

Python предоставляет библиотеки для работы с высокоуровневыми протоколами, такими как HTTP, FTP и SMTP. Например, для отправки HTTP-запроса вы можете использовать библиотеку requests:

import requests

response = requests.get("http://example.com")
print(response.text)

#Python | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
💻 Что такое TCP?

Протокол управления передачей (англ. TCP - Transmission Control Protocol) обеспечивает надежную доставку данных. Сервис TCP так и называется: reliable byte stream (надежная передача потока байт). Этот протокол отвечает за доставку данных и сохранение порядка передаваемых сообщений.

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

Чтобы обеспечить гарантию доставки данных, TCP использует подтверждение получения сообщений. Как это работает?

▫️От отправителя к получателю "уходит" некий сегмент данных.
▫️Приняв этот сегмент, получатель посылает отправителю подтверждение (ACK или Acknowledgement).
▫️Данный процесс повторяется, пока передаются данные.

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

В протоколе TCP также предусмотрена защита от дублирования и нарушения порядка сообщений (сообщения нумеруются).

#TCP | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
9