4. Настройка доступа – Сети Для Самых Маленьких

Настройка доступа – Сети Для Самых Маленьких

При более глубокой настройке line vty существует одна опасность.
Есть такой параметр:
access-class. Его настройка позволяет ограничить IP-адреса, с которых возможно подключение. И вот однажды я, как умная маша, решил заняться безопасностью в сети и на всём почти оборудование понаставил эти аксес-листы, чтобы комар не пролетел. В один прекрасный момент пришлось выехать в поле и в тот день я проклял свою аккуратность – никуда не мог достучаться – малейшей лазейки не оставил. В общем будьте с этой командой внимательны или оставляйте для себя лазейки.
При работе с access-list’ами и прочими опасными вещами, неправильная настройка которых может лишить вас доступа к устройству, можно использовать замечательную команду
reload in min, где min время в минутах. Эта команда перезагрузит устройство по истечении указанного времени, если ее не прервать командой reload cancel. Т.е. схема работы такова: вы удаленно копаете что-то, что может в теории (закон Мерфи не забываем) прервать ваш сеанс связи с устройством. Сохраняем текущий (рабочий) конфиг в startup-config (он используется при загрузке), ставим reload in 15, вводим ключевую команду, относительно которой у нас сомнения ;-), и получаем обрыв связи, худшие опасения оправдались. Ждем 15 минут, устройство перегружается с рабочим конфигом, коннект — вуаля, связь есть. Либо (если связь не прервалась) проверяем, что все работает, и делаем reload cancel.

Access policies

Непосредственно сами политики доступа настраиваются в секции Access Policies.

Для начала необходимо создать политику для работы с Active Directory. Нажимаем на ссылку Access Services и создаём новую политику доступа:

Ставим 2 галочки Identity и Authorization.

Далее необходимо указать по какой политике доступа будут работать устройства. Нажимаем на ссылку Service Selection Rules. Создаём правило по которому будут матчиться устройства, работающие по протоколу tacacs :

Похожее:  Guestbook esbt ru личный кабинет

По этому правилу все устройства, запрашивающие данные по протоколу tacacs будут обрабатываться политикой, созданной выше.

Переходим непосредственно к настройке политик доступа. В пункте Identity настраивается источник учётных записей. Выбираем Active Directory. В пункте Authorization прописываются правила для авторизации пользователей. По-умолчанию нужные нам столбцы недоступны, их необходимо принудительно активировать нажав кнопочку Customize.

В секции Customize Results выбираются возможные варианты профиля командной строки и набор команд. В нашем случае используется только набор команд.

Для создания правила нажимаем кнопку Create.

Проставляем галочки и условия. Пункт AD1:mailNickname нужен если правило настраивается с привязкой к конкретному имени пользователя, а не всей группе.

Далее необходимо настроить правила в соответствие с первой картинкой.

Coa disconnect-request

This command is a standard Disconnect-Request. Because this command is session-oriented, it must be accompanied by one or more of the session identification attributes described in the “Session Identification” section. If the session cannot be located, the switch returns a Disconnect-NAK message with the “Session Context Not Found” error-code attribute.

If the switch fails-over to a standby switch before returning a Disconnect-ACK to the client, the process is repeated on the new active switch when the request is re-sent from the client. If the session is not found following re-sending, a Disconnect-ACK is sent with the “Session Context Not Found” error-code attribute.

Coa request: bounce-port

This command is carried in a standard CoA-Request message that contains the following new VSA:

Cisco:Avpair=”subscriber:command=bounce-host-port”

Because this command is session-oriented, it must be accompanied by one or more of the session identification attributes described in the “Session Identification” section. If the session cannot be located, the switch returns a CoA-NAK message with the “Session Context Not Found” error-code attribute.

If the switch fails before returning a CoA-ACK to the client, the process is repeated on the new active switch when the request is re-sent from the client. If the switch fails after returning a CoA-ACK message to the client but before the operation has completed, the operation is re-started on the new active switch.

Coa request: disable host port

This command is carried in a standard CoA-Request message that has this new VSA:

Cisco:Avpair=”subscriber:command=disable-host-port”

Because this command is session-oriented, it must be accompanied by one or more of the session identification attributes described in the “Session Identification” section. If the session cannot be located, the switch returns a CoA-NAK message with the “Session Context Not Found” error-code attribute. If the session is located, the switch disables the hosting port and returns a CoA-ACK message.

If the switch fails before returning a CoA-ACK to the client, the process is repeated on the new active switch when the request is re-sent from the client. If the switch fails after returning a CoA-ACK message to the client but before the operation has completed, the operation is restarted on the new active switch.

Defining aaa server groups

You can configure the switch to use AAA server groups to group existing server hosts for authentication. You select a subset of the configured server hosts and use them for a particular service. The server group is used with a global server-host list, which lists the IP addresses of the selected server hosts.

Server groups also can include multiple host entries for the same server if each entry has a unique identifier (the combination of the IP address and UDP port number), allowing different ports to be individually defined as RADIUS hosts providing a specific AAA service.

You use the server group server configuration command to associate a particular server with a defined group server. You can either identify the server by its IP address or identify multiple host instances or entries by using the optional auth-port and acct-port keywords.

Beginning in privileged EXEC mode, follow these steps to define the AAA server group and associate a particular RADIUS server with it:

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

radius-server host { hostname | ip-address } [ auth-port port-number ] [ acct-port port-number ] [ timeout seconds ] [ retransmit retries ] [ key string ]

Specify the IP address or hostname of the remote RADIUS server host.

Note The key is a text string that must match the encryption key used on the RADIUS server. Always configure the key as the last item in the radius-server host command. Leading spaces are ignored, but spaces within and at the end of the key are used. If you use spaces in your key, do not enclose the key in quotation marks unless the quotation marks are part of the key.

To configure the switch to recognize more than one host entry associated with a single IP address, enter this command as many times as necessary, making sure that each UDP port number is different. The switch software searches for hosts in the order in which you specify them. Set the timeout, retransmit, and encryption key values to use with the specific RADIUS host.

Step 3

aaa new-model

Enable AAA.

Step 4

aaa group server radius group-name

Define the AAA server-group with a group name.

This command puts the switch in a server group configuration mode.

Step 5

server ip-address

Associate a particular RADIUS server with the defined server group. Repeat this step for each RADIUS server in the AAA server group.

Each server in the group must be previously defined in Step 2.

Step 6

end

Return to privileged EXEC mode.

Step 7

show running-config

Verify your entries.

Step 8

copy running-config startup-config

(Optional) Save your entries in the configuration file.

Step 9

Enable RADIUS login authentication. See the “Configuring RADIUS Login Authentication” section.

To remove the specified RADIUS server, use the no radius-server host hostname | ip-address global configuration command. To remove a server group from the configuration list, use the no aaa group server radius group-name global configuration command.

In this example, the switch is configured to recognize two different RADIUS group servers ( group1 and group2). Group1 has two different host entries on the same RADIUS server configured for the same services. The second host entry acts as a fail-over backup to the first entry.

Switch(config)# radius-server host 172.20.0.1 auth-port 1000 acct-port 1001
Switch(config)# radius-server host 172.10.0.1 auth-port 1645 acct-port 1646
Switch(config)# aaa new-model
Switch(config)# aaa group server radius group1
Switch(config-sg-radius)# server 172.20.0.1 auth-port 1000 acct-port 1001
Switch(config-sg-radius)# exit
Switch(config)# aaa group server radius group2
Switch(config-sg-radius)# server 172.20.0.1 auth-port 2000 acct-port 2001
Switch(config-sg-radius)# exit

Displaying ssh protocol status

Use the show ssh server command to display the status of the SSH protocol (enabled or disabled) and the versions that are enabled for that switch (see Example 1-11).

Example 1-11 Displays SSH Protocol Status

switch# show ssh server
ssh is enabled
version 1 enabled
version 2 enabled

Use the show ssh key command to display the server key-pair details for the specified key or for all keys, (see Example 1-12).

Example 1-12 Displays Server Key-Pair Details

switch# show ssh key
rsa1 Keys generated:Sun Jan 13 07:16:26 1980
1024 35
fingerprint:
1024 67:76:02:bd:3e:8d:f5:ad:59:5a:1e:c4:5e:44:03:07
could not retrieve rsa key information
dsa Keys generated:Sun Jan 13 07:40:08 1980
ssh-dss AAAAB3NzaC1kc3MAAABBAJTCRQOydNRel2v7uiO6Fix OTn8eGdnnDVxw5eJs5OcOEXOyjaWcMMYsEgxc9ada1NElp8Wy7GPMWGOQYj9CU0AAAAVAMCcWhNN18zFNOIPo7cU3t7d0iEbAAAAQBdQ8UAOi/Cti84qFb3kTqXlS9mEhdQUo0lHcH5bw5PKfj2Y/dLR437zCBKXetPj4p7mhQ6Fq5os8RZtJEyOsNsAAABAA0oxZbPyWeR5NHATXiyXdPI7j9i8fgyn9FNipMkOF2Mn75Mi/lqQ4NIq0gQNvQOx27uCeQlRts/QwI4q68/eaw=
fingerprint:
512 f7:cc:90:3d:f5:8a:a9:ca:48:76:9f:f8:6e:71:d4:ae

Identifying the radius server host

Switch-to-RADIUS-server communication involves several components:

You identify RADIUS security servers by their hostname or IP address, hostname and specific UDP port numbers, or their IP address and specific UDP port numbers. The combination of the IP address and the UDP port number creates a unique identifier, allowing different ports to be individually defined as RADIUS hosts providing a specific AAA service. This unique identifier enables RADIUS requests to be sent to multiple UDP ports on a server at the same IP address.

If two different host entries on the same RADIUS server are configured for the same service—for example, accounting—the second host entry configured acts as a fail-over backup to the first one. Using this example, if the first host entry fails to provide accounting services, the %RADIUS-4-RADIUS_DEAD message appears, and then the switch tries the second host entry configured on the same device for accounting services. (The RADIUS host entries are tried in the order that they are configured.)

A RADIUS server and the switch use a shared secret text string to encrypt passwords and exchange responses. To configure RADIUS to use the AAA security commands, you must specify the host running the RADIUS server daemon and a secret text (key) string that it shares with the switch.

The timeout, retransmission, and encryption key values can be configured globally for all RADIUS servers, on a per-server basis, or in some combination of global and per-server settings. To apply these settings globally to all RADIUS servers communicating with the switch, use the three unique global configuration commands: radius-server timeout, radius-server retransmit, and radius-server key. To apply these values on a specific RADIUS server, use the radius-server host global configuration command.

Identifying the tacacs server host and setting the authentication key

You can configure the switch to use a single server or AAA server groups to group existing server hosts for authentication. You can group servers to select a subset of the configured server hosts and use them for a particular service. The server group is used with a global server-host list and contains the list of IP addresses of the selected server hosts.

Beginning in privileged EXEC mode, follow these steps to identify the IP host or host maintaining TACACS server and optionally set the encryption key:

To remove the specified TACACS server name or address, use the no tacacs-server host hostname global configuration command. To remove a server group from the configuration list, use the no aaa group server tacacs group-name global configuration command.

Network resources

В секции Network Resources описываются местоположения, типы устройств и, собственно, сами устройства.


Для начала нам необходимо описать устройства, которые будут подключены к серверу. Заходим в секцию Network Resources → Location и создаём как минимум 3 местоположения устройств: Кампус 1, Кампус 2, Серверная ферма:

В секции Device Type создаём 3 типа устройств: AccessLayerSwitches, DistributionLayerSwitches, CoreLayerSwitches.

Далее в секции Network Devices and AAA Clients описываем ip адреса устройств и привязываем их к местоположениям и типам. Cisco ACS может использовать проколы tacacs и radius. Наши устройства будут работать по протоколу Tacacs , ставим галочку напротив Tacacs . В поле Shared Secret вбиваем ключ.

Настройки секции Network Resources закончены.

Session identification

For disconnect and CoA requests targeted at a particular session, the switch locates the session based on one or more of the following attributes:

Unless all session identification attributes included in the CoA message match the session, the switch returns a Disconnect-NAK or CoA-NAK with the “Invalid Attribute Value” error-code attribute.

For disconnect and CoA requests targeted to a particular session, any one of the following session identifiers can be used:

If more than one session identification attribute is included in the message, all the attributes must match the session or the switch returns a Disconnect- negative acknowledgement (NAK) or CoA-NAK with the error code “Invalid Attribute Value.”

The packet format for a CoA Request code as defined in RFC 5176 consists of the fields: Code, Identifier, Length, Authenticator, and Attributes in Type:Length:Value (TLV) format.

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| Code | Identifier | Length |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| |
| Authenticator |
| |
| |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| Attributes...
- - - - - - - - - - - - -

The attributes field is used to carry Cisco VSAs.

Session reauthentication

The AAA server typically generates a session reauthentication request when a host with an unknown identity or posture joins the network and is associated with a restricted access authorization profile (such as a guest VLAN). A reauthentication request allows the host to be placed in the appropriate authorization group when its credentials are known.

To initiate session authentication, the AAA server sends a standard CoA-Request message which contains a Cisco vendor-specific attribute (VSA) in this form: Cisco:Avpair=“subscriber:command=reauthenticate” and one or more session identification attributes.

The current session state determines the switch response to the message. If the session is currently authenticated by IEEE 802.1x, the switch responds by sending an EAPoL2-RequestId message (see footnote 1 below) to the server.

If the session is currently authenticated by MAC authentication bypass (MAB), the switch sends an access-request to the server, passing the same identity attributes used for the initial successful authentication.

If session authentication is in progress when the switch receives the command, the switch terminates the process, and restarts the authentication sequence, starting with the method configured to be attempted first.

If the session is not yet authorized, or is authorized via guest VLAN, or critical VLAN, or similar policies, the reauthentication message restarts the access control methods, beginning with the method configured to be attempted first. The current authorization of the session is maintained until the reauthentication leads to a different authorization result.

Setting the privilege level for a command

Beginning in privileged EXEC mode, follow these steps to set the privilege level for a command mode:

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

privilege mode level level command

Set the privilege level for a command.

Step 3

enable password level level password

Specify the enable password for the privilege level.

Step 4

end

Return to privileged EXEC mode.

Step 5

show running-config

or

show privilege

Verify your entries.

The first command shows the password and access level configuration. The second command shows the privilege level configuration.

Step 6

copy running-config startup-config

(Optional) Save your entries in the configuration file.

When you set a command to a privilege level, all commands whose syntax is a subset of that command are also set to that level. For example, if you set the show ip traffic command to level 15, the show commands and show ip commands are automatically set to privilege level 15 unless you set them individually to different levels.

To return to the default privilege for a given command, use the no privilege mode level level command global configuration command.

Безопасная cisco

Всем привет!

Многие из вас видели и читали прекрасные материалы под общим названием «Сети для самых маленьких». Собственно, я не претендую на лавры, но решил написать нечто подобное в области безопасности сети на основе оборудования Cisco.

Первый материал будет посвящен BaseLine/L2 Security, т.е. тем механизмам, которые можно использовать при начальной конфигурации устройств а также на L2 коммутаторах под управлением IOS.
Всем, кому интересно, поехали!

Допустим, у нас brand-new [switch/router], для первой главы не принципиально. Мы подключаемся к нему с помощью консольного провода (более подробно описано Часть.1 Сети для самых маленьких). Т.к. мы не хотим, чтобы железка лежала у нас на столе или (если она уже в стойке) стоять и мерзнуть в серверной, сразу настроим на ней удаленное управление.

Remote control & credentials

Для того, чтобы подключаться удаленно нужно иметь собственные credentials. При подключении через консоль, мы можем попасть в привилегированный режим без ограничений. Это, как понимаете, не особо безопасно, хотя если злоумышленник уже смог физически получить доступ к железке, о какой безопасности в принципе можно говорить… Но с учетом подхода defense-in-depth установить пароль на привилегированный режим все-таки стоит.
В IOS имеется 4 варианта-уровней хранения паролей: 0, 4, 5, 7:

Рассмотрим их на примере команды enable с параметрами.

Для эмуляции коммутатора используем IOU на GNS3v1.0, как сделать описанотут

.

Посмотрим конфигурацию, как видим установить одинаковые пароли не удалось (т.к. у меня Version 15.1 на IOU Switch — используется уровень 4):

image

И 7 уровень: service password-encryption, после ввода этой команды, исключительно 0 уровень хранения преобразуется в 7 по протоколу шифрования Cisco:

image

Можно предположить, что 7 уровень надежнее 4 и 5 с точки зрения безопасности, но это не так, о чем можно почитать, например,

в этом материале

.

Чтобы дополнительно увеличить уровень безопасного подключения к устройству введем следующие команды (здесь команды вводятся на маршрутизаторе с IOS ver. 15.4, т.к. нужных команд на коммутаторе не оказалось из-за особенностей релиза):

image

Что сделали: установили требование о минимальной длине пароля в 10 символов, создали пользователя с максимальным уровнем привилегий и назвали его «NotAdmin».

Использовать имена пользователей типа cisco, admin, root и т.п. не рекомендуется.

Как видите пароль Qwerty!23 не подошел из-за контроля его длины (если у вас трудности с паролями попробуйте что-то из такой практики

(I can never remember my password = !cNrmp, Quarter pounder with cheese = .25#erwchz, How many times do I need to change my password? = hmtd!n2cmp?)

. Далее сгенерировали ключи для защищенного соединения и установили параметры подключения с использованием только ssh. Также с этим конфигом контролируем количество неудачных попыток входа в период времени, тем самым защищаем от brute-force.

При всем этом использоваться будет локальная база с именами пользователей. Аналогичным образом (local) настроим и консольный порт. Если мы будем использовать другую учетную запись, уровень привилегий которой не указан или ниже 15 (по умолчанию имеется три уровня привилегий: 0, 1, 15), вводить пароль нужно будет при входе для учетной записи и при активации привилегированного режима для enable.

При конфигурировании парольного доступа категорически не рекомендуется использовать команду

password

.

Осталось повесить IP-адрес на устройство (может быть еще и dg, зависит от того OOB management network у вас или нет), при этом желательно, чтобы сеть управления была выделена отдельно.

Все, устройство готово к удаленному употреблению.

Да, если вдруг вы забыли пароли, то помощь

тут

. Конечно, если вы не использовали

no service password-recovery

.

Существует, скажем так, два подхода к использованию безопасных механизмов удаленного управления устройствами Cisco. Без AAA мы рассмотрели выше. Теперь с использованием AAA.

Что такое

AAA

– аутентификация, авторизация, аккаунтинг или контроль над выделяемыми ресурсами. Как видно AAA очень гранулирована с точки зрения доступа, что как раз и повышает уровень безопасности. Насколько актуально ее использование зависит от конкретной архитектуры. Активируется все просто:

image

Итак, команды на скрине: создали 2 пользователей, активировали AAA и применили 2 метода (Method-List) с параметрами – default local, которые означают что, проверяться при аутентификации и авторизации будет локальная база на всей железке, за исключением авторизации на консольном порту, для этого ввести нужно

aaa authorization console

.

Собственно, аналогичным образом можно создавать кастомные Method-Lists и применим его на vty:

image

Как понимаете, дополнительно необходимо настроить radius/tacacs сервер:

radius-server host 192.168.1.100

.

Порядок проверки в Method-List: radius (yes/no), если не доступен, то проверить в enable. Логика Method-List такая, что сначала проверяются именные листы, а только потом лист по умолчанию.

Еще одна интересная security команда:

aaa local authentication attempts max-fail 3

. Если пользователь исчерпает положенные 3 попытки, его учетная запись блокируется.

Что еще, если честно много всего…

Удаленное управление через vty можно ограничить, используя ACL (что такое ACL и с чем их едят можно прочитать в самой первой ссылке, в части про NAT и ACL), делается это примерно так:

image

И в принципе сеть управления лучше отделить от остальной сети передачи данных.

Неиспользуемые порты управления нужно отключить на ввод команд:

line aux 0
no exec
no transport input
no transport output

И в дополнение установить время простоя интерфейса:

exec-timeout 10 0

.

Еще одной хорошей практикой является установка различных информационных сообщений – баннеров. Для чего? Ну, например, для того, чтобы уведомить «случайно» попавшего админа на управляющий интерфейс железки вот об этом:

banner login c Warning! Non Authorization Access Is Restricted c

Есть у Cisco такой хороший протокол как

CDP

, и нам с точки зрения ИБ, его нужно бы потушить или глобально

no cdp run

либо отдельно на интерфейсе

interface <interface-id>, no cdp enable

. Отнеситесь к отключению внимательно если у вас Cisco VoIP, т.к. по CDP передается конфигурация в телефоны.

Для управления (если возможно) не используем HTTP, только HTTPS:

no ip http server
ip http secure-server

Отключаем Gratuitous ARP – это из разряда «не ждали, а он приперся», такие пакеты могут использоваться при APR Poisoning, отключается командой

no ip gratuitous-arps

.

Также в IOS есть авто конфигурация безопасности:

auto secure

— Wizard для настройки базовых параметров безопасности.

Проинспектировать нужно и такие параметры, которые желательно было бы отключить (в последних версиях IOS они отключены по умолчанию и в большинстве относятся к L3):

TCP/UDP Small-Servers, Finger, Identification (auth) Protocol, PAD, Autoloading Device Configuration, IP Source Routing, IP Directed Broadcast

И еще: отключите все ненужные сервисы и протоколы, административно погасите неиспользуемые интерфейсы, не забудьте про NTP (ntp server), журналирование и baseline config:

service tcp-keepalives in
service tcp-keepalives in out
snmp-server enable traps cpu threshold
.........
service timestamps log datetime
secure boot-image
secure boot-config

Вроде бы все, если что забыл, прошу отписаться в комментарии, по крайней мере

JDima

, всегда делал стоящие комментарии.

L2 Security

После того как разобрались с безопасным доступом приступим к L2 information security risk mitigation. Есть такой документ: CISCO LAYER 2 ATTACKS & MITIGATION TECHNIQUES, в котором отражено следующее:
image
Итак, что такое коммутатор, как он работает, широковещательный домен, VLAN и иная базовая теоретическая часть круто описана в… да-да-да «Сети для самых маленьких. Часть 2. Коммутация».
VLAN Hopping – тип атак, когда злоумышленник получает доступ к VLAN, например, при принудительном согласовании режима работы порта. Сделать это можно с помощью этой утилиты, она есть и в Kali. Вообще на новых коммутаторах это не очень проходит, но суть проблемы заключается в работе DTP в режиме auto умолчанию. Но если ввести команду switchport mode access на пользовательских портах (на транковых DTP должен работать, no negotiate), то согласовать режим у злоумышленника не получится.
Также переведите все неиспользуемые порты в какой-нибудь VLAN 2451, нигде не используйте или отключите интерфейс VLAN1 (interface vlan 1, shutdown) и еще задайте на транковом порту, например, native vlan 20, потому что по умолчанию native vlan имеет id=1.
image
Тоже самое делает команда vlan dot1q tag native из режима глобальной конфигурации, но у меня ее не оказалось…
Кроме обычных VLAN имеются вот такие (Keith Barker copyright):
image
Что можно увидеть из этой иллюстрации:

Повторяться сильно не буду, все подробно описано

тут

или

тут

. Небольшой пример:

vlan 101
private-vlan primary
vlan 201
private-vlan community
vlan 202
private-vlan community
vlan 301
private-vlan isolated
...........
vlan 101
private-vlan association 201-202,301

Применять или нет решать вам в зависимости от целей.

Вроде бы все ясно, однако если Promiscuous port маршрутизируем, то существует возможность попасть из ISOLATED в другие VLAN, путем посылки подкрафченного пакета до L3 устройства. Закрывается такая возможность с помощью ACL на маршрутизаторе.

Примерно схожий функционал c Isolated VLAN имеется при настройке PVLAN Edge или Protected port. Настраивается это на каждом интерфейсе отдельно командой:

switchport protected

.

Ну и в завершении с VLAN рассмотрим ACL для VLANs: VLAN ACL (VACL) или VLAN map а также MacSec.

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

access-list 1 permit 192.168.1.0 0.0.0.255
access-list 2 permit any
vlan access-map mymap 10
match ip address 1
action drop
exit
vlan access-map mymap 20
match ip address 2
action forward
exit
vlan filter mymap vlan-list 5-10
end

Создаем обычный список доступа, который будет использоваться в VACL. Определим VLAN access map. Определим действие при совпадении трафика со списком. Применим к VLAN. 1 класс трафика будет останавливаться, весь другой пересылаться.

Интересная функция в IOS —

MacSec

.

Вот такой набор команд (к примеру на 2 устройствах):

int gig0/2
cts manual
sap pmk Qwerty123

Настроив на L2 устройствах, на портах через которые два коммутатора соединены между собой, получим симметрично зашифрованный канал (pmk на устройствах должен быть одинаковым).

CAM protection
Если взять утилиту macof (есть в Kali) и запустить ее на генерирование MAC адресов с клиента подключенного к коммутатору, то в зависимости от модели коммутатора через некоторое время он станет хабом. Почему? Из-за того, что место в CAM таблице закончится. Для того чтобы это предотвратить существует режим port security на интересующем нас интерфейсе:
image и image
Работает этот режим только на trunk или access port, но не на dynamic port.
У режима имеются параметры: Protect (no packets if violation, no log), Restrict (no packets if violation, log: snmp, sylog), Shut down port (default, max=1, log: snmp, sylog), Shut down Vlan. Есть режимы Dynamic (memorize 5 first mac), Static (manually write into running config static mac) и еще sticky (brand new network -> auto write in running config).
Да и в конце настройки нужно не забыть активировать сам режим.

Snooping table
Для того, чтобы обезопасить себя от атак на dhcp можно применять dhcp snooping table. Суть заключается в том, что коммутатор запоминает за каким портом у него легальный dhcp сервер, тем самым выполнить dhcp starvation attack (ну или кто-то просто принес из дома dlink) с портов доступа не получится.
image
Включается режим отдельно на всю железку и vlans:
image
Ограничить количество запросов dhcp можно командой ip dhcp snooping limit rate 20. И по необходимости посмотреть имеющиеся связи:
image
Изначально в этом режиме по умолчанию все порты являются не доверенными.

DAI
На основе snooping table работает DAI – dynamic arp inspection, т.е. динамически сравнивает MAC-IP и тем самым предотвращает ARP poisoning: ip arp inspection vlan 456.
Это тип атаки при которой рассылаются ARP пакеты с измененными MAC адресами, после обновления ARP таблицы проводится MITM.
image
Если же в инфраструктуре нет DHCP, то аналогичного функционала можно добиться с использованием arp access-list:

arp access-list NEW-ARP-ACL
permit ip host 10.1.1.11 mac host 0011.0011.0011
ip arp inspection filter arpacl vlan 456

Также есть функционал для сравнения

ARP Validation Checks

.

IP Spoofing/Source Guard
Опять же на основе snooping table функционирует IP Spoofing/Source Guard.
Яркий пример атаки с подменой IP, когда злоумышленник генерирует различные пакеты с разными IP DESTINATION и одинаковым IP SOURCE. В итоге все Destination пытаются ответить Source и проводят его DDoS.
image
Этот набор команд поможет защититься от атак типа IP Spoofing.
image

STP
Как вы знаете основной задачей STP является устранение петель в топологии, в которой есть избыточные соединения. Но возможно реализовать такую схему, когда нарушитель станет root bridge и опять же реализует MITM:
image
Для того, чтобы активировать защиту глобально на всех портах необходимо использовать команду spanning-tree portfast bpduguard default.
Далее переводим порт в режим portfast и получаем… Вместо тысячи слов:
image
Отдельно на интерфейсе это делается командой: spanning-tree bpduguard enable.

Storm Control
image
Это еще один механизм контроля за пересылаемыми пакетами при включенном STP, имеющий следующие параметры:

storm-control broadcast pps 500 100
storm-control action shutdown
errdisable recovery cause storm-control
errdisable recovery interval 60

В дополнение к вышеописанному существуют такие технологии как:

Root Guard, EtherChannel Guard, Loop Guard, Port Blocking

.

За сим все, спасибо, что дочитали до конца. Надеюсь, информация окажется полезной.

P.S. Было бы интересно узнать, какие механизмы безопасности в контексте этого материала вы используете в инфраструктуре? Пишите в комментарии.

Настройки для авторизации через radius сервер (ms active directory)

Необходимо указать, что авторизация должна проходить через RADIUS серверR-DELTACONFIG(config)#aaa authentication login default localaaa authentication ppp default group radius localaaa authorization exec default localaaa authorization network default group radius localaaa accounting network vpnMKacaction-type start-stopgroup radius

После чего указать адрес RADIUS сервера и ключ для доступа к немуR-DELTACONFIG(config)#radius server RADIUS_DELTACONFIGaddress ipv4 192.168.1.20 auth-port 1645 acct-port 1646radius-server key 0 ключ_для_сервера

192.168.1.20 — адрес RADIUS (Active Directory) сервера компании.

Внимание!На RADIUS сервере также должны быть выполнены соответствующие настройки, но их описание выходит за рамки этой статьи. Если вы не можете самостоятельно разобраться с этим методом подключения пользователей, то рекомендую выбрать способ авторизации пользователей через локальную базу на самом маршрутизаторе.

Ну и на сладенькое: сброс пароля

Так, а что же делать, если на стол легла вам бушная циска с неизвестным паролем или вы очень невовремя забыли его? Вообще-то это многократно описано и легко гуглится, но повторить это необходимо. Практически на любом сетевом устройстве есть возможность сбросить пароль, имея физический доступ.

Если сделать это невозможно или это отдельная платная услуга, то скорее всего в ваших руках находится какая-то русская поделка (не в обиду, конечно, нашим производителям, но дважды я такие строки читал в документации:))Итак, cisco:1) Подключаетесь к устройству консольным кабелем,2)

