![](https://habrastorage.org/getpro/habr/upload_files/02b/7a5/425/02b7a5425776cea92e00156d72cd7b79.png)
Бывает так, что приходится сталкиваться с задачами, к решению которых ты вроде бы и не готов, а получить результат надо здесь и сейчас. Знакомо, да? Добро пожаловать в мир восточноевропейского менеджмента с соответствующей культурой управления.
Итак, допустим, ты представитель местечкового провайдера, уже знающий, как настроить какой-нибудь ASUS, но волею судьбы ещё не получивший сертификат CCNA. Рядом с тобой стоит местный админ, тоже без сертификата, глазами молящий ничего не "сбрасывать в ноль", ибо "всё работает, я просто не знаю пароль, только вы никому не говорите".
Подобные ситуации не редкость в наше ковидном мире, когда отделы со своей инфраструктурой тасуюся ежеквартально, директора направлений таинственно исчезают, а очередной управленец, дабы продемонстрировать собственную эффективность, ссорится с единственным цискарём в округе и заключает договора обслуживания при помощи сайта объявлений.
Проведём же вместе сеанс чёрной айтишной магии с последующим её разоблачением. А именно : сбросим пароль, настроим интерфейсы (локальный и внешний), соединим эти сети маршрутами и трансляцией адресов и прикроем(нет) фаерволом. Кирпич с фирменным шильдиком волшебным образом превратится в полезное сетевое устройство.
Устройство и нужные нам интерфейсы
Вот она, наша девочка. Как опытные ребята, подходим с правильной стороны:
![Нас интересует её правая часть, где все порты. Голубым помечены консольные, жёлтым -- Ethernet Нас интересует её правая часть, где все порты. Голубым помечены консольные, жёлтым -- Ethernet](https://habrastorage.org/getpro/habr/upload_files/259/2b9/238/2592b9238074049b8db6b1805089f22e.png)
Если подключаться в Ethernet порты, которые жёлтые, то нужно знать IP адреса на этих интерфейсах и пароли на вход -- основной и "повышенный" (под которым, собственно и надо всё настраивать). Если чего-то из этого нет, то добро пожаловать в консоль. Её порты помечены нежно-голубым цветом. Такой же цвет у фирменного консольного кабеля Cisco, который обычно к этому времени потерялся.
![Кабель "специальный" Cisco. Распайки есть везде. Кабель "специальный" Cisco. Распайки есть везде.](https://habrastorage.org/getpro/habr/upload_files/f40/66f/9a7/f4066f9a773ebbd6556c63df6f0df3c2.jpg)
По нынешним временам COM-порт есть далеко не в каждом ноуте, поэтому придётся к этому шнурку брать стандартный COM-USB переходник. Но можно присмотреться и увидеть, что рядом со "старым" консольным портом есть mini-usb порт с тем же назначением. Переходник в данном случае встроен в циску, и, да, на него нужны драйвера. Устанавливаем их, ребутимся и подключаемся снова. После подключения Cisco через кабель miniusb в списке оборудования в разделе Порты (COM и LPT) появился Cisco Serial (COM14) (не обязательно именно 14, ну что поделать). Для дальнейшей работы рекомендую терминальную программку Putty, ибо в ней есть всё, что необходимо, и она проста, как полено. На сегодня нам от неё нужно будет подключение по интерфейсу Serial (Com14) и впоследствии Telnet (TCP23).
Сбрасываем пароли
Включаем циску и подключаемся в Putty к порту Serial (название COM14, Baud Rate 9600). Убеждаемся, что коннект есть. Далее надо перезагрузить маршрутизатор в ROMMON – начальный загрузчик – совсем урезанную версию операционной системы, которая загружается до cisco IOS и используется для сервисных целей (обновление IOS, восстановление пароля). Чтобы перезагрузить маршрутизатор в ROMMON, нужно прервать обычный процесс загрузки в IOS – для этого в самом начале загрузки надо отправить сигнал прерывания.
Выключаем, и не разрывая консольный сеанс, Включаем Cisco 1941 и нажимаем клавишу Break (она же клавиша Pause) или комбинацию Ctrl+Break на клавиатуре (если в ноуте этого нет, в Putty по правой кнопке мыши можно вызвать special command – break). Полная таблица с сигналами прерывания для разных терминалов находится здесь.
Видим приглашение в режим rommon (ROM monitor) :
rommon 1 >
Вводим команду изменения конфигурации регистра командой confreg и после перезапускаем роутер командой reset
rommon 1 > confreg 0x2142
rommon 2 > reset
Повышаем привилегии командой enable
или просто en
И пароль она тут не просит :)
Router1>en
Копируем «запароленный» конфиг в память роутера:
Router1#copy startup-config running-config
После этого применится старый конфиг, который был запаролен, но при этом мы уже находимся в привилегированном режиме, откуда можем выставить новые пароли для привилегированного режима, telnet и консоли.
Router1#conf terminal
Router1(config)#enable secret $$$NewPassword
Router1(config)#enable password $$$NewPassword
Router1(config)#line vty 0 4
Router1(config-line)#password $$$NewPassword
Router1(config-line)#login
Router1(config-line)#exit
Router1(config)#line console 0
Router1(config-line)#password $$$NewPassword
Router1(config-line)#login
Router1(config-line)#exit
Главное, в конце не забыть вернуть значения регистров по умолчанию. Если этого не сделать, то наш новый конфиг снова будет проигнорирован после перезагрузки роутера.
Router1(config)# config-register 0x2102
Router1(config)#exit
Копируем загруженный конфиг в стартовый и перезагружаемся:
Router1# copy running-config startup-config
Router1# reload
Роутер теперь с новым паролем для консоли, телнета и привилегированного режима. Ура. Можно отдать циску просиявшему админу вместе с настройками "нового интернета" (мы же от провайдера приехали, помните?). Если во взгляде местного системного администратора затаились нерешительность и страх, то поможем бедолаге.
Настройка интерфейсов
Чтоб два раза не приезжать, пробежимся по всем нужным настройкам "чтоб взлетело". У циски два "жёлтых" интерфейса: GigabitEthernet0/0 и GigabitEthernet0/1. Обычно они должны смотреть в сторону WAN и LAN соответственно, да будет так.
Адресация в WAN, допустим 100.200.100.202/30 со шлюзом провайдера 100.200.100.201
Адресация в LAN, как водится, 192.168.1.1/24 с локальным интерфейсом циски 192.168.1.1
Всё делаем из под рута:
>en
#
Для конфигурации используем команду configure terminal, для выхода - exit:
#conf t
#exit
Настраиваем локальный интерфейс:
#conf t
#interface GigabitEthernet0/1
#description LAN
#ip address 192.168.1.1 255.255.255.0
#no shutdown
#exit
Настраиваем DHCP (на всю подсеть кроме .1-.50 и .200-.254).
Исключения:
#ip dhcp excluded-address 192.168.1.200 192.168.1.254
#ip dhcp excluded-address 192.168.1.1 192.168.1.50
#ip dhcp ping packets 4
Сам пул:
#ip dhcp pool MY_DHCP_POOL_1
#import all
#network 192.168.1.0 255.255.255.0
#default-router 192.168.1.1
#dns-server 77.88.8.8
#lease 3
#exit
Всё, после этой настройки можно подключаться телнетом из локалки при желании (удобно для проверок)
При подключении должен примениться адрес из DHCP пула и пинговаться циска. Советую запустить ping -t чтоб мониторить на всякий случай.
Настраиваем внешний интерфейс:
#conf t
#interface GigabitEthernet0/0
#ip address 100.200.100.202 255.255.255.252
#no shutdown
#exit
Тут должен начать пинговаться шлюз прова - 100.200.100.201 - но только от самой циски, не с ноута (между сетями-то пакеты пока не ходят)
#ip forward-protocol nd
#ip route 0.0.0.0 0.0.0.0 100.200.100.201
Тут от самой циски должен начать пинговаться 8.8.8.8
#ip domain timeout 2
#ip name-server 8.8.8.8
#ip name-server 77.88.8.8
#ip cef
Тут от самой циски должен начать пинговаться ya.ru
#copy running-config startup-config
(или просто #wr
)
В итоге мы настроили на циске две сети, в которых она будет жить и трудиться. Далее надо будет их соединить.
Его величество межсетевой экран
Собственно, его величество фаер. В ипостасях NAT и списков доступа (ACL)
Тут много построено на этих самых списках, ссылки на них вбиваются как в правила интерфейсов (access-group), так и в правилах NAT, поэтому заносить надо аккуратно. Списки работают строго сверху вниз. Поэтому правила для any обычно последние (и они не нужны -- по дефолту для any всё запрещено). Список доступа может быть стандантным (access-list standard) , либо расширенным (access-list extended). Отличаются детализацией -- у стандартного только действие и источник пакетов, например.
Настройка NAT
Собираем локальную область для маскарадинга (да, я знаю, что это термин для iptables, но суть та же):
#ip access-list standard 10
#permit 192.168.1.0 0.0.0.255
#deny any
#exit
Назначаем стороны маскарадинга (интерфейсы):
#interface gigabitethernet0/1
#ip nat inside
#exit
#interface gigabitethernet0/0
#ip nat outside
#exit
Cамое важное: включаем собственно правило (одной строкой):
#ip nat inside source list 10 interface gigabitethernet0/0 overload
Закрываемся от атаки по TCPSYN:
#ip tcp synwait-time 30
Настраиваем список доступа – для внешнего интерфейса (если настроить для внутреннего, то нужны разрешения для dhcp трафика). Первым делом закроем единственный сетевой доступ -- телнет (tcp 23). Если подняты http(s) или ssh – тоже закрыть
Пишем список (особое внимание – протоколу icmp)
#ip access-list extended 101
#deny tcp any any eq 23
#permit tcp any any
#permit udp any any
#permit icmp any any echo-reply
#permit icmp any any time-exceeded
#permit icmp any any unreachable
#deny ip any any
#exit
Вешаем список на вход во внешний интерфейс:
#int gigabitethernet0/0
#ip access-group 101 in
#exit
#copy running-config startup-config
(или просто #wr
)
Так то список только базовую "защиту" обеспечивает, но это головная боль админа уже. После поднятия всех сервисов и их проверки, можно написать построже и применить.
У нас пингуется всё изнутри и циска снаружи. Интернет работает, почта ходит. Все счастливы, танцуют, обнимаются, деньги в карманы засовывают. Твой социальный рейтинг растёт на глазах.
P.S. Полезные команды
Почти весь мониторинг -- это команда show.
У неё есть короткая форма sh
, которую я не рекомендую, ибо такая же короткая форма есть у команды shutdown
Собственно, включение чего-либо, например, интерфейса выглядит вот так:
#no shutdown
Выведем на почитать/скопировать весь конфиг:
#show running-config
Можно посмотреть возможности команды show:
#show ?
Да и любой:
#ip ?
Просмотр сводной информации по интерфейсам:
#show ip interface brief
Просмотр информации по интерфейсам L2:
#show interface summary
Просмотр адресов, выданных по DHCP:
#show ip dhcp bind
Удаление строк конфига:
#no [строка конфига]
Например, удалим шлюз по умолчанию:
#no ip default-gateway
Удаляем ВЕСЬ список доступа:
#no ip access-list extended 101
Удаление статического маршрута:
#no ip route [маршрут]
Что-ж для первого визита вполне достаточно. При помощи этой нехитрой магии ты заведёшь себе много друзей, юный падаван :) И не забудь предупредить местного админа о том, что если он как следует не настроит ACL, их сетку могут в скором времени ждать крупные неприятности. Но это уже совсем другая история.
У нас быстрые серверы для любых экспериментов.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!
![](https://habrastorage.org/webt/et/1a/yp/et1aypandyuamqprsz3m2ntm4ky.png)
zte189
И зачем оно тут?
AzIdeaL
Думаю, в контексте этого: "… ссорится с единственным цискарём в округе и заключает договора обслуживания при помощи сайта объявлений".
Ну, про сайт объявлений, это, конечнож, крайность: всегда найдётся швой парень вне периметра. Но. Ахтож его пустит?
13werwolf13
жиза
обратился как-то ко мне с такой же бедой но на другой циске знакомый (ну там помимо этого ещё было пара косяков от предыдущего админа который оставил keepass базу но не сказал от неё мастер пароля)
"фигня война" говорю я "бери пивко пошли чинить"
а вот хренушки, его руководитель сказал что чтобы я им помог я должен открыть ИП и заключить договор
пришлось помогать из дома советами через телегу
P.S.: но пиво он мне таки поставил ибо всё получилось хоть и сильно дольше чем планировалось