вторник, 2 августа 2016 г.

Cisco IOS basic operations

1. Режимы командной строки (CLI modes)

Командную строку (CLI) можно поделить на 4 основных режима управления:

1) User executive (User EXEC) mode — Непривилегированный (пользовательский) режим
2) Privileged executive (Privileged EXEC) mode — Привилегированный режим
3) Global configuration mode — Режим глобальной конфигурации
4) Specific configuration mode (interface, router, line,…) — Специализированные режимы конфигурации

Уровни привилегий по умолчанию (Default privilege levels):
Для User EXEC — level 1 (user mode)
Для Privileged EXEC — level 15 (enable mode)

Непривилегированный (пользовательский) режим — User EXEC mode:
Router>
В данном режиме доступен только ограниченный набор show команд. Просмотр всей конфигурации маршрутизатора недоступен (show running-config)
Переход в привилегированный режим:
Router>enable
Router#
Переход в режим глобальной конфигурации (осуществляется только из Priv. EXEC):
Router#configure terminal
Router(config)#

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

1) Режим конфигурации интерфейса F0/0
Router(config)#interface fastEthernet 0/0
Router(config-if)# 
2) Режим конфигурации протокола маршрутизации OSPF
Router(config)#router ospf 1
Router(config-router)#
3) Режим конфигурации консоли
Router(config)#line console 0
Router(config-line)#
Для выхода из всех режимов используется команда "exit", либо "end"
Router(config-if)#exit
Router(config)#exit
Router#
!
Router(config-if)#end
Router#
2. Имя маршрутизатора

Имя маршрутизатора настраивается через команду "hostname", например:
Router(config)#hostname R1
R1(config)#
3. Перезагрузка маршрутизатора

Стандартная перезагрузка маршрутизатора выполняется командой "reload"

Перезагрузка маршрутизатора через заданное время (в примере 1 минута):
R1#reload in ?
Delay before reload (mmm or hhh:mm)

R1#reload in 1
Перезагрузка маршрутизатора без распаковки образа из Flash (warm reboot):
R1(config)#warm-reboot 
Данная конфигурация начнет работать только после выполнения обычной перезагрузки маршрутизатора. Позволяет сэкономить время на перезагрузке маршрутизатора, т.к. загружает уже распакованный образ из RAM (без участия ROMMON).

Для выполнения warm reboot необходимо выполнить команду:
R1#reload warm
По умолчанию на каждые 5 таких «быстрых» перезагрузок должна происходить обычная перезагрузка (cold reboot). При попытке выполнить warm reboot маршрутизатор выдаст сообщение:
R1#reload warm
Not possible to warm reload.
Reason: Too Many warm reboots have taken place
4. Пароли

Пароль на привилегированный режим (пароль на enable mode):

1) Enable password (Пароль «class» хранится в открытом виде)
R1(config)#enable password class
2) Enable secret (Пароль хранится в шифрованном (MD5 hash) виде)
R1(config)#enable secret cisco
Если сконфигурированы оба типа паролей, enable secret всегда имеет преимущество!

3) Enable secret с опциями шифрования (начиная с IOS 15.3(3)M)
R1(config)#enable algorithm-type ?
md5     Encode the password using the MD5 algorithm
scrypt  Encode the password using the SCRYPT hashing algorithm
sha256  Encode the password using the PBKDF2 hashing algorithm
Вид паролей в текущей конфигурации маршрутизатора (running-config):
!
enable secret 5 $1$EnW0$3hkuVwrCg2BwszJck9m8H/
enable password class
Хеширование открытых паролей (настроенных через ключевое слово password) в текущей конфигурации (type 7 password):
R1(config)#service password-encryption
Внимание!!! Type 7 password служит только для защиты вашего пароля от чтения «на лету», он легко может быть расшифрован как с помощью специальных ресурсов в сети, так и средствами Cisco IOS через key-chain.

