Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

ПОСТРОЕНИЕ ЗАЩИЩЕННЫХ РОУТЕРОВ НА БАЗЕ CISCO IOS Часть 1 Часть 2

С Т А Т Ь Я - 23 / 01 / 2001 ПОСТРОЕНИЕ ЗАЩИЩЕННЫХ РОУТЕРОВ НА БАЗЕ CISCO IOS(2).

Шаг 8 : Анти-spoofing

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

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 Вам понадобится коммутатор, который будет отбрасывать пакеты, приходящие на интерфейс с адресом источника, который не маршрутизируется на данном интерфейсе(пропускает входящие пакеты, но не отправляет их на интерфейс, с которого они пришли).

Некоторые версии ISO могут делать подобное с помошью команды "ip verify unicast reverse-path" или как называют это грамотно - Cisco Express Forwarding (CEF) . Это требует симметричного роутинга пакетов и реализовано в комутаторах 7500 Series (любые 7000 с IOS 11.3) или 12000 Gigabit.

Шаг 9 : Уменьшение риска DоS атак

За несколько прошедших лет появилось несколько DoS атак, использующий слабости TCP/IP стека. Для предотвращения наиболее распространенных атак или по крайней мере повышения устоичивости роутера к ним используются ACL и другие механизмы описанные ниже.

Атака SYN flood

SYN flood происходит, когда нападающий посылает на открытый порт хоста большое количество SYN пакетов с заведомо недостижимым адресом источника. Жертва отвечает пакетом SYN, ACK по недоступному IP и в результате трехступенчатая схема установления TCP соединения никогда не завершается. Очередь half-open сессий TCP со статусом SYN_RCVD хоста-жертвы быстро растет и достигает определенного предела. В итоге хост перестает принимать новые запросы на установление соединения(SYN пакеты).

SYN flood подробно обсуждается в публикации CISCO "Defining Strategies to Protect Against TCP SYN Denial of Service Attacks" [4].

В IOS реализован механизм названный TCP Intercept [5], защищающий от разновидностей данной атаки. TCP Intercept впервые появился в IOS 11.3 и требует специфического конфигурирования роутера. В Enterprise версии IOS добавлены дополнительные возможности.

Мы обнаружили что TCP Intercept на практике работает достаточно надежно (защищая от реальных SYN flood атак), однако, процесс конфигурирования достаточно специфичный и зависит о множества конкретных факторов в вашей сети. В можете почитать документацию от Cisco, чтобы убедиться, что TCP Intercept как минимум смягчит послдствия SYN flood атак.

Атака Land

Атакующая программа (land.c) послает пакет с идентичными портами и IP адресами источника и получателя. Подобные пакеты вызывают исключительные во многих ОС, роутерах и т.д.

Мы рекомендуем использовать последние версии IOS, которые корректно обрабатывают такие ситуации. Информации об уязвимости различных версий IOS для данной атаки можно найти на официальном сайте Cisco. Если Вы не можете обновить версию IOS Вам необходимо сконфигурировать надлежащим образом ACL.

Защита от атак из внутренней подсети(фильтрация доступа)

Если во внутреней подсети есть подозрительные хосты или пользователи, Вы можете использовать Ingress Filtering [7]. Запрещая пакеты 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

Smurf атаки по прежнему являются чумой Интернта. Более подробно Крайг Хайген изложил ее описание и способы защиты от нее в свое статье [8]. Чтобы ваша сеть не выступала в роли распространителя данной атаки, необходимо в обязательном порядке фильтровать пакеты перед их отправкой по шировещательным адресам локальной сети по всем Ethernet интерфейсам :

interface Ethernet0 no ip directed-broadcast interface Ethernet1 no ip directed-broadcast Шаг 10 : Защита хостов находящихся за роутером

Роутер может обеспечить дополнительную защиту хостов находящихся за ним. Это включает зашиту 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 сервер, которые необходимо конфигурировать правильно)

Шаг 11 : Проверка конфигурации

Прежде всего Вы должны убедиться что TCP и UDP small-servers выключенны (команда sh runnig-config должна показать что они выключенны). Как минимум просканируйте роутер сканером портов.

Мы используем для этих целей nmap[9].

