На маршрутизаторе (Debian 6 Squeeze, ip1 10.2.16.181, ip2 192.168.56.1) с двумя сетевыми адаптерами необходимо предоставить интернет клиентской сети 192.168.56.0/24 как NAT (получаемый через шлюз по умолчанию). Сам маршрутизатор получает интернет от Squid (HTTP – IP 10.80.20.22, порт 3128, DNS – 10.10.110.10). В общем, необходимо выступить в роли прозрачного прокси для клиентской подсети 192.168.56.0/24.
Первым делом устанавливаем Squid 3, конфиг (/etc/squid3/squid.conf) такой:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
acl Net1 src 192.168.56.0/24 cache_peer 10.80.20.22 parent 3128 # Родительский Squid acl Safe_ports port 80 acl CONNECT method CONNECT http_access allow CONNECT Safe_ports http_access allow Net1 http_access allow all http_port 192.168.56.1:3128 transparent cache_effective_user proxy dns_nameservers 10.2.16.1 10.10.110.10 # Взято из /etc/hosts cache_access_log /var/log/squid3/access.log cache_log /var/log/squid3/cache.log hosts_file /etc/hosts forwarded_for on |
Теперь включаем форвардинг:
echo 1 > /proc/sys/net/ipv4/ip_forward
Чтобы форвардинг автоматически включался при запуске системы в /etc/sysctl.conf добавляем строчку:
1 |
net.ipv4.ip_forward = 1 |
Затем добавляем правила в iptables:
1 2 3 4 |
iptables -t nat -A PREROUTING -d 192.168.56.1/32 -p udp -m udp --dport 53 -j DNAT --to-destination 10.10.110.10:53 iptables -t nat -A PREROUTING -s 192.168.56.0/24 -i vboxnet0 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.56.1:3128 iptables -t nat -A PREROUTING -p tcp -d 192.168.56.1 --dport 53 -j DNAT --to-destination 10.10.110.10:53 iptables -t nat -A POSTROUTING -p udp -d 10.10.110.10 --dport 53 -j SNAT --to-source 10.2.16.181 |
Чтобы работало после перезагрузки, сохраняем настройки iptables в файл:
sudo iptables-save > /etc/iptables.rooslan
И добавляем в конец файла /etc/network/interfaces:
pre-up iptables-restore < /etc/iptables.rooslan
Не забудьте у клиента в качестве DNS-сервера и шлюза по умолчанию выставить свой IP-адрес (192.168.56.1)
11.07.2012
25.01.2013