Архив заметок

squid

Подписаться на эту метку по RSS

SQUID в качестве обычного прокси

Просмотров: 2233Комментарии: 0
FreeBSD

Всем привет!

Данная запись не преследует цели описать конфигурацию кэширующего и прозрачного squid сервера с файрволлом или интеграцией с AD. Родилась идея настроить на VPS прокси сервачок для личных нужд с жирным каналом. Для этого я взял за основу систему FreeBSD 12. Начнем:

# uname -srm
FreeBSD 12.0-RELEASE-p8 amd64

Конфиг squid(на эту дату версия 4.8)

http_port ваш_ip:3128
auth_param basic program /usr/local/libexec/squid/basic_ncsa_auth /usr/local/etc/squid/passwd
auth_param basic children 5
auth_param basic realm please sug min den
auth_param basic credentialsttl 2 hours
visible_hostname "proxy"
acl ncsa_users proxy_auth REQUIRED
acl SSL_ports port 443
acl Safe_ports port 80          # 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 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 CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost
http_access allow ncsa_users
http_access deny all
access_log /var/log/squid/access.log squid
logfile_rotate 0
via off
forwarded_for off
follow_x_forwarded_for deny all
request_header_access X-Forwarded-For deny all
#logformat squid %tl %6tr %>a %Ss/Hs %<st %rm %ru %un %Sh/%<A %mt
client_db on
dns_defnames on
httpd_suppress_version_string on
retry_on_error on
uri_whitespace strip
strip_query_terms off
cache deny all
#cache_dir null /tmp
ident_lookup_access deny all
#deny_info [URL]http://proxy/blocked.html[/URL] adsites
acl ads dstdom_regex "/usr/local/etc/squid/ad_block.txt"
http_access deny ads

Для создания файла с учетками нужна программка htpasswd, а ставить apache из-за одной проги не комильфо. В портах есть такая штука security/py-htpasswd или можно установить из пакетов, кому как удобнее.

Далее организовать ссылочку:

# ln -s /usr/local/bin/htpasswd.py /usr/local/bin/htpasswd
# rehash

Делаем учетку с паролем:

#htpasswd -cb /usr/local/etc/squid/passwd user password

Почти готово. Теперь надо в файлик ad_block.txt закачать ссылки по рекламе для блокировки. Взял данную фишку отсюда.

Создаем скрипт:

curl -sS -L --compressed "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=nohtml&showintro=0&mimetype=plaintext" > /usr/local/etc/squid/ad_block.txt
## refresh squid
/usr/local/sbin/squid -k reconfigure

Делаем исполняемым:

# chmod +x ad_servers_newlist.sh

И в cron его(я использую рутовый):

# crontab -e
35   5    *   *   */3 /root/ad_servers_newlist.sh >> /dev/null 2>&1