[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 910 open udp unknown Обратите внимание: При использовании nmap для сканирования UDP портов на роутере мы видим ложные открытые порты . Старайтесь проводить комбинированное сканирование несколькими сканерами для получения более точной информации. На самом деле при при сканирование SATANом показало, что порты 611/udp и 727/udp не авляются открытыми . [root@fuel bin]# ./udp_scan 192.168.0.1 1-1024 123:ntp: 161:snmp: 387:UNKNOWN: 910:UNKNOWN: Также мы заметили что IOS версий 11.2 и 11.3 имеют открытыми 387/udp и 910/udp порты. Если кто-нибудь из Сisco может объяснить это, мы готовы его выслушать. В версии IOS 12.0 данная неувязка исправлена.

Ссылки

Главные ссылки

Increasing Security on IP Networks is at http://www.cisco.com/univercd/cc/td/doc/cisintwk/ics/cs003.htm

Cisco Internet Security Advisories can be found at http://www.cisco.com/warp/public/707/advisory.html

Особые ссылки

[0] Marcus J. Ranum, "Thinking About Firewalls V2.0: Beyond Perimeter Security" http://www.clark.net/pub/mjr/pubs/think/index.htm

[1] Decoding type 7 passwords http://geek-girl.com/bugtraq/1997_4/0156.html

[2] Password Recovery Techniques http://www.cisco.com/warp/public/701/22.html

[3] CIAC bulletin on login banners http://ciac.llnl.gov/ciac/bulletins/j-043.shtml

[4] "Defining Strategies to Protect Against TCP SYN Denial of Service Attacks" http://www.cisco.com/warp/public/707/4.html

[5] Information on TCP Intercept http://www.cisco.com/univercd/cc/td/doc/product/software/ios113ed/ 113ed_cr/secur_c/scprt3/scdenial.htm

[6] Information on land attacks http://www.cisco.com/warp/public/770/land-pub.shtml

[7] RFC 2267: Network Ingress Filtering: Defeating Denial of Service Attacks by P. Ferguson and D. Senie ftp://ftp.isi.edu/in-notes/rfc2267.txt

[8] Craig Huegen's paper http://users.quadrunner.com/chuegen/smurf.cgi

Cisco has a paper Minimizing the Effects of "Smurfing" Denial of Service (DOS) Attacks http://www.cisco.com/warp/public/707/5.html

[9] Fyodor's nmap http://www.insecure.org/nmap/

Приложение А

Конфигурация роутера рассматриваемая в этой статье:

! Все реальные адреса изменены ! ! ntp_server1_ip: 192.168.1.100 ! ntp_server2_ip: 192.168.1.101 ! syslog1_ip: 192.168.1.102 ! syslog1_ip: 192.168.1.103 ! mgmt_ip: 192.168.1.104 ! snmp_mgmt_ip: 192.168.1.105 ! version 11.3 service timestamps debug uptime service timestamps log datetime localtime ! ! protect passwords service password-encryption enable secret 5 $1$k2gM$4W2tuuTUqxuRd.LQxsh/v. ! username variablek password 7 110F0B0012 username brett password 7 15190E1A0D24 ip subnet-zero ! hostname reeb ! interface Ethernet0 description Inside Interface ip address 192.168.0.1 255.255.0.0 ip access-group e0-in in no ip directed-broadcast no ip unreachables no ip proxy-arp no ip redirects ! interface Ethernet1 description Outside Interface ip address 172.16.1.1 255.255.255.252 ip access-group e1-in in no ip directed-broadcast no ip unreachables no ip proxy-arp no ip redirects ! ! выключаем неиспользуемые сервисы no ip bootp server no ip http server no service tcp-small-servers no service udp-small-servers no service finger no cdp run ! ! disable source routed packets no ip source-route ! ! setup the clock clock timezone PST -8 clock summer-time zone recurring ! setup NTP ntp authenticate ntp authentication-key 1 md5 151C1F1C0F7932 7 ntp trusted-key 1 ntp access-group peer 20 ntp server 192.168.1.100 key 1 prefer ntp server 192.168.1.101 key 1 ! ! configure logging service timestamps log datetime localtime logging buffered 4096 informational logging console informational logging 192.168.1.102 logging 192.168.1.103 ! ! configure SNMP ! allow SNMP reads from hosts in access-list 10 snmp-server community h4rd2gu3ss ro 10 ! send traps with community names snmp-server trap-authentication ! send all traps to the management host on the inside interface snmp-server trap-source Ethernet0 snmp-server host 192.168.1.105 h4rd2gu3ss ! ! simple static routing. default to the ISP ip route 0.0.0.0 0.0.0.0 172.16.1.2 ip route 192.168.0.0 255.255.0.0 192.168.0.2 ! ! standard ip access-lists ! ! allowed hosts for SNMP reads no access-list 10 access-list 10 permit host 192.168.1.105 access-list 10 deny any ! ! ntp hosts no access-list 20 access-list 20 permit host 192.168.1.100 access-list 20 permit host 192.168.1.101 access-list 20 deny any ! ! hosts allowed to telnet to the router no access-list 99 access-list 99 permit host 192.168.1.104 access-list 99 deny any ! ! extended ip access-lists ! no ip access-list extended e1-in ip access-list extended e1-in ! Anti-spoofing ! Deny packets on outside with src address = our inside nets ! This normally wouldn't be a RFC 1918 network deny ip 192.168.0.0 0.0.255.255 any log ! ! Deny first octet zeros, all ones, and 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 ! ! Deny class D (multicast) and class E (reserved for future use) deny ip 224.0.0.0 15.255.255.255 any log deny ip 240.0.0.0 7.255.255.255 any log ! ! Deny RFC 1918 addresses deny ip 10.0.0.0 0.255.255.255 any log deny ip 172.16.0.0 0.15.255.255 any log ! included above in this example ! deny ip 192.168.0.0 0.0.255.255 any log ! ! Deny 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 ! ! ICMP allows ! Allow fragmentation needed messages (type 3 code 4) permit icmp any 192.168.0.0 0.0.255.255 packet-too-big ! Allow outbound ping and MS style traceroute (type 0) permit icmp any 192.168.0.0 0.0.255.255 echo-reply ! Uncomment to allow ping to the inside net (type 8) ! permit icmp any 192.168.0.0 0.0.255.255 echo ! Uncomment to allow traceroute ! permit icmp any 192.168.0.0 0.0.255.255 ttl-exceeded ! ! permit certain connections ! example: permit connections from the outside to a web server permit tcp any host 192.168.0.5 eq 80 ! ! explicit default deny deny ip any any log ! no ip access-list extended e0-in ip access-list extended e0-in ! ! our policy is only allow replies from the inside web server, ! some ICMP and specific inside hosts to access the router. ! ! permit certain connections ! example: allow responses from the web server permit tcp host 192.168.0.5 eq www any established ! ! allow connections from ntp, mgmt, etc. to the router permit udp host 192.168.1.105 host 192.168.0.1 eq snmp permit udp host 192.168.1.100 host 192.168.0.1 eq ntp permit udp host 192.168.1.101 host 192.168.0.1 eq ntp permit tcp host 192.168.1.104 host 192.168.0.1 eq telnet ! ! allow specific ICMP out permit icmp 192.168.0.0 0.0.255.255 any packet-too-big permit icmp 192.168.0.0 0.0.255.255 any echo ! Uncomment to allow inbound ping responses ! permit icmp 192.168.0.0 0.0.255.255 any echo-reply ! Uncomment to allow traceroute ! permit icmp 192.168.0.0 0.0.255.255 any ttl-exceeded ! ! Ingress filtering: uncomment to deny connections to router and ! then allow outbound if source address = our net. In this case, ! we don't allow any traffic out and go directly to explicit deny. ! deny ip any host 192.168.0.1 log ! permit ip 192.168.0.0 0.0.255.255 any ! ! explicit deny deny ip any any log ! ! line con 0 login local ! logout idle console access after two min exec-timeout 2 0 line aux 0 ! Uncomment below to disable logins on the AUX port ! no exec ! Or allow password access login local line vty 0 4 ! uncomment to disable telnet listener ! transport input none access-class 99 in login local end
  neo

Часть 1 Часть 2


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте