Проблема, настраивающая прозрачный прокси

Я пытался без успеха установить прозрачный прокси на маршрутизаторе как компьютер. Большинство примеров, которые я нашел, не имеет шлюза и прокси на том же компьютере, таким образом, я могу смотреть на неправильные примеры. Вот то, как мой компьютер 'маршрутизатора' является установкой:

  • Это действует как беспроводное AP и имеет два порта LAN (только использующий один порт LAN в данный момент)
  • Это имеет DHCP и сервер DNS, настроенный на нем
  • Dansguardian и сквид являются полностью установкой (я протестировал и с telnet и с squidclient),
  • NAT через iptables все установлен и хорошо работает.

Мои текущие iptables устанавливают сценарий (да, это очень просто и позволяет слишком много. Я заблокирую его вниз намного лучше после того, как я получу прозрачную работу прокси):

LAN="wlp4s0"
WAN="enp3s0"

PROXY_PORT="8080"

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

#handle unmatched traffic
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -A INPUT -m state --state INVALID -j DROP

### Allow Loopback
iptables -A INPUT  -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
iptables -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT

#rules for NAT
iptables -A FORWARD -o $WAN -i $LAN -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE

Вот различные правила, которые я попробовал:

#I quickly get a 'website unavailable' message with this one
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j REDIRECT --to-port $PROXY_PORT

И

#Requests timeout with this one
iptables -t nat -A PREROUTING -i $LAN -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port $PROXY_PORT 

И

#Requests timeout with this one also
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j DNAT --to 192.168.0.0:$PROXY_PORT

У кого-либо есть какие-либо идеи, что я делаю неправильно? Я пропускаю другие правила или имею существующие правила, которые портят его?

1
задан 22 March 2015 в 08:15
1 ответ

Я понял это. Тот факт, что первое правило iptables -t nat -A PREROUTING -i $ LAN -p tcp --dport 80 -j REDIRECT --to-port $ PROXY_PORT не истекало по таймауту, но возвращалось с ошибка сразу была ключом.

Dansguardian настроен на прослушивание 127.0.0.1, но не 192.168.0.1 (IP-адрес сервера). Мои тесты telnet раньше использовали 127.0.0.1. Как только я попробовал протестировать telnet на 192.168.0.1, я быстро понял проблему.

0
ответ дан 4 December 2019 в 07:57

Теги

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