Ограничение доступа к маршрутизатору по telnet или ssh с помощью ACL
Давайте разберёмся, как ограничить доступ к маршрутизатору. Для начала рекомендую прочитать статью об ACL, если вы этого ещё не сделали.
Как не надо делать
Итак, есть маршрутизатор, мы, как администраторы хотим иметь возможность удалённо к нему подключаться по ssh либо telnet, но не хотим, чтобы к нему удалённо подключались злоумышленники и брутфорсили наши пароли. Задача достаточно сложная, если пытаться решить её применением расширенных ACL на интерфейсы маршрутизатора.
Допустим есть роутер с такими интерфейсами:
- Fa0/0 (191.168.0.1)
- Fa0/1 (192.168.1.1)
- Fa0/2 (192.168.2.1)
Чтобы зафильтровать доступ по telnet, на Fa0/0 нам пришлось бы применить такой ACL на вход:
access-list 101 deny tcp any host 192.168.0.1 eq telnet access-list 101 deny tcp any host 192.168.1.1 eq telnet access-list 101 deny tcp any host 192.168.2.1 eq telnet access-list 101 permit ip any any
На Fa0/1 и Fa0/2 надо было бы применить тот же ACL. Так как к маршрутизатору можно подключиться на любой его интерфейс. Например, мы можем находиться в сети, подключенной через Fa0/0 и обратиться к роутеру через интерфейс Fa0/1. Наш трафик заходит через Fa0/0, маршрутизируется на Fa0/1 и там уже происходит подключение по telnet. Поэтому мы и перечислили все интерфейсы. Представьте теперь, что на каждом из интерфейсов уже был свой ACL со своими правилами по фильтрации. В этом случае у нас не получится применить общий ACL 101 на все интерфейсы, надо будет в каждый ACL добавлять три строчки. Представьте, что появился новый интерфейс Fa0/3 (192.168.3.1) – теперь нам надо обойти все созданные ранее ACL и добавить там строчку
deny tcp any host 192.168.3.1 eq telnet
Короче говоря, мы обязательно что-то забудем, да и вообще, так дела не делаются. К счастью, у cisco есть гораздо более простой способ ограничить доступ с каких-то адресов к telnet или ssh.
Как надо делать
Создаём стандартный ACL, в котором перечисляем адреса и сети, из который доступ по telnet надо разрешить. И применяем его непосредственно на line vty 0 4, то есть, на линии виртульного терминала, к которым происходит подключение. Таким образом, не важно, через какой интерфейс маршрутизатора telnet пакеты попадут на роутер, они будут отфильтрованы когда доберутся собственно до vty.
Например, в предыдущем примере, с тремя интерфейсами на маршрутизаторе надо разрешить подключение по telnet с адреса администратора (192.168.1.100), со всех остальных адресов – запретить. Настройка будет выглядеть так:
R1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R1(config)#access-list 1 permit host 192.168.1.100 R1(config)#access-list 1 deny any R1(config)#line vty 0 4 R1(config-line)#access-class 1 in
ACL 1 — простой ACL, состоящий из двух строк. Применён он на line vty и теперь не важно, откуда пришёл трафик, с какого интерфейса, с какой сети. Когда он дойдёт до VTY, он будет проверен на соответствие ACL и принят, либо отброшен.
Обратите внимание, что ACL применяется на интерфейсе командой access-group, а на vty — командой access-class.
Комментарии
Юрий (не проверено)
пн, 05/21/2018 - 13:25
Постоянная ссылка (Permalink)
Хочу пожать руку тому человеку который пишет статьи на этом ресурсе. Умение кратко, понятным языком доносить суть дорогого стоит. Спасибо Вам большое за труды!
bacek
вт, 05/22/2018 - 20:11
Постоянная ссылка (Permalink)
Гость (не проверено)
ср, 04/10/2019 - 15:04
Постоянная ссылка (Permalink)
просто красавчик
Евгений (не проверено)
пн, 07/16/2018 - 08:32
Постоянная ссылка (Permalink)
Хороший сайт, много информации тут нахожу
Добавить комментарий