Назад | Перейти на главную страницу

Перенаправление всего HTTP / HTTPS-трафика на порт с помощью iptables

Я пытаюсь настроить беспроводную сеть, которая направляет весь трафик на локальный веб-сервер (в основном на страницу входа в Wi-Fi в отеле).

Вот моя конфигурация dhcpd:

$ cat /etc/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.1.0 netmask 255.255.255.0 {
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.1.255;
    option routers 192.168.1.1;
#   option domain-name-servers 8.8.8.8;
    range 192.168.1.2 192.168.1.254;
}

А вот как я настраиваю iptables:

ifconfig wlan0 up
ifconfig wlan0 192.168.1.1 netmask 255.255.255.0

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

iptables --flush
iptables --table nat --flush
iptables --delete-chain

iptables -P FORWARD ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80
iptables -t nat -A POSTROUTING -j MASQUERADE

echo "1" > /proc/sys/net/ipv4/ip_forward
systemctl restart dhcpd4

Устройства, подключенные к моей сети, правильно перенаправлены на 192.168.1.1:80 если они пытаются подключиться к любому IP-адресу, но все запросы к доменным именам заканчиваются таймаутом.

Как мне заставить доменные имена указывать на мой локальный сервер (я закомментировал эту строку в своем dhcpd config, чтобы посмотреть, поможет ли это, но не помогло)? Или я ошибаюсь?

Любая помощь приветствуется.

Чтобы ответить на ваш вопрос, вам нужен DNS-сервер. Кажется, в вашей сети их нет. Подойдет либо dnsmasq, либо named. dnsmasq настроить проще, чем named

Возможно, если вы сможете подробнее сформулировать свой вопрос. Почему вы хотите перенаправить все доменные имена на компьютер? Если вы хотите отфильтровать их, IP-таблицы могут фильтровать их. Если вы хотите использовать tcpdump, https зашифрован.