Раньше я думал, что squid сложен в настройке и всячески его избегал. Как оказалось - зря. Настроить HTTP прокси сервер с авторизацией в нём очень просто. Итак, рецепт (проверял на debian, на ubuntu тоже точно работает, в других дистрибутивах нюансы могут отличаться)
Установка
Тут как обычно:
$ sudo apt-get install squid
Настройка
Файл конфигурации squid находится в /etc/squid/ и называется squid.conf. Следующие параметры в нём заслуживают внимания:
http_port 3128 - устанавливает порт, по какому будет слушать squid.
http_access deny all - устанавливает права доступа
Если необходимо настроить прокси без авторизации - то достаточно просто изменить http_access с deny all на allow all и перезапустить squid. Так как нам нужен прокси с авторизацией, то ничего не трогаем и идем дальше. Находим секцию auth_param и добавляем туда:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
Эта строка указывает squid, какой модуль использовать для авторизации и в каком файле искать логины и пароли.
Создадим файл с логинами и паролями:
$ sudo htpasswd -c /etc/squid/passwd drakmail
Enter a password for user 'drakmail':
Again:
$ sudo htpasswd /etc/squid/passwd mag
Another password:
Again:
Далее, настроим права доступа. Для этого в секцию ACL надо добавить следующие строки:
acl magUser proxy_auth mag
acl drakmailUser proxy_auth drakmail
http_access allow magUser
http_access allow drakmailUser
После этого остаётся только перезапустить squid:
sudo /etc/init.d/squid restart
И наслаждаться настроенным прокси.