Как я могу поделиться своим беспроводным соединением через интерфейс Ethernet на Ubuntu Server 24.10 на Raspberry Pi 4B?

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

Я пробовал несколько различных методов, чтобы это заработало, и не нашел решений. Каждый метод, который я пытался использовать, приводил к тому, что подключенная машина не может получить 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 — это отличный подход.

Предварительные условия

  1. Проверьте, что ваше устройство обновлено:
    Убедитесь, что у вас установлены последние обновления Ubuntu Server. Для этого выполните команды:

    sudo apt update
    sudo apt upgrade
  2. Установите необходимые пакеты:
    Для настройки сети вам потребуются несколько пакетов. Убедитесь, что dnsmasq и iptables установлены:

    sudo apt install dnsmasq iptables

Настройка сети

  1. Настройка статического 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
  2. Настройка 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
  3. Настройка 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

    Следуйте инструкциям на экране для сохранения текущих правил.

Безопасность

  1. Ограничьте доступ к вашему серверу:
    Убедитесь, что ваш сервер защищен. Установите 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
  2. Обновление пакетов:
    Регулярно обновляйте ваши пакеты, чтобы закрывать уязвимости:

    sudo apt update && sudo apt upgrade -y
  3. Мониторинг:
    Используйте инструменты мониторинга, такие как fail2ban, чтобы защититься от попыток взлома:

    sudo apt install fail2ban

Заключение

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

Следуя этим указаниям, вы создадите безопасную и функциональную среду для работы с вашим Raspberry Pi 4B.

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

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