Показаны сообщения с ярлыком port security. Показать все сообщения
Показаны сообщения с ярлыком port security. Показать все сообщения

суббота, 2 августа 2014 г.

Настройка Port Security на коммутаторах Cisco

В данной статье, я расскажу что такое Port Security и приведу пример настройки интерфейса коммутатора cisco с использованием этой функции.
Port Security — это функция канального уровня, которая создана для предотвращения несанкционированной смены MAC адреса сетевого подключения. Также, данная функция ограждает коммутатор от атак, которые могут быть направлены на переполнение таблицы MAC адресов.
С помощью Port Security можно ограничить (на канальном уровне) количество подключений (MAC адресов) на интерфейсе, а так же, при необходимости, ввести безопасные MAC адреса вручную (статические MAC адреса).
Пример настройки Port Security на интерфейсе коммутатора cisco:
port-security.jpg
Рисунок 1 — Типичное подключение IP телефона и компьютера к интерфейсу коммутатора.
На рисунке 1 мы видим распространенное подключение устройств в больших организациях. Как правило к порту подключаются два устройства: IP телефон и компьютер пользователя. Пример конфига интерфейса коммутатора с использованием Port Security:
interface FastEthernet0/1
switchport access vlan 10
switchport mode access
switchport voice vlan 2
switchport port-security
switchport port-security maximum 2
switchport port-security violation restrict
На выше приведенном конфиге видно, что 10 влан настроен для компьютеров, 2 влан используется для IP телефонии. Далее, по фукнциям Port Security:
- «switchport port-security» означает, что мы включили Port Security на данном интерфейсе;
- «switchport port-security maximum 2» говорит о том, что только 2 MAC адреса, могут «светиться» на интерфейсе одновременно (MAC адрес телефона и компьютера);
- «switchport port-security violation restrict» указывает режим реагирование на нарушение. Таким образом, если на данном интерфейсе одновременно «засветится» третий (неизвестный) MAC адрес, то все пакеты с этого адреса будут отбрасываться, при этом отправляется оповещение – syslog, SNMP trap, увеличивается счетчик нарушений (violetion counter).
Немного расскажу о режимах реагирования на нарушение безопасности. Существует три способа реагирование на нарушение безопасности:
- «switchport port-security violation restrict»;
- «switchport port-security violation shutdown»;
- «switchport port-security violation protect».
Команду «switchport port-security violation restrict» я описал выше.
Вторая команда — «switchport port-security violation shutdown» при выявлении нарушений переводит интерфейс в состояние error-disabled и выключает его. При этом отправляется оповещение SNMP trap, сообщение syslog и увеличивается счетчик нарушений (violation counter). Кстати, если интерфейс находится в состоянии error-disabled, то самым легким путем разблокировать его, является выключить и включить интерфейс (ввести в настройках интерфейса команду — «shutdown», а потом — «no shundown»).
Если же на интерфейсе введена команда — «switchport port-security violation protect», то при нарушениях, от неизвестного MAC адреса пакеты отбрасываются, но при этом никаких сообщений об ошибках не генерируется.
Какой именно способ выбрать дело каждого, но как мне кажется, «switchport port-security violation restrict» является оптимальной для большинства случаев.
Идем дальше. Если необходимо, то можно статически ввести MAC адреса, тогда конфиг будет иметь вид:
interface FastEthernet0/1
switchport access vlan 10
switchport mode access
switchport voice vlan 2
switchport port-security
switchport port-security maximum 2
switchport port-security violation restrict
switchport port-security mac-address 0005.5E80.22A3
switchport port-security mac-address 00E0.F75B.C101
Теперь, только от этих двух MAC адресов (0005.5E80.22A3, 00E0.F75B.C101) на данный интерфейс будут разрешены входящие пакеты.
Немного поговорим о MAC адресах. При использовании Port Security существуют такие типы MAC адресов:
- Динамические;
- Статические;
- Sticky MAC адреса.
Динамические MAC адреса хранятся в таблице коммутации, но удаляются при истечении «aging time» или при перезагрузке коммутатора.
Статические адреса хранятся в таблице MAC адресов и записываются в памяти коммутатора. Не удаляются при истечении «aging time» и при перезагрузке свитча.
Sticky MAC адреса могут быть внесены в таблицу коммутации статически (в ручную) или динамически выучены. Они хранятся в таблице коммутации и в памяти свитча. Не удаляются при истечении «aging time» или перезагрузке коммутатора.
Хочу отметить, что при использовании Port Security «aging time» по умолчанию равен 0.
Теперь, приведу не большой пример настройки Port Security с использованием Sticky MAC адресов:
Switch#conf t
Switch(config)#
Switch(config)#interface fa0/1
Switch(config-if)#
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10
Switch(config-if)#switchport voice vlan 2
Switch(config-if)#switchport port-security
Switch(config-if)#switchport port-security maximum 2
Switch(config-if)#switchport port-security mac-address 0005.5E80.22A3
Switch(config-if)#switchport port-security mac-address sticky
Switch(config-if)#switchport port-security violation restrict
В примере приведенном выше, был сконфигурирован один MAC адрес статически («switchport port-security mac-address 0005.5E80.22A3»), а все остальные MAC адреса (в нашем случае еще один) будут выучены динамически, но записаны в память коммутатора («switchport port-security mac-address sticky»). Вот что мы увидим, если в привилегированном режиме введем команду — «show run int fa0/1»:
interface FastEthernet0/1
switchport access vlan 10
switchport mode access
switchport voice vlan 2
switchport port-security
switchport port-security maximum 2
switchport port-security mac-address sticky
switchport port-security violation restrict
switchport port-security mac-address 0005.5E80.22A3
switchport port-security mac-address sticky 00E0.F75B.C101
Таким образом, MAC адрес телефона (0005.5E80.22A3) введен статически, а адрес компьютера (00E0.F75B.C101) был выучен коммутатором самостоятельно и занесен в конфиг свитча.
В данной статье, я рассказал основы настройки Port Security, которые необходимые в большинстве ситуаций. Если, кому нибудь хочется больше углубиться в данную технологию, то лучше почитать на официальном сайте cisco, но как мне подсказывает опыт, этой информации должно хватить среднестатистическому инженеру.
Источник: ciscomaster.ru/content/nastroyka-port-security-na-kommutatorah-cisco

Базовая настройка коммутатора Cisco

Базовая настройка коммутатора Cisco

1. Настройка параметров терминала.

Для базовой настройки параметров терминала:

Назначить имя устройства

    (config)# hostname <string>

Если необходимо, изменить строку приглашения

    (config)# prompt %n@%h%p

где:    %% -  символ процента;
        %n -  номер tty-порта;
        %h -  имя хоста;
        %p -  символ приглашения ( # или > );
        %s -  пробел;
        %t -  табуляция;

Создать баннеры:


    (config)# banner motd # text #
    (config)# banner login # text #
    (config)# banner exec # text #
    (config)# banner incoming # text #

Отключить поиск в системе DNS:

    (config)# no ip domain-lookup


Задать время сеанса (5 мин.):

    (config)# line { console | vty | tty } <n>
    (config-line)# exec-timeout 5 0


Для вывода информации о местоположении устройства при входе пользователя в систему:

    (config)# service linenumber
    (config)# line console 0
    (config-line)# location <text>


Чтобы сообщения консоли не мешали вводу команд:

    (config)# line { console | vty | tty } <n>
    (config-line)# logging synchronous


Задать скорость консольного порта:

    (config)# line console 0
    (config-line)# speed 115200


Определить длину истории команд:

    (config)# line { console | vty | tty } <n>
    (config-line)# history size <0-256>


Включить запись истории изменения конфигурации:

    (config)# archive
    (config-archive)# log config
    (config-archive-log-cfg)# logging on
    (config-archive-log-cfg)# hidekeys


Включить поддержку IPv6, перезагрузить роутер

    (config)# sdm prefer dual-ipv4-and-ipv6 routing
    (config)# ^Z
    # wr
    # reload


2. Установка параметров входа в систему.

2.1 Локальная аутентификация

Добавить локального пользователя:

    (config)# service password-encryption
    (config)# username <str> privelege <0-15> secret <str>


Включить поддержку ААА и настроить аутентификацию:

    (config)# enable secret <str>
    (config)# aaa new-model
    (config)#
    (config)# aaa authentication login default local
    (config)# aaa authorization exec default local
    (config)# aaa authorization console
    (config)#
    (config)# line { console | vty | tty } <n>
    (config-line)# login exec default
    (config-line)# authorization exec default


2.1 Аутентификация на RADIUS-сервере

На RADIUS-сервере в файл users прописать(!!! до первого вхождения пользователя DEFAULT):

  "username" Cleartext-Password := "passwd"
             Auth-Type == Local,
             Service-Type = NAS-Prompt-User,
             Cisco-AVPair = "Shell:priv-lvl=15"


В файл clients.conf:

  client <short-name>{
    ipv6addr  = xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
    secret    = secret123
    shortname = short-name

  }


На коммутаторе:

    (config)# radius server RADSERV1
    (config-radius-server)# address ipv6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
    (config-radius-server)# key 0 secret123
    (config-radius-server)# exit
    (config)#
    (config)# aaa group server radius RADGRP1
    (config-sg-radius)# server name RADSERV1
    (config-sg-radius)# deadtime 3
    (config-sg-radius)# exit


Включить поддержку ААА и настроить аутентификацию:

    (config)# enable secret <str>
    (config)# username bkpusr privelege <0-15> secret bkppasswd
    (config)# aaa new-model
    (config)#
    (config)# aaa authentication login default group RADGRP1 local
    (config)# aaa authorization exec default group RADGRP1 local
    (config)#
    (config)# line { console | vty | tty } <n>
    (config-line)# login exec default
    (config-line)# authorization exec default


3. Настройка параметров журналирования.


Включить ведение журнала:

    (config)# logging on
    (config)# logging buffered
    (config)# logging trap <0-7>

0 - минимальное, 7- записывать все сообщения


Добавлять системное время в сообщения:

    (config)# service timestamps log datetime msec localtime show-timezone


Сбор данных на syslog-сервер:

  Для начала необходимо добавить строку в /etc/syslogd.conf вида Facility.Severity file

    local7.info /var/log/cisco3750e-b1s3

Затем настроить роутер:

    (config)# logging facility local7
    (config)# logging trap info
    (config)# logging <servername.com>


Включить сервис нумерации сообщений и записи истории посещений:

    (config)# service sequence-numbers
    (config)# login on failure log
    (config)# login on success log


4. Установка даты, времени, часового пояса, настройка NTP-клиента.


Перевести внутренние часы:

    R1# clock set 12:00:00 20 jun 2012
    R1# conf
    Configuring from terminal, memory, or network [terminal]?
    (config)# clock timezone SAM 3
    (config)# clock summer-time SAM recurring


Включить NTP-клиент:

    (config)# ntp server ipv6 ntp6a.rollernet.us
    (config)# ntp server ipv6 ntp6b.rollernet.us


5. Настройка сервисов:

5.1 SSH

Установить имя хоста:

    (config)# ip domain name <name.local>
    (config)# hostname <name>


Сгенерировать секретный ключ (l > 768):

    (config)# crypto generate rsa


Настроить SSH-сервер:

    (config)# ip ssh timeout <1-120>
    (config)# ip ssh authentication retries <0-5>
    (config)# ip ssh logging events
    (config)# ip ssh maxstartups <2-128>
    (config)# ip ssh source-interface <type><mod>/<sl>


В настройках линии указать возможность приема соединений по SSH:

    (config)# line vty 0 15
    (config-line)# transport input ssh


Включить сервис SCP:

    (config)# ip scp server enable


Идентификация по открытому ключу:

    (config)# ip ssh pubkey-chain
    (conf-ssh-pubkey)# username <str>
    (conf-ssh-pubkey-user)# key-string
    (conf-ssh-pubkey-data)# $de12w1sqwsa8
    (conf-ssh-pubkey-data)# $sdadq3eqwsaczxzXX
    (conf-ssh-pubkey-data)# $asdad23adaxxa== pipi@fedi.nil.si
    (conf-ssh-pubkey-data)# exit
    (conf-ssh-pubkey-user)#


5.2 CDP (LLDP)

Сервис CDP включен на коммутаторе по-умолчанию. Для выключения:

    (config)# no cdp run


На отдельном интерфейсе:

    (config-if)# no cdp enable


Время между посылками CDP-пакетов:

    (config)# cdp timer <sec>


Время, которое принятая от соседа информация считается действительной:

    (config)# cdp holdtime <sec>

Если в сети находятся устройства иных производителей, то имеется возможность
использовать протокол LLDP:

    (config)# lldp run


На отдельном интерфейсе:

    (config-if)# lldp transmit
    (config-if)# lldp receive


5.3 SNMPv3

Создать SNMP-tree view для чтения и записи:

    (config)# snmp-server view READVIEW1 <MIB-view-family> { included | excluded }
    (config)# snmp-server view WRITEVIEW1 <MIB-view-family> { included | excluded }


где MIB-view-family может быть:  mib2, system, internet, iso и т.д.

Создать access-list:

    (config)# ipv6 access-list SNMP-ACL1
    (config-ipv6-acl)# permit xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
    (config-ipv6-acl)# exit


Создать SNMP-группу:

    (config)# snmp-server group <grname> v3 auth read READVIEW1 write WRITEVIEW1 access ipv6 SNMP-ACL1


Создать пользователей SNMP-сервера:

    (config)# snmp-server user <uname> <grname> v3 auth md5 <authpasswd> access ipv6 SNMP-ACL1


5.4 VTPv3

Основные отличия от 1 и 2 версии:
Поддержка Privat-VLAN;
Поддержка полного диапазона VLAN ( 1 - 4096 );
Возможность настройки на уровне отдельного порта;
Защита пароля домена;
Решена проблема с подключением нового коммутатора (когда происходила
перезапись базы VLAN всего домена);
Обмен данными более эффективен;
Работа в режиме передачи данных между процессами MST.

Настройка VTPv3:

    (config)# vtp domain <name>
    (config)# vtp version 3
    (config)# vtp mode { server | client }
    (config)# vtp password <passwd> { hidden | secret }


Если switch работает в режиме server, необходимо его тип - BACKUP(по-умолчанию) или PRIMAR:

    Switch# vtp primary vlan
      This system is becoming primary server for feature vlan
      No conflicting VTP3 devices found.
      Do you want to continue? [confirm]


Обновления принимаются только от PRIMARY-сервера. В домене только один primary,
остальные backup, client либо transparent. При подключении в сеть 2-ого
primary, он автоматически становится backup.

Выключить VTP на интерфейсе можно командой:

    (config-if)# no vtp


6. Повышение уровня безопасности устройства.


Выключить ненужные сервисы:

    (config)# no service tcp-small-servers
    (config)# no service udp-small-servers
    (config)# no service dhcp
    (config)# no service finger
    (config)# no service config
    (config)# no ip bootp server
    (config)# no ip http server
    (config)# no ip http secure-server
    (config)# no ip source route
    (config)# no ip gratitous-arps
    (config)# ip options drop


Включить нужные:

    (config)# service tcp-keepalives-in
    (config)# service tcp-keepalives-out


Настроить access-class на VTY:

    (config)# ipv6 access-list ADMIN-NETW
    (config-ipv6-acl)# permit xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/yyy
    (config-ipv6-acl)# exit
    (config)#
    (config)# line vty 0 15
    (config-line)# ipv6 access-class ADMIN-NETW
    (config-line)# exit


MANAGEMENT и COMMON VLAN:

    (config)# int vlan 1
    (config-if)# shutdown
    (config-if)# exit
    (config)#
    (config)# vlan 254
    (config-vlan)# name MANAGEMENT
    (config-vlan)# state active
    (config-vlan)# exit
    (config)#
    (config)# int vlan 254
    (config-if)# ipv6 enable
    (config-if)# ipv6 address 2001:DB8:5005:FE::/64 eui-64
    (config-if)# ipv6 traffic-filter ADMIN-NETW
    (config-if)# no shutdown
    (config-if)# exit
    (config)#
    (config)# vlan 255
    (config-vlan)# name COMMON
    (config-vlan)# state active
    (config-vlan)# exit
    (config)#
    (config)#int range g1/0/1 - 48
    (config-if-range)# switchport host
    (config-if-range)# switchport access vlan 255
    (config-if-range)# ^Z
    Switch# wr


7. Создание меню быстрого вызова команд.


Задать заголовок:

    (config)# menu <name> title # Текст #
    (config)# menu <name> clear-screen
    (config)# menu <name> line-mode


Ввести приглашение:

    (config)# menu <name> prompt # Текст #


Для каждого пункта меню:

    (config)# menu <name> text <pt-num> <Текст>
    (config)# menu <name> command <pt-num> <command>


Завершить пунктом выхода из меню:

    (config)# menu <name> text <last-pt-num> Menu exit


Вызов меню из режима exec:

    Switch# menu <name>

Источник: opennet.ru/tips/info/2701.shtml