Как настроить Raspbian Stretch в качестве маршрутизатора только с беспроводным доступом к Интернету?

Вопрос или проблема

Ситуация

Raspbian Stretch подключен к частной подсети 10.0.0.0/16 через wlan0 (модель RT5370) по беспроводной сети. Без дополнительных изменений Raspbian Stretch имеет доступ в Интернет, и DNS работает. P.S.: У меня нет физического доступа к маршрутизатору, который подключен к Интернету – только беспроводной.

Я добавил еще одну NIC RT5370 как wlan1 и настроил ее в качестве беспроводной точки доступа, используя hostapd.

Поскольку я не знаю диапазон адресов DHCP-сервера маршрутизатора, я не хочу добавлять статический адрес для wlan0.

Я настроил статический IPv4-адрес на wlan1 192.168.0.1/28 (16 адресов хостов) и настроил dnsmasq как DHCP-сервер для этой сети.

Проблема

На самом деле, это должно быть довольно просто.

Raspbian Stretch может либо 1) получить доступ в Интернет, либо 2) действовать как WAP для подключения клиентов. Проблема в том, что обе функции не могут работать одновременно.

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

Что я попробовал

После свежей перезагрузки я могу успешно пинговать google.com и 8.8.8.8.

Я вижу как wlan0, так и wlan1 после проверки ifconfig, и они, похоже, настроены правильно.

Вот вывод команды route.

Таблица маршрутизации IP ядра
Назначение Шлюз     Genbask         Флаги Метрика Ссылка Использование Интерфейс
default     10.0.0.36   0.0.0.0         UG    303    0     0 wlan0
default     192.168.0.1 0.0.0.0         UG    304    0     0 wlan1
10.0.0.0    0.0.0.0     255.255.0.0     U     303    0     0 wlan0
192.168.0.0 0.0.0.0     255.255.255.240 U     303    0     0 wlan1

Я не знаю, почему здесь выглядят как два шлюза по умолчанию, когда один единственный маршрут по умолчанию кажется более подходящим, но Интернет работает, так что я продолжаю…

После подтверждения, что Raspbian Stretch имеет доступ в Интернет, я пробую:

root@computer:/# hostapd /etc/hostapd/hostapd.conf

И получаю это:

Конфигурационный файл: /etc/hostapd/hostapd.conf
nl80211: Не удалось настроить режим драйвера
nl80211: deinit ifname=wlan1 disabled_11b_rates=0
nl80211: инициализация драйвера не удалась.
wlan1: состояние интерфейса UNINITIALIZED->DISABLED
wlan1: AP-DISABLED
hostapd_free_hapd_data: Интерфейс wlan1 не был запущен

Теперь, интересно, после того как я делаю:

root@computer:/# killall wpa_supplicant
root@computer:/# hostapd /etc/hostapd/hostapd.conf &

Я получаю это:

Конфигурационный файл: /etc/hostapd/hostapd.conf
Используя интерфейс wlan1 с hwaddress aa:bb:cc:11:22:33 и ssid "myssid"
wlan1: состояние интерфейса UNINITIALIZED->ENABLED
wlan1: AP-ENABLED

Это позволяет мне успешно подключить клиентские машины к myssid через wlan1, но теперь я не могу пинговать google.com или 8.8.8.8, и я заметил, что wlan0 не отображается в ifconfig, и моя таблица маршрутизации теперь выглядит так:

Таблица маршрутизации IP ядра
Назначение Шлюз     Genbask         Флаги Метрика Ссылка Использование Интерфейс
192.168.0.0 0.0.0.0     255.255.255.240 U     303    0     0 wlan1

Чтобы вернуть wlan0, я делаю:

root@computer:/# service dhcpcd restart
root@computer:/# sysctl daemon-reload

Теперь wlan0 и wlan1 отображаются в ifconfig, Raspbian Stretch может пинговать google.com и 8.8.8.8, но клиенты, подключенные к wlan1, не имеют доступа в Интернет.

В этот момент моя таблица маршрутизации выглядит так:

Таблица маршрутизации IP ядра
Назначение Шлюз     Genbask         Флаги Метрика Ссылка Использование Интерфейс
default     10.0.0.36   0.0.0.0         UG    303    0     0 wlan0
10.0.0.0    0.0.0.0     255.255.0.0     U     303    0     0 wlan0
192.168.0.0 0.0.0.0     255.255.255.240 U     304    0     0 wlan1

Если бы только я мог позволить клиентам wlan1 получить доступ к Интернету, все это могло бы завершиться 🙂

