Аналогия: Telnet — это кричать пароль в коридоре, SSH — это шептать его в закрытой комнате. — это замок на розетке в стене — только известное устройство может подключиться.
Port Security — три реакции на нарушение
- protect — тихо отбрасывает избыточный трафик, без предупреждения.
- restrict — отбрасывает трафик и генерирует Log и счетчик нарушений.
- shutdown (по умолчанию) — переводит порт в err-disabled до ручного вмешательства.
- sticky — коммутатор запоминает первый MAC и сохраняет его в конфигурации.
- aging — удаляет изученный MAC через X минут, удобно для конференц-залов.
! Port Security на пользовательском порту
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 2
Switch(config-if)# switchport port-security mac-address sticky
Switch(config-if)# switchport port-security violation restrict
! SSH вместо Telnet
Switch(config)# hostname SW1
Switch(config)# ip domain-name lab.local
Switch(config)# crypto key generate rsa modulus 2048
Switch(config)# username admin privilege 15 secret StrongPass!23
Switch(config)# ip ssh version 2
Switch(config)# line vty 0 15
Switch(config-line)# transport input ssh
Switch(config-line)# login local
Switch(config-line)# exec-timeout 5 0
! Базовое усиление безопасности
Switch(config)# service password-encryption
Switch(config)# enable secret StrongEnable!23
Switch(config)# no ip http server
Switch(config)# banner motd #Authorized access only#
Switch(config)# line console 0
Switch(config-line)# password ConsolePass!23
Switch(config-line)# login
! Проверки и восстановление порта
Switch# show port-security interface gi0/1
Switch# show ip ssh
Switch(config-if)# shutdown
Switch(config-if)# no shutdownbashАрхитектура и теория — под капотом
Укрепление (hardening) = уменьшение поверхности атаки самого оборудования: шифрование управления, надежные пароли, отключение ненужных служб, логи и документация.
- Telnet отправляет пароли в открытом виде — только SSHv2; требует hostname, domain-name и ключ RSA 2048.
- enable secret сохраняет хеш (Type 8/9), тогда как enable password сохраняется почти в открытом виде.
- service password-encryption — это слабое шифрование (Type 7) — на него не полагаются.
- Отключить: CDP в сторону ненадежных сетей, HTTP server, случайный DNS lookup, неиспользуемые порты (shutdown).
- + /TACACS: аутентификация через вместо локальных общих паролей.
Практическая настройка (CLI)
R(config)# hostname CORE-SW1
R(config)# ip domain-name lab.local
R(config)# crypto key generate rsa modulus 2048
R(config)# ip ssh version 2
R(config)# username admin privilege 15 secret Str0ng!Pass
R(config)# enable secret Str0ng!Enable
R(config)# line vty 0 15
R(config-line)# transport input ssh
R(config-line)# login local
R(config-line)# exec-timeout 5 0
R(config)# no ip http server
R(config)# no ip http secure-server
R(config)# banner motd #Authorized access only#
R(config)# logging host 192.168.10.50
R(config)# ntp server 192.168.10.10
R(config)# interface range gi0/21-23
R(config-if-range)# shutdown
R# copy running-config startup-configbashРеальные сценарии в организации
- Все сетевое оборудование отправляет syslog на центральный сервер / — без этого нет расследования инцидентов.
- Доступ к управлению только из выделенного VLAN управления и через Jump Server.
- Административный вход с использованием личной учетной записи через / — есть документация о том, кто что сделал.
- Автоматическое резервное копирование конфигураций перед каждым изменением.
Диагностика и устранение неисправностей
R# show ip ssh
R# show users
R# show running-config | include username|enable|transport
R# show logging
R# show version ! uptime, IOS version
R# show inventorybash- SSH не запускается → отсутствует domain-name или ключ RSA; modulus должен быть 768 или выше (рекомендуется 2048).
- Вход отклонен → line vty без login local или без локального username.
- 'Потеряли конфиг после перезагрузки' → не выполнено copy running-config startup-config.
- Нет логов на сервере → проверьте logging host, UDP 514 connectivity и NTP-часы.
Глоссарий и быстрые команды
- SSH: hostname + ip domain-name + crypto key generate rsa + ip ssh version 2
- enable secret (надежный), а не enable password
- transport input ssh — отключает Telnet
- copy run start / write memory — для сохранения!