Я пытаюсь настроить прокси-сервер Squid на машине Red Hat, основанной в обычном центре обработки данных, чтобы отправлять весь мой трафик через этот прокси.
Я уже настроил squid, чтобы разрешить каждый запрос (конечно, только для тестирования :)), вот моя маленькая конфигурация:
debug_options ALL,1 33,2 28,9
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl CONNECT method CONNECT
http_access allow all
icp_access allow all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
Проблема в том, что когда я ввожу IP-адрес сервера и порт 3128 squid в firefox, у меня выходит тайм-аут ...
Как видите, я запускаю squid в режиме отладки, но файлы cache.log и access.log даже не отображают НИКАКИХ запросов. Я думал, что проблема в acl, но если это так, должна быть запись для ограниченного доступа, верно?
Я также попробовал squidclient, который прекрасно работает. Итак, я предполагаю, что проблема в том, что я по какой-то причине не могу подключиться к серверу ...
После дополнительных проверок выяснилось, что ваш брандмауэр iptables блокирует соединения с хостов. Добавьте правила для разрешения трафика SQUID в соответствии с документами RedHat: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-Firewalls-Basic_Firewall_Configuration.html
Сами правила должны выглядеть так:
-A INPUT -s <your.internal.network>/<netmask> -p tcp -m tcp --dport 3128 -j ACCEPT
-A OUTPUT -d <your.internal.network>/<netmask> -p tcp -m tcp --sport 3128 -j ACCEPT
Последнее правило необходимо только в том случае, если выходной трафик также фильтруется (у меня нет поля RHEL, чтобы проверить настройку по умолчанию). Настройка доступа только из вашей внутренней сети также очень важна для безопасности. Или вы можете настроить свой кальмар так, чтобы он слушал только внутренний интерфейс
http_port your.internal.ip.address:3128