Создание маршрутизатора на основе Linux-машины

Возможности:

  • Автоматическое назначение IP-адресов по DHCP всем подключаемым к локальной сети устройствам.
  • Автоматическое восстановление соединения с интернет-провайдером в случае потери связи.
  • Файрвол.

Понадобится внешний статический IP-адрес и Linux-машина с минимум двумя физическими сетевыми интерфейсами (1 для локальной сети и 1 для WAN).

В примере используется ОС Debian.

Разрешите пересылку пакетов между сетями, в /etc/sysctl.conf укажите:

net.ipv4.ip_forward = 1

Затем выполните:

# sysctl -p /etc/sysctl.conf

Сконфигурируйте статический интерфейс для локальной сети (eth1), в /etc/network/interfaces укажите:

auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.15.1
mask 255.255.255.0

В качестве DNS- и DHCP-сервера воспользуемся dnsmasq, предварительно понадобится удалить avahi-daemon и avahi-autoipd:

# apt purge avahi-daemon avahi-autoipd
# apt install dnsmasq

В /etc/dnsmasq.d/custom укажите параметры для DHCP:

no-dhcp-interface=eth0
dhcp-range=192.168.15.2,192.168.15.200,12h
dhcp-authoritative
dhcp-option=2,255.255.255.0
dhcp-option=3,192.168.15.1
dhcp-option=6,1.1.1.1,1.0.0.1

Использованы DNS CloudFlare.

Настройте файрвол (важно!). Все входящие пакеты из WAN-сети запретим, кроме тех, которые относится к уже установленным (established), зависимым (related) соединениям:

# WAN=eth0
# LOC=eth1
# iptables -t nat -A POSTROUTING -o $WAN -s 192.168.15.0/24 -j MASQUERADE
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -i $LOC -p icmp -j ACCEPT
# iptables -A INPUT -i $LOC -j ACCEPT
# iptables -P INPUT DROP
# iptables -P OUTPUT ACCEPT

Обязательно сохраните правила:

# apt install iptables-persistent
# iptables-save > /etc/iptables/rules.v4

Убедитесь, что после перезагрузки системы правила для файрвола применились. Не будет лишним проверить внешний IP на наличие открытых портов.

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

Личный роутер готов, адрес шлюза: 192.168.15.1.