yakuzzza Posted July 6, 2009 Posted July 6, 2009 Добрый день, уважаемые господа. Хочется решить такую, казалось бы простую, задачу на базе маршрутизатора cisco 2800 серии. Есть маршрутизатор, который внутренним интерфейсом включен в LAN и внешним в WAN. На маршрутизаторе настроен VPN (PPTP). Пользователи аутентифицируются в RADIUS и им ограничивается доступная полоса, применяются ACL итд. Пользователи подключаются извне - для доступа к ресурсам LAN из Internet и изнутри для выхода в Интернет ч-з NAT. Задача: разделить пользователей на такие 3 группы-класса-категории: 1. К VPN можно подключиться только изнутри. 2. К VPN можно подключиться только снаружи. 3. Объединяет 1 и 2 пункты. Простой ограничение с помощью ACL не решает задачи. Интересно было бы использовать source IP-адрес, с какого подключается пользователь для хранения его или маски в RADIUS, но как такое сделать тоже не нашел. Здравые комментарии, уточнения по теме, а особенно примеры реально работающей описанной схемы приветствуются! Чувствую что надо будет смотреть в сторону vpdn-group, но как и что именно делать так и не нашел. Заранее благодарен. Вставить ник Quote
ingress Posted July 6, 2009 Posted July 6, 2009 несколько vpdn-group, в каждом свой source-ip и свой темплейт со своими пулами Вставить ник Quote
Ilya Nikitin Posted July 7, 2009 Posted July 7, 2009 несколько vpdn-group, в каждом свой source-ip и свой темплейт со своими пулами Добавлю: к каждому Vrtual-Template создаете свою группу радиус-серверов. Сервера могут быть одни и те же, а вот ip radius source-interface - разные. Тогда на радиусе сможете отделять одних юзеров от других по NAS-IP Вставить ник Quote
sdw Posted July 7, 2009 Posted July 7, 2009 все очень просто. %{Calling-Station-Id}% на радиусе проверяй. и выдавай в radreply им соответствующие полиси. Вставить ник Quote
yakuzzza Posted July 8, 2009 Author Posted July 8, 2009 все очень просто. %{Calling-Station-Id}% на радиусе проверяй. и выдавай в radreply им соответствующие полиси. А поточнее и с примером конфига? Буду очень рад. Вставить ник Quote
Stak Posted July 8, 2009 Posted July 8, 2009 А поточнее и с примером конфига? Буду очень рад.Разжевать и в рот положить...Направление Вам указали вполне верное. А конфиг зависит от используемого радиус-сервера... Вставить ник Quote
sdw Posted July 10, 2009 Posted July 10, 2009 вот кусок с выдачей полисей и адресов, написаной нами на plpgsql функции radreply(), имхо достаточный чтобы понять принцип... IF (tar_t.policy_out IS NOT NULL) AND (tar_t.policy_in IS NOT NULL) THEN RAISE NOTICE 'lim'; rc.id := 0; rc.username := username_t; rc.attribute := 'Cisco-AVPair'; rc.op := '+='; rc.value := 'ip:sub-policy-In='||tar_t.policy_in; RETURN NEXT rc; rc.id := 0; rc.username := username_t; rc.attribute := 'Cisco-AVPair'; rc.op := '+='; rc.value := 'ip:sub-policy-Out='||tar_t.policy_out; RETURN NEXT rc; IF (tar_t.ip_pool IS NOT NULL) THEN RAISE NOTICE 'skip_framed_ip'; skip_framed_ip := true; rc.id := 0; rc.username := username_t; rc.attribute := 'Cisco-AVPair'; rc.op := '+='; rc.value := 'ip:addr-pool='||tar_t.ip_pool; RETURN NEXT rc; ELSE IF (NOT skip_framed_ip AND userinfo_t.fipaddress IS NOT NULL) THEN rc.id := 0; rc.username := username_t; rc.attribute := 'Framed-Ip-Address'; rc.op := ':='; rc.value := userinfo_t.fipaddress; skip_framed_ip := true; RETURN NEXT rc; END IF; END IF; ELSE конфиг, как верно заметили, зависит от используемого радиуса, получаете радиусом атрибут скармливаете его функции, выдаете полисями. Вставить ник Quote
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.