Отправляете его в ребут (хоть по питанию, хоть командой #reload)3) Когда на экране побежит такая строчка ########…###, означающая загрузку образа (40-60 секунд после включения), необходимо отправить сигнал Break. Как это сделать в разных программах читать тут.

Вы попадаете в режим ROMMON. 4) В этом режиме введите команду: confreg 0x2142, она заставит устройство игнорировать startup-config при загрузке.5) Введите reset для перезагрузки6) После загрузки running-config будет девственно чистым, а startup-config содержит по-прежнему последнюю сохранённую конфигурацию. Сейчас самое время поменять пароль или слить конфиг. 7) Самое важное: верните обратно регистры:

Router(config)#config-register 0x2102

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

Хочу поблагодарить Максима aka gluck за помощь в написании этой статьи.

Пароли

Подключение по telnet или ssh называется виртуальным терминалом (vt) и настраивается следующим образом:

Router(config)#line vty 0 4 Router(config-line)#password cisco
Router(config-line)#login

0 4 — это 5 пользовательских виртуальных терминалов=telnet сессий.
Этого уже достаточно, чтобы попасть в пользовательский режим, но недостаточно для привилегированного: Packet Tracer telnet

Router(config)#enable secret test

Packet Tracersecret от password? Примерно тем же, чем ssh от telnet. При настройке secret пароль хранится в зашифрованном виде в конфигурационном файле, а password – в открытом. Поэтому рекомендуется использование secret.
Если вы всё-таки задаёте пароль командой password, то следует применить так же service password-encryption, тогда ваш пароль в конфигурационном файле будет зашифрован:

line vty 0 4 password 7 08255F4A0F0A0111

Преимущества технологии

  1. Не требуются дополнительные лицензии для оборудования. Максимальное количество одновременных подключений пользователей ограничено возможностями самого оборудования.
  2. Настройка подключения на стороне пользователя производится во встроенном клиенте в любой операционной системе, будь то Windows, Mac или Linux. Не нужно устанавливать дополнительное программное обеспечение.

Настройка L2TP на Cisco router позволяет сэкономить организациям с точки зрения цены решения, но, при этом, имеет больше ограничений, чем настройка других типов подключений, например Cisco anyconnect.

В качестве примера для настройки L2TP будет выступать маршрутизатор Cisco 2911. Его предварительная настройка была осуществлена в соответствии со статьей “Начальная настройка маршрутизатора Cisco. Доступ в Интернет”, а именно:

  • На внешнем интерфейсе задан ip адрес 200.150.100.2 /30
  • На внутреннем интерфейсе задан ip адрес 192.168.0.1 /24
  • Задан шлюз по умолчанию на адрес провайдера и есть доступ в интернет.

Шаг 6. тонкости в настройка клиента

В интернете есть сотни статей по настройке клиентов, поэтому нет смысла копировать эту информацию сюда. Однако есть один очень важный момент, с которым связаны проблемы практически при каждой настройке.

