воскресенье, 18 января 2009 г.
Squid
squid -k parse - проверка синтаксиса конфига
squid -k reconfigure - перечитать конфиг
/usr/local/etc/rc.d/squid start запускаем сквид
squid.conf если ставили из портов лежит /usr/local/etc/squid/ Там же лежит squid.conf.default - в нем можно почитать как правильно писать правила.
Самое элементарное, что нам после установки следует сделать, так это разрешить доступ пользователям нашей локальной сети. Для этого служат параметры http_port, http_access. Кроме этого, мы заведем acl (список контроля доступа) для нашей локальной сети.
http_port нам нужен постольку, поскольку наш прокси сервер Squid должен обслуживать только компьютеры нашей локальной сети и быть невидимым для внешнего мира, дабы исключить возможность “плохим людям” внешней сети воспользоваться нашим каналом или трафиком, а в случае, если будут обнаружены “дыры” в коде прокси сервера
Squid, воспользоваться ими.
http_access используется для разрешения или запрещения доступа к определенным ресурсам, определенным адресам либо с определенных адресов, к определенным сайтам, по определенным протоколам, портам и всему тому, что непосредственно указано с помощью Acl (списков контроля доступа).
ВНИМАНИЕ!! Никогда не ставьте стандартные порты вроде 8080 80 или 3128 если не хотите чтобы ваш прокси легко можно было обнаружить)
http_port 1234
(ICP)Internet Cache Protocol для открытия возможности использования кешей соседних squid прокси
Прописывать свои списки доступа (acl) и разрешения/запреты доступа (http_access) нужно между строками
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
и
And finally deny all other access to this proxy
http_access deny all
Порядок задания acl несущественен, а вот порядок следования инструкций http_access крайне важен, т.к. инструкции просматриваются от начала файла к концу, и любая сработавшая инструкция прекращает дальнейший просмотр. Если есть правило с исключениями, надо сначала задать исключения из правила, а потом само правило
If you are trying to use transparent options for squid version above 2.6, and you get the following errors:
# /usr/local/etc/rc.d/squid start
# Starting squid.
# 2007/04/10 17:53:42| parseConfigFile: line 47 unrecognized: 'httpd_accel_host virtual'
# 2007/04/10 17:53:42| parseConfigFile: line 48 unrecognized: 'httpd_accel_port 80'
# 2007/04/10 17:53:42| parseConfigFile: line 49 unrecognized: 'httpd_accel_with_proxy on'
# 2007/04/10 17:53:42| parseConfigFile: line 50 unrecognized: 'httpd_accel_uses_host_header on'
Instead of these lines just use the following:
# http_port 86.12.1.1:8080 transparent
Прозрачный squid
http_port 192.168.1.1:3129 (можна без IP просто порт)
http_port 3128 transparent
icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 128 MB
maximum_object_size 80000 KB
ipcache_size 1024
ipcache_low 90
ipcache_high 95
cache_dir diskd /mnt/squid 28000 32 512 Q1=72 Q2=64
log_fqdn off
logfile_rotate 10
dns_nameservers 10.0.0.1
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
#next, remove
acl localnet src 10.0.0.0/255.255.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 210 1025-65535 280 488 591 777
acl CONNECT method CONNECT
acl all src 0.0.0.0/0.0.0.0
http_access deny !Safe_ports
http_access allow localnet
http_reply_access allow all
visible_hostname localhost
Поддержка видов авторизации SQUID
NTLM авторизация в домене Windows. WEB интерфейс позволяет импортировать пользователей из домена Windows
NCSA авторизация. WEB интерфейс позволяет импортировать пользователей из файла, созданного htpasswd
доступ по ip адресу