Замена arp в linux
Подмена ARP:
Принцип эксперимента
Протокол ARP - это протокол, который работает на сетевом уровне и отвечает за преобразование IP-адресов в MAC-адреса, а узлы в локальной сети используют физические адреса (Mac-адреса) для связи. У каждого хоста есть таблица ARP, в которой записана соответствующая взаимосвязь между IP-адресом хоста и MAC-адресом, а таблица кэша ARP не обновляется в реальном времени, поэтому мы можем подделать IP-адрес и MAC-адрес для достижения спуфинга ARP.
Если в сети генерируется большой объем ARP-трафика, злоумышленник может изменить запись IP-MAC в кэше ARP целевого хоста, пока поддельный пакет ответа ARP отправляется непрерывно, вызывая прерывание сети или атаку типа «человек посередине».Злоумышленник отправляет поддельный ARP-ответ на компьютер A., Сообщите компьютеру A: IP-адрес компьютера B 192.168.0.2 соответствует MAC-адресу 00-aa-00-62-c6-03,Компьютер A считает, что это правда, и записывает это соответствие в свой собственный ARP-кеш.В таблице при отправке данных позже данные, которые должны были быть отправлены на компьютер B, отправляются злоумышленнику. тем же,Злоумышленник также отправляет поддельный ARP-ответ на компьютер B., Сообщите компьютеру B: IP-адрес компьютера A 192.168.0.1 соответствует MAC-адресу 00-aa-00-62-c6-03, и компьютер B также отправит данные злоумышленнику. До сих порЗлоумышленник контролирует трафик между компьютером A и компьютером B., Он может выбрать пассивный мониторинг трафика, получение паролей и другую конфиденциальную информацию или подделку данных для изменения содержимого обмена данными между компьютером A и компьютером B.
Следовательно, в локальной сети злоумышленник может подслушивать (IP, MAC) адреса других узлов через полученный широковещательный номер запроса ARP. Хакер выдает себя за A и сообщает B (жертве) поддельный адрес, в результате чего B. Пакеты данных, отправленные A, были перехвачены хакерами, и A и B не знали об этом.
Подмена ARP
В этом тесте используются физическая машина (Windows 10) и виртуальная машина (kali Linux).
В повседневные задачи системных администраторов входит работа с сетями и с подключённым к ним оборудованием. Нередко роль рабочего места администратора играет компьютер, на котором установлен какой-нибудь дистрибутив Linux. Утилиты и команды Linux, о которых пойдёт речь в материале, перевод которого мы публикуем сегодня, включают в себя список инструментов различной сложности — от простых, до продвинутых, которые предназначены для решения широкого спектра задач по управлению сетями и по диагностике сетевых неполадок.
Утилита ping , как можно судить по её названию, используется для проверки связи между узлами сети, между компьютером, на котором её запускают, и другой системой. Эта утилита использует протокол ICMP, отправляя эхо-запросы, на которые отвечает удалённая система, получающая их. Использование ping , кроме того — это хороший способ проверки связности сети, проводимой в качестве первого шага диагностики сети при наличии неполадок. Команду ping можно использовать с адресами IPv4 и IPv6. Тут можно почитать подробности об IP-адресах и о работе с ними.
▍Примеры
Ping, кроме того, можно использовать для выяснения IP-адресов сайтов на основе их имён. Вот как это выглядит.
Использование ping для выяснения IP-адреса сайта по его имени
Traceroute
Traceroute — это приятная утилита, которая позволяет исследовать маршруты передачи данных между компьютерами. В то время как команда ping направлена на то, чтобы выяснить, можно ли установить связь между двумя узлами сети, traceroute даёт сведения об IP-адресах маршрутизаторов, через которые проходят данные от вашей системы до конечной, например — до веб-сайта или сервера. Команда traceroute обычно применяется на втором шаге диагностики сети, после команды ping .
▍Пример
Telnet
Утилита telnet позволяет связаться с удалённым компьютером по протоколу Telnet и взаимодействовать с ним, используя соответствующие команды.
▍Пример
Для организации сеанса Telnet-связи с другим компьютером используется следующая команда:
Netstat
Эта команда позволяет собирать сведения о сети и используется в ходе поиска и исправления сетевых неполадок, применяется для проверки данных о работе интерфейсов и портов, для исследования таблиц маршрутизации, для изучения информации о работе протоколов. Эта команда непременно должна присутствовать в арсенале системного администратора.
▍Примеры
Для того чтобы получить список всех портов, находящихся в режиме прослушивания, воспользуйтесь такой командой:
Следующая команда выводит сведения обо всех портах. Для того чтобы ограничиться только TCP-портами, нужно воспользоваться ключом -at , для того, чтобы получить данные об UDP-портах, используйте ключ -au .
Для просмотра таблиц маршрутизации воспользуйтесь такой командой:
Вот как выглядит результат выполнения этой команды.
Сведения о таблице маршрутизации
Вот вариант этой команды, выводящий статистику по протоколам:
Статистика по протоколам
Следующий вариант вызова netstat позволяет узнать сведения об отправленных и полученных пакетах (transmission/receive, TX/RX) по каждому интерфейсу:
Данные об отправленных и полученных пакетах
Nmcli
Утилита nmcli отлично подходит для управления сетевыми соединениями, для выполнения настроек и для решения других подобных задач. С её помощью можно управлять программой NetworkManager и модифицировать сетевые параметры различных устройств.
▍Примеры
Вот как с помощью nmcli вывести список сетевых интерфейсов:
Так можно вывести информацию по конкретному интерфейсу:
Следующий вариант вызова команды позволяет проверить подключение устройства к сети:
Примеры использования nmcli
Эта команда позволяет отключить заданный интерфейс:
А эта позволяет включить интерфейс:
Вот пример команды, которая добавляет VLAN-интерфейс с заданным VLAN-номером, IP-адресом и шлюзом к указанному интерфейсу:
Маршрутизация
Существует множество команд, которые можно использовать для проверки правил маршрутизации и их настройки. Рассмотрим самые полезные из них.
▍Примеры
Следующая команда показывает все текущие маршруты, настроенные для соответствующих интерфейсов:
Маршруты, настроенные для интерфейсов
Эта команда позволяет добавить в таблицу маршрутизации шлюз, используемый по умолчанию:
Следующая команда добавляет в таблицу маршрутизации новый сетевой маршрут. Существует и множество других её параметров, позволяющих выполнять такие операции, как добавление маршрута и шлюза, используемых по умолчанию, и так далее.
С помощью такой команды можно удалить запись о заданном маршруте из таблицы маршрутизации:
Вот примеры использования команды route .
Использование команды route
Вот команда, которая применяется для вывода текущей таблицы соседей. Кроме того, её можно использовать для добавления, изменения или удаления сведений о соседях:
Взглянем на примеры её использования.
Данные, полученные с помощью команды ip neighbor
Вот сведения о команде ip neigh
Сведения о команде ip neigh
Команда arp (ARP — это сокращение от Address Resolution Protocol, протокол определения адреса) похожа на ip neighbor . Утилита arp выводит данные о соответствии IP-адресов MAC -адресам. Вот как её использовать:
Вот пример её вызова.
Вызов команды arp
Tcpdump и Wireshark
Linux даёт в распоряжение администратора множество инструментов для захвата и анализа пакетов. Среди них, например, tcpdump , wireshark , tshark , и другие. Они используются для захвата сетевого трафика в передаваемых системой пакетах или в пакетах, получаемых ей. Это делает их весьма ценным инструментом администратора, помогающим в деле выяснения причин различных сетевых неполадок. Тем, кто предпочитает командную строку всем остальным способам общения с компьютерами, понравится tcpdump . Тем же, кто любит графические интерфейсы, можно порекомендовать wireshark — отличный инструмент для захвата и анализа пакетов. Утилита tcpdump — это встроенное в Linux средство для захвата сетевого трафика. Его можно использовать для захвата и вывода трафика с фильтрацией по портам, протоколам, и по другим признакам.
▍Примеры
Такая команда показывает, в режиме реального времени, пакеты с заданного интерфейса:
Пакеты можно сохранять в файл, воспользовавшись флагом -w и задав имя файла:
Вот пример использования tcpdump .
Использование tcpdump
Следующий вариант команды используется для захвата пакетов, приходящих с заданного IP системы-источника:
Так можно захватить пакеты, идущие на заданный адрес системы-приёмника:
Вот пример использования tcpdump для захвата пакетов для заданного номера порта, например, это может быть порт 53, 80, 8080, и так далее:
Здесь показано, как с помощью tcpdump захватывать пакеты заданного протокола, вроде TCP, UDP или других:
Iptables
Утилита iptables похожа на файрвол, она поддерживает фильтрацию пакетов, что позволяет управлять трафиком, пропуская или блокируя его. Диапазон возможностей этой утилиты огромен. Рассмотрим несколько наиболее распространённых вариантов её использования.
▍Примеры
Следующая команда позволяет вывести все существующие правила iptables :
Эта команда удаляет все существующие правила:
Следующие команды разрешают прохождение трафика с заданного номера порта к заданному интерфейсу:
Следующие команды разрешают loopback-доступ к системе:
Nslookup
Инструмент nslookup используется для получения сведений о назначении IP-адресов сетевым ресурсам. Его можно использовать и для получения сведений с DNS-серверов, например таких, как все DNS-записи для некоего веб-сайта (ниже мы рассмотрим соответствующий пример). На nslookup похожа утилита dig (Domain Information Groper).
▍Примеры
Следующая команда выводит IP-адреса вашего DNS-сервера в поле Server, и, ниже, выдаёт IP-адрес искомого сайта:
Такая команда показывает все доступные записи для заданного веб-сайта или домена:
Поиск неполадок
Вот набор команд и список важных файлов, используемых для идентификации сетевых неполадок.
▍Примеры
- ss — утилита для вывода статистической информации о сокетах.
- nmap <ip-address> — имя этой команды является сокращением от Network Mapper. Она сканирует сетевые порты, обнаруживает хосты, выясняет MAC-адреса и выполняет множество других задач.
- ip addr/ifconfig -a — эта команда предоставляет сведения об IP-адресах и другие данные по всем интерфейсам системы.
- ssh -vvv user@<ip/domain> — такая команда позволяет подключиться по SSH к другому компьютеру, используя заданный IP-адрес или доменное имя компьютера и имя пользователя. Флаг -vvv позволяет получать подробные сведения о происходящем.
- ethtool -S <interface> — данная команда позволяет вывести статистические сведения по заданному интерфейсу.
- ifup <interface> — эта команда включает указанный интерфейс.
- ifdown <interface> — эта команда отключает указанный интерфейс.
- systemctl restart network — с помощью этой команды можно перезагрузить системную сетевую подсистему.
- /etc/sysconfig/network-scripts/<interface-name> — это — файл настройки интерфейсов, используемый для указания IP-адреса, сети, шлюза и других параметров для заданного интерфейса. Здесь можно задать использование интерфейсом DHCP-режима.
- /etc/hosts — данный файл содержит сведения о соответствии хостов или доменов IP-адресам, настроенные администратором.
- /etc/resolv.conf — в этом файле хранятся настройки DNS.
- /etc/ntp.conf — этот файл хранит настройки NTP.
Итоги
В этой небольшой шпаргалке мы рассказали о сетевых инструментах Linux, предназначенных для системных администраторов. Надеемся, вам эти инструменты пригодятся.
Некоторые инструменты Linux, хотя всё ещё функциональны и присутствуют в стандартных репозиториях, на самом деле уже не рекомендуются для использования и, следовательно, от них будут постепенно отказываться в пользу более современных замен.
Устаревшая команда
Команда(ы) на замену
А теперь давайте взглянем ближе на эти нерекомендуемые команды и их замены.
Эта статья не будет нацелена на детальный разбор iproute2 и команды ip; вместо этого будут перечислены нерекомендуемые команды и даны их новые аналоги. Если вместо команды замены стоит «не ясно» и вы знаете надлежащую замену, то вы можете написать её комментариях к статье.
Команды nslookup и dig отдельно рассмотрены здесь.
Нерекомендуемые команды arp
Замена
Далее несколько примеров ip neighbor:
Развалидировать запись ARP кэша для хоста 10.1.2.3 на устройстве eth0.
Показать ARP кэш для интерфейса eth0.
Добавить “постоянную” запись ARP кэша для хоста 10.1.2.3 устройства eth0. Состояние Протокола обнаружения соседей (nud) может быть одним из следующих:
- noarp – запись действительно. Не будут сделаны попытки подтвердить эту запись, но она может быть удалена когда истечёт срок её жизни.
- permanent – запись действительна навсегда и может быть удалена только в административном порядке.
- reachable – запись действительна до истечения годности тайм-аута достижимости.
- stale – запись действительна, но подозрительна.
Ifconfig
Нерекомендуемые команды ifconfig
Замена
Далее несколько примеров, иллюстрирующих команду ip; с помощью вышеприведённой таблицы вы должны разобраться, что они делают.
Iptunnel
Нерекомендуемые команды iptunnel
Замена
Синтаксис между iptunnel и ip tunnel очень схож, это показывают и примеры ниже.
Глубже о создании туннелей с помощью iproute2 вы можете познакомиться здесь.
Iwconfig
Дополнительно об iw вы можете почитать здесь.
Нерекомендуемые команды iwconfig
Замена
Далее несколько примеров синтаксиса команды iw.
Nameif
Нерекомендуемые команды nameif
Замена
Netstat
Нерекомендуемые команды netstat
Замена
Route
Нерекомендуемые команды route
Замена
Ниже несколько примеров синтаксиса команды ip route.
Связанные статьи:
Рекомендуемые статьи:
1 Комментарий
Основная тема не раскрыта. Зачем менять то, что работает на то что до конца не работает? Не ясно.. Особенно если в большинстве графах стоит альтернатива - "не ясно"
Иногда возникает необходимость узнать какие устройства подключены к локальной сети Linux. Это может понадобиться если вы хотите подключиться к одному из компьютеров и не помните его адрес или хотите убедиться в безопасности вашей сети и найти все скрытые устройства.
Самый надежный способ обнаружить все подключенные к сети Linux устройства, в том числе и скрытые - это ARP сканирование локальной сети. В этой статье мы рассмотрим как его выполнить и какие утилиты для этого нужны.
Как выполнить ARP сканирование локальной сети?
Как вы знаете, у всех компьютеров в сети есть IP адреса. Никогда не задавались вопросом, как сеть определяет, какому компьютеру принадлежит тот или иной адрес? Ведь сети бывают разные, проводные, беспроводные, ppp и т д. И в каждой из этих сетей аппаратный адрес компьютера имеет свой формат, зависящий от конструктивных особенностей сети, а IP адреса одни и те же.
Все очень просто. Для преобразования физических адресов, в ip адреса используется протокол ARP (Address Resolution Protocol), так и расшифровывается - протокол разрешения адресов. Когда компьютеру нужно обратиться к другому компьютеру в локальной сети, он отправляет специальный запрос в котором буквально спрашивает "У кого IP адрес 192.168.1.4", компьютер с таким ip адресом отправляет ответ "У меня, я 11:22:33:44:55", в ответе он передает свой физический адрес в этой сети. Дальше этот адрес заносится в специальную таблицу. но это уже тонкости реализации и они выходят за рамки нашей статьи. Сегодня мы поговорим как самому выполнить ARP сканирование локальной сети linux и найти все подключенные устройства.
Утилита ARP Scan
ARP Scan или еще называемый MAC Scanner - это очень быстрый инструмент для сканирования локальной сети Linux с помощью ARP. Утилита показывает все IPv4 адреса устройств в вашей сети. Поскольку ARP не использует маршрутизацию, то такой вид сканирования работает только в локальной сети.
ARP Scan находит все активные устройства, даже если у них включен брандмауэр. Компьютеры не могут скрыться от ARP также как они скрываются от ping. Но ARP сканирование не подходит для поиска компьютеров за пределами локальной сети, в таких ситуациях используйте ping сканирование.
Установка ARP Scan
Этот arp сканер сети доступен для следующих операционных систем:
- Debian, поставляется по умолчанию;
- Ubuntu, можно установить с репозитория Universe;
- Fedora, официальные репозитории начиная с версии 6;
- RedHat - доступна начиная с версии 5;
- Gentoo, официальные репозитории;
- ArchLinux - официальные репозитории Pacman.
Для установки в Ubuntu выполните:
sudo apt install arp-scan
Сканирование сети
ARP Scan позволяет находить активные компьютеры как в проводных сетях ethernet, так и в беспроводных Wifi сетях. Также есть возможность работать с Token Ring и FDDI. Не поддерживаются последовательные соединения PPP и SLIP, поскольку в них не используется ARP. Программу нужно запускать с правами суперпользователя.
Но сначала надо узнать сетевой интерфейс, который используется для подключения к сети. Для этого можно воспользоваться программой ip:
В данном случае, это enp24s0. Самый простой способ выполнить ARP сканирование и обнаружить все подключенные к локальной сети компьютеры - запустить программу со следующими параметрами:
sudo arp-scan --interface=enp24s0 --localnet
Здесь параметр --interface, задает интерфейс для сканирования, а --localnet, говорит, что нужно использовать все возможные IP адреса для текущей сети.
Первый параметр можно опустить, тогда программа будет искать все узлы для интерфейса с меньшим номером в системе. В нашем примере имя интерфейса - enp24s0.
Вместо параметра --localnet, можно указать маску сети:
sudo arp-scan --interface=enp24s0 10.0.1.0/24
ARP сканирование можно использовать, даже если у вашего интерфейса нет IP адреса. Тогда в качестве исходящего адреса будет использован 0.0.0.0. Правда, на такие запросы могут ответить не все системы. Тогда ARP сканер сети не так эффективен.
ARP спуфинг и ARP прокси
Выводы
ARP Scan это простой, но очень мощный инструмент, с помощью которого можно выполнять сканирование ip адресов в локальной сети linux. Те, кто знаком с Cisco маршрутизаторами и коммутаторами, знают что найти такие устройства можно только с помощью ARP. Это полезный инструмент, возможно, когда-то вам он пригодится.
Читайте также: