Я настроил две виртуальные машины под управлением Debian Wheezy, чтобы использовать их как серверную и клиентскую системы в одной сети NAT. Они оба могут связаться друг с другом, как показывает пинг.
Сегодня я настроил прокси-сервер Squid на сервере, но ни доступ к прокси-серверу с помощью аутентификации PAM, ни доступ к нему путем перенаправления HTTP-трафика на его порт (после настройки Squid в качестве прозрачного прокси-сервера) не работали, и даже после того, как я потратил часы на проверку и изменение конфигурация Я не смог решить эту проблему.
Однако конкретный вопрос, который я хотел бы здесь задать, скорее связан с совершенно странным поведением записи iptable, которая обычно должна перенаправлять HTTP-трафик на порт Squid.И хотя я также потратил довольно много времени на поиск этого, я не смог найти никого, кто бы испытывал подобное поведение.
Команду iptables довольно легко понять, я бы сказал:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128
Запись также отображается в цепочке PREROUTING таблицы NAT:
iptables -t nat -L -n -v
Цепочка PREROUTING (политика ACCEPT 10 пакетов, 4249 байтов) pkts bytes target prot opt in source destination
0 0 REDIRECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 3128
Тем не менее, это правило игнорируется, поскольку traceroute показывает не IP-адрес NAT моего прокси-сервера Squid в качестве первого перехода, а стандартный шлюз (10.0.0.1). Журналы Squid также показывают, что он не получает никаких запросов.
Я настроил это как часть различных задач администрирования Linux, и несколько других людей, которые использовали точно такую же конфигурацию в идентичной виртуальной системе Debian Wheezy (включая такую же конфигурацию NAT Virtual Box для серверной и клиентской систем), не обнаружили никаких проблемы с этим у всех. Опытный системный администратор Linux тоже не смог найти объяснения этому странному явлению.
Я могу заходить на веб-сайты, поэтому я думаю, что цепочка PREROUTING просто игнорируется.
Поскольку мне действительно интересно, в чем может быть причина такого поведения, я запустил strace для команд iptables, возможно, в выводе есть что-то, что помогает найти объяснение:
strace iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128
strace iptables -t нат -L -n -v
Я был бы очень признателен, если бы кто-нибудь догадался, в чем может быть причина такого странного поведения.
заранее спасибо
Дэвид