В чем я заблуждаюсь ?
Извините, я прочитал вашу фразу о фаерволе как:
проброс порта работает до [прозрачного] сквида. Это - заблуждение, выше я написал почему. Возможно, вы имели ввиду что-то другое, но то, о чем говорю я, является ключевым моментом проблемы со squid:
Схема работает в живой системе!
Схема не работает и не может работать при условии, что
squid запущен в прозрачном режиме (у вас это точно так?). По вашей же ссылке
http://www.opennet.ru/docs/RUS/iptables/#DNATTARGET вы в вашем решении выполнили только 2 действия из 3-х необходимых. Третье действие - цитирую:
Если вы думаете, что на этом можно остановиться, то вы ошибаетесь! Представим себе ситуацию, когда в качестве клиента выступает сам брандмауэр. Тогда, к сожалению, пакеты будут передаваться на локальный порт с номером 80 самого брандмауэра, а не на $HTTP_IP. Чтобы разрешить и эту проблему, добавим правило:
iptables -t nat -A OUTPUT --dst $INET_IP -p tcp --dport 80 -j DNAT \
--to-destination $HTTP_IP
- осталось невыполненным, и его невозможно выполнить из GUI zentyal.
Так вот, когда мы идем на наш сайт через squid, это и есть "в качестве клиента выступает сам брандмауэр", т.к. squid является локальным процессом брандмауэра (zentyal) и забирает страницу от себя, а уже потом передает нам. Если squid сам не может забрать страницу с INET_IP (см. цитату), то и нам ничего не отдаст. Это прекрасно подтверждается практикой:
Ошибка доступа к сайту с самого zentyal (websrv.test.local - имя сайта).
Ошибка доступа к сайту с клиентского компьютера (192.168.0.240 - внешний адрес zentyal. В него же наружным DNS сервером разрешается имя websrv.test.local).
Настройки:
Проброс портов. eth0 - наружный интерфейс с адресом 192.168.0.240 (INET_IP), eth1 - внутренний c IP=192.168.1.56. Локальный адрес веб-сервера - 192.168.1.253.
Настройки squid.
Статус модулей.
Стоит отключить модуль squid, или вместо этого в консоли zentyal по рекомендации из вашей ссылки выполнить команду:
iptables -t nat -A OUTPUT --dst 192.168.0.240 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.253
как сайт начинает нормально открываться.