Итак, нужно настроить прокси сервер. Я выбрал squid. Задача - доступ в интернет по паре логин/пароль, запретить доступ к порно сайтам, запретить рекламу и остальную ерунду мешающую работать в интернете.
Обновляем порты и ставим squid
# cd /usr/ports/www/squid
# make install cleanВ окне выбора опций компиляции я оставил следующие галочки:
- SQUID_CARP - включить протокол squid CARP
- SQUID_SSL - разрешить защищенные соединения через squid
- SQUID_WCCP - включить протокол WCCP
- SQUID_IDENT - разрешить запросы ident (RFC 931)
- SQUID_ARP_ACL - разрешить использовать в ACL MAC адреса
- SQUID_PF - разрешить прозрачное проксирование через PF
- SQUID_AUFS - включить хранилище aufs
- SQUID_KQUEUE - использовать системный вызов kqueue для работы с сокетами
- SQUID_LARGEFILE - поддержка больших размеров лог файлов
На счет хранилища aufs - похоже на ufs, только не блокируется главный процесс при работе с дисками, что ускоряет работу.
После установки правим конфигурационный файл /usr/local/etc/squid/squid.conf. У меня получился такой:
# Настраиваем авторизацию пользователей
# Информация о пользователях для авторизации будет браться из файла
auth_param basic program /usr/local/libexec/squid/ncsa_auth /usr/local/etc/squid/squid.passwd
# Количество процессов авторизации
auth_param basic children 1
# Приглашение выводимое в браузере
auth_param basic realm Proxy-caching web server on srv-home
# Как долго сохранять результат удачной попытки авторизации
auth_param basic credentialsttl 2 hours
# Учитывать регистр вводимых данных
auth_param basic casesensitive off
# Настройка acl
acl manager proto cache_object
acl QUERY urlpath_regex cgi-bin \?
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl all src all
#acl localnet src 10.0.0.0/8 # RFC1918
#acl localnet src 172.16.0.0/12 # RFC1918
#acl localnet src 192.168.0.0/16 # RFC1918
acl all_net src 192.168.7.0/24
#acl localnet src 192.168.7.71-192.168.7.100
acl mac_komp arp 00:1E:8C:E3:B7:36
acl mac_asus_wifi arp 00:15:AF:A4:F5:2E
acl mac_asus_eth arp 00:1F:C6:E9:13:9E
# Локальные ресурсы
acl local_domain dstdomain .home.ru
acl no_cache_dlink dst 192.168.7.252
acl no_cache_acorp dst 192.168.1.1
# Порты, к которым можно обращаться через squid
acl SSL_ports port 443 5190 5222 5999
acl Safe_ports port 80 # http
acl Safe_ports port 8080 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 3128 # squid
#acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 5190 # icq
acl Safe_ports port 5222 # xmpp
acl Safe_ports port 5999 # cvs
acl Safe_ports port 7777 # fora
acl CONNECT method CONNECT
acl users proxy_auth REQUIRED
# Сайты, к которым запрещен доступ
# Формат файлов очень прост, каждый домен должен быть в новой строке,
# точка в начале имени домена означает - включая все поддомены.
acl porn_sites dstdomain "/usr/local/squid/blacklist/porn"
acl adv_sites dstdomain "/usr/local/squid/blacklist/adv"
# Собственно правила доступа. Проход останавливается
# на первом совпавшем правиле.
http_access allow manager localhost
http_access deny manager
http_access deny porn_sites
http_access deny adv_sites
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost
http_access allow all_net local_domain
http_access allow mac_komp
http_access allow mac_asus_wifi
http_access allow mac_asus_eth
#http_access allow localnet
http_access allow users
http_access deny all
# Запрещаем кэширование локальных ресурсов
cache deny local_domain
cache deny no_cache_dlink
cache deny no_cache_acorp
cache deny QUERY
# Вешаем сквид на порт 3128 и определенный ip.
# И указываем ему, что он так же будет работать прозрачно.
http_port 192.168.7.250:3128 transparent
# Не кэшировать результаты работы скриптов
hierarchy_stoplist cgi-bin ?
# Говорит сквиду, сколько ему можно слопать памяти для внутренних объектов
cache_mem 256 MB
# Максимальный размер объекта в памяти
maximum_object_size_in_memory 512 KB
# Параметры директории, где будет храниться кэш
cache_dir aufs /varl/squid/cache 5120 16 256
# Пути к лог файлам
access_log /var/squid/logs/access.log squid
cache_log /var/squid/logs/cache.log
cache_store_log /var/squid/logs/store.log
# Параметры кеширования
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# Время кеширования удачных и неудачных ответов от DNS сервера
positive_dns_ttl 2 minute
negative_dns_ttl 30 second
# ICP порт. 0 - вырубить протокол icp
icp_port 0
# Не обновлять запросы HTTP к ShoutCast до актуальной версии
# протокола HTTP.
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
# Модули Apache - mod_gzip и mod_deflate иногда могут генерить кривые заголовки,
# поэтому не стоит доверять апачу, а именно что заголовок ETag выставлен
# правильно.
# P.S. взято из конфига-примера, оттуда же объяснение.
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
# Отображаемое имя хоста на страницах об ошибках
#visible_hostname "srv-home.local"
# Адрес админа, так же отображаетя на страницах об ошибках
cache_mgr admin@srv-home.local
# Шаблоны страниц ошибок
error_directory /usr/local/etc/squid/errors/Russian-1251
# Группа и пользователь, под которыми работает squid
cache_effective_user squid
cache_effective_group squid
# Разрешить сквиду оставлять себе память (если сейчас она не нужна)
# для дальнейшего использования. Выключите, если памяти на вашей
# машине мало и она может понадобится для других целей.
memory_pools on
# Максимальный размер удерживаемого пула. Пулы, превышающие
# указанный здесь размер будут освобождены.
memory_pools_limit 1 MBТеперь, когда конфиг готов нужно инициализировать кэш:
# squid -zСтавим squid в автозагрузку и запускаем:
# echo 'squid_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/squid startПроверяем работу процесса:
# sockstat | grep squidДолжно вывести примерно следующее:
squid ncsa_auth 68011 0 stream -> ??
squid ncsa_auth 68011 1 stream -> ??
squid squid 50223 3 dgram -> /var/run/log
squid squid 50223 8 udp4 *:55454 *:*
squid squid 50223 10 stream -> ??
squid squid 50223 14 tcp4 192.168.7.250:3128 *:*
squid squid 50223 16 udp4 *:3130 *:*Ну вот, как видно все работает. Пользуемся :)
Обсуждение статьи
пн, 16/04/2012 - 03:21
пн, 16/04/2012 - 15:31
Кстати, данная тулза ставится вместе с Apache,ем.
сб, 23/06/2012 - 14:39
Здравствуйте есть сервер на нем настроен прокси сервер всё работает замечательно но надо чтобы один компьютер не был привязан к прокси и выходил в интернет без него ( IP у компа статический )
вс, 24/06/2012 - 12:14
Для этого компьютера настроить NAT через фаервол и естественно убрать на том компе настройки прокси.
Если проксирование прозрачное, то в фаере правила NAT для этого компа поместить раньше правила, заворачивающего траффик на проксю.
вт, 10/09/2013 - 01:20
А какое правило в IPFW заворачивает весь траффик на проксю? И кстати если сквид будет работать прозрачно не поимеем ли мы гемора с HTTPS ?
вт, 10/09/2013 - 18:50
Примерно такое:
ipfw add 1234 fwd PROXY_IP,PROXY_PORT tcp from 192.168.0.0./24 to any 80 out via EXT_IF
и сквид надо собирать из портов с поддержкой IPFW.
Не поимеем, поскольку правило в IPFW можно создать конкретно для HTTP (пример выше). Хотя я слышал/читал где-то, что можно и HTTPS завернуть прозрачно, но я это не проверял.
пн, 27/10/2025 - 14:20
Can't get enough of good vintage wine. Whether it's rred or white, wine
alkways makes the moment better. Are there anyy wine lover around?
#RedWine
Feel free to visikt mmy webb page ขาย ไวน์
пн, 27/10/2025 - 15:39
I'm a huge fan off good vintage wine. From a local vineyard
or imported, it just elevates any occasion. Who else enjoyss
wine tasting? #RedWine
Also visit my web page ... ไวน์ราคาถูก
пн, 27/10/2025 - 16:24
I'm a huge fan of good vintage wine. Doesn’t matter if it’s dry or sweet, it just elevates any occasion. Are there any wine lovers
around?
Feel free to surf to my webpage: Virgie
пн, 27/10/2025 - 16:30
I'm a huge fan oof god wine. Whether it's red or white, it’s the perfect way to relax.
Are there any wine lovers around?
Here is my site; ไวน์
пн, 27/10/2025 - 18:06
I'm a huge fan of good glass of wine. From a local vineyard or imported, it just
elevates aany occasion. Who else enjoys wine tasting?
Feel free too surf to my web page ขายไวน์ -
https://theterritorian.com.au/index.php?page=user&action=pub_profile&id=2525529
Добавить комментарий