- Squid — прокси сервер
- Содержание
- Squid — прокси сервер
- Установка
- Настройка
- Установка и настройка Squid на Ubuntu
- Установка и базовая настройка
- Проверка
- Прозрачный прокси
- Авторизация по логину и паролю
- Слушаем на определенном интерфейсе
- Исходящий сетевой интерфейс
- Настройка цепочки прокси-серверов
- Как установить и настроить прокси-сервер Squid в Ubuntu 20.04
- Установка Squid на Ubuntu
- Настройка Squid
- Squid аутентификация
- Настройка межсетевого экрана
- Настройка вашего браузера для использования прокси
- Fire Fox
- Гугл Хром
- Выводы
Squid — прокси сервер
Содержание
Squid — прокси сервер
Прокси сервер Squid — это великолепное решение широких требований к кэширующему и прокси серверу, которое масштабируется для сетей от уровня регионального офиса до корпорации, когда обеспечивается расширяемый разделяемый механизм контроля доступа и отслеживания критических параметров через протокол SNMP. Когда выбираете компьютерную систему для использования в качестве Squid прокси или кеширующего сервера, убедитесь что ваша система оснащена большим количеством оперативной памяти, поскольку Squid поддерживает кэш в памяти для увеличения производительности.
Установка
В терминале введите следующую команду для установки сервера Squid:
Настройка
Squid настраивается редактированием директив, содержащихся в конфигурационном файле /etc/squid/squid.conf. Следующие примеры иллюстрируют некоторые директивы, которые могут быть изменены для воздействие на поведение сервера Squid. Для более глубокой настройки Squid смотрите раздел Ссылки.
Скопируйте файл /etc/squid/squid.conf и защитите его от записи следующими командами в терминале:
1. Для настройки вашего сервера Squid на прослушивание порта 8888 вместо стандартного 3128, измените директиву http_port как показано здесь:
2. Измените директиву visible_hostname для того, чтобы присвоить серверу Squid определенное имя хоста (hostname). Это имя необязательно должно быть именем хоста компьютера. В примере оно определено как weezie:
3. Используя контроль доступа Squid, вы можете настроить, чтобы использование интернет сервиса прокси было доступно только пользователям с определенных IP адресов. Например, мы проиллюстрируем доступ пользователей только из подсети 192.168.42.0/24:
Затем добавьте следующее в начало секции http_access вашего файла /etc/squid/squid.conf:
4. Используя великолепные возможности контроля доступа Squid, вы можете настроить возможность использования интернет сервиса прокси только в обычные рабочие часы. Например, мы покажем как настроить доступ сотрудников, которые работают с 9:00 до 17:00 с понедельника по пятницу из подсети 10.1.42.0/24:
Источник
Установка и настройка Squid на Ubuntu
Данную инструкцию можно также применять для установки SQUID на Debian. В качестве клиентов могут использоваться Windows, Linux, Mac OS и любые браузеры.
Установка и базовая настройка
Устанавливаем прокси-сервер следующей командой:
apt-get install squid
Открываем на редактирование конфигурационный файл:
Если сеть клиентских компьютеров отличается от стандартной (192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8), необходимо ее добавить в acl, например:
# TAG: acl
.
acl localnet src 217.66.157.0/24
# TAG: acl
.
acl localnet src «/etc/squid/acl_localnet»
* кавычки обязательны
** после необходимо создать файл /etc/squid/acl_localnet и с каждой строчки перечислить разрешенные IP-адреса.
С точки зрения безопасности, лучше закомментировать все подсети, которые не используются в нашей локальной сети, например:
# TAG: acl
.
#acl localnet src 0.0.0.1-0.255.255.255
#acl localnet src 10.0.0.0/8
#acl localnet src 100.64.0.0/10
#acl localnet src 169.254.0.0/16
#acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
#acl localnet src fc00::/7
#acl localnet src fe80::/10
* в данном примере мы оставили только подсеть 192.168.0.0/16.
Разрешаем доступ для локальных сетей, которые заданы опцией acl localnet:
# TAG: http_access
.
http_access allow localnet
* данную опцию нужно либо раскомментировать, либо вставить выше опции http_access deny all.
Настраиваем директорию для кэша:
# TAG: cache_dir
.
cache_dir ufs /var/spool/squid 4096 32 256
* где ufs — файловая система (ufs для SQUID является самой подходящей); /var/spool/squid — директория хранения кэша; 4096 — объем пространства в мегабайтах, которое будет выделено под кэш; 32 — количество каталогов первого уровня, которое будет создано для размещение кэша; 256 — количество каталогов второго уровня, которое будет создано для размещение кэша.
systemctl stop squid
Создаем структуру папок под кэш следующей командой:
Запускаем squid и разрешаем его автозапуск:
systemctl enable squid —now
Проверка
Заходим в настройки браузера и настраиваем использование прокси-сервера. Например, в Mozilla Firefox настройки нужно выставить такими:
* где 192.168.163.166 — IP-адрес моего прокси-сервера.
Теперь открываем сайт 2ip.ru. После его загрузки мы увидим внешний IP-адрес — он должен соответствовать той сети, от которой работает настроенный SQUID.
Прозрачный прокси
Прозрачный прокси позволяет автоматически использовать прокси-сервер, не настраивая при этом браузер компьютера. Пользователи могут даже не знать, что трафик идет через squid.
Открываем конфигурационный файл:
# TAG: http_port
.
http_port 3128
И приводим ее к следующему виду:
# TAG: http_port
.
http_port 3128 transparent
И перезапускаем конфигурацию squid:
squid -k reconfigure
Авторизация по логину и паролю
Открываем конфигурационный файл:
# TAG: auth_param
.
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/auth_users
auth_param basic children 25
auth_param basic realm SQUID PROXY
auth_param basic credentialsttl 3 hours
* где /usr/lib/squid/basic_ncsa_auth — расположение ncsa_auth (в зависимости от системы может находиться в другом каталоге); /etc/squid/auth_users — файл с логинами и паролями; children 25 разрешает 25 одновременных подключений; SQUID PROXY — произвольная фраза для приветствия; credentialsttl 3 hours будет держать сессию 3 часа, после потребуется повторный ввод логина и пароля.
Создаем acl для пользователей, которые прошли регистрацию. Сделаем регистрацию обязательной:
# TAG: acl
.
acl auth_users proxy_auth REQUIRED
http_access deny !Safe_ports
И после нее добавляем:
http_access allow auth_users
Устанавливаем утилиту apache2-utils:
apt-get install apache2-utils
Создаем файл с пользователями и создаем первую пару логина и пароля:
htpasswd -c /etc/squid/auth_users user1
Создаем второго пользователя:
htpasswd /etc/squid/auth_users user2
И перечитываем конфигурацию squid:
squid -k reconfigure
Слушаем на определенном интерфейсе
По умолчанию, squid будет слушать запросы на всех сетевых интерфейсах, которые доступны серверу. Чтобы указать конкретный, добавляем его IP к http_port:
# TAG: http_port
.
http_port 192.168.1.15:3128
* в данном примере squid будет слушать на адресе 192.168.1.15.
И перечитываем конфигурацию squid:
squid -k reconfigure
Исходящий сетевой интерфейс
На нашем сервере может быть несколько внешний IP-адресов. По умолчанию, все исходящие запросы будут работать через интерфейс со шлюзом по умолчанию. Чтобы иметь возможность работы со squid через разные интерфейсы в настройку вносим:
acl 217_66_157_33 localip 217.66.157.33
tcp_outgoing_address 217.66.157.33 217_66_157_33
acl 217_66_157_34 localip 217.66.157.34
tcp_outgoing_address 217.66.157.34 217_66_157_34
* в данном примере, при подключении к прокси через IP 217.66.157.33, исходящие пакеты будут от IP 217.66.157.33; аналогично для IP 217.66.157.34.
Перечитываем конфигурацию squid:
squid -k reconfigure
Настройка цепочки прокси-серверов
Мы можем передать запрос на другой прокси-сервер. Для этого открываем конфигурационный файл:
Настраиваем передачу запроса на другой прокси сервер:
# TAG: cache_peer
.
cache_peer 10.11.12.13 parent 3128 3128 proxy-only
* в данном примере мы передадим запрос на сервер 10.11.12.13. Синтаксис для cache_peer — cache_peer [options]:
- hostname — другой сервер, на который мы будем передавать запрос.
- type — тип «родства» другого сервера. Могут быть варианты:
- parent
- sibling
- multicast
- http-port — номер порта, на котором партнер принимает HTTP-запросы.
- icp-port — порт для запроса кэша.
- options — дополнительный опции.
* более подробное описание можно найти в самом конфигурационном файле SQUID.
Если на прокси, к которому мы подключаемся, необходима авторизация, добавляем опцию login:
cache_peer 10.11.12.13 parent 3128 3128 proxy-only login=loginname:password
Запрещаем использование нашего прокси-сервера напрямую (не через cache_peer):
# TAG: never_direct
.
never_direct allow all
Источник
Как установить и настроить прокси-сервер Squid в Ubuntu 20.04
Squid — это полнофункциональный прокси-сервер для кеширования, поддерживающий популярные сетевые протоколы, такие как HTTP, HTTPS, FTP и другие. Его можно использовать для повышения производительности веб-сервера путем кэширования повторяющихся запросов, фильтрации веб-трафика и доступа к контенту с географическим ограничением.
В этом руководстве объясняется, как настроить прокси-сервер Squid на Ubuntu 20.04 и настроить веб-браузеры Firefox и Google Chrome для его использования.
Установка Squid на Ubuntu
Пакет squid включен в стандартные репозитории Ubuntu 20.04. Чтобы установить его, выполните следующие команды от имени пользователя sudo :
После завершения установки служба Squid запустится автоматически. Чтобы убедиться в этом, проверьте статус сервиса:
Результат будет выглядеть примерно так:
Настройка Squid
Сервис squid можно настроить, отредактировав файл /etc/squid/squid.conf . Файл конфигурации содержит комментарии, описывающие, что делает каждый параметр конфигурации. Вы также можете поместить свои параметры конфигурации в отдельные файлы, которые можно включить в основной файл конфигурации с помощью директивы «include».
Перед внесением любых изменений рекомендуется создать резервную копию исходного файла конфигурации:
Чтобы начать настройку вашего экземпляра squid, откройте файл в текстовом редакторе :
По умолчанию squid настроен на прослушивание порта 3128 на всех сетевых интерфейсах сервера.
Если вы хотите изменить порт и установить интерфейс прослушивания, найдите строку, начинающуюся с http_port и укажите IP-адрес интерфейса и новый порт. Если интерфейс не указан, Squid будет прослушивать все интерфейсы.
Запуск Squid на всех интерфейсах и на порту по умолчанию должен подойти большинству пользователей.
Squid позволяет вам контролировать, как клиенты могут получать доступ к веб-ресурсам, используя списки контроля доступа (ACL). По умолчанию доступ разрешен только с локального хоста.
Если все клиенты, использующие прокси-сервер, имеют статический IP-адрес, простейшим вариантом ограничения доступа к прокси-серверу является создание ACL, который будет включать разрешенные IP-адреса. В противном случае вы можете настроить squid на использование аутентификации.
Вместо добавления IP-адресов в основной файл конфигурации создайте новый выделенный файл, который будет содержать разрешенные IP-адреса:
После этого откройте основной файл конфигурации и создайте новый ACL с именем allowed_ips (первая выделенная строка) и разрешите доступ к этому ACL с помощью директивы http_access (вторая выделенная строка):
Порядок правил http_access важен. Убедитесь, что вы добавили строку перед http_access deny all .
Директива http_access работает аналогично правилам межсетевого экрана. Squid читает правила сверху вниз, и когда правило совпадает, правила ниже не обрабатываются.
Каждый раз, когда вы вносите изменения в файл конфигурации, вам необходимо перезапустить службу Squid, чтобы изменения вступили в силу:
Squid аутентификация
Если ограничение доступа на основе IP не работает для вашего варианта использования, вы можете настроить squid на использование серверной части для аутентификации пользователей. Squid поддерживает базовую аутентификацию Samba , LDAP и HTTP.
В этом руководстве мы будем использовать базовую аутентификацию. Это простой метод аутентификации, встроенный в протокол HTTP.
Чтобы сгенерировать зашифрованный пароль, используйте инструмент openssl . Следующая команда добавляет пару USERNAME:PASSWORD в файл /etc/squid/htpasswd :
Например, чтобы создать пользователя «josh» с паролем « P@ssvv0rT », вы должны запустить:
Следующим шагом является включение базовой аутентификации HTTP и включение файла, содержащего учетные данные пользователя, в файл конфигурации squid.
Откройте основную конфигурацию и добавьте следующее:
Первые три выделенные строки создают новый список контроля доступа с именем « authenticated , а последняя выделенная строка разрешает доступ аутентифицированным пользователям.
Перезапустите сервис Squid:
Настройка межсетевого экрана
Чтобы открыть порты Squid, включите профиль UFW ‘Squid’:
Если Squid работает на другом порту, отличном от порта по умолчанию, например, 8888 вы можете разрешить трафик на этом порту с помощью: sudo ufw allow 8888/tcp .
Настройка вашего браузера для использования прокси
Теперь, когда у вас настроен Squid, последний шаг — настроить предпочитаемый вами браузер для его использования.
Fire Fox
Приведенные ниже шаги одинаковы для Windows, macOS и Linux.
В верхнем правом углу щелкните значок гамбургера ☰ чтобы открыть меню Firefox:
Щелкните ссылку ⚙ Preferences .
Прокрутите вниз до раздела « Network Settings » и нажмите кнопку « Settings. .
Откроется новое окно.
- Установите переключатель « Manual proxy configuration ».
- Введите IP-адрес вашего сервера Squid в поле HTTP Host и 3128 в поле Port .
- Установите флажок Use this proxy server for all protocols .
- Нажмите кнопку OK , чтобы сохранить настройки.
На этом этапе ваш Firefox настроен, и вы можете просматривать Интернет через прокси-сервер Squid. Чтобы проверить это, откройте google.com , введите «what is my ip», и вы должны увидеть IP-адрес своего сервера Squid.
Чтобы вернуться к настройкам по умолчанию, перейдите в « Network Settings , установите переключатель « Use system proxy settings » и сохраните настройки.
Есть несколько плагинов, которые также могут помочь вам настроить параметры прокси Firefox, например FoxyProxy .
Гугл Хром
Google Chrome использует системные настройки прокси по умолчанию. Вместо изменения настроек прокси-сервера операционной системы вы можете использовать надстройку, например SwitchyOmega, или запустить веб-браузер Chrome из командной строки.
Чтобы запустить Chrome с новым профилем и подключиться к серверу Squid, используйте следующую команду:
Linux:
macOS:
Windows:
Если профиль не существует, он будет создан автоматически. Таким образом, вы можете запускать несколько экземпляров Chrome одновременно.
Чтобы убедиться, что прокси-сервер работает правильно, откройте google.com и введите «какой у меня IP». IP-адрес, отображаемый в вашем браузере, должен быть IP-адресом вашего сервера.
Выводы
Squid — один из самых популярных кэширующих прокси-серверов. Это увеличивает скорость веб-сервера и может помочь вам ограничить доступ пользователей к Интернету.
Мы показали вам, как установить и настроить Squid в Ubuntu 20.04 и настроить ваш браузер для его использования.
Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.
Источник