Пароль password 7 в текущей конфигурации:
!
enable secret 5 $1$EnW0$3hkuVwrCg2BwszJck9m8H/
enable password 7 05080A0E325F
!
Расшифровка password 7 пароля при помощи key-chain:
R1(config)#key chain ENABLE_KEY
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string 7 05080A0E325F 

Пароль на консоль (в примере паролем является «cisco»):
R1(config)#line console 0
R1(config-line)#password cisco
R1(config-line)#login
Пароль на VTY линии (Telnet) (в примере паролем является «cisco_router»):
R1(config)#line vty 0 15
R1(config-line)#password cisco_router
R1(config-line)#login
"login" — Требовать проверку пароля при входе на маршрутизатор через консоль или удаленно по протоколу Telnet (VTY).
Для работы через SSH обязательно требуется имя пользователя и пароль, для этого необходимо завести локального пользователя на маршрутизаторе и в настройках VTY указать login local, после чего маршрутизатор начнет просматривать локальную базу данных и запрашивать имя пользователя при входе через SSH или Telnet (см. п.8)

Задать минимальную длину паролей при их конфигурации (в примере минимальная длина паролей будет составлять 8 символов):
R1(config)#security passwords min-length 8
При попытке сконфигурировать новый пароль меньше 8 символов маршрутизатор выдаст предупреждение:
R1(config-line)#line console 0
R1(config-line)#password cisco1
% Invalid Password length — must contain 8 to 25 characters. Password configuration failed
R1(config-line)#
5. Баннеры

1) MOTD Banner

Самый общий тип баннера, отображается при любом типе соединения к маршрутизатору, для всех пользователей
R1(config)#banner motd #This is a secure system. Authorized Access ONLY!!!#
# — разделительный символ. Любой символ, который не должен встречаться в тексте сообщения
Проверка работы баннера при подключении к маршрутизатору через Console:


6. Конфигурация интерфейсов

Пример конфигурации IP-адреса на интерфейсе и описания(description):
R1(config)#interface FastEthernet 0/0
R1(config-if)#ip address 10.0.0.1 255.255.255.0
R1(config-if)#description Test LAN
R1(config-if)#no shutdown
"no shutdown" — активация интерфейса (по-умолчанию интерфейс на маршрутизаторе имеет статус shutdown — выключен)

Сбросить настройки на интерфейсе (вернуть конфигурацию по умолчанию):
R1(config)#default interface FastEthernet 0/0
Проверка конфигурации на интерфейсе:

"show ip interface brief"
"show interface description"

7. Конфигурация маршрутизатора

1) Сохранение текущей конфигурации в NVRAM (энергонезависимую память):
R1#copy running-config startup-config
Destination filename [startup-config]?
Building configuration…
[OK]
R1#
Альтернативный вариант команды «copy run start»:
R1#write memory
Building configuration…
[OK]
R1#
Просмотр текущей конфигурации маршрутизатора:
R1#show running-config
—omitted— 
2) Удаление сохраненной конфигурации из NVRAM:
R1#erase startup-config
Erasing the nvram filesystem will remove all configuration files! Continue? [confirm]
[OK]
Erase of nvram: complete
R1#
Альтернативный вариант команды «erase startup-config»:
R1#write erase
Erasing the nvram filesystem will remove all configuration files! Continue? [confirm]
[OK]
Erase of nvram: complete
R1#
3) Копирование текущей конфигурации на TFTP сервер (10.0.0.2 — IP адрес TFTP сервера):
R1#copy running-config tftp://10.0.0.2
Address or name of remote host [10.0.0.2]?
Destination filename [r1-confg]?
!!
1356 bytes copied in 1.268 secs (1069 bytes/sec)

