Автор работы: Пользователь скрыл имя, 30 Октября 2013 в 00:40, курсовая работа
Одним из лидеров по производству сетевого оборудования является компания CISCO Systems Incorporated. Устройства фирмы CISCO являются весьма надежным оборудованием и по удобству конфигурирования превосходят своих конкурентов, более 80% интернет-сетей по всему миру построены на оборудовании CISCO.
Проблеме организации процессов управления и мониторинга сетями, построенными на оборудовании CISCO, и посвящён данный курсовой проект. В качестве «живого» примера будет рассматриваться корпоративная сеть а/о «АВТОВАЗ».
This is a private system operated for and by
Big Phreaking Bank (BPB).
Authorization from BPB management is required to use
this system.
Use by unauthorized persons is prohibited!!
#
IOS поддерживает две версии SNMPv1 и SNMPv2,в которые изначально не была реализована поддержка авторизации и защиты данных. Некоторые реализации SNMPv2 включают повышенные средства безопасности, версия SNMPv3 наиболее проработанная в этом плане.
Обычно запрещается
особой защищенности, но если нужно
использовать этот протокол, то рекомендуются
следующие меры защиты:
Эти рекомендации приведены ниже:
:! разрешаем только чтение SNMP traps с хостов включенных в ACL 10
snmp-server community h4rd2gu3ss ro 10
!
! access list for SNMP reads
access-list 10 permit host snmp_mgmt_ip
access-list 10 deny any
!
! посылаем trap-s c общими именем
snmp-server trap-authentication
! посылаем все trap-ы на управляющий хост на внутренем интефейсе
snmp-server trap-source Ethernet0
snmp-server host snmp_mgmt_ip h4rd2gu3ss
!
interface Ethernet0
ip access-group e0-in in
!
ip access-list extended e0-in
! разрешаем доступ на определенную машину изнутри
permit udp host snmp_mgmt_ip host 192.168.0.1 eq snmp
Если
политика безопасности требует, чтобы
в логах зафиксировались
только попытки неудачной авторизации
по спискам доступа (ACL) или
другие события, затрагивающие сетевую
безопасность, существует возможность
использования syslog daemon на любом UNIX хосте
для ведения записей событий на роутере.
Поскольку syslog использует UDP, который не
гарантирует доставку данных, то хорошей
идеей будет записывать
сообщения в лог нескольких хостов, что
добавит надежности в случае
потери пакетов или других непредвиденных
событий. Также возможно использование
NTP для синхронизации времени записи логов,
что может помочь при анализе логов в случае
возможных судебных разбирательствах.
Конфигурация NTP
Без синхронизации времени на различных
хостах, осуществляющих функции файрвола,
роутеров и остальных, реальное установление
взаимосвязи
событий по сообщениям в логах невозможно.
Протокол
NTP и его реализация в Cisco поддерживают
авторизацию с
шифрованием по алгоритму MD5. Это позволяет
NTP клиенту получить
точное время и предотвращает от spoofing
атак на сервера NTP и
неавторизованное изменение информации
на них. Возможно также установить выделенный
NTP сервер, поддерживающий MD5 авторизацию.
Ниже приведён пример конфигурирования NTP сервера, которому разрешается получать обновления только с внутренних NTP серверов и авторизация к которому производится с использованием MD5(MAC).
! Устнавливаем timezone
clock timezone PST -8
clock summer-time zone recurring
! Конфигурируем NTP
ntp authenticate
ntp authentication-key 1 md5 ntpk3y
ntp trusted-key 1
ntp access-group peer 20
ntp server ntp_server1_ip key 1 prefer
ntp server ntp_server2_ip key 1
!
! Разрешаем определенных хостам получать updates NTP
access-list 20 permit host ntp_server1_ip
access-list 20 permit host ntp_server2_ip
access-list 20 deny any
Установка syslog
В этом разделе мы посылаем на сообщения syslog на два хоста и фиксируем местное время и дату пересылки этих сообщений.
: ! Посылаем сообщения на хосты и записываем местное время и дату в логи syslog.
logging syslog1_ip
logging syslog2_ip
По умолчанию роутер обычно посылает сообщения syslog в local7 facility. Если требуется сохранять сообщения роутера в выбранном файле, то syslog.conf на UNIX хосте должен содержать следующую строчку:
# сообщения роутера
local7.* /var/adm/router.log
Можно изменить тип используемого facility:
logging facility facility-type
no ip source-route
Некоторые
атаки направлены на использование
опции IP source route.
Атакующий может определить путь, по которому
будет передаваться пакет и
послать source routed пакет на хост-жертву,
находящийся за роутером,
который в ответ будет отсылать пакеты
по тому же пути. Это позволяет
получать ответы на подделанные атакующим
пакеты. Многие
современные ОС могут запретить данный
обман путем запрета
маршрутизации таких пакетов. В Cisco IOS это
включается командой:
no ip source-route
Ограничение ICMP
Некоторые DoS атаки используют ICMP протокол,
поэтому необходимо
ограничиться использованием только ICMP
сообщений строго
определенных типов.
Как минимум, чтобы надлежащим образом организовать использование Path MTU discovery (PMTU), необходимо ограничить «packet-too-big» сообщения. Остальные типы разрешенных ICMP сообщений будут зависеть от местной политики безопасности.
Отключение ненужных сервисов
Следующим шагом отключим неиспользуемые
сервисы. По умолчанию в IOS включены
некоторые сервисы, которые могут
стать для атакующего
источником дополнительной информации
о системе, и при определенных
случаях он может осуществить DoS атаку
на роутер(следует посмотреть на
используемую версию вашей ISO, чтобы определить,
какие сервисы
включены по умолчанию).
Отключим следующее:
no service udp-small-servers
no service tcp-small-servers
no service finger
no ip bootp server
! по умолчанию http запрещен, но обычно он используется
no ip http server
CDP
Cisco Discovery Protocol (CDP) это платформенно-независимый протокол, который по умолчанию работает на всем оборудовании Cisco. Этот протокол для управления сетями. Этот протокол позволяет оповестить другие устройства Cisco о своем присутствии. Используя его можно получить информацию об устройстве, конфигурации, низкоуровневых протоколах, запущенных на соседних роутерах.
Для выключения CDP на одном интерфейсе нужно ввести:
interface Ethernet1
no cdp enable
Для запрещения использования CDP на всех интерфейсах введите:
no cdp run
Но следует иметь ввиду, что этот протокол используется в системах автоматизированного управления сетями Cisco.
no ip unreachables
По умолчанию, когда пакет отбрасывается в соответствии со списком доступа ACL, роутер возвращает ICMP (тип 3 код 13 или «административно запрещено») сообщение, что дает потенциальному взломщику информацию о том, что роутер защищен с использованием фильтрации списка доступа. Чтобы хакер не смог получить вообще никакого ответа мы включаем:
no ip unreachables
no ip proxy-arp
По умолчанию IOS разрешает ARP proxy на всех своих интерфейсах. Нам не требуется этот сервис, поэтому мы его отключаем:
interface Ethernet0
no ip proxy-arp
interface Ethernet1
no ip proxy-arp
no ip redirects
Здесь мы запрещаем редирект IP на Ethernet интерфейсах:
interface Ethernet0
no ip redirects
interface Ethernet1
no ip redirects
Основная идея, лежащая в основе данного механизма защиты, состоит в том, что никто из внешней сети не может слать пакеты, имеющие в поле адреса источника какой-либо адрес из вашей подсети или зарезервированный адрес. Мы можем использовать списки доступа, чтобы фильтровать такие пакеты и соответственно фиксировать в логах такие события:
ip access-list extended e1-in
! Анти спуфинг : не пропускаем пакеты с адресом = адресам нашей внутренней сети
! Этого может не быть в RFC 1918 net
deny ip 192.168.0.0 0.0.255.255 any log
!
! Запрещаем первый нулевой октет, только его и loopback сеть
deny ip 0.0.0.0 0.255.255.255 any log
deny ip host 255.255.255.255 any log
deny ip 127.0.0.0 0.255.255.255 any log
!
!Запрещаем зарезервированные классы сетей D и E
deny ip 224.0.0.0 15.255.255.255 any log
deny ip 240.0.0.0 7.255.255.255 any log
!
!Запрещаем адреса описанные в RFC 1918
deny ip 10.0.0.0 0.255.255.255 any log
deny ip 172.16.0.0 0.15.255.255 any log
! Включаем для примера
! deny ip 192.168.0.0 0.0.255.255 any log
!
! Запрещаем сеть test-net
deny ip 192.0.2.0 0.0.0.255 any log
!
! Deny end node autoconfig
deny ip 169.254.0.0 0.0.255.255 any log
Понадобится коммутатор, который будет отбрасывать пакеты, приходящие на интерфейс с адресом источника, который не маршрутизируется а данном интерфейсе (пропускает входящие пакеты, но не отправляет их на интерфейс, с которого они пришли).
Некоторые версии IOS могут делать подобное с помощью команды «ip verify unicast reverse-path» или Cisco Express Forwarding (CEF) . Это требует симметричного роутинга пакетов и реализовано на коммутаторах 7500 Series (любые 7000 с IOS 11.3) или 12000 Gigabit.
Появилось несколько типов DoS атак, использующий слабости TCP/IP стека. Для предотвращения наиболее распространенных атак (или по крайней мере повышения устойчивости роутера к ним) используются ACL и другие механизмы описанные ниже.
Атака SYN flood
SYN flood происходит, когда нападающий посылает на открытый порт хоста большое количество SYN пакетов с заведомо недостижимым адресом источника. Жертва отвечает пакетом SYN, ACK по недоступному IP и в результате трехступенчатая схема установления TCP соединения никогда не завершается. Очередь half-open сессий TCP со статусом SYN_RCVD хоста-жертвы быстро растет и достигает определенного предела. В итоге хост перестает принимать новые запросы на установление соединения(SYN пакеты).
В IOS реализован механизм, названный «TCP Intercept», защищающий от разновидностей данной атаки. TCP Intercept впервые появился в IOS 11.3 и требует специфического конфигурирования роутера. В Enterprise версии IOS добавлены дополнительные возможности.
TCP Intercept на практике работает
достаточно надежно (защищая
Атака Land
Атакующая программа (land.c) посылает пакет с идентичными портами и IP адресами источника и получателя. Подобные пакеты вызывают исключительные ситуации во многих ОС, роутерах и т.д.
Рекомендуется использовать последние версии IOS, которые корректно обрабатывают такие ситуации. Информации об уязвимости различных версий IOS для данной атаки можно найти на официальном сайте Cisco. Если нет возможности обновить версию IOS, то необходимо сконфигурировать надлежащим образом ACL.
Защита от атак из внутренней подсети (фильтрация доступа)
Если во внутренней подсети есть подозрительные хосты или пользователи, Вы можете использовать «Ingress Filtering». Запрещая пакеты c поддельным IP адресом источника, Ingress Filtering кроме того, может противостоять DоS атаке идущей из внутренней подсети. В нашем случае это достигается тем, что разрешаем работу только из внутренней сети и запрещаем остальные адреса:
! Ingress filter: разрешаем доступ только для исходящих адресов внутренней сети
ip access-list extended e0-in
permit ip 192.168.0.0 0.0.255.255 any
deny ip any any log
!
! разрешаем входящие пакеты на внутреннем интерфейсе
interface Ethernet0
ip access-group e0-in in
Атака Smurf
Чтобы ваша сеть не выступала в
роли распространителя данной атаки,
необходимо в обязательном порядке фильтровать
пакеты перед их
отправкой по широковещательным адресам
локальной сети по всем Ethernet
интерфейсам:
interface Ethernet0
no ip directed-broadcast
interface Ethernet1
no ip directed-broadcast
Роутер может обеспечить дополнительную защиту хостов, находящихся за ним. Это включает зашитую web, FTP, mail и DNS серверов.
Для
примера приведем ACL для ограничения
доступа к HTTP
серверу (192.168.0.5).
Фильтровать
необходимо как входящие, так и
исходящие пакеты
по списку доступа (используется мнемоника
"in" для обозначения входящего
трафика и "out" для исходящего трафика
на каждом интерфейсе):
ip access-list extended e1-in
! открываем порт 80/tcp на наш сервер www
permit tcp any host 192.168.0.5 eq www
!
interface Ethernet1
ip access-group e1-in in
ip access-list extended e0-in
! разрешаем established соединения от нашего сервера
permit tcp host 192.168.0.5 eq www any established
!
interface Ethernet0
ip access-group e0-in in
Необходимо помнить, что это не защищает от нападений на доступные сервисы в вашей сети (например на запущенный sendmail или http сервер, которые необходимо конфигурировать правильно).
Прежде всего нужно убедиться, что TCP и UDP small-servers выключены (команда sh runnig-config должна показать что они выключены). Как минимум, просканируйте роутер сканером портов.
Можно использовать для этих целей nmap:
[root@fuel src]# nmap -sT 192.168.0.1 -p 1-65535
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on (192.168.0.1):
Port State Protocol Service
23 open tcp telnet
Если VTY доступ запрещен, эти порты
будут закрыты. В нашем случае
разрешено использование telnet сессий
с хоста, откуда производится
сканирование.
Сканирование UDP:
[root@fuel config]# nmap -sU 192.168.0.1
WARNING: -sU is now UDP scan -- for TCP FIN scan use -sF
Starting nmap V. 2.12 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on (192.168.0.1):
Port State Protocol Service
123 open udp ntp
161 open udp snmp
387 open udp aurp
611 open udp npmp-gui
727 open udp unknown
При использовании nmap для сканирования
UDP
портов на роутере мы видим ложные
открытые порты. Целесообразно
проводить комбинированное сканирование
несколькими сканерами для
получения более точной информации. На
самом деле сканирование
SATAN-ом показало, что порты 611/udp и 727/udp не
являются открытыми: