Вопрос или проблема
Я пробовал несколько различных методов, чтобы это заработало, и не нашел решений. Каждый метод, который я пытался использовать, приводил к тому, что подключенная машина не может получить IP-адрес. Все эти методы использовали dnsmasq и iptables для создания DHCP-сервера (это не обязательно, я бы предпочел оставить статический IP) и перенаправления трафика через интерфейс.
В настоящее время я добился работы с помощью Ubuntu Desktop 24.10, используя графический интерфейс Network Manager в Настройках. Однако это только первая задача для RPi из нескольких серверных задач, которые запланированы для него, и я хотел бы избежать необходимости использовать Ubuntu Desktop, если это возможно, из-за графических затрат, а также из-за дополнительных преимуществ безопасности Ubuntu Server.
Некоторые ключевые моменты:
- Устройство – Raspberry Pi 4B (8 ГБ ОЗУ).
- Предпочтительная версия Ubuntu – Ubuntu Server 24.10.
- Устройство будет подключаться к моей беспроводной сети, обеспечивая проводное соединение через свой Ethernet-порт с другой машиной, которая не имеет беспроводных возможностей.
- Решение должно быть простым и не усложненным, так как это что-то, что мне нужно будет регулярно поддерживать, и я не хочу слишком много накладных расходов, чтобы это работало без сбоев.
- Я хотел бы, возможно, сохранить подключенную машину в одной подсети/VLAN с Pi (Pi имеет статический локальный IP 192.168.1.200), хотя это не совершенно необходимо, особенно если есть преимущества безопасности в том, чтобы подключенная машина находилась в своей собственный подсети, за Pi. Тем не менее, мне все же нужно будет перенаправлять трафик к подключенной машине, так как в конечном итоге она будет хостить несколько веб- и файловых серверов.
- Pi и подключенная машина будут хостить веб-сервисы для меня, так что безопасность – это обязательно. Любые советы по укреплению безопасности будут весьма полезны!
Спасибо заранее! Я знаю, что, вероятно, упускаю что-то простое.
Ответ или решение
Чтобы поделиться беспроводным подключением через Ethernet-интерфейс на Ubuntu Server 24.10 на Raspberry Pi 4B, необходимо выполнить несколько шагов. Мы сосредоточимся на настройке Ubuntu Server как маршрутизатора, который будет передавать трафик между Wi-Fi и Ethernet. Ваше требование сохранить простоту и при этом обеспечить безопасность при помощи статического IP — это отличный подход.
Предварительные условия
-
Проверьте, что ваше устройство обновлено:
Убедитесь, что у вас установлены последние обновления Ubuntu Server. Для этого выполните команды:sudo apt update sudo apt upgrade
-
Установите необходимые пакеты:
Для настройки сети вам потребуются несколько пакетов. Убедитесь, чтоdnsmasq
иiptables
установлены:sudo apt install dnsmasq iptables
Настройка сети
-
Настройка статического IP для Ethernet:
Откройте файл конфигурации сети с помощью вашего любимого редактора (например,nano
):sudo nano /etc/netplan/01-netcfg.yaml
Добавьте или измените следующие строки, чтобы настроить статический IP для Ethernet-интерфейса (в данном случае eth0):
network: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.1.200/24 gateway4: 192.168.1.1 # ваш маршрутизатор nameservers: addresses: - 8.8.8.8 - 8.8.4.4 wifis: wlan0: dhcp4: yes optional: true access-points: "Ваш_SSID": password: "Ваш_пароль"
Сохраните изменения и примените их:
sudo netplan apply
-
Настройка DHCP для Ethernet:
В данном случае вы можете использоватьdnsmasq
для предоставления статического IP-адреса для подключаемого устройства. Отредактируйте файл конфигурацииdnsmasq
:sudo nano /etc/dnsmasq.conf
Добавьте следующие строки в конфигурацию:
interface=eth0 dhcp-range=192.168.1.201,192.168.1.210,255.255.255.0,24h
Перезапустите
dnsmasq
, чтобы применить изменения:sudo systemctl restart dnsmasq
-
Настройка iptables:
Настройте правилаiptables
для маршрутизации трафика между Ethernet и Wi-Fi:sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT sudo iptables -A FORWARD -o wlan0 -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Чтобы сделать эти правила постоянными, сохраните правила iptables:
sudo apt install iptables-persistent
Следуйте инструкциям на экране для сохранения текущих правил.
Безопасность
-
Ограничьте доступ к вашему серверу:
Убедитесь, что ваш сервер защищен. Установитеufw
и настройте файрвол:sudo apt install ufw sudo ufw allow ssh sudo ufw allow from 192.168.1.0/24 to any port 80 sudo ufw allow from 192.168.1.0/24 to any port 443 sudo ufw enable
-
Обновление пакетов:
Регулярно обновляйте ваши пакеты, чтобы закрывать уязвимости:sudo apt update && sudo apt upgrade -y
-
Мониторинг:
Используйте инструменты мониторинга, такие какfail2ban
, чтобы защититься от попыток взлома:sudo apt install fail2ban
Заключение
После завершения вышеуказанных шагов ваше устройство будет готово делиться своим беспроводным подключением через Ethernet. Подключенное устройство должно получать IP-адрес в диапазоне, который вы указали в конфигурации dnsmasq
. Этот метод обеспечивает стабильную работу и позволяет избежать лишней сложности в поддержке.
Следуя этим указаниям, вы создадите безопасную и функциональную среду для работы с вашим Raspberry Pi 4B.