ls819011 Posted March 20, 2020 Share Posted March 20, 2020 Возникла задача сконфигурировать 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 для всех источников, то пакет уходит по маршруту по умолчанию. Quote Link to comment Share on other sites More sharing options...
Werld Posted March 20, 2020 Share Posted March 20, 2020 (edited) Запись 0.0.0.0/32 - это не верно, она не может быть адресом назначения. Да и вообще, если я правильно понял, чего Вы хотите добиться, то для начала Вам нужно прописать маршруты в нужную сеть через нужный интерфейс. А далее для интерфейса Home уже добавить правила разрешающие доступ определенным адресам к корпоративной сети, и одно правило, запрещающее доступ всем остальным. По аналогии с примером настройки, разрешающей доступ в Интернет только одному определенному компьютеру локальной сети, а для всех остальных блокирующей. Только адрес назначения у вас будет не "любой", как в примере, а конкретный адрес вашей корпоративной сети. Эти правила можно добавить через веб-интерфейс, т.к. это будет по сути access-list на in для интерфейса Home. Edited March 20, 2020 by werldmgn Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 21, 2020 Share Posted March 21, 2020 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" или добавить в конф файл и записать его на роутер. Quote Link to comment Share on other sites More sharing options...
ls819011 Posted March 21, 2020 Author Share Posted March 21, 2020 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. Quote Link to comment Share on other sites More sharing options...
Werld Posted March 21, 2020 Share Posted March 21, 2020 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). Если они не отрабатывают, тогда и вправду похоже на баг. Quote Link to comment Share on other sites More sharing options...
ls819011 Posted March 21, 2020 Author Share Posted March 21, 2020 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, подтверждающий описку в начальном посте темы. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.