Home
›
News
Настройка прокси-сервера Squid для начинающих. Linux.
06.09.2018
Как настроить прокси-серверДобрый день! Сегодня я Вам расскажу о прокси-сервере под Linux. На сегодняшний день наиболее популярным прокси-сервером в ОС (Операционной Системе) Linux, является Squid , именно поэтому хочу рассказать о настройке данного опенсорсного программного продукта для Linux.
Squid (он же «кальмар» с англ. языка) — программный продукт, являющийся кеширующим прокси-сервером для таких протоколов, как HTTP, FTP, Gopher и HTTPS (если настроите). Данный продукт является опенсорсным, а значит программа с открытым исходным кодом (распространяется по лицензии GNU GPL).
🛠 Универсальный прокси сервер Shadowsock на Debian 9.1 🛠 Установка, настройка на все платформы.
Открываем и редактируем файл: /etc/squid/squid.conf . Довольно часто бывают случаю, когда неопытные пользователи могут не правильно его отредактировать, в этом случае посмотреть файл можно здесь: /usr/share/doc/squid/examples/squid.conf
Скрипт настройки прокси на Ubuntu
После внесения изменений перезапускаем сервис: #sudo service squid restart
Ну и собственно говоря привожу некоторые возможности SQUID (с детальным описанием). Про другие возможности можно почитать выполнив команду man squid или sudo less /etc/squid/squid.conf после установки самой программы squid.
# Указываем порт работы SQUID. Этот же порт необходимо использовать для настройки
# доступа клиентов, для которых собственно мы и настраиваем наш прокси-сервер.
http_port 3128
# Порт ICP для использования Вашего SQUID как родительский прокси.
# "1" - включить, "0" - #отключить.
icp_port 0
#Не кешировать скрипты.
#Если у вас появиться желание кешировать, меняете, deny на allow.
acl QUERY urlpath_regex cgi-bin
no_cache deny QUERY
# Объем "быстрого" кеширования в ОЗУ сервера, для веб-страниц и других действий
# веб-клиентов, которые в данный момент пользуются прокси.
cache_mem 54 MB
# Формат хранения кеша SQUID - ufs. Размер кеша: 100мб.
# Остальные две цифры - количество каталогов и подкаталогов, которые будут
# использоватся для хранения данных.
cache_dir ufs /var/spool/squid 100 16 256
# Путь к log-файлу доступа SQUID.
# В нем хранится статистика использования SUID, по ip-адрессам.
cache_access_log /var/log/squid/access.log
#Путь к log-файлу запуска и действий программы SQUID и процессов.
cache_log /var/log/squid/cache.log
# Путь к log-файлу store.
cache_store_log /var/log/squid/store.log
# Параметр, который определяет тип rotate лгово, которые выполняются командой
# "squid -k rotate". Команду желательно использовать для формирования отчетов.
logfile_rotate 10
# Email Администратора сервера для оповещения серьезных ошибок:
cache_mgr
[email protected]
# Параметры для работы з FTP-серверами.
# Анонимный пользователь к FTP
ftp_user anonymous@
# SQUID формирует страницу с папками на ftp.
# Этот параметр - максимальное количество символов в названиях,
# которые покажет прокси-сервер, длинее названия он просто обрежет.
ftp_list_width 32
# Пасивнsй режим FTP.
# Если Ваш фаервол не разрешает использовать сквиду пасивный конект,
# необходимо установить значение off.
ftp_passive on
# Проверка FTP
ftp_sanitycheck on
# Адреса DNS-серверов, которые будет использовать SQUID
#(к примеру у меня первичный и вторичный 10.7.1.23 10.7.1.24).
dns_nameservers
Доступ к сквиду с использованием логина/пароля.(*)
# Чтобы пользоваться такой аутентификацией для начала необходимо выполнить команду в
# терминале: htpasswd -c /etc/squid/passwd username , ключ -с необходимо использовать
# только при первом запуске, для создания файла, иначе затрете файл. Далее дописываем строки:
#auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
# адрес /usr/lib/squid/ncsa_auth может быть другим, в зависимости от вашего дистрибутива.
# Это для Ubuntu 9.10.
#auth_param basic realm Office proxy-caching web server
# Squid proxy-caching web server - слова при авторизации, можете сменить на что захотите.
# Описываем группу логинов, которым будет доступный коннект к сквиду.
# Для работы необходимо обязательно выполнить указания (*).
#acl users proxy_auth user1 user2
#acl allusers proxy_auth REQUIRED
Списки контроля доступа ACL — Access List
# Тип записи такой:
# acl название_группы src ip-адреса_или_диапазон_адрес/маска_подсети. Далее доступ этим группам
# мы будем либо разрешать, либо запрещать с помощью http_access.
# Например доступ группе office, ip которого к примеру 10.120.4.162,
# маска подсети можно не задовать, так как задается группа с одного ip-адреса.
# acl office src 10.120.4.162/255.255.255.255
# А для группы ip-адресов (10.120.4.160-10.120.4.168) той же сети, также маску подсети,
# можно не задавать. Указывать маску полной формой или короткой - эт уже как Вам угодно. :)
# acl office src 10.120.4.160-10.120.4.168/255.255.255.255
# Для некоторых подсетей:
# Диапозон адресов Полный Короткий
#10.0.0.1-10.254.254.254 10.0.0.0/255.0.0.0 10.0.0.0/8
#192.168.0.1-192.168.0.254 192.168.0.0/255.255.255.0 192.168.0.0/24
#192.168.20.1-192.168.20.254 192.168.20.0/255.255.255.0 192.168.20.0/24
#192.168.0.1-192.168.254.254 192.168.20.0/255.255.0.0 192.168.20.0/16
# acl podsetb src 10.0.0.0/8
# описали в правилах всю подсеть, диапазон которой 10.0.0.1-10.254.254.254
# Наш сервер - ему также необходим доступ.
acl server src xxx.xxx.xxx.xxx
# Группа office2 - компьютеры, которые будут иметь право коннектится к серверу.
acl office2 src 10.120.4.162/8 10.120.4.160-10.120.4.168/8
#Описываем, когда это необходимо, лист доступа с мак-адресами,
# где xx:xx:xx:xx:xx:xx - необходимый мак-адрес.(**)
#acl mac_adress arp xx:xx:xx:xx:xx:xx
# Описываем ACL-правила для доменных имен. Например, у Вас появилось желание
# забанить кому-то доступ к социальным сетям или каким-то онлайн играм.(***)
acl social_networks dstdomain .vkontakte.ru .odnoklassniki.ru .facebook.com .twitter.com .myspace.com
# Установка ACL для группы all (тоесть для любой существующей сети). Оставляем без изменений.
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
# Адреса localhost, у всех одинаковые.
acl localhost src 127.0.0.1/255.255.255.255
# Списки доступа ACL для портов.
# Почтовый SMTP порт
acl Safe_ports port 25
# http
acl Safe_ports port 80
# ftp
acl Safe_ports port 21
# https, snews (они же SSL-порты)
acl Safe_ports port 443 563
# multiling http
acl Safe_ports port 777
acl Safe_ports port 5222
# bittorent_port
acl Safe_ports port 6881
acl CONNECT method CONNECT
Разрешаем/запрещаем доступ тому, кого мы описали выше в ACL-групах
# Когда кто-то будет соединятся, сразу будет запрашивать логин и пароль,
# не обращая внимание на другие правила группы office2 и другие
# то есть разрешение читаются последовательно и при необходимом программа завершает чтение разрешений.
# Если Вы хотите, чтобы разрешение было в нескольким группах, то записываем следующим образом
# так: http_access allow users office2 (будет коннектить все из группы с логином и паролем)
http_access allow server
http_access deny !Safe_ports
#http_access deny social_networks #закрыли доступ к социальным сетям. Если необходимо раскомментируйте (***).
#http_access allow users #раскомментируйте, если необходимо (*)
#http_access allow mac_adress #раскомментируйте (**)
#http_access allow podsetb #когда описывали подсеть.
http_access allow zal
http_access deny all
# Разрешаем/запрещаем ICP-доступ всем пользователям. В конкретном случае, запрещено.
icp_access deny all