R1# 
Аналогичным образом выполняется копирование конфигурации из NVRAM (startup-config), любых файлов с Flash (copy flash:filename tftp:). Для копирования файлов на маршрутизатор или с маршрутизатора всегда действует логика откуда (ftp, tftp, running-config, startup-config, flash:), куда (ftp, tftp, running-config, startup-config). Т.е. копирование конфигурации с TFTP в running-config будет выглядеть следующим образом:
R1#copy tftp://10.0.0.2/r1-confg running-config
Destination filename [running-config]?
Accessing tftp://10.0.0.2/r1-confg…
Loading r1-confg from 10.0.0.2 (via FastEthernet0/0): !
[OK — 1500 bytes]

1500 bytes copied in 1.360 secs (1103 bytes/sec)

R1#
4) Копирование на FTP сервер:

Создание пользователя и пароля для FTP клиента IOS:
R1(config)#ip ftp username admin
R1(config)#ip ftp password cisco123
Копирование конфигурации:
R1#copy running-config ftp://10.0.0.2
Address or name of remote host [10.0.0.2]?
Destination filename [r1-confg]?
Writing r1-confg !
1421 bytes copied in 2.464 secs (577 bytes/sec)

R1#
(Опционально) Использовать пассивный режим работы FTP — PASV (когда data-TCP соединение так же инициирует клиент — актуально, если в сети находится Firewall, блокирующий входящие соединения)
R1(config)#ip ftp passive
5) Использование Archive функционала

Функционал появился в IOS 12.3(4)T и позволяет управлять конфигурациями маршрутизатора, а также производить логирование (user accounting).
R1(config)#archive
R1(config-archive)#path flash:
R1(config-archive)#write-memory
R1(config-archive)#time-period 1440
R1(config-archive)#maximum 3
"path" — путь сохранения конфигурации (поддерживается tftp:/ftp:/http:/https:/scp:/flash:/)
"write-memory" — сохранять конфигурацию на при каждом выполнении команды write-memory
"time-period" — период автоматического сохранения конфигурации (каждые 1440 мин = 24 часа)
"maximum" — количество файлов конфигурации

"show archive" — просмотр сохраненных конфигураций


Полная замена текущей конфигурации в running-config:
R1#configure replace flash:-Jan-31-14-49-59.527-5
На самом деле IOS сравнивает конфигурацию с текущей и меняет только то, что отличается, чтобы избежать потенциальной неработоспособности при полной замене конфигурации (в отличие от "copy path: running-config")

Сравнение сохраненной конфигурации и текущей можно выполнить самому:
R1#show archive config differences
!Contextual Config Diffs:
!No changes were found
Добавим IP адрес 192.168.1.1 на интерфейс F1/0 и сравним конфигурации повторно:
R1#show archive config differences
!Contextual Config Diffs:
interface FastEthernet1/0
+no ip address
interface FastEthernet1/0
-ip address 192.168.1.1 255.255.255.0
"+" обозначает, что конфигурация присутствует в startup-config, но отсутствует в running-config
"—" обозначает, что конфигурация присутствует в running-config, но отсутствует в startup-config
(аналог show | compare на Juniper)
Так же с помощью этой команды можно сравнивать разные файлы конфигурации, указав путь к ним путь (например конфигурацию на TFTP сервере и на Flash).

Существуют дополнительные полезные опции для команды configure replace:

"force" — заменить конфигурацию без подтверждения
"time — время в минутах (от 1 до 120) в течение которого будет произведен откат к последней текущей конфигурации (после ввода команды происходит сохранение running-config в archive) если не введена команда configure confirm, подтверждающая замену текущей конфигурации на указанную администратором. Очень полезно использовать при удаленной настройке, чтобы обезопасить себя (вместо команды #reload in).
!Замена конфигурации на выбранную администратором происходит сразу!
"list" — вывести список команд, которые маршрутизатор применяет при замене конфигурации на выбранную

"configure revert {now | timer | idle}" — позволяет откатываться к последней конфигурации не дожидаясь таймера, либо установить свой таймер, либо idle timeout
"configure confirm" — подтвердить замененную конфигурацию (отката не произойдет)

Пример использования:

