19 марта, 2024

Сделайте из вашей Raspberry Pi точку доступа Wi-Fi

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

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

К счастью для вашего бюджета, Pi 3 и Pi Zero W обе могут быть точками доступа и должны работать с любым дистрибутивом Linux, который можно запустить на вашей Pi. Для этого мы будем использовать hostapd и DNSmasq, которые недавно были пропатчены, после того как служба безопасности Google обнаружила несколько серьезных уязвимостей.

Что вам будет нужно для начала?

  • Raspberry Pi 3 или Pi Zero W
  • Карта microSD с загруженным образом Kali Linux или Raspbian
  • Источник питания
  • Ethernet-кабель

Где купить Raspberry Pi 3 Model B+? Самый оптимальный вариант — купить устройство на Aliexpress. Базовая комплектация — посмотреть или расширенная — посмотреть.

В рамках этой статьи мы будем предполагать, что у вас уже есть Raspberry Pi 3, работающая на Raspbian или на Kali Linux. Если у вас пока этого нет, то почитайте нашу предыдущую статью «Установка Raspberry Pi — «безголовой» платформы для взлома под управлением Kali Linux».

Шаг 1. Обновление системы и установка HostAPD

Прежде чем мы начнем, убедитесь, что Pi подключена и к Ethernet и к сети. Хорошей практикой считается первым делом удостовериться, что мы работаем на Pi с самыми новыми версиями программного обеспечения, поэтому сначала обновим систему. Откройте окно терминала и введите следующее:

sudo apt-get update
sudo apt-get upgrade

После завершения обновления операционной системы установим hostapd и dnsmasq.

Hostapd — это пакет, который фактически позволит нам использовать Pi в качестве точки доступа Wi-Fi. Хотя в этой сборке мы используем внутренний Wi-Fi, мы могли бы использовать любое количество беспроводных сетевых адаптеров.

Dnsmasq — это простой в настройке пакет, который работает одновременно и как протокол динамической настройки узла (DHCP) и как сервер доменных имен (DNS). DHCP — это стандартизированный протокол, который динамически выдает параметры конфигурации сети. Мы будем использовать его для назначения IP-адресов интерфейсам и сервисам.

DHCP позволяет вам всего лишь ввести пароль, когда вы подключаетесь к новой беспроводной точке доступа, а после этого начинает для вас обрабатывать конфигурацию. DNS, с другой стороны, переводит IP-адреса в доменные имена и имеет жизненно важное значение для использования Интернета. Именно поэтому вы можете перейти на google.com, не зная IP-адрес, на котором фактически размещен веб-сайт.

Давайте скачаем оба пакета, введя следующие команды в терминал:

sudo apt-get install hostapd
 sudo apt-get install dnsmasq

Если вы продвинутый пользователь Linux и считаете, что вам нужно что-то более надежное, то можете использовать isc-dhcp-сервер для DHCP и bind9 для DNS, поскольку они оба дают пользователю лучший контроль над происходящим и предлагают решения корпоративного уровня. Мы не будем использовать их в этой статье, чтобы максимально упростить процесс.

Шаг 2. Конфигурирование интерфейса

По умолчанию dhcpcd обрабатывает конфигурацию интерфейса. Поскольку мы собираемся настроить статический беспроводной IP-адрес, позже нам будет нужно, чтобы он игнорировал интерфейс wlan0, карту Wi-Fi по умолчанию и не позволял другим интерфейсам ее использовать. Это должно изолировать нашу точку доступа от чьего-либо вмешательства в ее работу. Откройте файл в редакторе nano.

sudo nano /etc/dhcpcd.conf

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

denyinterfaces wlan0

В только что установленной системе мы просто вставляем ее в конце файла.

Чтобы сохранить наши изменения в nano, нам нужно нажать Ctrl + X, затем Y, затем Enter. Запомните эту комбинацию клавиш, так как мы будем часто ее использовать.

Шаг 3. Статический IP-адрес

Теперь мы готовы настроить статический IP-адрес для нашей точки доступа, так же как они используются с любым маршрутизатором. Если мы этого не сделаем, то все устройства, которые будут пытаться подключиться к нашей точке доступа, просто не смогут ее найти. Мы сделаем это, отредактировав файл interfaces, введя вот эту команду в терминал:

sudo nano /etc/network/interfaces