Важно!

Одной из самых частых проблем  при таких подключениях является то, что у клиента пропадает доступ к интернет во время того, как работает L2TP соединение с маршрутизатором Cisco. Это происходит из-за того, что при базовых настройках виртуальный шлюз внутри L2TP становится более приоритетным для клиента.

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

Для корректировки необходимо

зайти в настройки адаптера на вкладке “Сеть”открыть свойства “Internet protocol Version 4 (TCP/IPv4)»нажать “Дополнительно”убрать галку с параметра “Использовать основной шлюз в удаленной сети”

Если этого не сделать, то весь трафик от клиентов пойдет через защищенный тоннель, что приведет к излишней нагрузке на маршрутизатор и на канал связи.

Configuring the switch for vendor-proprietary radius server communication

Although an IETF draft standard for RADIUS specifies a method for communicating vendor-proprietary information between the switch and the RADIUS server, some vendors have extended the RADIUS attribute set in a unique way. Cisco IOS software supports a subset of vendor-proprietary RADIUS attributes.

As mentioned earlier, to configure RADIUS (whether vendor-proprietary or IETF draft-compliant), you must specify the host running the RADIUS server daemon and the secret text string it shares with the switch. You specify the RADIUS host and secret text string by using the radius-server global configuration commands.

Beginning in privileged EXEC mode, follow these steps to specify a vendor-proprietary RADIUS server host and a shared secret text string:

To delete the vendor-proprietary RADIUS host, use the no radius-server host {hostname | ip-address} non-standard global configuration command. To disable the key, use the no radius-server key global configuration command.

This example shows how to specify a vendor-proprietary RADIUS host and to use a secret key of rad124 between the switch and the server:

Switch(config)# radius-server host 172.20.30.15 nonstandard
Switch(config)# radius-server key rad124

Configuring the switch to use vendor-specific radius attributes

The Internet Engineering Task Force (IETF) draft standard specifies a method for communicating vendor-specific information between the switch and the RADIUS server by using the vendor-specific attribute (attribute 26). Vendor-specific attributes (VSAs) allow vendors to support their own extended attributes not suitable for general use.

The Cisco RADIUS implementation supports one vendor-specific option by using the format recommended in the specification. Cisco’s vendor-ID is 9, and the supported option has vendor-type 1, which is named cisco-avpair. The value is a string with this format:

protocol : attribute sep value *

Protocol is a value of the Cisco protocol attribute for a particular type of authorization. Attribute and value are an appropriate attribute-value (AV) pair defined in the Cisco TACACS specification, and sep is = for mandatory attributes and is * for optional attributes. The full set of features available for TACACS authorization can then be used for RADIUS.

For example, this AV pair activates Cisco’s multiple named ip address pools feature during IP authorization (during PPP IPCP address assignment):

cisco-avpair= ”ip:addr-pool=first“

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *