Я надеюсь, что кто-то может мне помочь - я рвал из-за этого волосы!
У меня есть 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