Сделать домашней|Добавить в избранное
 

CCIENetLab - Подготовка к экзаменам
CCNA, CCNP и CCIE

 
» » Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах

Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах

Автор: Sauron от 30-06-2015, 18:26
Задача перехватывающей аутентификации (Authentication Proxy) – проверять имя и пароль пользователя перед тем, как выпустить его наружу или пустить внутрь периметра вашей сети. Это часть общей идеологии IBNS (Identity Based Network System), где определяющим является имя пользователя и именно по имени можно сопоставлять настройки конкретного клиента, например, список доступа, в котором описано, что можно данному клиенту.

Как правило пользователь блокируется листом доступа на интерфейсе маршрутизатора, до того как будет он будет авторизован. Маршрутизатор перехватывая трафик пользователя, авторизует его по выбранному протоколу во внешней базе данных, после чего к интерфейсу маршрутизатора применяется лист доступа (ACL) разрешающий конкретно данному пользователю доступ к выбранному ресурсу или сети Интернет.

Для проверки пользователей можно использовать внешние базы данных, доступных по протоколу TACACS или RADIUS. Рассмотрим диаграмму на рисунке.

Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах

Windows PC с IP адресом 10.1.5.100 пытается получить доступ в Интернет, через маршрутизатор R1 с внутренним интерфейсом e0/0. Мы хотим, чтобы трафик направленный в любую сеть сначала должен быть аутентифицирован по протоколу http.
На интерфейсе e0/0 маршрутизатора R1 висит список доступа ACL, запрещающий любой входящий трафик кроме трафика от RADIUS сервера 10.1.5.115 и от HTTP трафик от клиента до интерфейса маршрутизатора.
!
access-list 116 permit tcp host 10.1.5.100 host 10.1.5.1 eq www
access-list 116 permit ip host 10.1.5.115 host 10.1.5.1
!
interface Ethernet0/0
 ip address 10.1.5.1 255.255.255.0
 ip access-group 116 in
!


HTTP трафик между клиентом и маршрутизатором необходимо разрешать, так как именно по этому протоколу будет происходить обмен аутентификационными данными между клиентом и маршрутизатором.
Работает перехватывающая аутентификация следующим образом:
  • Клиент обращается по протоколу HTTP на выбранный сервер и на интерфейс e0/0 маршрутизатора приходит пакет, который проверяется списком доступа – разрешен ли.
  • Если пакет разрешен, то проверяется, пришел ли пакет от аутентифицированного ip адреса источника. Если нет, то проверяется, по какому протоколу пришёл пакет
  • Если пакет пришел по протоколу, указанному в правиле перехватывающей аутентификации, то в браузере (HTTP), telnet или ftp приложении клиента выводиться окошко на ввод логин/пароля, в противном случае просто уничтожаем пакет

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

Настройка перехватывающей аутентификации.

Для того, чтобы заставить маршрутизатор спрашивать внешние базы пользователей, необходимо включить модель ААА (Authentication,Authorization,Accounting)

aaa new-model


Далее, надо создать правило аутентификации, указывающее на внешний сервер и описать сам этот сервер: по какому протоколу с ним связываться, на какой адрес и с каким ключом. Мы будем использовать протокол RADIUS

radius server ACS
 address ipv4 10.1.5.115 auth-port 1645 acct-port 1646
 key cisco


Затем необходимо настроить правило перехватывающей аутентификации, указав по какому протоколу происходит первичное обращение клиента http,telnet или ftp и какой трафик инициирует ответ клиенту от маршрутизатора (описывается списком доступа, где строчки permit означают «выдать клиенту окошко запроса на логин/пароль)

ip auth-proxy name {имя} {http|ftp|telnet} [list {ACL}]


По умолчанию – любой трафик по выбранному протоколу. Для наших целей мы используем любой трафик по протоколу HTTP

ip auth-proxy name PROXY http


Теперь осталось описать, каким правилом аутентификации пользоваться при доступе по http и привесить правило аутентификации на интерфейс (правило всегда вешается на вход интерфейса)

ip http authentication aaa
!
interface Ethernet0/0
  ip auth-proxy PROXY
!


Раньше в IOS не было возможности явно указать правило аутентификации, используемое для аутентификации по http, т.е. всегда использовалось дефолтное правило и надо было его обязательно поменять для использования сервера TACACS или RADIUS

aaa authentication login default group {radius|tacacs}


Теперь же есть возможность явно указать не только правило для login по http, но и отдельно правило для командной авторизации и входа в режим exec
Но мы в демонстрационных целях будем использовать правило аутентификации по умолчанию

aaa authentication login default group radius local
aaa authorization exec default group radius local
aaa authorization auth-proxy default group radius


Команда aaa authorization auth-proxy используется для авторизации клиента использованием технологии перехватывающей аутентификации (auth-proxy). Команда aaa authentication login используется для аутентификации клиента.

Конечная Конфигурация R1
hostname R1
!
aaa new-model
!
aaa authentication login default group radius local
aaa authentication login CONSOLE none
aaa authorization exec default group radius local 
aaa authorization auth-proxy default group radius 
!
ip auth-proxy name PROXY http 
!
interface Loopback0
 ip address 150.1.1.1 255.255.255.255
!
interface Ethernet0/0
 ip address 10.1.5.1 255.255.255.0
 ip access-group 116 in
 ip nat inside
 ip auth-proxy PROXY
!
interface Serial1/0
 no ip address
 encapsulation frame-relay
 serial restart-delay 0
!
interface Serial1/0.1 point-to-point
 ip address 155.1.0.1 255.255.255.0
 ip nat outside
 frame-relay interface-dlci 102   
!
router eigrp 1
 network 150.1.0.0
 network 155.1.0.0
!
ip http server
ip http authentication aaa
!
ip nat inside source list 100 interface Serial1/0.1 overload
access-list 100 permit ip 10.1.5.0 0.0.0.255 any
!
access-list 116 permit tcp host 10.1.5.100 host 10.1.5.1 eq www
access-list 116 permit ip host 10.1.5.115 host 10.1.5.1
!
radius server ACS
 address ipv4 10.1.5.115 auth-port 1645 acct-port 1646
 key cisco
!
line con 0
 privilege level 15
 logging synchronous
 login authentication CONSOLE
!
end


Здесь так же приведена простейшая конфигурация NAT правила, в котором все узлы сети 10.1.5.0/24 транслируется в адрес внешнего интерфейса маршрутизатора.

Конфигурация RADIUS сервера.

Необходимо также сконфигурировать RADIUS сервер, который будет выполнять аутентификацию пользователя и выгружать на маршрутизатор разрешающий список доступа, в случае успешной аутентификации клиента. В качестве RADIUS сервера, мы будем использовать Cisco ACS 5.7, но можно использовать и любой другой.

Прежде всего нам нужно добавить маршрутизатор R1 в качестве AAA клиента на RADIUS сервер во вкладке Network Resources -> Network Devices and AAA Clients

Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах

Здесь мы указываем IP адрес интерфейса маршрутизатора с которым будет осуществляться RADIUS обмен, протокол RADIUS и ключ шифрования RADIUS-сообщений. Он должен совпадать с настройками маршрутизатора.

Далее необходимо создать пользователя под которым клиент будет проходить аутентификацию. Это делается в Users and Identity Stores > Internal Identity Stores > Users

Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах

Здесь мы указываем имя пользователя и его пароль. В данном случае создаем пользователя с именем cisco и паролем cisco.

Третий шаг определить параметры авторизации для пользователя, а именно - разрешающий лист доступа, который будет выдаваться на маршрутизатор, в случае успешной аутентификации. Это делается в Авторизационном Профиле в разделе Policy Elements > Authorization and Permissions > Network Access > Authorization Profiles

Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах

Здесь мы создаем наш авторизационный профиль с именем AuthProxy. Во вкладке Common Tasks включаем атрибут Proxy ACL и в качестве значения указываем следующий лист доступа:

permit tcp any any
permit udp any any


В качестве адрес источника в атрибутах нужно использовать значение any.

После того как мы нажмем Submit, во вкладке RADIUS Attributes можно посмотреть результирующие RADIUS-атрибуты которые должны быть переданы на маршрутизатор в случае успешной аутентификации.

Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах


Здесь мы видим, что будут переданы Cisco VSA атрибуты (cisco-av-pair) со значениями

proxyacl#1=permit tcp any any
proxyacl#2=permit udp any any


Если вы используете не Cisco ACS 5.х, а другой RADIUS сервер, то вам нужно на маршрутизатор оправлять атрибут [009/001] cisco-av-pair со значением:
auth-proxy:proxyacl#1=permit tcp any any
auth-proxy:proxyacl#2=permit udp any any


После того, как авторизационный профиль создан применяем его в правилах авторизации.

Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах

Для простоты мы создаем собственно правило авторизации с именем "Rule-AuthProxy" в разделе Access Policies > Access Services > Default Network Access > Authorization. В нем, качестве результата авторизации клиентов, указываем наш авторизационный профиль, созданный ранее.

До того как клиент Windows PC пытается выйти в Интернет, на интерфейсе маршрутизатора висит следующий лист доступа

Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах

Когда пользователь в браузере набирает адрес сайта, ему выдает окошко с предложением ввести логин и пароль.

Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах

В нашем примере пользователь обращается на внешний адрес 155.1.6.91. Пользователь вводит свое имя и пароль которые мы заводили на RADIUS сервере. Если имя и пароль введены верно , пользователю сообщается об успешной аутентификации

Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах

После чего он получает доступ к серверу. Если мы посмотрим на лист доступа ACL 116, то увидим, что последний изменился

Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах

После аутентификации пользователя в листе доступа на интерфейсе маршрутизатора добавились строчки сверху
permit tcp host 10.1.5.100 any 
permit udp host 10.1.5.100 any


А команда show ip auth-proxy cache показывает, что наш клиент авторизован.

Включим команду debug radius на маршрутизаторе, чтобы посмотреть детально процесс аутентификации и авторизации с RADIUS сервером

Authentication Proxy - Перехватывающая аутентификация на Cisco роутерах

Мы увидим, что от RADIUS сервера приходит положительный ответ (Access-Accept) и авторизационные атрибуты, которые мы указывали на RADIUS севрере.
Cisco AVpair       [1]   31  "proxyacl#1=permit tcp any any"
Cisco AVpair       [1]   31  "proxyacl#2=permit udp any any"

Обратите внимание, что в качестве адрес источника в атрибутах нужно использовать значение any. Оно будет заменено на IP адрес авторизованного клиента в листе доступа на интерфейсе маршрутизатора.

При подготовке использованы материалы:
http://habrahabr.ru/post/68843/
скачать dle 10.6фильмы бесплатно
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
 

CCIENetLab (C)