Konfigurowanie puli IP serwera RADIUS

Przy użyciu serwera RADIUS można adres IP przypisywać dynamicznie z puli adresów IP.

Przydzielanie adresu IP jest częścią procesu autoryzacji wykonywaną po uwierzytelnieniu. Administrator systemu musi przypisać unikalny adres IP każdemu użytkownikowi. Na serwerze RADIUS dostępne są trzy opcje dynamicznego udostępniania adresu IP użytkownikowi.

  • Atrybut Framed Pool
  • Korzystanie z atrybutu specyficznego dla dostawcy
  • Przydzielanie adresu IP z puli przez serwer RADIUS

Atrybut Framed Pool

Nazwa puli dla puli IP musi być zdefiniowana na serwerze NAS (Network Access Server). Serwer NAS musi być zgodny ze standardem RFC2869, aby serwer RADIUS mógł wysyłać atrybut Framed-Pool w pakiecie Access-Accept (akceptacja dostępu) (atrybut typu 88). Administrator systemu musi skonfigurować serwer NAS i zaktualizować atrybuty autoryzacji dla użytkownika, włączając atrybut Framed-Pool albo do pliku globalnego default.auth, albo do pliku użytkownik.auth na serwerze RADIUS. Plik słownika na serwerze RADIUS zawiera ten atrybut:

ATTRIBUTE    Framed-Pool    88       string

Jeśli serwer NAS nie może używać wielu pul adresów, zignoruje ten atrybut. Pula adresów na serwerze NAS zawiera listę adresów IP. Serwer NAS dynamicznie wskazuje jeden z adresów IP zdefiniowanych w określonej puli i przypisuje go do użytkownika.

Atrybuty specyficzne dla dostawcy

Niektórzy niezależni producenci oprogramowania nie mogą używać atrybutu Framed-Pool, ale mają możliwość zdefiniowania pul adresów IP. Serwer RADIUS może wykorzystać te pule adresów przy użyciu modelu atrybutu specyficznego dla dostawcy (Vendor-Specific Attribute - VSA). Na przykład serwer NAS Cisco udostępnia atrybut zwany Cisco-AVPair. Plik słownika na serwerze RADIUS zawiera ten atrybut:

VENDOR     Cisco           9
ATTRIBUTE  Cisco-AVPair    1       string

Kiedy serwer wysyła pakiet Access-Request (żądanie dostępu), włącza ten atrybut w postaci kodu Cisco-AVPair=”ip:addr-pool=nazwapuli, gdzie nazwa puli jest nazwą puli adresów zdefiniowaną na serwerze NAS. Po uwierzytelnieniu i autoryzowaniu żądania, serwer RADIUS zwraca atrybut w pakiecie Access-Accept (akceptacja dostępu). Wówczas serwer NAS może przydzielić użytkownikowi adres IP, korzystając ze zdefiniowanej puli. Administrator systemu musi skonfigurować serwer NAS i zaktualizować atrybuty autoryzacji dla użytkownika, włączając atrybut VSA albo do pliku globalnego default.auth, albo do pliku użytkownik.auth na serwerze RADIUS.

Przydzielanie adresu IP z puli przez serwer RADIUS

Serwer RADIUS można skonfigurować, tak aby generował adres IP z puli adresów IP. Adres IP jest zwracany w atrybucie Framed-IP-Address (Adres IP z ramką) pakietu Access-Accept (akceptacja dostępu).

