Клиентские L3VPN и обход VTY ACL на оборудовании Huawei

Суть проблемы довольно простая – telnet/ssh (далее, для простоты изложения речь пойдёт про telnet) работают во всех vpn-instance, таким образом, L3VPN-подключение является потенциальной угрозой для обхода VTY ACL, поскольку, в общем случае, абонент сам планирует своё адресное пространство. Типичные схемы подключения (PE-CE) – /30, /30+static route(часто, default в центральной точке), /30+bgp. Если в сторону клиента есть static route или bgp без (жёсткого) согласования префиксов (например, только с лимитом на их количество), то абонент может пытаться зайти телнетом на ip-адрес транспортной сети(/30) на стороне провайдера.

Подбирать адрес источника не так уж и сложно – начать с белых адресов этой AS, затем серые адреса. Часто терминальный сервер находится где-то рядом с DNS-серверами ISP. В целом, задача решаемая.

Решения

Обычно, vty acl выглядит примерно так:

acl number 2000
 description VTY-ACL
 rule 10 permit source 192.0.2.0 28
 rule 1000 deny
user-interface vty 0 4
 acl 2000 inbound

Значительно снизить вероятность обхода ACL можно переделав vty acl на тип advanced(3000-3999) и явно указать destination адрес в разрешающих правилах (т.е. адрес лупбэк, на который вы сами подключаетесь). В этом случае, обойти VTY ACL удастся только если ваш ip-адрес в клиентском vpn-instance совпадёт с адресом лупбэка, по которому осуществляется управление этим устройством. Это маловероятно, но всё же возможно (особенно, если вы используете серые адреса на лупбэках).

Более радикальный способ – запрет telnet-трафика с помощью cpu-defend-policy (если порты в сторону клиентов и аплинки живут на разных платах, поскольку защитные политики применяются per-slot).

Ну и самый очевидный способ – явные ACL(traffic-policy), запрещающие делать telnet на транспортный адрес в vpn-instance.

В самом деле, эта “проблема” затрагивает не только оборудование Huawei, но и многие линейки оборудования других вендоров. Из красивых решений – Cisco ASR9K, где нужно явно указывать в каком vrf запускается telnet-сервер.

1 thought on “Клиентские L3VPN и обход VTY ACL на оборудовании Huawei

  1. Oleg Vostrikov

    Начиная с софта V8R9 на серии NE появилась опция vpn-instance-any при создании ACL.

    acl4-basic-2222]rule deny ?
    fragment-type Specify the fragment type of packet
    source Specify source address
    time-range Specify a special time
    vpn-instance Specify a VPN instance
    vpn-instance-any Any VPN instance

    Т.е. можно в явно виде запретить подключения из любых VPN.
    ===============
    В более старых софтах (например, V8R8, V6R8) можно указать лишь конкретный VPN.
    При этом в документации указано что будет проверяться только GRT, если не указать VPN.
    (If the traffic is from L3VPN, this option must be configured in the ACL. If this option is not configured, it indicates the traffic belongs to the public network rather than L3VPN.)
    Такое же описание присутствует в версиях софта имеющих опцию vpn-instance-any.
    ===============
    Получается что опасения на счет подключения к устройству из VPN актуальны для совсем старых версий ПО, где нет возможности задать VPN в ACL.

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s