1. Установить Debian 4.0 (Etch). Описание тестировалось на netinstall-дистрибутиве, eth0 - локальная сеть 192.168.1.0/24, eth1 - внешний интерфейс. Данная версия Debian содержит Squid 2.6.5, а для этой версии несколько изменились настройки для прозрачного proxy.
2. Создать скрипт /etc/network/if-up.d/00-firewall следущего содержания:
#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin
#
# удалить все действующие правила
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
# Всегда принимать трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT
# Разрешить соединения, которые инициированы изнутри (eth0)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешить доступ из LAN-сети к внешним сетям
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
# Запретить forward извне во внутреннюю сеть
iptables -A FORWARD -i eth1 -o eth1 -j REJECT
# Включить forward
echo 1 > /proc/sys/net/ipv4/ip_forward
3. Установить proxy-сервис squid, перед этим удостоверившись, что в файле /etc/hosts указан fqdn-имя для данного сервера, иначе squid будет ругаться.
apt-get install squid
4. Поправить конфигурационный файл squid'а - /etc/squid/squid.conf
http_port 127.0.0.1:3128
http_port 192.168.1.254:3128 transparent
cache_mgr admin@example.com
acl office src 192.168.1.0/24
5. Добавить в /etc/network/if-up.d/00-firewall строки для того, чтобы была возможность использовать squid прозрачно (transparent)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 3128
После этого перегрузить для чистоты эксперимента сервер и попробовать обратиться с внутренней сети к какому-нибудь внешнему сайту. Если всё хорошо, то сайт должен открыться как и прежде, а в логах squid (/var/log/squid/access.log) должны появиться соответствующие записи.
Ссылки:
1 comments:
Спасибо!Как раз то, что было нужно.
Post a Comment