Имеется удаленный доступ к маршрутизатору по SSH, который находится очень далеко. Мы не уверены в настройках, которые хотим на нем изменить, можно использовать archive для «безопасной настройки»:

1) Заходим на маршрутизатор и сохраняем конфигурацию. Конфигурация пишется в archive (если есть опция "write-memory").


2) Заменяем конфигурацию на только что сохраненную, опция "list" позволит проконтролировать, что действительно мы ничего не изменили:
R1#configure replace flash:-Feb—3-20-14-44.491-1 list force time 10

3) У нас есть 10 мин., чтобы безопасно что-либо настраивать удаленно, если все настроили, то необходимо прописать "configure confirm" для подтверждения настроек, если отвалились после неправильной настройки, то через 10 мин маршрутизатор возвратит последнюю рабочую конфигурацию и можно пробовать заново :)

Маршрутизатор предупредит за минуту до автоматического отката конфигурации:
R1#Rollback Confirmed Change: Rollback will begin in one minute. Enter «configure confirm» if you wish to keep what you’ve configured

%ARCHIVE_DIFF-5-ROLLBK_CNFMD_CHG_WARNING_ABSTIMER: System will rollback to config flash:-Feb—3-20-19-54.395-2 in one minute. Enter «configure confirm» if you wish to keep what you’ve configured
8. Защита IOS и конфигурации (IOS Resilient Configuration)

"secure boot-config" — сохраняет конфигурацию в flash, даже после "wr e", конфигурацию можно вытащить: "secure boot-config restore flash:restored_config".
Потом эту конфигурацию залить в running-config через команду "configure replace"

"secure boot-image" — IOS становится невидим на flash, IOS останется на флешке даже после форматирования (Осторожно! erase flash: полностью затрет флешку со всеми бекапами)
Отключить secure-image можно только из консоли маршрутизатора, не по SSH/Telnet!

9. Настройка Console/VTY; Local database маршрутизатора

1) Консоль (Console)

Синхронизация вывода debug и других служебных сообщений при выводе в консоль в консоль маршрутизатора (аналогично для VTY сессий):
R1(config)#line console 0
R1(config-line)#logging synchronous
Ограничение времени активного сеанса в консоли (по умолчанию 10 мин, для примера 2 мин. 30 сек.) (аналогично для VTY сессий):
R1(config)#line console 0
R1(config-line)#exec-timeout 2 30
Если по истечении 2 мин 30 сек в консоли не будет никакой активности, маршрутизатор сбросит соединение, необходимо будет вводить пароль на console заново, как при первом подключении.

"exec-timeout 0 0" — консольное/VTY соединение будет всегда активно.

2) VTY соединения (Telnet/SSH)

VTY — Virtual Terminal Line.

Для подключения к маршрутизатору по Telnet протоколу достаточно настроить пароль на enable (enable password или enable secret) и пароль на самой VTY (line vty).

По умолчанию при подключении к маршрутизатору через Telnet/SSH служебная информация и debug сообщения в консоль не выводятся.
Для вывода информации в удаленную консоль используется команда "terminal monitor"
R1#terminal monitor
Вывод в терминал работает только пока сессия активна, при повторном подключении необходимо включать "terminal monitor" заново.

По умолчанию все входящие соединения на маршрутизатор разрешены (transport input all)

Можно разрешить только SSH протокол в качестве входящего соединения на маршрутизатор (это рекомендуемая опция):
R1(config)#line vty 0 15
R1(config-line)#transport input ssh
Можно разрешить входящие соединения только по Telnet (transport input telnet), либо комбинацию SSH+Telnet (transport input ssh telnet)

Команда "transport output" определяет по каким протоколам можно осуществлять исходящие соединения с данного маршрутизатора, в отличие от "transport input" данная команда доступна как для VTY, так и для Console.

Защита VTY от Brute-Force (необходима аутентификация с использованием имени пользователя), пример:
R1(config)#login block-for 60 attempts 3 within 30
Инициатор соединения будет заблокирован на 60 сек, если в течение 30 сек будут 3 неудачные попытки входа. Работает как с Telnet, так и с SSH.

Отслеживание Telnet сессий (для предотвращения зависших соединений):
R1(config)#service tcp-keepalives-in
R1(config)#service tcp-keepalives-out
Выбор транспортного протокола, который Cisco IOS будет использовать по умолчанию в Console/VTY (по умолчанию используется Telnet — "default transport preferred"). Рекомендуемый вариант — "transport preferred none".

При ошибочном вводе команды в консоль, маршрутизатор попытается разрешить имя (т.к. ip domain lookup тоже включен по умолчанию), чтобы зайти на этот хост по Telnet. Естественно у него ничего не получится, но попытка разрешения имени занимает определенное время, что сильно мешает каждый раз, когда что-либо введено в консоль неправильно, что маршрутизатор не признает как свою команду.

Пример:
R1#conft
Translating «conft»…domain server (255.255.255.255)
!
R1(config)#line console 0
R1(config)#transport preferred none
R1(config)#
R1#
R1#conft
^
% Invalid input detected at ‘^’ marker.

R1#
Но при попытке взаимодействовать явно с именем, маршрутизатор все еще будет пытаться разрешить это имя:
R1#ping conft
Translating «conft»…domain server (255.255.255.255)
"transport preferred none" отключает поведение маршрутизатора по умолчанию, при котором он пытается разрешить все неправильно введенные команды (т.к. включен ip domain-lookup) и зайти на удаленный узел по Telnet (transport preferred telnet):

Настройка SSH:

Для настройки SSH на маршрутизаторе требуется:
— Уникальный hostname (отличный от Router)
— Доменное имя (требуется для генерации ключей)
— Пользователь в локальной базе данных (либо на сервере аутентификации/авторизации RADIUS, TACACS+)
— Сгенерированная пара RSA ключей
— Конфигурация VTY для использования локальной базы данных
— Принудительное задание версии SSH 2.0 (опционально)


— Конфигурация hostname рассматривается в разделе 2.
— Конфигурация доменного имени (в примере cisco.local):
R1(config)#ip domain-name cisco.local
— Конфигурация пользователя в локальной базе маршрутизатора (пользователь admin, secret password «cisco12345»):
R1(config)#username admin secret cisco12345
— Генерация RSA ключей длиной 1024 бита:
R1(config)#crypto key generate rsa general-keys modulus 1024 
— Конфигурация VTY для использования локальной базы данных:
R1(config)#line vty 0 15
R1(config-line)#login local
"login local" — использовать local database маршрутизатора для аутентификации пользователей (данная команда применима и для Telnet).
Команда "login local" заменяет собой команду "login" и наоборот.

Конфигурация SSH версии 2.0 (Отключение совместимости с ранними версиями SSH):
R1(config)#ip ssh version 2
По умолчанию работает SSH версии 1.99 — это значит используется SSHv2 и имеется обратная совместимость с SSHv1.5 (небезопасная версия протокола).

"show ip ssh" — посмотреть текущую версию и настройки SSH

Проверка работы SSH на локальном маршрутизаторе:
R1#ssh -l admin 10.0.0.1
Password:
R1>
Конфигурация SSH Timeout (в примере 20 сек):
R1(config)#ip ssh time-out 20 
Максимальное время для входа на маршрутизатор по SSH (по умолчанию 120 сек). Если в течение 20 сек. не будет передачи данных к маршрутизатору, соединение будет сброшено.

Ограничение количества попыток (считаются неудачные попытки) входа по SSH:
R1(config)#ip ssh authentication-retries 2
При 3-ей неудачной попытке входа соединение будет сброшено.

9. Логирование

Типы лог сообщений и наиболее частые события, вызывающие эти сообщения:

0 Emergencies — System shutting down due to missing fan tray
1 Alerts — Temperature limit exceeded
2 Critical — Memory allocation failures
3 Errors — Interface Up/Down messages
4 Warnings — Configuration file written to server, via SNMP request
5 Notifications — Line protocol Up/Down
6 Information — Access-list violation logging
7 Debugging — Debug messages

