понедельник, 19 ноября 2012 г.

Squid: Как не допустить превращения прокси в публичный


Дело в следующем. Катастрофическое снижение входной планки в IT приводит к тому, что ламаки заполонили все доступное пространство и не знают даже таких очевидных вещей.

Побуду и я Капитаном Очевидность. :) Как говорится, покапитаню. :)

 Задача ограничения доступа извне к локальному сквиду средствами сквида 2 не решается, к сожалению. Дело в том, что прозрачный прокси (в особенности в отсутствие аутентификации) в простых инфраструктурах действительно доступен извне при малейших огрехах в конфигурации роутера.

Итак, проблема в том, что Squid 2 слушает адрес 0.0.0.0 и в большинстве случаев его собственными средствами ограничить доступ к порту 3128 не получится.

Что ж, мы в любом случае имеем дело с транспарентным прокси и у нас в распоряжении имеется файрвол (Solaris 10, Ipfilter). 

Сделаем это:

root @ ktulhu / # cat /etc/ipf/ipnat.conf 
rdr bge0 0.0.0.0/0 port 80 -> 0/32 port 3128 

root @ ktulhu / # cat /etc/ipf/ipf.conf
# Transparent proxy host 
# Host with one interface: 
# bge0 - internal (ktulhu) 
# Rules by Y.Voinov (C) 2007,2012 

# Block rules for RPC (open firewall) 

block return-rst in quick from any to any port=111 
block return-rst in quick from any to any port=6112 

# Restrict access to proxy only from localnet 
pass in quick proto tcp from 192.168.0.0/16 to ktulhu port=3128 flags S keep state keep frag 
# Restrict access to local Apache ports from LAN only 
pass in quick proto tcp from 192.168.0.0/16 to ktulhu port=8080 flags S keep state keep frag 
pass in quick proto tcp from 192.168.0.0/16 to ktulhu port=8088 flags S keep state keep frag

Из приведенной конфигурации следует, что за спиной нашего прокси есть группа сетей 192.168.0.0, со стороны которых осуществляется доступ к прокси-серверу. И мы открываем два порта к веб-серверу, используемому совместно с прокси со стороны тех же локальных сетей. 

Вот и все. Конфигурация проста и эффективна. Сервисы со стороны открытых портов не запущены либо минимизированы.