Поскольку нет маршрута от маршрутизатора шлюза Интернета к сети, подключенной к wlan1 (192.168.0.0/28), мне пришлось просто настроить динамический NAT с перегрузкой PAT между wlan0 и wlan1.

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Миссия выполнена!

Если бы у меня был доступ к маршрутизатору шлюза Интернета, я, вероятно, мог бы добавить статический маршрут от адреса wlan0 Raspbian Stretch к сети 192.168.0.0/28, но 1) у меня нет доступа к этому маршрутизатору, и 2) мне также нужно было бы настроить либо – a) резервирование DHCP на DHCP-сервере (к которому у меня тоже нет доступа), либо b) статический IP-адрес на wlan0 Raspbian Stretch – если я хотел бы избежать внесения изменений, когда истекает аренда DHCP для wlan0. Поэтому статический маршрут не будет работать в этом случае.

В любом случае, это первый работающий маршрутизатор/брандмауэр, который я видел или слышал, который НЕ использует проводное соединение с WAN ИЛИ LAN.

Люди могут вполне использовать это на открытой бесплатной WiFi-сети вместо использования VPN или SOCKS-прокси (если вы достаточно знаете об iptables, чтобы защитить свое соединение).

Ответ или решение

Как настроить Raspbian Stretch в качестве беспроводного маршрутизатора с доступом в Интернет

Введение

Raspbian Stretch, свободно доступная операционная система для Raspberry Pi, является отличным выбором для создания беспроводного маршрутизатора. Этот процесс имеет свои особенности, особенно когда у вас есть доступ только к беспроводной сети. В данной инструкции мы рассмотрим, как настроить Raspbian Stretch в качестве маршрутизатора, позволяя подключенным клиентам получать доступ к Интернету через существующее беспроводное соединение.

Шаг 1: Подготовка оборудования и установка необходимых пакетов

Чтобы приступить к настройке, убедитесь, что у вас есть Raspberry Pi с установленной Raspbian Stretch, а также два беспроводных адаптера, которые будут использоваться в качестве wlan0 (для подключения к Интернету) и wlan1 (для создания точки доступа).

Установите необходимые пакеты:

sudo apt-get update
sudo apt-get install hostapd dnsmasq iptables-persistent

Шаг 2: Конфигурация сети

2.1 Настройка wlan1 как точки доступа

Создайте или отредактируйте файл /etc/hostapd/hostapd.conf следующим образом:

interface=wlan1
driver=nl80211
ssid=myssid
hw_mode=g
channel=6
wmm_enabled=0
macaddr_acl=0
auth_algs=1
wpa=2
wpa_passphrase=mypassword
rsn_pairwise=CCMP
2.2 Настройка DHCP-сервера с помощью dnsmasq

Создайте резервную копию текущего конфигурационного файла dnsmasq и отредактируйте его:

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
sudo nano /etc/dnsmasq.conf

Добавьте следующие строки:

interface=wlan1
dhcp-range=192.168.0.2,192.168.0.14,255.255.255.240,24h
2.3 Конфигурация статического IP для wlan1

Отредактируйте файл /etc/dhcpcd.conf:

sudo nano /etc/dhcpcd.conf

Добавьте следующую конфигурацию:

interface wlan1
static ip_address=192.168.0.1/28

Шаг 3: Настройка NAT с использованием iptables

Чтобы предоставить доступ в Интернет клиентам, подключающимся к wlan1, нам нужно настроить NAT (преобразование сетевых адресов):

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Сохраните настройки iptables, чтобы они применялись после перезагрузки:

sudo sh -c "iptables-save > /etc/iptables/rules.v4"

Шаг 4: Включение пересылки пакетов

Включите пересылку пакетов, отредактировав файл /etc/sysctl.conf:

sudo nano /etc/sysctl.conf

Найдите строку:

#net.ipv4.ip_forward=1

Удалите #, чтобы активировать эту функцию. Затем выполните:

sudo sysctl -p

Шаг 5: Запуск служб

Перезапустите службы hostapd и dnsmasq:

sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd
sudo systemctl restart dnsmasq

Заключение

Теперь ваша Raspbian Stretch настроена как беспроводной маршрутизатор с доступом в Интернет. Клиенты смогут подключаться к вашей точке доступа и получать доступ к интернет-ресурсам. Если вы столкнетесь с проблемами в процессе настройки, проверьте настройки DHCP, NAT и маршрутизации. Настройка такого маршрутизатора может быть полезна при работе в условиях, когда доступ к физическому маршрутизатору отсутствует.

Оптимизация и безопасность

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

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

Капча загружается...