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

IPTABLES: маршрутизация пользователей VPN через прозрачный Squid

Я надеюсь, что кто-то может мне помочь - я рвал из-за этого волосы!

У меня есть pptpd и squid. Я хочу предоставить этим пользователям доступ к Интернету, но хочу отправлять http-трафик через прокси-сервер Squid.

Надеюсь, эта грубая диаграмма даст вам представление о том, чего я пытаюсь достичь:

VPN users connect to pptpd (via eth0)
    \ | /
      |
      |
     / \
 http   everything else
   |     |
   |     |
   |     |
squid    |
   |     |
    \   /
     \ /
      |
     NAT
      |
  internet  (via eth0)

Если я настрою следующее правило iptables, пользователи смогут подключаться к Интернету:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Я также могу подключиться к Squid напрямую, и он работает должным образом.

Теперь я надеялся, что еще одно простое правило перенаправит весь http-трафик через squid:

iptables -t nat -A PREROUTING -i ppp+ -p tcp --dport 80 -j REDIRECT --to-port 3128

Но это, похоже, не работает (я также надеюсь, что ppp + - правильное форматирование для подстановочного знака). Http-трафик никогда не перенаправляется и в обход прокси.

Может ли кто-нибудь предложить, как заставить это работать?

Боюсь, что я мало что знаю об этом. Я также хотел бы получить несколько рекомендаций о способах отладки системы, например какие файлы журналов просматривать, команды tcpdump и т. д. Я нахожу документацию по iptables крайне запутанной!

Спасибо!

Ваше правило верное, вам нужно проверить, действительно ли оно соответствует.

iptables -t nat -vnL