Squid и куча адресов

Некоторое время назад потребовалось поднять прокси на нескольких адресах, для этого я использовал программу proxy из комплекта 3proxy:

proxy -iIP -eIP -l/dev/null -d -p3128

Увы, когда адресов становится чуть больше чем несколько, это начинает утомлять своей избыточностью и кучей процессов. Поэтому было решено заменить кучу этих proxy на старый добрый squid. Ставится он из репозитория дистрибутива без всяких заморочек, поэтому опишу только конфигурацию.

acl all src all
http_access allow all
http_port 3128
access_log none
cache_store_log none
maximum_object_size 0 KB
minimum_object_size 0 KB
no_cache deny all
cache_dir null /tmp
forwarded_for off

Отключаем какой-либо контроль за входящими соединениями (их я фильтрую в iptables/ipset), логи, кеширование. Затем добавляем контроль заголовков:

# Header control
header_access Allow allow all
header_access Authorization allow all
header_access Cache-Control allow all
header_access Content-Encoding allow all
header_access Content-Length allow all
header_access Content-Type allow all
header_access Date allow all
header_access Expires allow all
header_access Host allow all
header_access If-Modified-Since allow all
header_access Last-Modified allow all
header_access Location allow all
header_access Pragma allow all
header_access Accept allow all
header_access Accept-Encoding allow all
header_access Accept-Language allow all
header_access Accept-Charset allow all
header_access Content-Language allow all
header_access Mime-Version allow all
header_access Cookie allow all
header_access Set_Cookie allow all
header_access Retry-After allow all
header_access Title allow all
header_access Connection allow all
header_access Proxy-Connection allow all
header_access Proxy-Authorization allow all
header_access Proxy-Authenticate allow all
header_access WWW-Authenticate allow all
header_access User-Agent allow all
header_access All deny all

Теперь ничего кроме заголовков, у которых указано allow за прокси не уйдет. X-Forwarded-For тоже отключен. Далее добавляем «магию» для IP-адресов:

acl ip1 myip 10.0.0.1
tcp_outgoing_address 10.0.0.1 ip1
acl ip2 myip 10.0.0.2
tcp_outgoing_address 10.0.0.2 ip2
acl ip3 myip 10.0.0.3
tcp_outgoing_address 10.0.0.3 ip3

Все, теперь все запросы, пришедшие на какой-то адрес, прокси будет отправлять с этого же адреса, что и требовалось.


Опубликовано

в

от