Установка proxy Squid с авторизацией по паролю

squidСтатья была написано мной в середине 2008 и опубликована на одном из форумов, но даже спустя столько времени актуальности она не потеряла. Нижеприведенная конфигурация proxy squid ориентирована на применение в маленьких офисах. В больших организациях заводить каждого пользователя долго и муторно, поэтому squid настроен на доменную авторизацию.
Итак 10 простых шагов для начинающего админа, чтобы настроить squid и завести пользователей.

1. Чтобы все подходило под практически любой *nix Качаем сами сырцы squid отсюда - http://www.squid-cache.org/Versions/. Последний раз я качал версию squid-2.6.STABLE9, так что последующие строчки точно работают с этой версией.

2. Распаковываем в любую директорию, я предпочитаю /usr/src. Делаем ./configure --help, смотрим, что вам по душе. Я собирал с такими параметрами..

./configure --prefix=/usr/local/squid-auth \
--enable-default-err-language=Russian-koi8-r \
--enable-err-languages=Russian-koi8-r \
--disable-internal-dns \
--enable-basic-auth-helpers=NCSA

далее make, далее из под рута или sudo - make install

3. cd /usr/local/squid-auth - тут наш proxy
в каталоге ./etc - конфиги
./libexec - убедимся в наличие модуля авторизации ncsa_auth
./sbin - сам бинарник squid
./var - тут будут логи и кэш
в неупомянутые каталоги пока лазить не к чему :)

squid будет работать от пользователя nobody (в принципе этот пользователь есть в каждом дистрибутиве по умолчанию), но все-таки проверьте что он есть, так на всякий случай. Проверить можно командой

mik@m1k:/usr/local/squid-auth$ cat /etc/passwd | grep nobody
nobody:x:99:99:nobody:/:

Если данного пользователя все-же нет, то можно либо его создать самому, либо задействовать какого-нибудь другого системного пользователя подходящего для запуска squid.

4. Итак, чтобы squid от пользователя nobody мог писать логи и кэш делаем от рута команду

#chown -R nobody /usr/local/squid-auth/var

5. Вместо стандартного файла конфигурации squid.conf вставляем мой. Оригинальный сохраните под другим именем на будущее.
В конфиге буду подписывать важные моменты..

Код squid.conf :показать

6. Для первого запуска демона squid создаем базу кэша, куда будут кэшироваться часто посещаемые странички интернет, картинки, файлы.
Запускаем из под рута ./sbin/squid -z
через некоторое время в ./var/cache должны появиться директории 00 01 и т.д.

7. Создаем пустой файлик в ./etc/squid_users
а вот тут самое интересное.. Чтобы сгенерировать шифрованный пароль для пользователя надо воспользоваться утилитой htpasswd, которая идет вместе с web сервером apache.. Как по другому сделать я не знаю. Ставить из-за этого apache или искать бинарник в инете решать вам.. Я просто напишу строку как генерить пользователя test с паролем test

htpasswd -n test
New password:
Re-type new password:
test:v7nO2.ZNM9du.

Копируем строку "test:v7nO2.ZNM9du." в файл ./etc/squid_users без кавычек. Следующего пользователя в файле squid_users вставляем на новую строку и т.д.

8. Запускаем squid как демон, командой ./sbin/squid -D сперва смотрим директорию логов, находим в файле лога cache.log примерно такое
Код:

2008/03/29 00:16:40| Accepting proxy HTTP connections at 0.0.0.0, port 3128, FD 20.
2008/03/29 00:16:40| Accepting ICP messages at 0.0.0.0, port 3130, FD 21.
2008/03/29 00:16:40| WCCP Disabled.
2008/03/29 00:16:40| Ready to serve requests.
2008/03/29 00:16:41| Done reading /usr/local/squid-auth/var/cache swaplog (540 entries)
2008/03/29 00:16:41| Finished rebuilding storage from disk.
2008/03/29 00:16:41|       539 Entries scanned
2008/03/29 00:16:41|         0 Invalid entries.
2008/03/29 00:16:41|         0 With invalid flags.
2008/03/29 00:16:41|       539 Objects loaded.
2008/03/29 00:16:41|         0 Objects expired.
2008/03/29 00:16:41|         0 Objects cancelled.
2008/03/29 00:16:41|         1 Duplicate URLs purged.
2008/03/29 00:16:41|         0 Swapfile clashes avoided.
2008/03/29 00:16:41|   Took 1.2 seconds ( 435.7 objects/sec).
2008/03/29 00:16:41| Beginning Validation Procedure
2008/03/29 00:16:41|   Completed Validation Procedure
2008/03/29 00:16:41|   Validated 538 Entries
2008/03/29 00:16:41|   store_swap_size = 7744k
2008/03/29 00:16:42| storeLateRelease: released 0 objects

Значит squid успешно запустился.

9. Настраиваем браузер на наш прокси (в браузере прописываем ip и заданный порт, первая строчка squid.conf), пробуем соединиться..
Любое изменение в конфиге squid.conf надо перезапускать squid. Корректней всего командой


./sbin/squid -k reconfigure

выключить proxy


./sbin/squid -k shutdown

10. Прописываем squid стартовать при запуск вашей ОС.. Для этого достаточно найти файл rc.local и дописать в конец файла запуск squid.

Удачи!

Статья просмотрена 22 059 раз
Запись опубликована в рубрике Proxy, Сервера с метками , , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>