Administrator systemu może zdefiniować pulę adresów IP przy użyciu interfejsu programu SMIT. Adresy są przechowywane w pliku /etc/radius/ippool_def. Nazwy pul definiuje się w pliku etc/radius/clients. Administrator systemu musi także skonfigurować numer portu serwera NAS. Demon serwera RADIUS wykorzystuje informacje z plików etc/radius/clients i /etc/radius/ippool_def do tworzenia plików danych. Po uruchomieniu demona administrator nie może zmieniać ani dodawać nazw pul i zakresów adresów IP, dopóki serwery RADIUS nie zostaną zatrzymane. Demon serwera RADIUS po uruchomieniu odczytuje plik konfiguracyjny (/etc/radius/radius.conf) i jeśli przydzielanie adresów IP jest włączone (Enable_IP_Pooling=YES), włącza globalną opcję przydzielania adresów IP (IP_pool_flag). Następnie demon sprawdza, czy istnieje plik nazwapuli.data. Jeśli tak, to go odczytuje i umieszcza odczytane informacje w pamięci współużytkowanej. Następnie aktualizuje plik i pamięć współużytkowaną na podstawie żądań przychodzących od klientów. Jeśli plik nie istnieje, demon tworzy nowy plik, korzystając z informacji w plikach etc/radius/clients i /etc/radius/ippool_def. Maksymalna wielkość pliku nazwa puli.data wynosi 256 MB (ograniczenie wielkości segmentu AIX). Jeśli plik nazwa puli.data jest większy niż 256 MB, serwer RADIUS protokołuje komunikat o błędzie i kończy pracę.

Demon pobiera szczegóły puli IP z pliku /etc/radius/ippool_def i obsługuje tabelę adresów IP dla każdej nazwy puli w pamięci współużytkowanej. Tabela ma pozycje dla atrybutów NAS-IP-address (Adres IP serwera NAS), NAS-port (Port serwera NAS) i opcji IN USE (W UŻYCIU). Demon obsługuje tabelę mieszającą z kluczem NAS-IP NAS-port. Kiedy przychodzą żądania od wielu użytkowników, są kolejkowane przez protokół UDP, a demon pobiera z żądania dane NAS-IP i NAS-port. Korzystając z tych informacji, sprawdza, czy dla tego serwera NAS została zdefiniowana nazwa puli; w tym celu przegląda informacje odczytane z pliku etc/radius/clients.

Demon próbuje uzyskać z puli nieużywany adres. Jeśli nieużywany adres jest dostępny, zostanie on oznaczony jako używany przez opcje NAS-IP (Adres IP serwera NAS) i NAS-port (Port serwera NAS) i zwrócony do serwera RADIUS. Adres IP zostanie umieszczony przez demon w atrybucie Framed-IP-Address i zwrócony do serwera NAS w pakiecie akceptacji. Plik nazwa puli.data także zostanie zaktualizowany w celu zsynchronizowania z informacjami w pamięci współużytkowanej.

Jeśli pula nie istnieje lub istnieje, ale nie zawiera już nieużywanych adresów, do serwera RADIUS zwracany jest błąd. W pliku protokołu zapisywany jest błąd Could not allocate IP address (Nie można przydzielić adresu IP) i serwer RADIUS wysyła do serwera NAS pakiet Access-Reject (odrzucenie dostępu).

Kody błędów są następujące:

  • NOT_POOLED – nie ma puli zdefiniowanej dla nas_ip.
  • POOL_EXHAUSTED – istnieje pula zdefiniowana dla nas_ip, ale wszystkie adresy z tej puli są aktualnie w użyciu.

Kiedy żądanie uwierzytelnienia przychodzi z kombinacji serwera NAS i numeru portu NAS, która ma już przydzielony adres IP, demon zwraca poprzedni przydział do puli, zaznaczając opcję IN USE (W UŻYCIU) jako wyłączoną i zerując w tabeli pozycje NAS-IP-address (Adres IP serwera NAS) i NAS-port (Port serwera NAS). Następnie przydziela nowy adres IP z puli.

Adres IP jest zwracany do puli także wówczas, gdy serwer RADIUS otrzymuje od serwera NAS pakiet Accounting-Stop (koniec rozliczania). Pakiet Accounting-Stop musi zawierać pozycje NAS-IP-address i NAS-port. Demon uzyskuje dostęp do pliku ippool_mem w następujących przypadkach:

  • Przychodzi żądanie pobrania nowego adresu IP. Demon ustawia opcję IN USE na wartość True.
  • Otrzymano pakiet Accounting-Stop. Demon zwalnia adres IP, ustawiając opcję In Use (W użyciu) na wartość False.

Za każdym razem wywołania systemowe pamięci współużytkowanej zapewniają zsynchronizowanie danych w pamięci współużytkowanej i w pliku nazwa puli.data. Administrator systemu może włączyć lub wyłączyć opcję przydzielania adresów IP, ustawiając wartość parametru Enable_IP_Pooling na ON lub OFF w pliku konfiguracyjnym serwera RADIUS (radiusd.conf). Jest to przydatne w przypadkach, gdy administrator systemu ma przypisany adres IP albo w globalnym pliku default.auth, albo w pliku użytkownik.auth. Aby korzystać z tego przypisanego adresu IP, administrator systemu musi ustawić parametr Enable_IP_Pool = NO.

Przykład pliku /etc/radius/ippool_def utworzonego w programie SMIT:
Pool Name (Nazwa puli) Start Range (Początek zakresu) End Range (Koniec zakresu)
Piętro 5 192.165.1.1 192.165.1.125
Piętro 6 192.165.1.200 192.165.1.253
Przykład pliku /etc/radiusclients utworzonego w programie SMIT:
NAS-IP (Adres IP serwera NAS) Shared Secret (Współużytkowane dane szyfrujące) Pool Name (Nazwa puli)
1.2.3.4 Dane szyfrujące 1 Piętro 5
1.2.3.5 Dane szyfrujące 2 Piętro 6
1.2.3.6 Dane szyfrujące 3 Piętro 5
1.2.3.7 Dane szyfrujące 4  
W powyższym przykładzie dla adresu IP serwera NAS 1.2.3.7 nazwa puli jest pusta. W takim przypadku dla tego serwera NAS nie będzie wykonywane przydzielanie adresu IP z puli (nawet jeśli globalna opcja IP_pool_flag = True). Kiedy nadchodzi pakiet Access-Request (żądanie dostępu), serwer RADIUS wykonuje uwierzytelnianie i autoryzację. Jeśli wynik będzie pomyślny, serwer wyśle w pakiecie Access-Accept (akceptacja dostępu) statyczny adres IP zdefiniowany w żądaniu lub pochodzący z pliku globalnego default.auth lub pliku użytkownik.auth. W takim przypadku nie jest wymagany atrybut NAS-Port (Port serwera NAS).

Jeśli opcja przydzielania adresu IP z puli jest ustawiona na True, a administrator systemu zdefiniuje także statyczny adres IP w pliku globalnym default.auth lub w pliku użytkownik.auth, lub w pakiecie Access-Request (żądanie dostępu), serwer RADIUS zastąpi ten adres IP adresem IP przydzielonym z puli zdefiniowanej dla tego serwera NAS. Jeśli wszystkie adresy IP z tej puli są w użyciu, serwer zaprotokołuje błąd (pula jest pełna) i wyśle pakiet Access-Reject (odrzucenie dostępu). Serwer zignoruje statyczny adres IP określony w plikach auth.

Jeśli opcja przydzielania adresu IP z puli jest ustawiona na True i dla serwera NAS zdefiniowana jest poprawna nazwa puli, to kiedy z adresu IP tego serwera NAS przyjdzie pakiet Access-Request bez określonego atrybutu NAS-Port (Port serwera NAS), serwer wysyła pakiet Access-Reject (odrzucenie dostępu).

Poniżej przedstawiono przykład pliku Piętro 5.data utworzonego przez demon:
IP Address (Adres IP) NAS-IP (Adres IP serwera NAS) NAS-Port (Port serwera NAS) In Use (W użyciu)
192.165.1.1 1.2.3.4 2 1
192.165.1.2 1.2.3.4 3 0
............ ....... .... ....
192.165.1.124 1.2.3.6 1 1
192.165.1.125 1.2.3.6 6 1
Poniżej przedstawiono przykład pliku Piętro 6.data utworzonego przez demon:
IP Address (Adres IP) NAS-IP (Adres IP serwera NAS) NAS-Port (Port serwera NAS) In Use (W użyciu)
192.165.200 1.2.3.4 1 1
192.165.201 1.2.3.4 4 1
............ ....... .... ....
192.165.1.252 1.2.3.4 5 0
192.165.1.253 1.2.3.4 6 1
Kiedy konieczne jest zwolnienie wszystkich adresów IP przydzielonych do określonego serwera NAS (na przykład, gdy serwer zostanie zatrzymany), potrzebne może być zwolnienie wszystkich adresów IP ze wszystkich pul, w celu zainicjowania pliku nazwa puli.data. Administrator systemu może to zrobić za pomocą programu SMIT, korzystając z następujących opcji menu:
  • Wyzeruj pulę IP dla klienta
  • Wyzeruj całą pulę IP

