Настройка для hostapd, iptables и squid


Я пытаюсь установить точку доступа, похожую на те, что в аэропортах и ​​тому подобное. Таким образом, в основном, люди могут подключиться к сети, приземлиться на заставку, а затем пройти аутентификацию на прокси-сервере.

До сих пор мне удавалось настроить squid и iptables для перенаправления пакетов 80/443 с моей тестовой установкой, но очевидно, что в наши дни люди также хотят, чтобы их WhatsApp и другие работали, но я не могу заставить работать их. .

Я уже пробовал кучу вещей, моя текущая настройка читает следующее (в качестве теста для WhatsApp):

squid3.conf

[...]
acl Safe_ports port 4244
acl Safe_ports port 5242
acl Safe_ports port 5228
acl Safe_ports port 5223
acl Safe_ports port 5222
[...]

iptables

-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 4244 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5242 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5228 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5223 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5222 -j REDIRECT --to-ports 3128


Это настройка, которую я пытался заставить WhatsApp общаться, но, очевидно, не получится. Теперь, до того как я установил squid, я использовал hostapd просто для маршрутизации пакетов, например,

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE

, что обеспечивало полный доступ в Интернет, что мне нравилось. Итак, у меня сейчас 2 вопроса.

  1. Можно ли настроить iptables таким образом, чтобы только пользователи, прошедшие проверку squid, могли получить полный доступ в Интернет, как описано выше? Если так, то это немедленно решит все мои проблемы.
  2. Если нет, то как бы выглядела базовая настройка WhatsApp?

Вероятно, стоит упомянуть: я пробовал «дрони» для Android, чтобы прокси цепочку WhatsApp из-за его страданий, но я не Тоже не везет.
Любая помощь приветствуется. Спасибо!



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

iptables -t nat -A PREROUTING -i eth0 ! -s 192.168.2.1 -p tcp -j DNAT --to 192.168.2.1:3128
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0 -d 192.168.2.1 -j SNAT --to 192.168.2.1:3128

По сути, если я все понял правильно, это должно передать все пакеты на прокси squid (входящие и исходящие) .... хотя бы надеюсь?

У меня также есть несколько других строк, которые, кажется, могут решить проблему, но пока у меня не было никакого успеха. Строка будет

iptables -A FORWARD -s 192.168.2.0 -d 192.168.2.1 -i eth0 -o eth0 -p tcp --dport 3128 -j ACCEPT

, а также изменения eth / wlan, такие как das

iptables -A FORWARD -s 192.168.2.0 -d 192.168.2.1 -i eth0 -o wlan0 -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0 -d 192.168.2.1 -i wlan0 -o eth0 -p tcp --dport 3128 -j ACCEPT

Я думаю, это не совсем проект для людей с умеренными навыками, или я просто делаю что-то нелепо неправильное. Интересно, что новые линии (кажется) прекрасно заменяют эти строки

-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3128

, поэтому я предполагаю, что я не слишком далеко, но теперь я полностью застрял.

1
задан 13 July 2016 в 18:31

0 ответов

Другие вопросы по тегам:

Похожие вопросы: