Jump to content

Не работают access-list'ы для исходящего траффика


ls819011

Recommended Posts

Возникла задача сконфигурировать VPN-подключение по протоколу IPSec/L2TP к корпоративной сети, при этом разрешив доступ к корпоративной сети только с тех устройств домашней сети, которые находятся под моим управлением.
Делаю так:
access-list _SOME_ACL_NAME
permit ip 192.168.0.20/32 0.0.0.0/32
permit ip 192.168.0.4/32 0.0.0.0/32
permit ip 192.168.0.6/32 0.0.0.0/32
deny ip 0.0.0.0/0 0.0.0.0/0

interface L2TP0
ip access-group _SOME_ACL_NAME out

При такой конфигурации трафик от всех хостов локальной сети, включая разрешенные, в нужную сеть идёт в обход ВПН.
Если из access-list убрать последнюю строку, то в ВПН уходит трафик от всех хостов локальной сети, независимо от того, разрешено им явно или нет.
Запись убиралась так:
interface L2TP0
no ip access-group _SOME_ACL_NAME out
no access-list _SOME_ACL_NAME
access-list _SOME_ACL_NAME
permit ip 192.168.0.20/32 0.0.0.0/32
permit ip 192.168.0.4/32 0.0.0.0/32
permit ip 192.168.0.6/32 0.0.0.0/32
interface L2TP0
ip access-group _SOME_ACL_NAME out
system configuration save

При просмотре access-list'а при первом совпадении ip-адреса, протокола и порта (if any) обработка должна заканчиваться и к пакету должно применяться правило (permit или deny).
Получается, что этого не происходит, а если в последней записи стоит deny для всех источников, то пакет уходит по маршруту по умолчанию.

Link to comment
Share on other sites

Запись 0.0.0.0/32 - это не верно, она не может быть адресом назначения. Да и вообще, если я правильно понял, чего Вы хотите добиться, то для начала Вам нужно прописать маршруты в нужную сеть через нужный интерфейс. А далее для интерфейса Home уже добавить правила разрешающие доступ определенным адресам к корпоративной сети, и одно правило, запрещающее доступ всем остальным. По аналогии с примером настройки, разрешающей доступ в Интернет только одному определенному компьютеру локальной сети, а для всех остальных блокирующей. Только адрес назначения у вас будет не "любой", как в примере, а конкретный адрес вашей корпоративной сети. Эти правила можно добавить через веб-интерфейс, т.к. это будет по сути access-list на in для интерфейса Home.   

Edited by werldmgn
Link to comment
Share on other sites

7 часов назад, werldmgn сказал:

Есть вариант по проще для лок.сети, разрешить одному а остальным заблокировать - на базе "регистрация устройства" и "policy".

Скрытый текст

interface Bridge0
    rename Home
...
ip hotspot
    policy Home deny
    host MAC_разрешенного_устройтсва:xx permit
    default-policy deny

Где

"policy Home deny" - запрещает "deny" всем из сегмента "Home" или всем на интерфейсе "Bridge0"

"host MAC_xx:xx:xx:xx:xx:xx permit" - разрешено только устройству с ключем "permit"

Если устройств два и более которым нужно разрешить то просто добавить запись с нужным MAC (зарег.устройство в сети), а если одному из ранее разрешенных нужно запретить то "host MAC_xx:xx:xx:xx:xx:xx deny" данный пункт настройки в WEB.

"default-policy deny" - всем по умолчанию запрещено, данный пунк настройки в WEB.

 

Одна команда в cli - "policy Home deny" или добавить в конф файл и записать его на роутер.

 

Link to comment
Share on other sites

Quote

Запись 0.0.0.0/32 - это не верно, она не может быть адресом назначения.

Везде, где 0.0.0.0/32 - описка.
Читать 0.0.0.0/0.
Вот так это выглядело в выводе show running config:

access-list _CORPORATE_OUT
    permit ip 192.168.0.20 255.255.255.255 0.0.0.0 0.0.0.0
    permit ip 192.168.0.4 255.255.255.255 0.0.0.0 0.0.0.0
    permit ip 192.168.0.6 255.255.255.255 0.0.0.0 0.0.0.0
    deny ip 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0
Quote

Да и вообще, если я правильно понял, чего Вы хотите добиться, то для начала Вам нужно прописать маршруты в нужную сеть через нужный интерфейс.

Не нужно. Маршруты в корпоративную сеть через интерфейс L2TP0 выдаёт VPN-сервер при подключении. Естественно, у этих маршрутов приоритет выше, чем у default route.
Кроме маршрутов в корпоративную сеть через интерфейс L2TP0 при подключении к VPN в таблице маршрутизации появится маршрут к VPN-серверу с приоритетом ещё бОльшим, чем маршруты в корпоративную сеть.

Quote

А далее для интерфейса Home уже добавить правила разрешающие доступ определенным адресам к корпоративной сети, и одно правило, запрещающее доступ всем остальным. По аналогии с примером настройки, разрешающей доступ в Интернет только одному определенному компьютеру локальной сети, а для всех остальных блокирующей. ........ Эти правила можно добавить через веб-интерфейс, т.к. это будет по сути access-list на in для интерфейса Home.

А при чём здесь интерфейс Home?
Интерфейс Home вообще не увидит, с какого адреса идёт пакет, т.к. в соответствии с таблицей маршрутизации пакет в корпоративную сеть сначала попадёт на интерфейс L2TP0, которым он будет зашифрован и инкапсулирован в пакет с адресом назначения равным адресу VPN-сервера и адресом источника равным локальному адресу маршрутизатора.
Поэтому единственный вариант ограничения доступа в корпоративную сеть из локальной домашней сети - применение access-list'а для исходящего трафика на L2TP0.
Вариант с конфигурацией из веб-интерфейса не подходит. В Firewall нельзя прописать правила для исходящего трафика.

Quote

Только адрес назначения у вас будет не "любой", как в примере, а конкретный адрес вашей корпоративной сети.

"Любой" адрес назначения в записи access-list'а означает лишь одно - адрес назначения не нужно проверять. Если адрес назначения не нужно проверять, это уменьшает количество проверок, снижает задержку пакета на маршрутизаторе и увеличивает пропускную способность. По-моему, так.

Quote

Есть вариант по проще для лок.сети, разрешить одному а остальным заблокировать - на базе "регистрация устройства" и "policy".

Спасибо, но речь идёт не о том, как сделать, а о баге в firmware.

Link to comment
Share on other sites

1 час назад, ls819011 сказал:

А при чём здесь интерфейс Home?
Интерфейс Home вообще не увидит, с какого адреса идёт пакет, т.к. в соответствии с таблицей маршрутизации пакет в корпоративную сеть сначала попадёт на интерфейс L2TP0, которым он будет зашифрован и инкапсулирован в пакет с адресом назначения равным адресу VPN-сервера и адресом источника равным локальному адресу маршрутизатора.
Поэтому единственный вариант ограничения доступа в корпоративную сеть из локальной домашней сети - применение access-list'а для исходящего трафика на L2TP0.
Вариант с конфигурацией из веб-интерфейса не подходит. В Firewall нельзя прописать правила для исходящего трафика.

Не согласен с Вами. Я это понимаю так: пакет сначала попадет на сетевой интерфейс, входящий в интерфейс home(bridge0), затем принимается решение о маршрутизации. Т.к. пакет транзитный, он попадает в цепочку FORWARD, а не в INPUT. Цепочку FORWARD проходят ВСЕ пакеты, идущие транзитом через роутер. Если вы сделаете из cli "show netfilter", то вы увидите , что правила, добавленные через веб-интерфейс, попадают в цепочку  "_NDM_ACL_IN"  прыжок на которую есть не только в цепочке INPUT, но и в цепочке FORWARD, что вам и нужно. Так что, транзитный пакет будет обработан и при добавлении правил через веб-морду для интерфейса Home(Bridge0). 

Должен заметить, что правила добавленные для интерфейса L2TP0 на out, по идее точно так же должны отработать на проходящем трафике (если вы все верно указали и действительно не ошиблись с 0.0.0.0/32). Если они не отрабатывают, тогда и вправду похоже на баг.

Link to comment
Share on other sites

8 minutes ago, werldmgn said:

Не согласен с Вами. Я это понимаю так: пакет сначала попадет на сетевой интерфейс, входящий в интерфейс home(bridge0), затем принимается решение о маршрутизации. Т.к. пакет транзитный, он попадает в цепочку FORWARD, а не в INPUT. Цепочку FORWARD проходят ВСЕ пакеты, идущие транзитом через роутер. Если вы сделаете из cli "show netfilter", то вы увидите , что правила, добавленные через веб-интерфейс, попадают в цепочку  "_NDM_ACL_IN"  прыжок на которую есть не только в цепочке INPUT, но и в цепочке FORWARD, что вам и нужно. Так что, транзитный пакет будет обработан и при добавлении правил через веб-морду для интерфейса Home(Bridge0). 

Должен заметить, что правила добавленные для интерфейса L2TP0 на out, по идее точно так же должны отработать на проходящем трафике (если вы все верно указали и действительно не ошиблись с 0.0.0.0/32). Если они не отрабатывают, тогда и вправду похоже на баг.

Мне не нужно закрывать доступ к корпоративным адресам через основное подключение к Интернету, к чему приведёт access-list на интерфейсе Home.
Мне не нужно фильтровать ВЕСЬ трафик по источнику на бридже. Зачем мне нагружать такой задачей маршрутизатор?
Мне нужно фильтровать только тот трафик, который будет уходить в корпоративную сеть.
Поэтому я настаиваю на том, что фильтровать источники трафика в корпоративную сеть нужно на L2TP0.

43 minutes ago, werldmgn said:

Должен заметить, что правила добавленные для интерфейса L2TP0 на out, по идее точно так же должны отработать на проходящем трафике (если вы все верно указали и действительно не ошиблись с 0.0.0.0/32). Если они не отрабатывают, тогда и вправду похоже на баг.

Ну ведь есть же кусок вывода show running config, подтверждающий описку в начальном посте темы.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...