Здравствуйте! Поясните непонятный мне момент плиз.1) Дано: локальная сеть (192.168.1.0), подключенная через шлюз (FreeBSD 7.2) к инету. Используется ipfw. Есть три категории пользователей: а) только хттп трафик через транспарент сквид; б) пользователи, имеющие дополнительно весь открытый https (порт 443); в) пользователи которым открыто всё.
Задача: дописать исключение, которое позволит пользователям "а" заходить на один единственный хттпс сайт (онлайн банк, для проверки своих зарплат).
Реализация:
#Zavorot http zaprosov na squid
${fwcmd} add fwd ${iip},3128 tcp from ${MyLan} to any 80 via bce0
#Enable protocol "https"
${fwcmd} add divert natd tcp from 192.168.1.7 to any 443 out via bce0
${fwcmd} add divert natd tcp from 192.168.1.33 to any 443 out via bce0
${fwcmd} add divert natd tcp from 192.168.1.15 to any 443 out via bce0
#Enable "https" na bank dlya vsex
${fwcmd} add divert natd tcp from any to BANK_IP 443 out via bce0
# full access
${fwcmd} add divert natd tcp from 192.168.1.8 to any out via bce0
${fwcmd} add divert natd tcp from 192.168.1.66 to any out via bce0
${fwcmd} add divert natd tcp from 192.168.1.6 to any out via bce0
Проблема: при такой конструкции правила, доступ к банку через хттпс действительно появляется у пользователей "А". Однако, у пользователей "Б" хттпс пропадает весь целиком, в том числе и на сам банк (несмотря на глобальное, разрешающее весь ХТТПС правило), у пользователей "В" открыто все по прежнему.
Решение: поменять местами глобальные правила, разрешающее хттпс нескольким выбранным юзерам, и "точечное" правило, воздействующее на всех юзеров, но дающее доступ только на 1 сайт. В таком случае все работает как и должно!
#Zavorot http zaprosov na squid
${fwcmd} add fwd ${iip},3128 tcp from ${MyLan} to any 80 via bce0
#Enable "https" na bank dlya vsex
${fwcmd} add divert natd tcp from any to BANK_IP 443 out via bce0
#Enable protocol "https"
${fwcmd} add divert natd tcp from 192.168.1.7 to any 443 out via bce0
${fwcmd} add divert natd tcp from 192.168.1.33 to any 443 out via bce0
${fwcmd} add divert natd tcp from 192.168.1.15 to any 443 out via bce0
# full access
${fwcmd} add divert natd tcp from 192.168.1.8 to any out via bce0
${fwcmd} add divert natd tcp from 192.168.1.66 to any out via bce0
${fwcmd} add divert natd tcp from 192.168.1.6 to any out via bce0
Вопрос: почему перестановка правил вообще повлияла таким образом? Как два разрешающих правила (точечное и глобальное) превратились в одном случае в запрещающее? Поясните данный момент.