Июл 06 2009

Авторизация на Cisco Catalyst через GNU Radius.

Централизованная авторизация через radius server имеет ряд неоспоримых достоинств. Если у вас обслуживанием оборудования занимается несколько человек и штат сотрудников время от времени меняется, а не меняться он не может, то правильней всего завести один источник авторизации на котором можно завести пользователя или заблокировать одним движением, а не обходя оборудование по кругу и блокируя аккаунты. Во вторых источником авторизации может служить все что угодно, радиус сервера могут обращаться к SQL базам, к хранилищу в виде простого файла, и наконец к PAM, как мы сегодня и настроим.
Почему я выбрал авторизацию через PAM? Да просто потому что так исторически сложилось. И система мониторинга авторизуется через апачевский mod_auth_pam.

Как бы там ни было мы рассмотрим и вариант с авторизацией через MySQL, ну а сейчас установим GNU Radius из портов FreeBSD:

cd /usr/ports/net/gnu-radius/
make install clean

вначале будет небольшой диалог настройки:

┌────────────────────────────────────────────────────────────────────┐
│                  Options for gnu-radius 1.6.1_1                    │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │         [х] CLIENT      Enable build client                    │ │
│ │         [ ] DBM         Enable DBM support                     │ │
│ │         [ ] MYSQL       Enable MySQL support                   │ │
│ │         [ ] POSTGRESQL  Enable PostgreSQL support              │ │ 
│ │         [ ] SNMP        Enable SNMP support                    │ │ 
│ │         [ ] EMACS       Enable emacs dotfiles install          │ │ 
│ │         [x] PAM         Enable PAM support                     │ │
│ │                                                                │ │
├─└────────────────────────────────────────────────────────────────┘─┤
│                       [  OK  ]       Cancel                        │
└────────────────────────────────────────────────────────────────────┘

После того как все соберется, можно приступать к настройке.
Перейдем в каталог с конфигурационными файлами GNU Radius:

cd /usr/local/etc/raddb

По большому счету нас тут интересуют 3 файла:

client.conf
clients
users

В файлк clients.conf мы сменим пароль. В изначальном файле было:

server local 127.0.0.1 foobar 1812 1813
source_ip 127.0.0.1
timeout 3
retry 1

мы поставим:

server local 127.0.0.1 local-123 1812 1813
source_ip 127.0.0.1
timeout 3
retry 1

А в файле clients пропишем:

localhost               local-123
192.168.5.0/24        cisco-123

Для клиентов с локалхоста мы поставим такой же пароль local-123, как и в предудущем файле, а 192.168.5.0/24 — это сеть свитчей, которые должны авторизоваться на radius сервере.
И последний файл users, в нем описан метод авторизации пользователей. Выглядеть он должен так:

DEFAULT Group = "*LOCKED_ACCOUNT*",
                Auth-Type = Reject
        Reply-Message = "Your account is currently locked.\n\
Please, contact your system administrator\n"
 
DEFAULT Auth-Type = PAM,
                Simultaneous-Use = 5    
        Service-Type = Login-User

На этом настройка GNU Radius окончена. Запустим его, для этого вначале разрешим запуск:

echo 'radiusd_enable="YES"' >> /etc/rc.conf

и запустим:

/usr/local/etc/rc.d/radiusd start

А теперь проверим, как у нас происходит авторизация для этого воспользуемяс командой radauth:

/usr/local/sbin/radauth -v hilik cthutq-123

И в ответ должны получить что то типа такого:

radtest: debug: client.c:272:grad_client_send0: sending Access-Request
radtest: debug: client.c:288:grad_client_send0: server 127.0.0.1:1812
radtest: debug: send: User-Name = (STRING) sh
radtest: debug: send: NAS-IP-Address = (IPADDR) 127.0.0.1
radtest: debug: send: User-Password = (STRING) \170\262\355\157\161\270\130\275\344\375\040\191\373\371\213\016
radtest: debug: client.c:326:grad_client_send0: sending request (timeout=3, retries=1)
radtest: debug: client.c:140:grad_client_recv: received Access-Accept
radtest: debug: radpdu.c:400:grad_decode_pdu: allocated radreq: 0x284301c0
radtest: debug: radpdu.c:415:grad_decode_pdu: Access-Accept from 127.0.0.1, id=18, length=26
radtest: debug: recv: Service-Type = (INTEGER) Login-User
Authentication passed.

Если вы увидели Authentication passed — GNU Radius настроен правильно и можно переходить к настройке Catalystа.
Для этого нужно сначала зайти на него, то есть вы должны иметь возможность авторизоваться на нем, получить права администратора (enable) и перейти в режим настройки(configure terminal)

aaa new-model
aaa authentication login default local group radius enable
aaa authentication enable default enable
radius-server host 192.168.5.1 auth-port 1812 acct-port 1813
radius-server key 0 cisco-123

Серия команд начинающаяся на aaa — описывает возможные схемы авторизации.
А radius-server соответственно то что касаетс янепосредственно авторизации на radius сервере. первая строка описывает хост на котором вы установили GNU Radius и порты авторизации и аккаунтинга. А вторая строка настройки авторизации, ключ который вы указали в файле clients.
На этом настройка закончена. Добавляйте своих коллег на сервер в системные пользователи и они смогу авторизоваться на оборудовании.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Украинская Баннерная Сеть