Прозрачное проксирование в связке SQUID + SuSEfirewall2



Squid - прозрачное проксирование Здравствуйте, меня уже несколько человек просило написать о том, как настроить прозрачное проксирование траффика, например, на офисном шлюзе, который, естественно, работает на openSUSE. На самом деле, ничего сложного в настройке нет, и вы сами в этом убедитесь, повторяя все за мной.

1) Устанавливаем, добавляем в автозагрузку и запускаем squid:
user@opensuse:~> sudo zypper install squid
user@opensuse:~> sudo chkconfig squid on
user@opensuse:~> service squid start

2) Настраиваем squid. В файле /etc/squid/squid.conf находим строку http_port 3128, меняем ее на:
http_port 192.168.1.1:3128 transparent
Внимание! Вместое 192.168.1.1 вам необходимо вписать адрес сервера в вашей локальной сети.. Это мы делаем для того, чтобы если вы даже где-то и ошиблись с конфигурацией файрволла, то никто извне не смог пользоваться вашим прокси сервером.

3) Перезапускаем squid:
user@opensuse:~> service squid restart

4) Настраиваем SuSEfirewall2. Находим параметр FW_REDIRECT="" в файле /etc/sysconfig/SuSEfirewall2 и меняем на:
FW_REDIRECT="192.168.1.0/24,0/0,tcp,80,3128"
Внимание! Вместо 192.168.1.0/24 вам необходимо вписать адрес и маску вашей локальной сети.Этот параметр так же требует, чтобы FW_ROUTE="yes" , если у вас уже настроен роутинг то значит все окей, если нет, ищите параметр в этом же файле и выставляйте правильно.

5) Перезапускаем SuSEfirewall2:
service SuSEfirewall2_setup restart

Все, уже после этого, у вас весь траффик будет идти через squid.

Оптимизация кэширования

К выше сказанному хочется добавить несколько советов по оптимизации КЭШа. Добавьте в конец /etc/squid/squid.conf следующие опции:

# Максимальный размер файла который может быть сохранен в кэше.
maximum_object_size 64 MB
# Параметры определяет какие файлы в кэше будут заменены, когда необходимо место в кэше.
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
# Описание
reload_into_ims on
# Оптимизация кэширования, путем игнорирования некоторых заголовков.
refresh_pattern -i (cam|kam|live|stream).*\.(gif|jpeg|jpg)(\?.*|)$ 10 20% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.(gif|jpeg|jpg|swf|png|bmp|pic)$ 2880 20% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.(html|php|asp|dll|htm|aspx|mspx|shtml|cgi|php3|jse|phtml|po|pl|fcgi|jsp|py|php4)$ 10 20% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private
refresh_pattern -i \.(js|css|class|jar|xml|txt|cfm|doc|xls|pdf)$ 2880 20% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.(exe|gz|tar|tgz|zip|arj|ace|bin|cab|msi)(\?.*|)$ 10 20% 2880 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.(mid|mp[234]|wav|ram|rm|au)(\?.*|)$ 2880 20% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern -i \.(mpg|mpeg|avi|asf|wmv|wma)(\?.*|)$ 2880 20% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private ignore-auth
refresh_pattern . 0 20% 2880 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private

Информация об опциях squid очень подробно расписана, разумеется, здесь

Подводные камни: если у вас в локальной сети есть свой вебсервер, вы столкнетесь с тем, что все внутренние клиенты будут иметь адрес шлюза. Вы можете использовать mod_rpaf(для apache) или немного модифицировать правила SuSEfirewall2

Тех, кто дочитал до конца, поздравляю с прошедшим старым новым годом! :-)

GD Star Rating
loading...
Прозрачное проксирование в связке SQUID + SuSEfirewall2, 10.0 out of 10 based on 5 ratings

15.01.2011 · Сергей · 3 комментария (-ев)
Метки: ,  · Рубрики: Linux/SuSE

3 комментария (-ев)

  1. rng-tool - 25.04.2011

    Спасибо большое. Для полноты картины не хватает маленькой статейки по настройке PPPoE на шлюзе и хостах в локальной сети, а также поднятие беспроводной сети.
    Жаль, что автор надолго покинул нас, но мы подождем.
    Хотелось бы услышать отзыв о openSUSE 11.4 и KDE 4.6.
    Извините за беспокойство.

  2. ZULI - 16.09.2011

    Все бы ничего, но вот squid-3.0 выдает
    refreshAddToList: Invalid regular expression ‘\.(mpg|mpeg|avi|asf|wmv|wma)(\?.*|)$’: empty (sub)expression и так кучу раз на каждую строку

  3. serg - 01.11.2011

    а как сделать так чтоб через squid шёл не только 80, но и 443 порт?