Типы лог сообщений:

1) Console logging — отправлять лог сообщения в консоль

По умолчанию маршрутизатор отправляет все типы сообщений в консоль (level 7)

Отключить вывод сообщений в консоль:
R1(config)#no logging console
Ограничить вывод сообщений в консоль по типу (в примере выводится будут только сообщения уровня 4 и ниже):
R1(config)#logging console warnings 
2) Terminal logging — для отправки лог сообщений через удаленный терминал (VTY)
R1#terminal monitor
3) Buffered logging — записывать лог сообщения в буфер маршрутизатора (RAM)
R1(config)#logging buffered 524288
524288 bytes — 512K. По умолчанию используется буфер размером 8192 bytes (зависит от платформы)

Так же по типу записываемых в буфер сообщений (в примере уровень 5 и ниже):
R1(config)#logging buffered 5
"show logging" — посмотреть логи на маршрутизаторе

Отправка сообщений на Syslog сервер (10.0.0.2 — IP адрес сервера):
R1(config)#logging host 10.0.0.2
Настройка формата лог сообщений:

1) Добавление порядковых номеров в лог сообщения
R1(config)#service sequence-numbers
R1(config)#
R1#
000036: *Jan 24 23:20:41.259: %SYS-5-CONFIG_I: Configured from console by console
R1#
2) Настройка даты и времени
По умолчанию время прописывается в лог и debug сообщениях маршрутизатора, это можно посмотреть в running-config:
!
service timestamps debug datetime msec
service timestamps log datetime msec
!
— Показывать uptime маршрутизатора (время его работы с момента включения) вместо даты и текущего времени:
R1(config)#service timestamps log uptime
R1(config)#
R1#
000037: 00:54:24: %SYS-5-CONFIG_I: Configured from console by console
R1#
— Добавление дополнительных полей в логи
R1(config)#service timestamps log datetime {localtime | msec | show-timezone | year} 
"localtime" — указывать время относительно настроенной временной зоны (по умолчанию относительно UTC)
"msec" — включать в лог миллисекунды
"show-timezone" — показывать временную зону в лог сообщениях
"year" — показывать год в лог сообщениях

datetime и uptime взаимоисключающие опции!

Пример:
R1(config)#service timestamps log datetime localtime msec show-timezone year
R1(config)#
R1#
000038: *Jan 25 2016 13:51:39.371 MSK: %SYS-5-CONFIG_I: Configured from console by console
R1#
Настройка логирования через Archive:

Для настройки логирования необходимо включить log в функционале archive и задать необходимые параметры:
R1(config)#archive
R1(config-archive)#log config
R1(config-archive-log-cfg)#
"hidekeys"  — шифровать пароли в логах
"logging enable" — включить логирование конфига
"logging size 200" — длина очереди лог-сообщений (по умолчанию 100)
"notify syslog" — при внесении конфигурации отправлять syslog сообщения

Посмотреть лог сообщения (аккаунтинг): "show archive log config all"
Очистить логи: "clear archive log config"

Пример:

На маршрутизаторе R1 настроено логирование:
R1(config)#archive
R1(config-archive)#log config
R1(config-archive-log-cfg)#logging enable
R1(config-archive-log-cfg)#hidekeys
R1(config-archive-log-cfg)#logging size 200
R1(config-archive-log-cfg)#notify syslog
В локальной базе данных заведен пользователь bob:
R1(config)#username bob privilege 15 secret cisco
R1(config)#line vty 0 4
R1(config-line)#login local
На маршрутизатор R1 зашел пользователь bob и произвел настройки OSPF протокола:
R1#conf t
R1(config)#enable password cisco123
R1(config)#router ospf 1
R1(config-router)#network 10.0.0.1 0.0.0.0 area 0
Смотрим логи на R1:


10. Настройка времени на маршрутизаторе и NTP

Посмотреть время на маршрутизаторе:
R1#show clock
*21:06:08.979 UTC Tue Aug 25 2015
R1#
* — время не является точным (Time is not authoritative)

Конфигурация времени на маршрутизаторе (необходимо выставлять в UTC+0):
R1#clock set 19:10:00 25 August 2015
Посмотреть время в «календаре» (Hardware clock on Cisco platform):
R1#show calendar
Синхронизация времени в «календаре» с программными часами:
R1#clock update-calendar
Конфигурация временной зоны:
R1(config)#clock timezone MSK 3
MSK — имя временной зоны
3 — положительное смещение относительно UTC в часах

Конфигурация NTP cервера (рекомендуется использовать):
R1(config)#ntp server 0.ru.pool.ntp.org
"0.ru.pool.ntp.org" — адрес NTP сервера.
Можно конфигурировать несколько NTP серверов, которые будут выступать в качестве резервных, если основной станет недоступен.

Синхронизация времени в «календаре» с NTP (NTP по умолчанию синхронизирует только программные часы):
R1(config)#ntp update-calendar
Просмотр конфигурации NTP:
"show ntp status"
"show ntp associations"

Настроить маршрутизатор в качестве NTP сервера:
R1(config)#ntp master 10.0.0.1
Опционально можно указать stratum в конце команды (от 1 до 15).

11. Настройка имён(DNS)

Отключить разрешение имен в IP адреса (по умолчанию включено, если есть необходимость использовать маршрутизатор в качестве DNS, то эту опцию нужно оставить включенной):
R1(config)#no ip domain-lookup
Зачастую такую конфигурацию используют для того, чтобы маршрутизатор не пытался разрешить ошибочно введенные команды в IP адреса:
R1#conft
Translating «conft»…domain server (255.255.255.255)
Если в на маршрутизаторе необходимо использовать DNS, то лучше пользоваться настройкой "transport preferred none".

Добавить DNS сервер (в примере использован Google DNS):
R1(config)#ip name-server 8.8.8.8
Использовать маршрутизатор в качестве DNS сервера:
R1(config)#ip dns server
Это позволяет маршрутизатору перенаправлять DNS запросы, если его указали в качестве DNS сервера (кеширующий DNS).

Задать соответствие Имя хоста — IP адрес (локальные DNS записи маршрутизатора):
R1(config)#ip host gw.local 192.168.0.1
Проверка работы:
R1#ping gw.local
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms

R1#ping google.com
Translating «google.com»…domain server (8.8.8.8) [OK]

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 77.37.252.24, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/5/12 ms 

Проверка работы DNS на ПК (маршрутизатор выступает в качестве DNS сервера):


12. Уровни привилегий пользователей

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

По умолчанию используются level 1 — User EXEC mode и level 15 — Privileged EXEC mode (enable mode).

При создании уровня с 2 по 14 пользователь сможет выполнять только команды по умолчанию, которые разрешены для 1-ого уровня, пока ему не будут назначены определенные права на исполнение команд.

Посмотреть текущий уровень привилегий:
R1#show privilege
Current privilege level is 15
Назначить на определенный уровень возможность выполнять определенную команду команду, например:
R1(config)#privilege exec level 10 configure terminal
R1(config)#privilege configure level 10 interface
R1(config)#privilege interface level 10 ip address
R1(config)#privilege interface level 10 no shutdown
R1(config)#privilege exec level 10 copy run start
Составные команды, такие как "configure terminal", будут выглядеть следующим образом в running-config:
!
privilege exec level 10 configure terminal
privilege exec level 10 configure
!
Все уровни выше 10-ого автоматически смогут выполнять эти команды.

Необходимо создать пользователя с уровнем 10 и его пароль на enable (в данном примере пароль: «QwE123»):
R1(config)#username alex privilege 10 secret QwE123
R1(config)#enable secret level 10 QwE123
Проверка:


Т.к. при создании пользователя указывается его уровень привилегий явно, то при входе этого пользователя на маршрутизатор он будет сразу попадать в свой уровень без ввода пароля на enable. Если при этом пользователь совершит выход из привилегированного режима в User EXEC mode, выполнив команду "disable", то при повторной попытке зайти в привилегированный режим необходимо будет выполнить команду "enable 10" и ввести соответствующий пользователю пароль на enable.
(При создании учетной записи администратора с максимальным уровнем привилегий — username admin privilege 15 secret cisco123, так же не нужно будет вводить пароль на enable каждый раз при входе, т.к. будем всегда попадать в Privileged EXEC mode).

Такой подход по назначению уровней привилегий является устаревшим и неудобным. Следующим этапом, позволяющим более точно и удобно настраивать права пользователей на маршрутизаторе, является Role Based Access Control (или просто Parser View).

13. Role-based CLI access (Parser view)

Для работы Parser View на маршрутизаторе необходимо, чтобы был включен AAA, для более старых версий IOS еще и enable secret для перехода в Root View
R1(config)#aaa new-model
R1(config)#enable secret level 15 cisco123
Основная идея в том, что сначала настраивается шаблон с правами — View, а потом этот шаблон присваивается пользователю. Т.е. можно сказать, что пользователю назначается определенная роль на маршрутизаторе (например для Helpdesk).

В относительно старых версиях IOS (до 15.2) все настройки Parser View необходимо было делать из так называемого Root View
R1(config)#parser view VIEW1
No view Active! Switch to View Context
Переход в Root View:
R1#enable view
Password: (пароль от enable)

R1#
*Mar  1 00:13:34.447: %PARSER-6-VIEW_SWITCH: successfully set to view ‘root’. 
Смотрим текущее состояние Parser View:
R1#show parser view
Current view is ‘root’
Root View может выполнять все команды Privilege level 15, а также создавать View.

Пример создания и настройки Parser View:

View1:
R1(config)#parser view VIEW1
R1(config-view)#secret view1_pass
R1(config-view)#commands exec include all show
R1(config-view)#commands exec exclude show ip route
R1(config-view)#commands exec include configure terminal
R1(config-view)#commands configure include all interface
R1(config-view)#commands configure include router
R1(config-view)#commands router include network
Можно выполнять все show команды кроме show ip route, производить конфигурацию любых интерфейсов (кроме команды shutdown/no shutdown на интерфейсе), производить настройку протоколов маршрутизации (кроме EIGRP, для него почему-то надо добавлять команду отдельно) только используя правило network.

View2:
R1(config)#parser view VIEW2
R1(config-view)#secret view2_pass
R1(config-view)#commands exec include all show
R1(config-view)#commands exec include configure terminal
R1(config-view)#commands configure include all interface
R1(config-view)#commands interface include-exclusive shutdown
R1(config-view)#commands configure include all router
Можно выполнять все show команды, производить конфигурацию любых интерфейсов, только в этом view можно использовать команду shutdown/no shutdown на интерфейсе, можно использовать все команды протоколов маршрутизации.

Создаем пользователей в каждом VIEW:
R1(config)#username bob view VIEW1 secret cisco123
R1(config)#username alex view VIEW2 secret class123
Для того, чтобы пользователи могли авторизовываться в свой View автоматически, необходимо так же настроить:
R1(config)#aaa authorization exec default local
Команда login local для VTY при настроенном AAA уже не работает, вместо нее имеет место команда (не обязательна т.к. она и так по умолчанию работает):
R1(config)#aaa authentication login default local
Проверка настроек:


Вход пользователя bob в VIEW1:


 Проверка работы команд для VIEW1:


Хотя RBAC и предоставляет более гранулированный и удобный контроль доступа по сравнению с Privilege levels, 100% — ый контроль над выполнением команд он не дает, это можно сделать (и нужно делать) только через TACACS+ сервер!

Комментариев нет:

Отправить комментарий