Страница 1 из 1

Использование общего файла паролей (htpasswd)

Добавлено: 11 фев 2026, 16:13
ya
если вы используете auth = "plain[passwd=/etc/ocserv/ocpasswd]" в конфигурации ocserv.

Вам понадобится хелпер basic_ncsa_auth, который обычно идет в комплекте с Squid.

Код: Выделить всё

sudo apt update && sudo apt install squid apache2-utils -y
/etc/squid/squid.conf

Код: Выделить всё

# Путь к хелперу и файлу паролей ocserv
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/ocserv/ocpasswd
auth_param basic children 5
auth_param basic realm Proxy Server
auth_param basic credentialsttl 2 hours

# Создание ACL для авторизованных пользователей
acl authenticated proxy_auth REQUIRED

# Разрешение доступа
http_access allow authenticated
http_access deny all
Вариант 2: Использование PAM (Единая системная авторизация)

Код: Выделить всё

sudo gpasswd -a proxy shadow
/etc/squid/squid.conf

Код: Выделить всё

auth_param basic program /usr/lib/squid/basic_pam_auth
auth_param basic children 5
auth_param basic realm Network Access
auth_param basic credentialsttl 2 hours

acl authenticated proxy_auth REQUIRED
http_access allow authenticated
http_access deny all
Важные нюансы
Порты: Убедитесь, что Squid и ocserv не конфликтуют. ocserv обычно занимает 443 (TCP/UDP), Squid по умолчанию — 3128.

Шифрование: По умолчанию Basic Auth в Squid передает логин/пароль в открытом виде (base64). Если вы хотите безопасности уровня ocserv, вам нужно настроить HTTPS-прокси (Squid с поддержкой SSL) или использовать SSH-туннель.

Формат паролей: ocserv использует специфический формат в файле ocpasswd. Если Squid отказывается принимать их напрямую через basic_ncsa_auth, лучше всего переключить оба сервиса на RADIUS или LDAP для полноценного Single Sign-On.

Проверка конфигурации
После внесения изменений проверьте конфиг и перезапустите службу:

Код: Выделить всё

sudo squid -k parse
sudo systemctl restart squid