Как я конфигурил прокси-сервер SQUID-CACHE

=> Форум технической поддержки <=

ЗАДАЧА №4: `Для промышленного использования`


Введение

Видеообозрение вэб-интерфейса прокси-сервера (100 МБ)

Скрин-шоты ВЭБ-интерфейса управления и просмотра статистики

Установка системы, Настройка сети.

Предварительные настройки и установка пакетов

Подключение к VPN провайдера (DSL)

Этап 1. "Установка пакета SQUID"

Этап 1.1. "Установка пакета SQUID, если планируется поддержка антивируса DrWeb"

Этап 1.2. "Конфигурим SQUID"

Этап 2. "Настройка MySql"

Этап 3. "Настройка Вэб-Интерфейса"

Этап 4. "Настройка планировщика задач CRONTAB"

Этап 5. "Настройка Firewall"

Этап 6. "Настройка доступа к серверу, через модем, удаленным ползователям"


Что мы поимеем с этой задачи:

По сути задачи №3 и №4 полностью совместимы. И практически одинаковые, а отличаются только конфигурационными файлами, вэб-интерфейсом и более удачным описаним конфигурирования.

1. Аутентификация пользователей, по умолчанию, по Имени пользователя и Пароля. Но при некоторой модификации и по IP.

2. Улучшенный вэб-интерфейс администрирования и сбора статистики (независимо от способа аутентификации по паролю или IP).

3. Ограничение пользователей по скаченному трафику (независимо от способа аутентификации по паролю или IP).

4. Пять групп пользователей: а. Не ограниченные ничем (good), б. Ограниченные по времени суток, порно и биг-файлам (normal), в. не ограниченные по времени суток, но ограниченные по порно (allday), г. с доступом только на определенные сайты (onesite), д. не ограниченные по порно, но ограничены по времени суток (halfgood).

5. Авторизированные (доступ к данным по имени пользователя и паролю) две группы пользователей интерфейса администрирования и просмотра статистики. user - только просмотр своей статистики и только свой к чужой нет доступа. admin - все права доступа

6. Интерфейс форума (объевлений).

7. Расмотрим способы подключения к внешней сети (провайдеру): как по одному внешнему IP адресу (сетевая карта, модем и т.п.), так и по неограниченному количеству внешних IP адресов (сетевая карта, модем и т.п.), т.е. преобразование (подмена) внутренних IP-адресов на внешние.

8. Прикрутим удаленных пользователей (модемный пул к локальной сети и доступ к интернет через squid и др. служб в локальной сети).

Несколько скрин-шотов вэб-интерфейса.


Предварительные настройки

Эта задача проверялась на работоспособность с дистрибудивами MandrakeLinux 9.1, 9.2, 10.0, 10.1, MandrivaLinux 2005 и 2006, в других системамах возможны отличия в конфигурационных файлах и пути расположения.

По умолчанию мы используем SQUID версии: squid-2.4.STABLE7 из исходника "squid-2.4.STABLE7", MySQL не выше версии: MySQL-4.0.15 (Версия MySQL обусловлена совместимостью с этой задачей.

Для Mandrake и Mandriva можно сразу скачать эти пакеты исходник squid и пакеты MySQL (6.9 MB)

А так-же нам понадобится Вэб-сервер Apache с поддержкой Perl, PHP, DBD, CGI, DBI.

Вот несколько скрин-шотов Установленных пакетов на рабочем прокси-сервере (MandrivaLinux 2006).

1. Установите Линукс. По умолчанию MandrakeLinux. При начальной установке установите "галочки" на всех надписях, (к примеру в MandivaLinux 2006) кроме DNS и Почтового сервера, а если вы опытный пользователь, то ставьте галочку "дополнительных пакетов" жмите далее, появиться список пакетов выберете в них пакеты связанные httpd, php, apache, html, mysql, perl, с++, а так же пакеты: mc, iptables, routed, make, emacs, mgetty, PPP.

Если система установлена, то просто добавьте недостающие пакеты и удалите лишнее.

Форум технической подержки



INSTALL

Этап ПЕРВЫЙ. SQUID.

1. Создайте в системе пользователя и группу squid, причем пользователь squid должен быть в группе squid, а не users (так случается когда пользователь создается без создания своей группы, но ничего, создавайте группу и добавляйте в неё пользователя squid или наоборот в группе пользователя уберите группу users и добавьте группу squid).

Возможно, пользователь и группа SQUID у Вас уже созданы (если у вас установлен "родной" squid или вы его уже удалили, но пользователи остались - это хорошо)

2. Скачиваем файл SQUID-а: "squid-2.4.STABLE7" (1 МБ) или "squid-2.5.STABLE14", но эта версия отличается орфографией squid.conf (далее расмотрим это). А можно попробывать более новую версию "squid-2.6.STABLE16"

Распакуйте его, по умолчанию в каталог /usr/squid-2.4.STABLE7/. Перейдите в него (cd /usr/squid-2.4.STABLE7) и скомпилируйте:

./configure

make

make install

По умолчаниию он установится в путь: /usr/local/squid/

Если хотите установить по другому пути, то при конфигурировании нужно было добавить префикс:

./configure --prefix=/usr/local/squid2

, где /usr/local/squid2 путь к устанавливаемому squid-у


Установка SQUID, если у Вас DrWeb

Возможно, вы планируете использовать антивирусную программу DrWeb для прокси-сервера squid ("DrWeb-Gateway"), тогда нужно использовать два squid-а "Первый", к примеру "родной" squid из дистрибутива или другой версии (см. этап первый), и плюс к нему скомпилировать и установить "второй" squid с поддержкой ICAP из исходника - это обусловлено, тем, что при одном установленном squid-а не будет проверяться на вирусы трафик по протоколу FTP (только HTTP), что не желательно.







И так, допустим, что "первый" squid установлен и сконфигурирован.

Второй, Компилируем и устанавливаем, из исходника от DRWEB-a squid-icap-2.6.STABLE14, с поддержкой ICAP:

./configure --enable-icap-support --prefix=/usr/local/squiddrweb

make

make install

Теперь конфигурим "первый" squid с портом доступа 3129 и доступ к нему только для localhost

А "второй" squid конфигурим с портом доступа 3128, так как конфигурили бы без drweb-a только добавляем строки соединение с "первым" прокси:

cache_peer localhost parent 3129 3130 default connect-timeout=80000

И включаем ICAP:

icap_enable on

icap_service service_1 respmod_precache 0 icap://localhost:1344/respmod no-keep-alive

icap_class class_1 service_1

icap_access class_1 allow all

icap_preview_enable on

icap_preview_size 0


Конфигурим SQUID

3. Создайте каталог cache по этому же пути. (/usr/local/squid/cache)

Создайте каталог conf по пути /usr/local/squid/etc/. (/usr/local/squid/etc/conf)

Создайте каталог plan по пути /usr/local/squid/. (/usr/local/squid/plan)

Скачиваем файл: "squid.zip" (14 КБ)

Распаковываем и копируем в каталог /usr/local/squid/ - с сохранением всех путей.

4. В этом архиве:

4.1. программа auth (для пути /usr/local/squid/bin/) написанная на С++, и настроенная на доступ к MySQL под root без пароля по IP 101.101.101.101.

auth работает как согласующий элемент между SQUID и MySQL.

Если Вам необходимо поменять эти настройки этой программы, то вот Вам исходник. А скорее всего так и будет. Потому что Вы наверняка захотите изменить IP адрес и установить пароль для доступа к базе mysql под пользователем root.

В этом исходнике найдите строку: mysql_real_connect(&mysql,"Ваш IP адрес","root","здесь пароль root к mysql","proxy",0,NULL,0);

в этой строке необходимо поменять только два параметра, т.е. IP адрес и указать пароль (пароль открытым текстом)

Команда компилирования:

g++ ./utv.cpp -o auth -lm -lmysqlclient

для компиляции обязательно нужна библиотека libmysql12-devel

После этой команды появится скомпилированная программа auth

4.2. Девять файлов для пути /usr/local/squid/etc/conf/

4.2.1 Файл alldey - в нем Вы потом, вручную, пропишите имена пользователей, которым разрешено пользоваться интернетом круглосуточно, но запрет на порносайты (список сайтов в файле porn, его можно даполнять).

4.2.2 Файл good - в нем Вы вписываете имена пользователей имеющие неограниченный, Вами, доступ в интернет.

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

4.2.4 Файл noporn - файл содержаший адреса сайтов - исключений из файла porn

4.2.5 Файл normal - файл содержащий имена Ваших пользователей ограниченных по работе во времени и ограниченных по файлу porn

4.2.6 Файл onesite - файл содержащий имена пользователей, которым разрешено посещать только сайты указанные в файле onesite_list

4.2.7 Файл onesite_list - файл содержащий адреса сайтов, для пользователей из файла onesite

4.2.8 Файл porn - файл содержащий список сайтов запрещенных к просмотру - порно. Расширенная версия на 43 000 строк URL porn (800 KB)

4.3. Кофигурационный файл squid.conf для SQUID-а путь /usr/local/squid/etc/

В нем необходимо изменить IP адрес внешнего прокси-сервера и его порт, по умолчанию: cache_peer 10.81.224.9 parent 8080

Если вы используете прямой доступ в интернет (без вышестоящего прокси-сервера), то удалите строки в squid.conf:

cache_peer 10.81.224.9 parent 8080 3130 no-query default

never_direct allow all

А таже можно изменить промежупок времени работы пользователей из файлов normal, halfgood ...

В строках time SMTWHFA 7:00-18:00, где SMTWHFA - это дни недели.

4.4. Два файла путь /usr/local/squid/plan/

В этих файлах необходимо изменить имя компьютера (IP) и установить пароль для loger - пользователя MySQL

4.4.1 Файл baza.pl - Файл скриптов на Perl, для обновления базы посещения сайтов юзерами, его будет запускат в автомате программа crontab. В этом файле изменить имя компьютера и установить пароль для loger в трёх строках.

4.4.1 Файл update.pl - Файл скриптов на Perl, для обнуления базы ежемесячно, его будет запускат в автомате программа crontab. В этом файле изменить имя компьютера и установить пароль для loger в двух строках.

Строки которые необходимо изменить выглядят примерно так:

$rex=DBI->connect("DBI:mysql:proxy:ИМЯ КОМПЬЮТЕРА",'root','ПАРОЛЬ') or die "ERROR connect to mysql !!!\n";


5. Первый Запуск SQUID

5.1. Проверьте права доступа они должны быть 0755. Команды для этого:

chmod +0755 и chown squid:squid, такие же права должны быть на все подкаталоги внутри /usr/local/squid/

5.2. Запускаем кеш SQUID-а:

/usr/local/squid/bin/squid -z

Если всё в порядке в каталоге /usr/local/squid/cache/ должно появиться ещё с десяток каталогов. Если это не произошло и cache пуст см. п. 5.1. и возможно п. 1

5.3. Запускаем SQUID:

/usr/local/squid/bin/squid -D

Иногда возникает проблема с доступом к каталогу /usr/local/squid/log/ - ещё раз проверьте права доступа! Т.к. по умолчанию владельцем этого каталога является root, а нужно squid.

Для проверки работы squid - с пользовательской машины коннектимся на сервер, в настройках браузера пользователя указывается ВАШ прокси сервер, IP, к примеру 101.101.101.101, и порт подключения к SQUID, 3128 (для всех протоколов один сервер), исключить локальные адреса к примеру: 101.101.101.* . У пользователя браузер должен запрашиваться пароль при попытке выхода в интернет, но дальше работать пока не будет.


ЭТАП ВТОРОЙ - MySQL

Cначало, почитайте Про установку пакетов MySQL, т.е. Сервер Mysql должен быть установлен.

если лень ковыряться, то скачайте `mysql.tar.gz` разархивируйте в каталог /var/lib/mysql/*

это подменит все работы по 2-му этапу, заменятся библиотеки базы, пользователи loger, forum и root будут без паролей, с доступом с любого IP

если не лень делаем:

1. Скачиваем файл mysql2.zip (3.5 KB) на виндовую машину. В этом архиве начальные базы для Mysql

2. Скачимаем программу администрирования MySQL `MySQL-Front_2.5_Setup.exe` (1 MB) на виндовую машину. И устанавливаем её.

3. Разархивируйте mysql2.zip и сохраните где нибудь на виндовой машине.

4. Переходим обратно на linux и вколачиваем команды:

mysql mysql

т.е. входим в mysql в базу mysql

появится приглашение mysql>

update user set host='%' where host='localhost' and user='root';

возможно так не сработает, тогда нужно зделать так:

update user set host='%' where host='localhost.localdomain' and user='root';

т.е. в текущей базе (mysql), в таблице user, изменяем учетную запись где: пользователь root без пароля с хоста localhost меняем на: пользователь root без пароля с любого хоста

quit

Если небыло сообщения о количестве внесенных изменений, то что-то у вас не пулучилось, и вам необходимо вернутся в пункт 4. Если уже не пускает по команде mysql mysql, это означает, что вы накосячили, удалайте пакеты MySQL, удалейте содержимое /var/lib/mysql/*, потом заново устанавливайте пакеты MySQL

А если вышло сообщение, что 1 запись внесена, то только в этом случии у вас все получилось, если 0 (ноль) то возвращаемся в 4-ый пункт.

Далее:

mysqladmin reload

Т.е. Вы поменяли вписанный, в основную базу пользователей mysql, по умолчанию root пользователя с localhost на любой хост (доступ с любого хоста-компьютера), под пользователем root , без пароля. Теперь мы сможем управлять mysql с любого компьютера в сети, в том числе с виндовой.

5. Переходим на виндовую машину.

5.1. Запускаем программу MySQL-Front_2.5 и конектимся на линуксовую машину. Т.е. указываем в этой программе IP адрес и пользователя root (пароль пока не нужно). Жмём на коннект и входим в mysql. Если выходит ошибка, то проверте установлин ли на linux сервер MySQL и запущен ли он, а так же возможно Вы не правильно выполнили п. 4.

5.2. Удаляем лишние учетные записи в базе mysql (открываем базу mysql, слева, выбираем таблицу user,потом, справа, выбираем вкладку DATA и мочим лишнее, не забываем про обновление: последовательно нажимаем на "Reload User-Privileges" в панеле инструментов, потом и "refresh", последовательно). Должна остаться только одна учетная запись: % root без пароля.

5.3. Жмём мышкой на базу mysql -> вкладку query (справа) -> жмём на открытие файла (справа во вкладке query)-> находим, рание разархивированный файл, mysql.sql, в папке mysql -> жмём на > (F9), потом последовательно нажимаем на "refresh" и "Reload User-Privileges", в панеле инструментов.

5.4. Создаём базу "log", при помощи команды "Create Database" (правой мышкой по корневому имени базы, в левом окне вверху), за тем так же выбираем эту базу и так же переходим на "Query" и так же открываем файл, только теперь файл "stat.sql", в папке log, -> жмём на > (F9), потом последовательно нажимаем на "refresh" и "Reload User-Privileges", в панеле инструментов.

5.5. Аналогично Создаём базу "proxy", но подгружаем файл auth.sql из каталога proxy.

5.6. Аналогично Создаём базу "utv", но подгружаем файл forum.sql из каталога utv.

5.7. Теперь к mysql устанавливаем пароль для пользователя root:

5.7.1. Выбираем базу mysql (слева)-> нажимаем вкладку query (справа), но теперь ничего не открываем, а пользуемся командным окном (справа, ниже вкладок, белое, чистое окно), т.е. щелкаем туда мышкой и вколачиваем строку:

update user set password=password('ПАРОЛЬ') where user='root'

т.е. в текущей базе mysql в таблице user устанавливаем пароль для пользователя root

жмём на > (F9), потом последовательно нажимаем на "refresh" и "Reload User-Privileges", в панеле инструментов.

Тут Вас должно "вывалить" из управления базами mysql

5.7.2. Снова так же коннектимся под root, но теперь указываем пароль, который Вы ввели в п.5.7.1.

5.7.3. Теперь подобно п.п. 5.7.1. заводим пароль для пользователя loger, командой:

update user set password=password('ПАРОЛЬ') where user='loger'

жмём на > (F9), потом последовательно нажимаем на "refresh" и "Reload User-Privileges", в панеле инструментов. Пароль для loger заведён.

Расшифруем кто такой loger: loger - это пользователь, который имеет доступ к нашим базам статискики (log), пользователи с паролями(proxy). Под этим именем входят скрипты написанные на perl, для аутентификации и сбора статистики для пользователей. Но правда сами пользователи об этом даже не догадывается, а если и догадываются то это им не поможет, пароля они никогда не узнают, т.к. эти скрипты им не доступны и выполняются внутри сервера.

5.7.3. Далее подобно п.п. 5.7.1. заводим пароль для пользователя forum, командой:

update user set password=password('ПАРОЛЬ') where user='forum'

жмём на > (F9), потом последовательно нажимаем на "refresh" и "Reload User-Privileges", в панеле инструментов.. Пароль для forum заведён.

forum - это пользователь, подобно пользователю loger, имеет доступ к нашей базе форума (utv), к другим базам доступа не имеет. Под этим именем входит скрипт index.php в пути /var/www/html/forum/, для записи и чтения текстов форума, этот файл не раскрывает пользователю полный скрипт подключения к базе. И Особой безопасности не требует. И совет никода не выводите список пользователей на юзеровских машинах, т.к. браюзеры кэширут страницу и пользователь имеет при этом возможность узнать имена и пароли других пользователей.


Т.е. в отличии от задачи №3, теперь мы прикрыли дыры не санкционированного доступа к базам mysql. Но теперь во всех скриптах придётся вколачивать эти пароли и имя компьютера (IP адрес линукс-сервера), см. далее.

На данном этапе с mysql - всё!


ЭТАП ТРЕТИЙ - HTTP

1. Скачиваем файл www.tar.gz (155 KB). В этом архиве файлы вэб-интерфейса, разархивируем, копируем с сохранением путей, по пути: /var/www/. Проверте, что запущен сервер HTTPD (Установлен). К каждому файлу, которые нужно именить, прилагается ReadMy.txt файл) Несколько скрин-шотов

1.2. Файл 2.pl - скрипт на Перле, должен находиться по пути /var/www/cgi-bin/admin/. В нём необходимо изменить имя компьютера (IP) и вписать пароль (открытым текстом) для пользователей MySQL, строки типа: $aut=DBI->connect("DBI:mysql:proxy:ИМЯ КОМПЬЮТЕРА",'loger','ПАРОЛЬ ЛОГЕРА В МИЭСКУЭЛЬ'); А также строки содержащие IP или имя компьютера (ingineer и 101.101.101.101)

В принципе в этих скриптах, в строках подключения к базам, вместо имени или IP адреса можно вколотить имя внутреннего сетевого устройства: localhost, что только увеличит безопасность.

1.3. Файл list.pl - скрипт на Перле, должен находиться по пути /var/www/cgi-bin/admin/. Изменяем строки подобно п. 1.2.

1.4. Файл save2.pl - скрипт на Перле, должен находиться по пути /var/www/cgi-bin/admin/. Изменяем строки подобно п. 1.2.

1.5. Файл stat.pl - скрипт на Перле, должен находиться по пути /var/www/cgi-bin/admin/. Изменяем строки подобно п. 1.2.

1.6. Файл add.pl - скрипт на Перле, должен находиться по пути /var/www/cgi-bin/. Изменяем строки подобно п. 1.2.

1.7. Файл .htaccess - Файл доступа к каталогу, должен находиться по пути /var/www/html/admin/. Изменять не нужно.

1.8. Файл index.html - Файл на html, должен находиться по пути /var/www/html/admin/. Изменить пару строчек содержащих имя компьютера (ingineer - по умолчанию).

1.9. Файл index.php - Файл на html, должен находиться по пути /var/www/html/forum/. Изменить строчки подобно п. 1.2. и содержащих имя компьютера (ingineer или 101.101.101.101 - по умолчанию).

1.10. Файл .htpasswd - Файл доступа к каталогу, должен находиться по пути /var/www/html/prot2/. Изменять не нужно. В нём будут храниться имена пользователей и зашифрованные пароли к ним. Это авторизация при сборе статистики Вашими клиентами. На этот каталог необходимо установить права apache:apache 0700, как к каталогу, так и к файлу.

Авторизирует доступ к каталогу /var/www/html/sam/ - (просмотр статистики). Т.е.: http://имя компьютера/sam/index.php

1.11. Файл index.php - Файл на html, должен находиться по пути /var/www/html/sam/. Изменить строчки подобно п. 1.2. и содержащих имя компьютера (localhost, ingineer или 101.101.101.101 - по умолчанию).

1.12. Файл table-sort.htc - скрипт сортировки, должен находиться по пути /var/www/html/. Изменить строчки содержащих имя компьютера (ingineer или 101.101.101.101 - по умолчанию)

1.13. Файл index.html - Файл на html, должен находиться по пути /var/www/html/. Изменить строчки не нужно.

1.14. Файл index2.html - Файл на html, должен находиться по пути /var/www/html/. Изменить содержащих имя компьютера (ingineer - по умолчанию)

2. Теперь проверьте права доступа к каталогам и файлам /var/www должно быть apache:apache 755 (кроме /var/www/html/prot2/ ). Если всё в порядке, вэб интерфейс уже будет работать.

3. Теперь установим пароль на каталог /var/www/html/admin/ командной строкой:

htpasswd -c /usr/local/.htpasswd root

Этот пользователь и его пароль будет запрашиваться при попытке администрирования пользователей (добавление, модифицирование и просмотр списка пользователей.

Если пароль не запрашиваеться, то в конфиге Апача (/etc/httpd/conf.d/httpd.conf) найдите блок:


# AllowOverride controls what directives may be placed in .htaccess files.

# It can be "All", "None", or any combination of the keywords:

# Options FileInfo AuthConfig Limit

AllowOverride None

# Controls who can get stuff from this server.

Order allow,deny

Allow from all


None поменять на All, т.е. что бы было AllowOverride All

Далее правим конфиг php.ini (/etc/)

находим строку:

register_globals = Off

включаем на On, т.е. register_globals = On

после этого пароли будут запрашивать в вэб-интерфейсе управления


ЭТАП ЧЕТВЁРТЫЙ - ОБНОВЛЕНИЕ БАЗ ПЛАНИРОВЩИКОМ CRONTAB

1. Запускаем редактор планировщика:

crontab -e

Включаем режим редактирования: нажать на "a"

2. Вколачиваем две строки:

0-59 * * * * /usr/local/squid/plan/baza.pl

0 1 1 * * /usr/local/squid/plan/updates.pl

Что будет соответствовать: обновление статистики в базе - каждую минуту. И раз в месяц обнуление базы.

Кстати, в файле /usr/local/squid/plan/updates.pl есть строка:

chown(74,74,"/var/lib/mysql/$kat/$file");

Где 74,74 - это пользователь и группа mysql, если в Вашей ситеме MySQL имеет другой ID, то в этом файле необходимо изменить эту строку, а именно ID MySQL в Вашей системе. В Противном случаи Вам не будет доступен архив статистики прошлых месяцов. Возможно (не пробовал), что если строку, в этом файле, написать так:

chown(mysql,mysql,"/var/lib/mysql/$kat/$file");

Тоже будет работать (что бы Вам не заморачиваться с ID mysql)

3. Заканчиваем работу редактора планировщика crontab:

сначала нажать на "esс"

затем на символ ":" (двоеточие)

затем на символ "x" (икс)

потом на enter

Всё, планировщик запрограммирован.

Если Вы хотите обновление базы каждый час, а не каждую минуту, то:

0 0-23 * * * /usr/local/squid/plan/baza.pl


ЭТАП ПЯТЫЙ - IPTABLES

Более сложный вариант Здесь

1. Скопируйте конфигурационный файл: "demo" в каталог: /usr/local/iptables-restore/. Предворительно создав каталог iptables-restore по пути /usr/local/

2. Внесите измениения в конец файла: "rc.local" в каталогe: /etc/rc.d/

А именно:

touch /var/lock/subsys/local

echo "1" > /proc/sys/net/ipv4/ip_forward

/sbin/iptables-restore /usr/local/iptables-restore/demo

/usr/local/squid/bin/squid -D

3. Внесите изменения в файл /usr/local/iptables-restore/demo, в соответствии с Вашей сетью.

По умолчанию iptables настроен на перенаправление пакетов с eth1 (внутренняя локальная сеть) на eth0 (внешняя сеть) с подменой всех внутренних IP адресов на один внешний IP: 10.52.1.12, при этом перекрывается по входу порт 8080 - для предотвращение подлючения Ваших пользователей выйти напрямую к внешнему прокси серверу. Вам необходимо изменить IP адрес на Ваш, так же если внешний прокси имеет другой порт подлючения, то и порт измените. Если порт внешнего прокси совпадает с Вашим, 3128, то в файле /usr/local/squid/etc/squid.conf в строке:

http_port 3128

Измените порт примеру на 3129, соответственно в файле демо закрыть порт 3128.

В данном случаи Ваши пользователи должны коннектиться к Вам на порт 3129. А в строке:

cache_peer 10.81.224.9 parent 8080

Замените порт на 3128. (а так же не забудьте поменять IP внешнего прокси).

Проверьте права доступа к каталогам и файлам.

Для применения конфига выполните каманду:

iptables-restore /urs/local/iptables-restore/demo

Или перегрузите машину.

Проверте цепочки iptables:

iptables -L -n

Для проверки цепочки запирания порта. Должно быть примерно так:

REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 reject-with icmp-port-unreachable

И Для проверки цепочки перенаправления пакетов:

iptables -t nat -L -n

Ответ:

SNAT all -- 0.0.0.0/0 0.0.0.0/0 to:10.84.16.2

Сейчас Ваш сервер должен работать в полном объёме. Заводите пользователей через интерфейс http://ИМЯ ВАШЕГО СЕРВЕРА/index.html

Если squid.conf взять из задачи № 3, то всё будет работать как описано в той задаче, только с улучшенным интерфейсом администрирования от этой (№4) + интерфейс форума.

Не забывайте вписывать в файлы конфигурирования Ваших новых пользователей (которых Вы завели в вэб-интерфейсе администрирования, вручную) находящихся по пути /usr/local/squid/etc/conf/ (normal, good, alldey, halfgood, onesite, times)

Защитим компьютер Iptables -ом

MAC Адреса в логах squid:

Как простой вариант можно сделать так: после запуска сквида пускать комманду вроде tail -f /usr/local/squid/logs/access.log|awk {'printf $3 " " $7; system("arp -a " $3"")'} | awk {'print $1 " " $2 " " $5'} >> /usr/local/squid/logs/squidmacs.log Это будет выдавать лог вида "айпи адрес_запроса мак-адрес_компа" в отдельный файл, ничего не трогая в логе сквида. Если хочется изменить формат иди в маны. Плюс в настройках log-rotate можешь это покрасивее расписать, если места на диске мало.


ПРОДОЛЖЕНИЕ СКОРО БУДЕТ


Форум технической поддержки проекта.

ЗАДАТЬ ВОПРОС АВТОРУ по анкете.

ПОЧТА

текст изменён(добавлен) 24.05.2004 и постоянно обновляется


ЭТАП ШЕСТОЙ

Этап шестой - подключение удаленного пользователя (через модем). Т.е. удаленный пользователь сможет подключиться в вашу локальную сеть, интернет (через Ваш прокси) и почта.

1. В файле login.conf по пути /etc/mgetty+sendfax/ Снять коментарий со закоментированной строки:

#/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug

т.е. в начале этой строки убрать коментарий - # и у Вас получилась строка:

/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug

Сохраните.

2. Для прикручивания модема на автоподьем необходимо прописать в файле /etc/inittab строку:

s0:12345:respawn:/sbin/mgetty /dev/ttyS0 -D -s 56000 -n 3

или строки, для нескольких модемов:

s0:12345:respawn:/sbin/mgetty /dev/ttyS0 -D -s 56000 -n 3

s1:12345:respawn:/sbin/mgetty /dev/ttyS1 -D -s 56000 -n 3

s2:12345:respawn:/sbin/mgetty /dev/ttyS2 -D -s 56000 -n 3

Последняя цифра говорит о количестве пропущенных звонков перед автоподнятием, т.е. 3. Пример "файла inittab"

Коментарий: /dev/ttyS1 Говорит о том, что модем у Вас сидит на COM2, если на COM1 - /dev/ttyS0

38400 - Это скорость подключения модема к примеру можно поставить 56000

номера СОМ-портов ttyS0, ttyS1, ttyS2 и т.д.

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

Для перезапуска службы набирите команду:

telinit Q

3. Теперь настройки подключения пользователей. Файлы настроек находятся по пути /etc/ppp/

Файл "options" содержит IP сервера и клиента

Файл "pap-secrets" содержит Имя пользователя и пароль

4. Усложним аутентификацию удаленных пользователей:

Файл options:

101.101.101.101:101.101.101.175

101.101.101.101:101.101.101.174

101.101.101.101:101.101.101.172

101.101.101.101:101.101.101.171

101.101.101.101:101.101.101.170

proxyarp

Здесь первый IP - это IP интерфейса подлючения (eth1), второй IP удаленного пользователя, его IP должен соответствовать подсети подлючения, в данном случаи допустимо из подсети 101.101.101.0.

Файл pap-secrets:

user * ПАРОЛЬ 101.101.101.175

net * ПАРОЛЬ 101.101.101.174

dima * ПАРОЛЬ 101.101.101.172

roma * ПАРОЛЬ 101.101.101.171

root * ПАРОЛЬ 101.101.101.170

Т.е. определённый пользователь сможет подключиться только под своим IP и только под своим паролем.

Причём не важно на какой из подлюченных модемов пользователь звонит.

Всё, модем прикручен и работает.

P.S.:

Один раз была проблема, во время аутентификации (проверка имени и пароля), "скидывало"

Решение, Изменить права доступа на:

/etc/mgetty+sendfax/login.config. Это делается двумя командами:

chmod +0600 /etc/mgetty+sendfax/login.config

chown root:root etc/mgetty+sendfax/login.config


Перейти в раздел Линукс

Перейти в раздел Домой