ФГБОУ ВО «Адыгейский государственный университет» Кафедра автоматизированных систем обработки информации и управления Киздермишов А.А., Шопин А.В. Расширенные настройки SQUID Учебно-методическое пособие Для обучающихся по направлениям подготовки бакалавриата 09.03.01 «Информатика и вычислительная техника», 27.03.04 «Управление в технических системах» Майкоп 2018 УДК 004(075.8) ББК 32.973.202.018я73 К 38 Печатается по решению редакционно-издательского совета Адыгейского государственного университета Рецензенты: Бескровный А.А., заместитель начальника отдела по защите информации ОПФР по Республике Адыгея; Панеш А.Х., кандидат технических наук, доцент. Эксперт: Довгаль В.А., доцент кафедры АСОИУ ФГБОУ ВО «АГУ», канд. техн. наук, доцент. А.А. Киздермишов, А.В. Шопин. К38 Расширенные настройки SQUID – Майкоп, изд-во АГУ, 2018. – 78 с. В учебно-методическом пособии изложены теоретический материал и практические задания для прохождения учебной практики. В ходе учебной практики студенты изучают актуальную практическую проблему – установка и настройка прокси-сервера на базе программного пакта Squid с функциями фильтрации интернет-трафика, разграничения прав и мониторинга интернет-трафика пользователей. Предназначено для студентов, обучающихся по направлениям подготовки бакалавриата 09.03.01 «Информатика и вычислительная техника» 27.03.04 «Управление в технических системах» для методической поддержки учебной практики. © А.А. Киздермишов, А.В. Шопин, 2018. © Адыгейский государственный университет, 2018. 2 Оглавление Введение .......................................................................................................... 5 Правила выполнения практических работ ................................................... 6 Практическая работа 1. Установка и настройка виртуальной машины .... 7 Теоретические сведения .............................................................................. 7 Операционная система Ubuntu ................................................................ 7 VirtualBox (Oracle VM VirtualBox) ........................................................ 10 Вопросы для самостоятельного изучения ............................................... 19 Содержание работы ................................................................................... 21 Задание 1. Установка Oracle VirtualBox. .............................................. 21 Задание 2. Установка и настройка виртуальной машины. ................. 21 Задание 3. Тестирование виртуальной машины .................................. 21 Задание 4. Знакомство с Linux. .............................................................. 21 Практическая работа 2. Установка и настройка прокси-сервера ............ 25 Теоретические сведения ............................................................................ 25 Вопросы для самостоятельного изучения ............................................... 33 Содержание работы ................................................................................... 34 Задание 1. Знакомство со Squid. ............................................................ 34 Задание 2. Тестирование Squid (минимальная конфигурация) .......... 39 Задание 3. Удаление пакета Squid (минимальная конфигурация) ..... 39 Задание 4 Установка и настройка Squid (ssl-bump)............................. 39 Задание 5. Тестирование Squid (ssl-bump)............................................ 39 Задание 6. Создание резервной копии .................................................. 40 Задание 7. Настройка аутентификации ................................................ 40 Практическая работа 3. Установка и настройка редиректора ................. 41 Теоретические сведения ............................................................................ 41 Вопросы для самостоятельного изучения ............................................... 53 Содержание работы ................................................................................... 55 Задание 1. Знакомство с редиректорами .............................................. 55 Задание 2.Установка и настройка SquidGuard ..................................... 56 Задание 3. Настройка аутентификации и фильтров (минимальная конфигурация) ......................................................................................... 56 Задание 4. Тестирование SquidGuard (минимальная конфигурация) 56 Задание 5. Настройка аутентификации и фильтров ............................ 56 Задание 6. Тестирование SquidGuard .................................................... 56 Задание 7. Проверка эффективности применения SSL-bump ........... 56 Практическая работа 4. Установка и настройка анализатора трафика ... 57 Теоретические сведения ............................................................................ 57 Вопросы для самостоятельного изучения ............................................... 62 3 Содержание работы ................................................................................... 63 Задание 1. Знакомство с анализаторами трафика ................................ 63 Задание 2. Установка и настройка Sarg ................................................ 65 Задание 3. Тестирование Sarg ................................................................ 65 Литература ..................................................................................................... 66 Приложения ................................................................................................... 70 1. Конфигурационный файл Squid (минимальная конфигурация) ....... 70 2. Конфигурационный файл SquidGuard (минимальная конфигурация) ...................................................................................................................... 72 3. Перевод комментариев к Shalla's Blacklists ......................................... 74 4 Введение Высокий уровень конкуренции на рынке труда специалистов по информационным технологиям требуют от выпускников вузов владения не только теоретическими знаниями [1-14], но и практическими навыками работы по специальности [15-42]. В целях обучения будущих специалистов практической деятельности, университетом организовываются учебные практики в процессе прохождения которых у студентов формируются необходимые профессиональные компетенции. В учебно-методическом пособии изложены теоретический материал и практические задания для прохождения учебной практики студентами инженерно-физического факультета Адыгейского государственного университета. В ходе учебной практики студенты изучают актуальную практическую проблему – установка и настройка прокси-сервера на базе программного пакта Squid с функциями фильтрации интернет-трафика, разграничения прав и мониторинга интернет-трафика пользователей. Учебная практика является формой организации учебного процесса, заключающейся в профессионально-практической подготовке обучающихся и закреплении теоретических знаний. Раздел основной образовательной программы бакалавриата «Учебная практика» является обязательным и представляет собой вид учебных занятий, непосредственно ориентированных на профессионально-практическую подготовку обучающихся, в процессе которых студенты самостоятельно выполняют практические работы в лаборатории на базе Адыгейского государственного университета. Сроки проведения практики устанавливаются в соответствии с учебным планом и графиком учебного процесса на соответствующий учебный год. Учебно-методическое пособие предназначено для студентов высших учебных заведений, обучающихся по направлению бакалавриата 09.03.01 «Информатика и вычислительная техника» и 27.03.04 «Управление в технических системах», специалистов в области информационных технологий и защиты информации, широкого круга пользователей компьютерных систем. 5 Правила выполнения практических работ В ходе прохождения учебной практики предусмотрено выполнение пяти практических работ. Все работы ориентированы на использование свободно распространяемых операционных систем и программного обеспечения, доступных в сети Интернет: операционная система Ubuntu и её программные пакты Squid, SquidGard, Apache, Sarg и др. Перед выполнением практической задачи студент должен самостоятельно ознакомиться с теоретическим материалом и ответить на вопросы для самостоятельного изучения. По завершению выполнения практической работы студент должен представить преподавателю результаты в виде работающего приложения и отчета. Отчёты о выполнении практических работ оформляются в печатном виде на листах формата А4. Отчет должен содержать: 1. Заголовок практической работы (номер, название и цель работы данные о студенте, дата). 2. Заполненные таблицы. 3. Содержание конфигурационных файлов. 4. Результаты тестирования. 5. Выводы о выполненной работе. К зачету допускаются студенты сдавшие отчеты по всем практическим работам. Зачет проводится в виде контрольного теста с оценкой. Тест составлен на базе материала, который изучен студентами в ходе поиска ответов на вопросы для самостоятельного изучения. 6 Практическая работа 1. Установка и настройка виртуальной машины Цель работы: ознакомиться на практике с программными продуктами для виртуализации [15], научиться устанавливать на виртуальные машины и получить навыки их настройки. Приобрести практический опыт установки операционной системы Linux [16-22]. Теоретические сведения Операционная система Ubuntu Приведем краткие сведения об операционной системе Ubuntu. Ubuntu - это разрабатываемая сообществом, основанная на ядре Linux операционная система, которая идеально подходит для использования на персональных компьютерах, ноутбуках и серверах. Она содержит все необходимые программы, которые вам нужны: программу просмотра Интернет, офисный пакет для работы с текстами, электронными таблицами и презентациями, программы для общения в Интернет и много других. Изначально Ubuntu создавалась как временное ответвление от Debian с целью регулярно выпускать новую версию операционной системы каждые шесть месяцев. В отличие от других ответвлений Debian общего назначения, таких как Xandros, Linspire и Libranet, Canonical осталась близка к философии Debian и включает в Ubuntu в основном свободное программное обеспечение вместо того, чтобы частично положиться на несвободные добавления. Пакеты Ubuntu по большей части базируются на пакетах из нестабильной (unstable) группы пакетов Debian. В Ubuntu используется Advanced Packaging Tool от Debian для управления установленными пакетами. Тем не менее, пакеты для Ubuntu и Debian не обязательно совместимы друг с другом. Некоторые разработчики Ubuntu также занимаются ключевыми пакетами Debian, поэтому в случае внесения изменений в собираемые программы они вносятся в оба проекта. Однако в апреле 2005 основатель Debian Ян Мёрдок критиковал Ubuntu за несовместимость с пакетами Debian, говоря, что Ubuntu слишком далеко отклонился от Debian Sarge, чтобы остаться совместимым [10-14]. Для того, что бы понять, как устроен Linux, сравним его с Windows [1-14]. Операционные системы MS Windows и Linux отличаются, в первую очередь, ядрами. У MS Windows и Linux принципиально разные типы ядер. У Linux ядро состоит из одного файла, а для расширения функциональности использует дополнительные модули. Драйвера 7 встроены в ядро, но большинство программ работают в пользовательском пространстве. Во-вторых, в Linux все настройки хранятся в обычных файлах, которые расположены в файловой системе (см. Таблица 1), в отличие от Windows в которой все настройки приложений, системы и драйверов хранятся в специальной базе данных, называемой «реестр Windows». В-третьих, для управления программами и обновлениями Linux использует репозитории (хранилище - место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети) в которых есть почти все необходимые программы (пакеты), поэтому обновления выполняется одной командой сразу для всей системы и, как правило, без перезагрузки. В-четвертых, обе операционные системы поддерживают многопользовательский режим с незначительными отличиями. В-пятых, для работы с Linux умение пользоваться командами в командной строке имеет огромное значение, так как графические оболочки применяются, как правило, только на рабочих станциях. Отличие последнее по счету, но не по важности, это структура каталогов. В Linux файлы хранятся в каталогах по принципу их назначения, например, исполняемые — в /bin/, настройки — /etc/, а ресурсы — в /usr/. Следует отметить, что структура каталогов Linux может отличаться для различных сборок и модификаций, но все операционные системы на базе Linux имеют структуру каталогов на базе стандарта Filesystem Hierarchy Standard (FHS, стандарт иерархии файловой системы). Описание каталогов Ubuntu, важных для выполнения практических заданий, приведены в Таблице 1: Таблица 1 Описание основных каталогов верхнего уровня Ubuntu № Имя каталога Назначение п/п 1 2 3 1 / корень 2 /bin бинарные файлы пользователя(binaries), основные двоичные пользовательские модули (основные файлы команд) 3 /boot файлы статической загрузки (загрузчик системы (Grub или Lilo) и файлы, необходимые для загрузки системы) 4 /dev файлы устройств (файлы описания устройств компьютера) (devices), в linux все устройства считаются файлами: порты, диски, принтеры — все файлы) 8 № Имя каталога Назначение п/п 1 2 3 5 /etc конфигурационные файлы (конфигурационные файлы системы, программ, стартовые сценарии) (etcetera) 6 /etc/rc.d командные файлы, выполняемые при запуске системы или при смене ее уровня 7 /home пользовательский, домашний каталог (В linux может быть множество пользователей. Каждый пользователь имеет свой каталог (например, /home/user). В нем находятся любые файлы пользователей, к которым он имеет непосредственный доступ записи/удаления.) 8 /lib /lib32 системные библиотеки монтируются различные /lib64 подключаемые устройства (библиотеки системы, модули ядра) (library) 9 /lost+found в этом каталоге сохраняются восстановленные части файловой системы (при загрузке системы происходит проверка файловых систем на наличие ошибок - для исправления ошибок файловой системы запускается программа fsck) 10 /media /mnt монтирование (монтируются различные подключаемые устройства) (mount) 11 /opt дополнительные программы (устанавливаются дополнительные пакеты программ) (Optional applications) 12 /proc информация о процессах (в виде файлов содержится информация о происходящих в системе процессах) (proccess) 13 /root домашний каталог администратора (суперпользователя) системы (используется администратором в случае если основной каталог home по каким-то причинам недоступен) 14 /run процессы 15 /sbin системные исполняемые файлы (основные программы выполняемые root) (system binaries) 16 /srv сервер(server) 17 /sys информация о системе(system) 18 /tmp временные файлы (для временного хранения данных программами) 19 /usr программы пользователя (находятся файлы документации, исходные коды программ, ядра) (user applications) 20 /usr/bin/ исполняемые файлы 21 /usr/lib/ библиотеки (неизменяемые конфигурационные файлы и данные программ) 22 /usr/local файлы пользователя (находятся отдельно устанавливаемые пакеты программ) 23 /usr/sbin/ команды, используемые при администрировании системы и не предназначенные для размещения в файловой системе root (например, здесь находится большинство программ-серверов) 9 № Имя каталога Назначение п/п 1 2 3 24 /usr/src исходники установленных программ и ядра 25 /var переменные файлы (данные которые часто меняются в процессе работы системы) (variable) 26 /var/lib базы данных 27 /var/local изменяемые данные программ, установленных администратором в /usr/local 28 /var/log файлы логов (логи различных системных программ 29 /var/run PID процессов, временные файлы (информация в них хранится до очередной перезагрузки системы) 30 /var/tmp каталог для временных файлов VirtualBox (Oracle VM VirtualBox) Виртуализация — предоставление набора вычислительных ресурсов или их логического объединения, абстрагированное от аппаратной реализации, и обеспечивающее при этом логическую изоляцию друг от друга вычислительных процессов, выполняемых на одном физическом ресурсе. Термин «виртуализация» в компьютерных технологиях появился в шестидесятых годах прошлого века вместе с термином «виртуальная машина» - программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы (target — целевая, или гостевая платформа) и исполняющая программы для target-платформы на host-платформе (хост - платформа, платформа- хозяин) или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы [1-14]. Виртуальная машина исполняет некоторый машинно-независимый код или машинный код реального процессора. Помимо процессора, виртуальная машина может эмулировать работу как отдельных компонентов аппаратного обеспечения, так и целого реального компьютера (включая BIOS, оперативную память, жёсткий диск и другие периферийные устройства). В последнем случае на виртуальную машину, как и на реальный компьютер, можно устанавливать операционные системы (например, Windows можно запускать в виртуальной машине под Linux или наоборот). На одном компьютере может функционировать несколько виртуальных машин (это может использоваться для имитации нескольких серверов на одном реальном сервере с целью оптимизации использования ресурсов сервера). 10