Panele programu SMIT dotyczące puli IP

Po wybraniu opcji Dodaj klienta z menu Konfiguracja klienta można wprowadzić opcjonalny parametr Nazwa puli. Nazwa może składać się maksymalnie z 64 znaków. Jeśli pole Nazwa puli jest puste, przydzielanie adresów IP z puli nie będzie wykonywane i serwer RADIUS będzie przypisywał adres IP zdefiniowany przez administratora systemu za pomocą atrybutu autoryzacji Framed-IP-Address.

Po wybraniu opcji IP Pool (Pula IP) wyświetlane są następujące opcje:

  • List all IP Pools (Wyświetl wszystkie pule IP),
  • Create an IP Pool (Utwórz pulę IP),
  • Change/Show Characteristics of an IP Pool (Zmień/pokaż charakterystykę puli IP),
  • Delete an IP Pool (Usuń pulę IP),
  • Wyzeruj pulę IP dla klienta
  • Wyzeruj całą pulę IP

List all IP Pools (Wyświetl wszystkie pule IP): ta opcja służy do wyświetlenia wartości pól Pool Name (Nazwa puli), Start Range IP address (Początek zakresu adresów IP) i Stop Range IP address (Koniec zakresu adresów IP).

Create an IP Pool (Utwórz pulę IP): Ta opcja służy do dodania nazwy puli oraz początku i końca zakresu. Dane te są dodawane na końcu pliku ippool_def. Aby zapewnić, że nazwy pul się nie duplikują i że zakresy adresów IP są rozłączne, wykonywane są odpowiednie sprawdzenia. Czynność tę można wykonać tylko wtedy, gdy demony serwera RADIUS nie są uruchomione.

Change/Show Characteristics of an IP Pool (Zmień/pokaż charakterystykę puli IP): Ta opcja powoduje wyświetlenie listy nazw pul w panelu wywoływanym. Na tym panelu trzeba wybrać konkretną nazwę puli. Po jej wybraniu zostanie wyświetlony panel dotyczący tej nazwy puli. Po naciśnięciu klawisza Enter dane dotyczące tej puli są aktualizowane w pliku ippool_def. Czynność tę można wykonać tylko wtedy, gdy demony serwera RADIUS nie są uruchomione.

Delete an IP Pool (Usuń pulę IP): Wybranie tej opcji powoduje wyświetlenie listy nazw pul do wyboru. Po wybraniu nazwy puli wyświetlany jest panel wywoływany Are You Sure (Czy na pewno), na którym należy potwierdzić zamiar usunięcia puli. Wywoływany jest skrypt rmippool, który usuwa nazwę puli z pliku ippool_def. Czynność tę można wykonać tylko wtedy, gdy demony serwera RADIUS nie są uruchomione.

Clear IP Pool for a Client (Wyzeruj pulę IP dla klienta): Ta opcja ustawia pozycję IN-USE (W UŻYCIU) na wartość 0 dla adresów IP należących do serwera NAS, co oznacza, że wszystkie adresy IP dla tego serwera NAS są teraz dostępne. Czynność tę można wykonać tylko wtedy, gdy demony serwera RADIUS nie są uruchomione.

Clear Entire IP Pool (Wyzeruj całą pulę IP): Po wybraniu tej opcji wyświetlany jest panel wywoływany Are You Sure (Czy na pewno), na którym należy dokonać potwierdzenia przed wyzerowaniem całego pliku ippool_mem. Czynność tę można wykonać tylko wtedy, gdy demony serwera RADIUS nie są uruchomione.