Настройки wlan0 являются очень важными для подключения к Pi. Если вы решите изменить их, то обязательно на каждом шаге делайте в точности то же самое, как описано ниже, в противном случае ваша точка доступа просто не будет работать. В nano прокрутитесь ниже и замените все, начиная со строки «auto lo» и далее вниз, следующим содержанием:

auto lo
 iface lo inet loopback
auto eth0
 allow-hotplug eth0
 iface eth0 inet static
 address 192.168.1.2
 netmask 255.255.255.0
 gateway 192.168.1.1
 dns-nameservers 8.8.8.8 8.8.4.4
allow-hotplug wlan0
 iface wlan0 inet static
 address 192.168.220.1
 netmask 255.255.255.0
 network 192.168.220.0
 broadcast 192.168.220.255
 # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Для этой статьи мы также установили статический IP-адрес для Ethernet, но вы можете оставить его динамическим, введя в консоли эту команду: iface eth0 inet dhcp, и оставив адреса, которые идут после этого. Подробнее можно посмотреть в вики по конфигурации сети.

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

Когда вы закончите, файл должен выглядеть примерно так:

Когда он будет выглядеть точно также, то для сохранения файла нажмите Ctrl + X, затем Y, затем Enter.

После выхода из nano необходимо перезапустить dhcpd, чтобы изменения в файле конфигурации вступили в силу, а затем сделать то же самое для wlan0. Мы можем сделать это, введя следующие команды в консоли:

sudo service dhcpcd restart
 sudo ifdown wlan0; sudo ifup wlan0

Шаг 4. Настройка Hostapd

Теперь настроим hostapd. Чтобы это сделать, откройте файл конфигурации в редакторе nano, введя эту команду в терминал:

sudo nano /etc/hostapd/hostapd.conf

Затем добавьте эти строки, которые будут определять, как мы хотим, чтобы работал интерфейс wlan0.

# WifI interface and driver to be used
 interface=wlan0
 driver=nl80211
# WiFi settings
 hw_mode=g
 channel=6
 ieee80211n=1
 wmm_enabled=1
 ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40] macaddr_acl=0
 ignore_broadcast_ssid=0
# Use WPA authentication and a pre-shared key
 auth_algs=1
 wpa=2
 wpa_key_mgmt=WPA-PSK
 rsn_pairwise=CCMP
# Network Name
 ssid=Pi3-AP
 # Network password
 wpa_passphrase=raspberry

Основными моментами, которые вы должны изменить, являются SSID (идентификатор набора услуг) и wpa_passphrase в нижней части файла. SSID — это имя точки доступа и то, как ваше устройство идентифицирует сеть.

Wpa_passphrase — это пароль для точки доступа. Очень важно создать надежный пароль, иначе любой сможет получить доступ к вашей сети. Более продвинутые пользователи могут изменить используемый по умолчанию канал, на который будет передавать данные точка доступа, поскольку 6 наиболее часто используемых Wi-Fi-каналов быстро переполняются.

Если вы решили использовать отдельный сетевой адаптер, а не встроенный Wi-Fi-модуль, то драйвер встроенного Wi-Fi модуля должен быть заменен на драйвер, подходящий для нового Wi-Fi-адаптера.

Когда закончите редактирование, для сохранения нажмите Ctrl + X, затем Y, затем Enter.

Как только это будет сделано, нам нужно сообщить hostapd, как найти этот файл. Мы сделаем это, отредактировав два файла.

Первый откроем, набрав sudo nano /etc/default/hostapd в окне терминала и изменив строку DAEMON_CONF в верхней части на следующую:

DAEMON_CONF=»/etc/hostapd/hostapd.conf»

Когда закончите, для сохранения нажмите Ctrl + X, затем Y, затем Enter.

Процесс изменения второго файла точно такой же. Откройте файл, набрав в консоли sudo nano /etc/init.d/hostapd, а затем измените строку DAEMON_CONF на эту:

DAEMON_CONF=/etc/hostapd/hostapd.conf

Для сохранения нажмите Ctrl + X, затем Y, затем Enter.

Шаг 5. Настройка Dnsmasq

Дефолтный конфигурационный файл dnsmasq очень сложный и он не будет работать для наших задач. Гораздо проще создать новый конфигурационный файл.

Хорошей идеей будет на всякий случай переместить куда-нибудь дефолтный файл конфигурации. Мы можем сделать это, набрав в консоли sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig, а затем создадим собственный пустой файл, набрав команду sudo nano /etc/dnsmasq.conf.

Когда наш пустой файл откроется в nano, добавьте в него следующие строки:

Interface=wlan0
 listen-address=192.168.220.1
 bind-interfaces
 server=8.8.8.8
 domain-needed
 bogus-priv
 dhcp-range=192.168.220.50,192.168.220.150,12h

Эти строчки скажут dnsmasq использовать wlan0 и прослушивать адрес 192.168.220.1. Нам также нужно сделать несколько вещей: связать интерфейсы еще раз, чтобы убедиться, что они ничего не отправляют, перенаправить на Google DNS-запросы, а не короткие имена, удалить немаршрутизируемый адрес и назначить IP-адреса между 192.168.220.50-150 с 12-часовой арендой.

И опять-таки, когда закончите, нажмите Ctrl + X, затем Y, затем Enter для сохранения.

Шаг 6. Переадресация IPv4

Теперь у нас есть несколько вещей, которые нам нужно сделать на стороне Wi-Fi, поскольку у нас не будет точки доступа, если она не может подключиться к Интернету. Исправим это, перенаправив трафик wlan0 на Ethernet-соединение.

Первое, что нужно сделать — открыть файл sysctl.conf, набрав в консоли команду sudo nano /etc/sysctl.conf, а затем раскомментировать следующую строку, удалив решетку #.

net.ipv4.ip_forward = 1

Когда вы это сделаете, файл должен выглядеть следующим образом:

Сохраните и выйдите, нажав Ctrl + X, затем Y, затем Enter.

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

sudo sh -c «echo 1 > /proc/sys/net/ipv4/ip_forward»

Теперь, когда переадресация IPv4 работает правильно, мы можем получить наш NAT (network address translation — преобразование сетевых адресов) между интерфейсами wlan0 и eth0. Для этого нужно обновить iptables. Мы сделаем это, если введем следующие строки в терминал, одну за другой:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
 sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

Это должно выглядеть следующим образом:

Готово! Теперь все будет работать, но есть одна загвоздка. Iptables сбрасываются при каждой загрузке, то есть их необходимо снова устанавливать. Вы можете обновлять их каждый раз, но это быстро начнет раздражать, а кроме того, мы ленивы, поэтому нужно сделать их постоянными.

К счастью, для этого есть специальный пакет. Скачайте его, введя эту команду в терминал:

sudo apt-get install iptables-persistent

Когда появится такое диалоговое окно, убедитесь, что выбрано «Да», и нажмите «Enter», это сохранит наши текущие iptables. Он также спросит об IPv6, это не должно ни на что повлиять, но в любом случае сохраните и их тоже.

Если вам когда-нибудь понадобится изменить iptables, сделайте это, а затем опять сохраните эти изменения, набрав sudo netfilter-persistent save в консоли.

Теперь нам нужно только включить службу, введя в консоли следующее:

sudo systemctl enable netfilter-persistent

Шаг 7. Включение служб

Последний шаг — запустить hostapd, набрав sudo service hostapd start и запустить dnsmasq, набрав sudo service dnsmasq start. После ввода каждой из этих команд подождите несколько секунд и воспользуйтесь другим Wi-Fi устройством, чтобы убедиться, видно ли точку доступа.

Для вас картинка будет отличаться, если вы использовали другой SSID на третьем шаге. Надеюсь, что вы также изменили ваш пароль, потому что raspberry — это самый простой пароль, который легко отгадать. На скриншоте ниже мы видим, что горячая точка появилась.

Чтобы убедиться, что все будет работать должным образом, рекомендуется перезагрузить Pi командой sudo reboot. Убедитесь, что Pi подключен к Ethernet, и снова подключитесь к точке доступа Pi и попробуйте подключиться к Интернету.

Заключение

Сегодня мы узнали, как быстро превратить наши Raspberry Pi 3 или Pi zero W в беспроводную точку доступа, используя несколько простых в установке пакетов. Несмотря на свою простоту, сейчас по-прежнему весьма полезно иметь беспроводной доступ к любой сети или же наоборот, в случае необходимости иметь возможность создать такую точку доступа. Этот проект также представляет собой отличный инструмент, который мы сможем расширить в будущем для создания более сложных вещей. Будущие проекты, такие как добавление OpenVPN для маршрутизации всего трафика через VPN или включение камеры наблюдения на основе Pi, будут основаны на этом методе.

Спасибо за чтение, и если у вас есть какие-либо вопросы, пожалуйста, оставляйте ваши комментарии!

Об авторе

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *