Это старая версия документа.


Автор — Алекс Кук (Alex Cook)

Яуже не раз писал заметки об улучшении работы в Интернет. Этим утром, разбирая груду старого железа (чтобы унести его в центр переработки), я случайно обнаружил мой старый ноутбук.

Это старенький IBM Thinkpad T22, Тип 2647 с 256Мб оперативной памяти и 20Гб жёстким диском. Пару лет назад у меня было штук 20 таких, я покупал их в центре переработки, а затем продавал на eBay. И вот сейчас у меня осталось только пару штук.

Уже когда я стал упаковывать его для продажи, меня посетила мысль, что я смогу вернуть его к работе в качестве кэширующего прокси сервера, чтобы мои браузеры тянули повторяющуюся информацию с локального сервера, а не из сети. Для этого понадобится Squid. Ссылаясь на описание с официального сайта, «… Squid — это прокси сервер и веб кэширующий демон. Он имеет широкую область применения от ускорения веб-сервера, кэшируя повторяющиеся запросы, до обработки веб, DNS и других сетевых запросов от пользователей, предоставляющих сетевые ресурсы. Также он используются для фильтрации трафика. Кроме часто используемых сетевых протоколов HTTP и FTP, Squid также имеет поддержку некоторых других, например TLS, SSL, Internet Gopher и HTTPS. Разрабатываемая версия Squid (3.1) включает в себя поддержку IPv6 и ICAP…»

Я использовал Ubuntu для этого проекта. Установка сервера Squid позволила получить несколько важных преимуществ: • Освободить пропускную способность канала в Интернет • Ускорить загрузку веб-страниц • Позволил просматривать копии страниц, которые я регулярно посещаю (например, если сервер недоступен).

Для начала нужно установить Ubuntu 8.04 Server. Не знаете, как это сделать? Почитайте это руководство: Идеальный сервер - Ubuntu Hardy Heron (http://howtoforge.com/perfect-server-ubuntu8.04-lts). Я пропустил установку (то есть не устанавливал) Apache, MySQL, Postfix, BIND9, Proftpd, POP3/IMAP и Webalizer. Мне они просто не нужны. Мне нужен только Squid прокси сервер. Кроме того, я установил Webmin (см. ниже), чтобы с лёгкостью управлять своим сервером удалённо. Два года назад я узнал, что сначала нужно устанавливать Squid! В таком случае установка Webmin проходит гладко и без запинки (в тот раз я использовал Debian в качестве сервера и Ubuntu в другом случае). Те, кто следит за моим блогом (а так же все мои новые читатели), наверно помнят, что около года назад я уже рассматривал установку Ubuntu и Squid, и даже написал по этому поводу пост: «Ускоряем и Улучшаем просмотр Интернет-страниц с помощью Ubuntu Squid Сервера» (http://ubuntulinuxhelp.com/speed-up-and-improve-web-surfing-with-an-ubuntu-squid-server/). Тот пост об Ubuntu и Squid был основан на Ubuntu 6.06 LTS и Squid 2.6. Но времена меняются, а с ними и версии приложений, поэтому, в этот раз, я решил пересмотреть установку Squid заново.

Я загрузил образ Ubuntu 8.04 LTS Server с официального сайта http://www.ubuntu.com/getubuntu/download-server и записал его на диск. Необходимые минимальные требования:

300 МГц x86 процессор 64 МБ оперативной памяти (ОЗУ) По крайней мере 4 ГБ свободного места на жёстком диске (для полной установки и файла подкачки) VGA видео-карта поддерживающая разрешение 640×480 CD-ROM привод или сетевая карта

С 256Мб ОЗУ установка происходила чуть медленнее, чем я привык. Более подробную информацию об аппаратных требованиях для Ubuntu Server (Hardy) вы сможете найти здесь (https://help.ubuntu.com/community/Installation/SystemRequirements).

После загрузки и записи на диск копии ubuntu-8.04.2-server-i386, я установил базововую комплектацию Ubuntu сервера по руководству с howtoforge.com. Кроме того я установил SSH сервер, а значит я теперь могу убрать ноутбук в сторону и с комфортом продолжить настройку с моего домашнего компьютера.

sudo aptitude install ssh openssh-server

эта команда установит SSH сервер и запустит его для вас.

Далее по тексту вам придётся подставлять вместо моих IP адресов и имён те, которые назначены в вашей сети. После завершения установки базовой комплектации сервера, откройте терминал с вашего домашнего (удобного) компьютера и введите:

ssh root@192.168.1.200

192.168.1.200 — адрес сервера, который я только что установил.

Используйте команду

su

чтобы войти в режим суперпользователя. В таком случае вам не придётся каждый раз вводить «sudo».

Установите Squid используя команду:

aptitude install squid3

После завершения установки и перезагрузки системы вы сможете установить Webmin — GUI интерфейс для управления вашим сервером. Для этого вам потребуется загрузить пакет webmin в любую директорию. Команда для загрузки:

wget http://prdownloads.sourceforge.net/webadmin/webmin-1.470.tar.gz

Распакуйте его командой:

tar xzvf webmin-1.470.tar.gz

Webmin необходим Perl для запуска, поэтому нужно установить несколько дополнительных пакетов:

aptitude install install libauthen-pam-perl libnet-ssleay-perl libpam-runtime openssl perl perl-modules

Перейдите в распакованную директорию с webmin введя команду:

cd webmin-1.470

Запустите установку webmin:

./setup.sh

Потом я изменил порт доступа с 10000 на 26395. А также изменил аккаунт доступа на «root» и ввёл новый пароль.

В конце установки webmin, выдаётся сообщение об успешном завершении содержащее URL доступа: http://squid.localdomain:26395/

На моём локальном компьютере потребовалось изменить hosts файл вот так:

sudo gedit /etc/hosts

И добавить следующую строку:

192.168.1.200 squid.localdomain squid

Теперь необходимо перезапустить сервер Squid командой:

shutdown -r now

После перезагрузки и входа в систему (по ssh), вы можете проверить статус сервиса webmin командой:

sudo /etc/init.d/webmin status

Вы должны увидеть что-то вроде этого:

webmin (pid 4573) is running

Чтобы удостовериться, что он прослушивает верный порт, введите следующую команду:

sudo netstat -tap

В выводе команды вы должны найти строчку, вроде такой:

tcp 0 0 *:26395 *:* LISTEN 4573/perl

Помните, мы с вами выбрали порт 26395 при установке и webmin использует Perl.

Теперь откройте веб-браузер и перейдите на страницу webmin. URL который я использовал:

http://squid.localdomain:26395/

И снова, помните, я добавлял соответствующую информацию в файл hosts, чтобы браузер смог обнаружить этот адрес.

Я решил не использовать SSL при доступе к webmin, так как он мне не нужен в локальной сети. После успешного входа, нам потребуется настроить Squid. Найдите (слева) меню «Unused Modules», а в нём пункт «Squid Proxy Server» - щёлкните по нему. Вам предложат установить Squid (webmin) модуль. Выберите этот пункт.

После установки снова взгляните на меню слева и в пункте «Servers», теперь вы должны увидеть модуль «Squid Proxy Server». Перейдите в него, а затем откройте опцию «Ports and Networking».

Заметьте, что Squid работает на стандартном порту 3128. Теперь вернитесь на страницу модуля Squid, щёлкнув по «Module Index» (вверху страницы). Перейдите в опцию «Access Control» и найдите кнопку внизу страницы «Browser Regexp» — она содержит выпадающий список. В этом списке выберите «Client Address», затем щёлкните кнопку «Create new ACL».

Введите ваши значения в эту форму. Я использовал следующие:

ACL Name: localdomain From IP: 192.168.1.0 To IP: 192.168.1.255 Netmask: 255.255.255.0

Больше я ничего не изменял, а нажал кнопку «Save».

Теперь перейдите во вкладку (сверху) «Proxy restrictions». Затем щёлкните (внизу) «Add proxy restrictions» и найдите имя ACL, которое вы ввели ранее (в моём случае «localdomain»). * Убедитесь, что вы ищете в столбце «Match ACLS», * и только затем щёлкните по имени. Теперь отметьте пункт «Allow». И сохраните настройки, нажав кнопку «Save».

На появившемся экране переместите имя «localdomain» (или как вы его назвали) вверх, используя стрелку вверх до тех пор, пока оно не будет находиться выше текста «Deny all». Если оно будет ниже, ваш браузер не сможет получить доступ к серверу.

Теперь в окне ssh введите команду:

shutdown -r now

Этим вы перезагрузите сервер и Squid3 (вместе с новыми настройками). Я обратил внимание, что webmin (по каким-то причинам) считает, что установлен Squid версии 2.6. Потому-то webmin и не может запустить сервер. Но после перезагрузки системы показалась кнопка «Stop Squid», что означает, что модуль webmin запустился и успешно работает (дальше я не стал больше возиться с webmin, ведь всё-равно использую SSH для доступа, перезагрузки и т.д.)

Последним шагом будет настройка вашего браузера для использования адреса нашего прокси-сервера. В моём случае, мне необходимо в каждый браузер внести следующий адрес прокси:

192.168.1.200:3128

3 июля я обнаружил проблему при доступе к статистике. Вот её описание и метод исправления:

Описание:

При попытке доступа к «Cache Manager Statistics» в прокси сервер Squid, выдаётся следующая ошибка:

«The Squid cache manager program /usr/lib/cgi-bin/cachemgr.cgi was not found on your system. Maybe your module configuration is incorrect.»

Решение:

aptitude install squid-cgi

После этого менеджер статистики должен заработать.|Сайты с полезной информацией:

Как блокировать доступ к сайтам, используя сервер Squid в Ubuntu Linux

http://shibuvarkala.blogspot.com/2008/11/howto-block-websites-using-squid-proxy.html

Как блокировать доступ по портам в сервере Squid, Ubuntu Linux

http://shibuvarkala.blogspot.com/2008/11/howto-block-port-in-squid-proxy-ubuntu.html

Устанавливаем HTTP прокси сервер (Squid)

http://en.kioskea.net/faq/sujet-804-ubuntu-installing-an-http-proxy-server-squid

Устанавливаем Squid прокси используя Webmin на Ubuntu Server 8.04.1

http://chrisjohnston.org/2008/installing-squid-proxy-using-webmin-on-ubuntu-server-8041

Параноидальный пингвин - Создание безопасного Squid Web прокси, Часть 1

http://www.linuxjournal.com/article/10407

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