Основы работы сетей для начинающего хакера. Часть 1. IP, DHCP, NAT, port.

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

IP-address

Internet Protocol Address — уникальный сетевой адрес узла в компьютерной сети. По сути, чтоб тебе было понятней это твой домашний адрес. Каждому цифровому устройству (компьютеру, ноутбуку, телефону, планшету и т.д.) назначается IP-адрес, без этого адреса невозможно найти устройство и обратиться к нему.

Существует две системы ip адресов: IPv4 и IPv6 (IPv6 мы разберем в другом уроке, чтобы не распыляться) а сегодня IPv4.

В 4 версии IP адрес представляет собой 32-х битовое число, однако видим мы его в десятичном представлении, так банально удобней, а если быть точнее IP состоит из 4 групп по 8 битов каждая, разделенных точками, каждая группа может представлять числа в диапазоне от 0 до 255.

ipv4

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

  • Класс А : 0.0.0.0 — 127.255.255.255
  • Класс B : 128.0.0.0 — 191.255.255.255
  • Класс C : 192.0.0.0 — 223.255.255.255

в одном из следующих уроков мы рассмотрим подсети и маски подсетей которые отличаются в зависимости от класса ip адреса

Публичные и частные IP-адреса

Система ip адресов имеет свои ограничения и самое основное из них связано с тем что адресов банально не хватает для всех устройств. Система IPv4, имеет только 4,3 миллиарда IP-адресов. А людей на планете более 7 миллиардов, а устройств еще больше и постоянно появляются новые. В результате, что бы решить эту проблему, была разработана система для повторного использования группы IP-адресов, которые будут использоваться в локальной сети, и которые нельзя будет использовать в сети Интернет. Эти адреса можно использовать снова и снова в каждой локальной сети.

Эти частные адреса включают в себя диапазоны ip-адресов:
192.168.0.0 — 192.168.255.255
10.0.0.0 — 10.255.255.255
172.16-.0.0 — 172.16.255.255

если ты наберешь в командной строке ipconfig (для linux это ifconfig) то сможешь узнать свой частный ip. При этом если тебе нужно узнать ip адрес сайта, т.е. доменного имени, нужно написать nslookup и адрес сайта

Для связи через Интернет его необходимо преобразовать в общедоступный IP-адрес с помощью устройства NAT, к этому мы ещё вернемся

DHCP

(англ. Dynamic Host Configuration Protocol — протокол динамической настройки узла)

Отвечает за динамическое назначает IP-адреса. Это означает, что у тебя не один и тот же IP-адрес все время. Как правило эти назначения IP-адресов происходят в локальной сети. Когда устройство подключено к локальной сети, оно должно запросить IP-адрес. Это устройство отправляет запрос на сервер DHCP, который затем назначает IP-адрес этой системе на фиксированный период времени, это период времени называется «аренда».

NAT

(Network Address Translation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Что это означает?

Другими словами, это протокол, посредством которого внутренние частные IP-адреса «транслируются» на внешний общедоступный IP-адрес, который можно направить через Интернет к пункту назначения.

Устройство NAT принимает запросы  с внутренней машины. Затем оно записывает IP-адрес этого устройства в таблицу и преобразует IP-адрес во внешний IP-адрес маршрутизатора. Когда пакет возвращается из пункта назначения, устройство NAT просматривает свою сохраненную таблицу исходных запросов и перенаправляет пакет на внутренний IP-адрес системы, которая сделала исходный запрос в локальной сети. При правильной работе пользователи не видят весь этот процесс, а многие и не знают что он вообще существует.

Порты

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

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

  • 20 FTP
  • 21 FTP
  • 22 SSH
  • 23 Telnet
  • 25 SMTP
  • 53 DNS
  • 69 TFTP
  • 80 HTTP
  • 88 Kerberos
  • 110 POP3
  • 123 NTP
  • 135 Microsoft’s RPC
  • 137-139 Microsoft’s NetBIOS
  • 143 IMAP
  • 161 SNMP
  • 389 LDAP
  • 443 HTTPS or HTTP over SSL
  • 445 SMB
  • 500 IKE
  • 514 syslog
  • 3389 RDP

Теперь немного о применяемых терминах относительно портов:

Если процесс постоянно использует один номер порта, то такой порт называют «открытым», примером может быть если вэб-сервер использует 80 порт  для приема-передачи данных, то соответственно 80 порт считается открытым

Если процесс получил номер порта у ОС («открыл порт») и «держит его открытым» для приёма и передачи данных, это называется «прослушивание» порта.

Часть 2. TCP/IP