- Автор темы
- Администратор
- Модер.
- Команда форума
- #1
На FreeBSD 14 прокси-сервер обычно разворачивают через Squid. Это наиболее распространённый HTTP/HTTPS proxy с поддержкой кеширования, ACL-правил, авторизации и фильтрации.
pkg update
pkg install squid
Каталог конфигурации:
/usr/local/etc/squid/
Главный файл:
squid.conf
ee /usr/local/etc/squid/squid.conf
Минимальный пример:
http_port 3128
acl localnet src 192.168.0.0/16
acl localnet src 10.0.0.0/8
http_access allow localnet
http_access deny all
cache_mem 256 MB
maximum_object_size 100 MB
access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
Это позволит подключаться только клиентам из локальной сети.
squid -z
sysrc squid_enable=YES
Запуск:
service squid start
Проверка:
sockstat -4 -l | grep 3128
ext_if="em0"
pass in on $ext_if proto tcp to port 3128
Применяем:
service pf reload
proxy_ip:3128
Пример:
192.168.1.10:3128
Проверка через curl:
curl -x http://192.168.1.10:3128 https://google.com
pkg install apache24
Создаем пароль:
htpasswd -c /usr/local/etc/squid/passwd user1
Добавляем в
auth_param basic program /usr/local/libexec/squid/basic_ncsa_auth /usr/local/etc/squid/passwd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
http_access deny all
1. Установка Squid
Обновляем репозитории и устанавливаем прокси.pkg update
pkg install squid
Каталог конфигурации:
/usr/local/etc/squid/
Главный файл:
squid.conf
2. Базовая конфигурация Squid
Редактируем файл:ee /usr/local/etc/squid/squid.conf
Минимальный пример:
http_port 3128
acl localnet src 192.168.0.0/16
acl localnet src 10.0.0.0/8
http_access allow localnet
http_access deny all
cache_mem 256 MB
maximum_object_size 100 MB
access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
Это позволит подключаться только клиентам из локальной сети.
3. Инициализация кеша
Перед первым запуском необходимо создать кеш-каталог.squid -z
4. Включение автозапуска
Добавляем сервис в rc.conf.sysrc squid_enable=YES
Запуск:
service squid start
Проверка:
sockstat -4 -l | grep 3128
5. Настройка firewall (PF)
Редактируем/etc/pf.conf:ext_if="em0"
pass in on $ext_if proto tcp to port 3128
Применяем:
service pf reload
6. Проверка прокси
На клиенте указываем:proxy_ip:3128
Пример:
192.168.1.10:3128
Проверка через curl:
curl -x http://192.168.1.10:3128 https://google.com
7. Авторизация пользователей (опционально)
Устанавливаем утилиты:pkg install apache24
Создаем пароль:
htpasswd -c /usr/local/etc/squid/passwd user1
Добавляем в
squid.conf:auth_param basic program /usr/local/libexec/squid/basic_ncsa_auth /usr/local/etc/squid/passwd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
http_access deny all
8. Перезапуск
service squid restartПолезные порты
| Назначение | Порт |
|---|---|
| HTTP proxy | 3128 |
| Transparent proxy | 3129 |
| HTTPS proxy | через CONNECT |
Варианты прокси на FreeBSD
| Прокси | Назначение |
|---|---|
| Squid | HTTP/HTTPS proxy |
| 3proxy | лёгкий multi-protocol proxy |
| HAProxy | L4/L7 reverse proxy |
| Dante | SOCKS5 proxy |
