Скачать 181.71 Kb.
|
ЛАБОРАТОРНАЯ РАБОТА №3 Защита информации в сетях
Принцип фильтрации: когда через ядро проходит пакет, он проверяется на совпадение с одним или несколькими правилами. При этом в зависимости от этих правил он может быть пропущен (ACCEPT), отброшен (DROP) или отклонен (REJECT). Кроме того, он может быть отправлен на проверку в следующую цепочку правил. Здесь же можно указать, что факт прохождения пакета, подходящего под определенное правило, должен быть отмечен в syslog. Правила могут включать в себя проверку адреса/порта источника/получателя, протокола, флагов TCP. Для изменения используемого набора правил используется утилита - iptables . Все правила хранятся в памяти ядра и при перезагрузке сбрасываются. По этой причине необходимо создать файл конфигурации, из которого правила фильтрации будут считываться при загрузке машины. Обычно это /etc/rc.d/rc.firewall. Это обычный скрипт оболочки, который вызывает /sbin/iptables с определенными параметрами, соответствующими составленным правилам. Поэтому в большинстве дистрибутивов для изменения конфигурации iptables необходимо отредактировать указанный файл и запустить его (этот файл, как правило, автоматически выполняется при загрузке машины). После чего можно посмотреть обновленную таблицу правил командой iptables -L. Изначально существуют 3 цепочки, через которые пакеты входят на фильтрацию. INPUT - для входящих пакетов, OUTPUT для исходящих и FORWARD для проходящих через данную машину к другой. По мере движения пакета по цепочке выполняется сравнение с критериями и по результатам сравнения принимается решение о действии. Часть пакетов отбрасывается (на разных этапах по разным причинам), часть (опять же лишь подходящие под определенные правила) успешно выходит из фильтра. Оставшиеся (не подошедшие ни под одно правило) следуют действию по умолчанию для этой цепочки. Обычно таким действием делают DROP или REJECT, чтобы пропускать лишь пакеты, подошедшие под вполне определенные правила. В отличие от действия DROP в случае REJECT отправителю отсылается ICMP пакет с сообщением об ошибке. Это создает дополнительный трафик, но в соответствующих случаях приводит к тому, что отправитель перестает посылать нам пакеты (DROP выглядит для отправителя как таймаут, т.е. пакеты просто уходят и не приходит никакого подтверждения, а при REJECT он может посчитать, что наш компьютер недоступен или не существует). Формат командной строки утилиты iptables: iptables [-t table] command [match] [target/jump]
Пример rc.firewall с типичным набором правил: #!/bin/sh #Все сбросили iptables -F iptables -X COUNT #Правила по умолчаниию iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # разрешаем доступ к внутренней петле iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT #считаем все входящие пакеты ($$$) #Создаем цепочку счетчиков iptables -N COUNT iptables -A INPUT -i eth0 -j COUNT # Разрешаем ходить пакетам icmp iptables -A INPUT -p ICMP -j ACCEPT iptables -A OUTPUT -p ICMP -j ACCEPT #Разрешаем соединения "запрошенные" с нашего компьютера. Избавляет от некоторых видов атак iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT #Разрешаем пользовательские порты iptables -A OUTPUT -p TCP --sport 32768:65535 -j ACCEPT iptables -A OUTPUT -p UDP --sport 32768:65535 -j ACCEPT #Разрешаем порты SMB для доступа Windows-машин к нашему серверу # Smb Данныые iptables -A INPUT -i eth1 -p TCP --dport 137:139 -j ACCEPT iptables -A INPUT -i eth1 -p UDP --dport 137:139 -j ACCEPT iptables -A OUTPUT -o eth1 -p TCP --sport 137:139 -j ACCEPT iptables -A OUTPUT -o eth1 -p UDP --sport 137:139 -j ACCEPT #Smb служба имен iptables -A INPUT -i eth1 -p UDP --sport 137 --dport 32768:65535 -j ACCEPT #Разрешаем видеть нас как ВЕБ-сервер iptables -A INPUT -p TCP --dport 80 -j ACCEPT iptables -A OUTPUT -p TCP --sport 80 -j ACCEPT #Разрешаем видеть нас и как FTP -сервер iptables -A INPUT -p TCP --dport 20:21 -j ACCEPT iptables -A OUTPUT -p TCP --sport 20:21 -j ACCEPT #Разрешаем изнутри забирать почту по протоколу POP3 #iptables -A INPUT -i eth1 -p TCP --dport 110 -j ACCEPT iptables -A OUTPUT -o eth1 -p TCP --sport 110 -j ACCEPT #Разрешаем обмен почтой по протоколу smtp iptables -A INPUT -p TCP --dport smtp -j ACCEPT iptables -A OUTPUT -p TCP --sport smtp -j ACCEPT #Разрешаем DNS обмен iptables -A INPUT -p UDP --dport domain -j ACCEPT iptables -A OUTPUT -p UDP --sport domain -j ACCEPT #Разрешаем доступ изнутри к прокси на порт 8080 iptables -A INPUT -i eth1 -p TCP --dport 8080 -j ACCEPT iptables -A INPUT -i eth1 -p UDP --dport 8080 -j ACCEPT iptables -A OUTPUT -o eth1 -p TCP --sport 8080 -j ACCEPT iptables -A OUTPUT -o eth1 -p UDP --sport 8080 -j ACCEPT #---------------------------------- #Секция счетчиков iptables -A COUNT # Сколько всего пакетов iptables -A COUNT -p icmp # Сколько ICMP пакетов iptables -A COUNT -p tcp --dport smtp # Сколько напринимали спама по почте iptables -A COUNT -j RETURN iptables -L -v -x
Метод шифровки/дешифровки называют шифром (cipher). Некоторые алгоритмы шифрования основаны на том, что сам метод шифрования (алгоритм) является секретным. Ныне такие методы представляют лишь исторический интерес и не имеют практического значения. Все современные алгоритмы используют ключ для управления шифровкой и дешифровкой; сообщение может быть успешно дешифровано только если известен ключ. Ключ, используемый для дешифровки может не совпадать с ключом, используемым для шифрования. Алгоритмы с использованием ключа делятся на два класса: симметричные (или алгоритмы секретным ключом) и асиметричные (или алгоритмы с открытым ключом). Разница в том, что симметричные алгоритмы используют один и тот же ключ для шифрования и для дешифрования (или же ключ для дешифровки просто вычисляется по ключу шифровки). В то время как асимметричные алгоритмы используют разные ключи, и ключ для дешифровки не может быть вычислен по ключу шифровки. Смметричные алгоритмы подразделяют на потоковые шифры и блочные шифры. Потоковые позволяют шифровать информацию побитово, в то время как блочные работают с некоторым набором бит данных (обычно размер блока составляет 64 бита) и шифруют этот набор как единое целое. Ассиметричные шифры (также именуемые алгоритмами с открытым ключом, или --- в более общем плане --- криптографией с открытым ключом) допускают, чтобы открытый ключ был доступн всем (скажем, опубликован в газете). Это позволяет любому зашифровать сообщение. Однако расшифровать это сообщение сможет только нужный человек (тот, кто владеет ключом дешифровки). Ключ для шифрования называют открытым ключом, а ключ для дешифрования - закрытым ключом или секретным ключом. Современные алгоритмы шифровки/дешифровки достаточно сложны и их невозможно проводить вручную. Настоящие криптографические алгоритмы разработаны для использования компьютерами или специальными аппаратными устройствами. В большинстве приложений криптография производится программным обеспечением и имеется множество доступных криптографических пакетов. Цифровые подписи Некоторые из асимметричных алгоритмов могут использоваться для генерирования цифровой подписи. Цифровой подписью называют блок данных, сгенерированный с использованием некоторого секретного ключа. При этом с помощью открытого ключа можно проверить, что данные были действительно сгенерированы с помощью этого секретного ключа. Алгоритм генерации цифровой подписи должен обеспечивать, чтобы было невозможно без секретного ключа создать подпись, которая при проверке окажется правильной. Цифровые подписи используются для того, чтобы подтвердить, что сообщение пришло действительно от данного отправителя (в предположении, что лишь отправитель обладает секретным ключом, соответствующим его открытому ключу). Также подписи используются для проставления штампа времени (timestamp) на документах: сторона, которой мы доверяем, подписывает документ со штампом времени с помошью своего секретного ключа и, таким образом, подтверждает, что документ уже существовал в момент, объявленный в штампе времени. Цифровые подписи также можно использовать для удостоверения (сертификации --- to certify) того, что документ принадлежит определенному лицу. Это делается так: открытый ключ и информация о том, кому он принадлежит подписываются стороной, которой доверяем. При этом доверять подписывающей стороне мы можем на основании того, что ее ключ был подписан третьей стороной. Таким образом возникает иерархия доверия. Очевидно, что некоторый ключ должен быть корнем иерархии (то есть ему мы доверяем не потому, что он кем-то подписан, а потому, что мы верим a-priori, что ему можно доверять). В централизованной инфраструктуре ключей имеется очень небольшое количество корневых ключей сети (например, облеченные полномочиями государственные агенства; их также называют сертификационными агенствами --- certification authorities). В распределенной инфраструктуре нет необходимости иметь универсальные для всех корневые ключи, и каждая из сторон может доверять своему набору корневых ключей (скажем своему собственному ключу и ключам, ею подписанным). Эта концепция носит название сети доверия (web of trust) и реализована, например, в PGP. Gnupg GnuPG (GNU Privacy Guard, «Страж безопасности GNU», или просто GPG) – это открытый эквивалент PGP (Pretty Good Privacy), известной и широкоиспользуемой программы для Windows, DOS и других операционных систем. Он распространяется в открытых исходниках и имеет те же самые функции, что и PGP, основанные на стандарте OpenPGP. У GnuPG есть несколько применений – он может использоваться либо для шифрования писем и файлов, либо для их цифровой подписи. Первый вариант применения GnuPG – шифрование писем и файлов на вашем жестком диске – очевиден, и он обычно применяется для защиты секретных сообщений или документов. Цифровая подпись информации необходима для сохранения целостности сообщений и файлов, особенно при передаче их через незащищенный канал. Она гарантирует, что: 1) Письмо было отправлено именно этим человеком, и 2) Что информация по пути не была изменена. Gpg – консольная программа, однако известно множество оконных оболочек, делающих работу с ней еще проще. GPG основан на принципе открытых ключей (Public Key Infrastructure) – то есть, существуют 2 ключа: закрытый ключ используется для подписи и шифрования, а открытый ключ – для расшифровки и проверки правильности подписи.
Фильтрация пакетов в сетях.
Шифрование и электронные подписи
Импортировать 2 публичных ключа преподавателя (ключи и электронные подписи на дискете преподавателя)
Вариант 1
Вариант 2
Вариант 3
Вариант 4
Вариант 5
Вариант 6
Вариант 7
Справочник команд iptables iptables [ключи] [-t table] command [match] [target/jump] -t table – задает таблицу (см. таблицу 1) Таблица 1 Типы таблиц firewall
command – команда (см. таблица 3) Таблица 2 Команды
ключи Таблица 3 Ключи
match – критерий Таблица 4 Критерии проверки
Действие: ACCEPT – принять DROP- сбросить REJECT – отклонить LOG – запротоколировать Gnupg – утилита PGP шифрования и создания электронных подписей Генерация ключа: [user@mdk]$ gpg --gen-key Экспорт ключа: gpg -armor --export [email protected] > myopen.asc Импорт ключа Открытый ключ может быть добавлен к Вашей связке при помощи команды import: gpg --import newkey.asc Проверка отпечатка Достоверность импортированного ключа должна быть подтверждена при помощи отпечатка: gpg –fingerprint [email protected] Экспорт ключа на сервер ключей Отпечатки ключа проверяются его владельцем. можно сразу поместить ключ на сервер: gpg --send-keys --keyserver wwwkeys.pgp.net [email protected] Подписывание ключа gpg --edit-key new@mail.ru (переходит в командный режим) sign Посмотреть цепочку подписей: gpg --list-sigs. Создание электронной подписи: gpg --clearsign -a test.file - создает подпись Проверка электронной подписи gpg --verify test.file.asc Шифрование файла gpg -ea –r [email protected] test.file - зашифровать Дешифрование файла gpg -d test.file.asc >test.file расшифровать Литература:
|
![]() |
Лекция I и проблема языка и сознания лекция II 31 слово и его семантическое... Монография представляет собой изложение курса лекций, про* читанных автором на факультете психологии Московского государственного... |
![]() |
Лекция I и проблема языка и сознания лекция II 31 слово и его семантическое... Монография представляет собой изложение курса лекций, про* читанных автором на факультете психологии Московского государственного... |
![]() |
Лекция Предмет, задачи и методы перевода Лекция Общая характеристика современной теории перевода. Лекция Переводческая эквивалентность |
![]() |
Лекция Отечественная историография Гражданской войны в России Лекция... Лекция Национальная политика советского государства: теория и практика вопроса |
![]() |
Курс лекций Ставрополь, 2015 содержание стр. Введение лекция Введение... Лекция 5: Приборы и приспособления для обнаружения и регистрации ионизирующих излучений |
![]() |
Литература 58 Лекция №15 Понятия и сущность данных, информации, знаний.... Лекция № Поиск полных текстов научных документов в мировых издательских системах 33 |
![]() |
Лекция Основы процесса тестирования по 3 Лекция Как протестировать неизвестную программу или наращиваемый подход к первичному функциональному тестированию по. 17 |
![]() |
Лекция «Художественная литература о воспитании безнадзорных детей»,... М 15 А. С. Макаренко. Публичные выступления (1936-1939 гг.). Аутентичное издание. Составитель, автор комментариев: Гётц Хиллиг. Серия:... |
![]() |
Лекция Автоматическое и автоматизированное управление. 5 Лекция Основные требования к scada-системам и их возможности. Аппаратные и программные средства scada-систем 17 |
![]() |
Лекция Введение в курс «Компьютерные технологии в науке и образовании» Лекция Классификация и характеристика программных средств информационной технологии обучения (ито) 18 |
![]() |
Содержание Введение Лекция Базы данных и файловые системы Файловые системы 1 Структуры файлов Лекция Ранние подходы к организации бд. Системы, основанные на инвертированных списках, иерархические и сетевые субд. Примеры. Сильные... |
![]() |
Лекция Язык sql 46 вставка одного запроса внутрь другого 68 как работает... Эти базы данных создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами... |
![]() |
Содержание Лекция № |
![]() |
Лекция «в защиту жизни» 9 |
![]() |
Руководство по Эффективному Использованию Апифитопродукции Источник... Эта лекция входит в общеобразовательную программу всех вузов, имеющих и не имеющих отношение к медицине. В образовании начинается... |
![]() |
Лекция №23. Тема: «Условия прочности и надёжности грузозахватных... |
Поиск |