Narzędzia użytkownika

Narzędzia witryny


Pasek boczny

zsk:radius

Przygotowanie konfiguracji do zajęć

Zadanie 1. Przygotuj konfigurację sieciową:

  • Uruchom Vlab, następnie Linux SK prog
  • Uruchom terminal i zaloguj się na roota
  • Zaktualizuj listę pakietów:
    apt-get update
  • zainstaluj telnet i picocom:
    apt-get install telnet picocom
  • dnsmasq + NAT:
    • Zainstaluj dnsmasq:
      apt-get install dnsmasq
    • Skonfiguruj dnsmasq, dopisując do pliku /etc/dnsmasq.conf linie:
      interface=enp0s8
      dhcp-range=10.0.0.2,10.0.1.10
    • Ustaw adres interfejsu enp0s8 na np. 10.0.0.1/24 i włącz go, przykładowa komenda:
      ifconfig enp0s8 10.0.0.1/24 up
    • Ustaw IP forwarding:
      sysctl net.ipv4.conf.all.forwarding=1
    • Ustaw maskaradę na interfejsie enp0s3:
      iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
    • Uruchom ponownie dnsmasq:
      systemctl restart dnsmasq

FreeRadius

RADIUS to nazwa protokołu sieciowego służącego do uwierzytelniania (authentication), autoryzacji (authorization), i accountingu (accounting), usług określanych wspólnie jako AAA.

Protokół RADIUS pozwala na wysłanie żądania dostępu (access-request) w formie listy atrybutów (identyfikator atrybutu + wartość). Serwer RADIUS na podstawie tych atrybutów albo pozwala na dostęp (access-accept), żąda więcej danych (access-challange), albo odmawia dostępu (access-reject).

Odpowiedź (jak każda inna wiadomość) to lista atrybutów w których można zawrzeć dodatkowe informacje, używane np. do autoryzacji czy do konfiguracji klienta. Przykładowo: można odesłać identyfikator VLANu uwierzytelnionego użytkownika czy informacje o jego poziomie uprawnień dostępu do konsoli CISCO.

Protokół RADIUS używany jest (tylko) między serwerem RADIUS a urządzeniem wykonującym uwierzytelnienie (Netwok Access Server), np. Access Pointem. Przykład (graficzny): [1].

FreeRADIUS [1], [2] jest najpopularniejszym darmowym (i open-source) serwerem RADIUS.

Zadanie 2. Zainstaluj i skonfiguruj (minimalnie) serwer FreeRadius:

  • Instalacja FreeRadiusa
    • Zainstaluj FreeRadiusa i wpa_supplicanta:
      apt-get update
      apt-get install freeradius freeradius-utils wpasupplicant
    • Wyłącz FreeRadiusa:
      systemctl stop freeradius
      (Debian domyślnie uruchamia każdy daemon który zostanie zainstalowany)
  • Konfiguracja FreeRadiusa
    • Przejdź do katalogu /etc/freeradius/3.0
    • Baza użytkowników:
      • Przejrzyj plik users
      • Dodaj użytkownika (z ustawionym tylko hasłem) na podstawie przykładowej konfiguracji
      • Typowo baza użytkowników jest brana z LDAP (mods-available/ldap) lub z bazy danych (mods-available/sql)
      • Przejrzyj powyższe pliki:
        Z jakiej tabeli i bazy korzysta domyślnie sql?
        Jaki filtr ldap jest tworzony do sprawdzenia użytkownika?
    • Klienci - baza urządzeń którym wolno odpytywać FreeRadiusa
      • przjrzyj plik clients.conf
      • dodaj nowego klienta, który:
        • może odpytywać z 10.0.0.0/24
        • jest typu:
          nas_type = cisco
          (nas oznacza Network Access Server [1])
      • Do czego używany jest secret?
    • Uruchom FreeRadiusa w trybie debugowania:
      freeradius -X
    • Przetestuj serwer radius, wydając zapytanie:
      radtest użytkownik hasło 127.0.0.1 0 testing123 0 localhost
      Do sensowniejszych testów można użyć np. https://wiki.freeradius.org/config/Radclient
    • Wygeneruj certyfikaty serwera
      • Wejdź do katalogu certs
      • Przejrzyj plik ca.cnf i server.cnf
      • Wykonaj komendę make
        Jakie certyfikaty wygenerowałeś?
        Jaki będzie poziom zaufania do certyfikatu serwera przez klientów?
    • Dodaj do pliku mods-enabled/eap, do sekcji ttls i peap opcje:
      copy_request_to_tunnel = yes
      use_tunneled_reply = yes
    • Uruchom ponownie freeradius -X

Konfiguracja serwera radius (z materiałów eduroam):

CISCO - wstęp

Wstęp do CISCO na podstawie cisco_wstep

Zadanie 3. Skonfiguruj AP CISCO do współpracy z serwerem protokołu RADIUS:

  • AP używane na zajeciach mają hasło Cisco
  • Konsola szeregowa:
    picocom /dev/ttyS0
  • W trybie konfiguracji (conf)# wykonaj konfigurację interfejsu mostka, nadając mu adres IP z dhcp:
    interface BVI 1
      ip address dhcp
  • Włącz 'nowe' komendy [1] uwierzytelniania, autoryzacji i accountingu
    aaa new-model
  • Dodaj serwer radius:
    radius-server host 10.0.0.1 auth-port 1812 acct-port 1813 key sekret
  • Przetestuj serwer radius:
    test aaa group radius użytkownik hasło new-code

AAA na przykładzie dostępu do wiersza poleceń CISCO

AAA, jak wspomniano wyżej, to:

  • uwierzytelnianie – sprawdzanie, czy użytkownik jest tym, za kogo się podaje, zwykle przez przedstawienie swojej nazwy i hasła, lub swojego certyfikatu i udowodnienie posiadania klucza prywatnego
  • autoryzacja – określenie czy użytkownik ma prawo wykonać konkretną czynność, np. czy wolno mu dołączyć do wybranej sieci bezprzewodowej, czy wolno mu zdalnie zalogować się na router, czy wolno mu na routerze wykonywać komendy konfiguracyjne. Dodatkowo RADIUS pozwala przesłać informacje konfiguracyjne, takie jak np. identyfikator VLANu, limit użycia danych, konfigurację IP [1].
  • accounting – rejestracja zdarzeń, wykorzystania i użycia zasobów, pozwala przykładowo przesłać dane kto kiedy korzystał z sieci bezprzewodowej, ile danych wymienił, kto konfigurował switch. Tak jak wszystkie komunikaty RADIUS, dane są przesyłane jako pary atrybut-wartość.

W protokole RADIUS uwierzytelnienie i autoryzacja są zwykle robione razem, accounting musi być wykonywany osobno.

Poniższej znajdują się ćwiczenia pokazujące działanie każdego z elementów AAA na przykładzie dostępu do wiersza poleceń urządzania CISCO.

Zadanie 4. Authentication - uwierzytelnianie (logowanie do CISCO)

  • Włącz uwierzytelnianie dostępu do logowania się na urządzenie CISCO po radiusue:
    aaa authentication login default group radius none
    Uwaga: ostatni kawałek komendy (none) to określenie co ma się dziać jeśli serwer RADIUS nie odpowiada; none oznacza brak kontroli dostępu
  • Sprawdź działanie używając komendy telnet 10.0.0.x
  • Sprawdź działanie przez konsolę szeregową

Zadanie 5. Authorisation - autoryzacja (logowanie do CISCO)

  • Włącz autoryzację dostępu do wiersza poleceń po radiusie:
    aaa authorization exec default group radius
  • Stwórz dwóch użytkowników w serwerze RADIUS:
    robert  Cleartext-Password := "hello"
            Service-Type = NAS-Prompt-User,
            Cisco-AVpair = "shell:priv-lvl=15"
    
    alice   Cleartext-Password := "hello"
            NAS-Port-Type = Wireless-802.11
  • Spróbuj się zalogować kolejno na alice, na utworzonego przez Ciebie wcześniej użytkownika, na robert
  • Jaka jest różnica przy logowaniu?

Zadanie 6. Accounting (logowanie do CISCO)

  • Włącz accounting dostępu do wiersza poleceń po radiusie:
    aaa accounting exec default start-stop group radius
  • Włącz 'Vendor-Specific Attributes' do informacji o accountingu:
    radius-server vsa send accounting
  • Kolejno zaloguj i wyloguj utworzonego przez Ciebie wcześniej użytkownika i roberta
  • Wejdź do katalogu /var/log/freeradius/radacct/ i przejrzyj wpisy dotyczące accountingu

WPA-EAP

Jednym z ważnych zastosowań serwera RADIUS jest uwierzytelnianie użytkowników w sieciach bezprzewodowych korzystających z WPA/WPA2 Enterprise (WPA2 jest opisywane przez standard IEEE 802.11i).
Standard WPA/802.11i nie wprowadza własnych metod uwierzytelniania - nakazuje użycie standardu 802.1X i zdefiniowanego w nim EAPOL.
EAPOL korzysta z rozwiązania EAP (EAPOL = EAP over LAN). Protokół EAP nie służy do uwierzytelniania; EAP pozwala na przekazanie wiadomości różnych metod (protokołów) uwierzytelniania, a których najpopularniejsze to TLS, PEAP i TTLS.

Wiadomości protokołu EAP są przesyłane wpierw między klientem sieci bezprzewodowej (stacją, STA) a AccessPointem (AP) przy użyciu protokołu EAPOL, następnie między AP a serwerem RADIUS przy użyciu protokołu RADIUS.

Więcej informacji o 802.1X:

Użycia WPA2 Enterprise na przykładzie sieci eduroam:

Poniższe ćwiczenia pokazują prostą konfigurację sieci WPA2 Enterprise z wykorzystaniem wcześniej skonfigurowanego serwera RADIUS do uwierzytelniania użytkowników sieci bezprzewodowej.

Zadanie 7. Sprawdź lokalnie (na serwerze radius) uwierzytelnianie EAP:

  • Pobierz: eapol_test (lub zbuduj, instrukcje niżej) program eapol_test
  • Przygotuj plik konfiguracyjny (lub pobierz np. z http://deployingradius.com/scripts/eapol_test/):
    wpa_supplicant.conf
    network={
            ssid="wartoscIgnorowanaPrzezEapolTest"
            key_mgmt=WPA-EAP
            eap=PEAP
            #eap=TTLS
            anonymous_identity="anonymous"
            phase2="autheap=MSCHAPV2"
            identity="użytkownik"
            password="hasło"
    }

  • Uruchom eapol_test z tak przygotowanym plikiem:
    ./eapol_test -c wpa_supplicant.conf -s sekret_radiusa

budowanie eapol_test

Zadanie 8. Skonfiguruj nową grupę serwerów radius i nową grupę uwierzytelniania na potrzeby WPA-Enterprise:

aaa group server radius serweryRadiusDlaWpa
  server 10.0.0.1 auth-port 1812 acct-port 1813 
aaa authentication login grupaUwierzytelnianiaDlaWpa group serweryRadiusDlaWpa

Zadanie 9. Skonfiguruj sieć bezprzewodową (przkład dla sieci o nazwie wybranySsidSieci działającej na kanale 11):

  dot11 ssid wybranySsidSieci
    authentication open eap grupaUwierzytelnianiaDlaWpa
    authentication key-management wpa
    guest-mode
  interface Dot11Radio 0
    channel 11
    encryption mode ciphers aes-ccm
    ssid wybranySsidSieci
    no shut

Zadanie 10. Przetestuj łączenie się do sieci (wykorzystując nieużywany komputer lub własną komórkę / laptopa)

Zadanie 11. Ograniczanie dozwolonych metod EAP:

  • Przejrzyj plik mods-enabled/eap z katalogu konfiguracji FreeRadiusa.
  • Zmodyfikuj plik tak, by zabronić metod innych niż ttls i peap (uwaga: sekcje tls-config i mschapv2 muszą zostać)
  • Przetestuj poleceniem eapol_test działanie konfiguracji

Zadanie 12. Accounting sieci bezprzewodowej:

  • Stwórz grupę accountingu na potrzeby WPA-Enterprise:
    aaa accounting network grupaAcctDlaWpa start-stop group serweryRadiusDlaWpa
  • Ustaw accounting dla wybranej sieci:
    dot11 ssid wybranySsidSieci
      accounting grupaAcctDlaWpa
  • Połącz się z siecią, pobierz jakiekolwiek dane, rozłącz się z siecią
  • Wejdź do katalogu /var/log/freeradius/radacct/ i przejrzyj wpisy dotyczące accountingu
    Znajdź informację o tym, ile czasu trwało połączenie, do jakiego AP i jakiej sieci się podłączył klient, ile danych wymienił.

802.1X

Opisany w poprzedniej sekcji protokół IEEE 802.1X stworzono na potrzebę uwierzytelniania urządzeń podłączanych do sieci kablowej. IEEE 802.1X to tylko uwierzytelnianie klienta – w porównaniu do WPA2-Enterprise nie stosuje się szyfrowania ruchu.

Zadanie 13. Przełącz się z konfiguracji AP na konfigurację switcha. Wykonaj podstawową konfigurację:

interface range GigabitEthernet 0/1-24
  spanning-tree portfast
interface vlan 1
  ip address dhcp
do ping 10.0.0.1
aaa new-model
radius-server host 10.0.0.1 auth-port 1812 acct-port 1813 key sekret
ip radius source-interface vlan 1   
do test aaa group radius użytkownik hasło new-code

Zadanie 14. Wykonaj minimalną konfigurację 802.1X:

  • Włącz uwierzytelnianie 802.1X po radiusie:
    aaa authentication dot1x default group radius
  • Włącz wsparcie dla 802.1X:
    dot1x system-auth-control
  • Na porcie na którym jest podłączenie do serwera radius ustaw tryb access (zwykły port, nie trunk):
    interface GigabitEthernet 0/24
      switchport mode access
  • Na wybranych portach włącz kontrolę portów i skonfiguruj nasłuchiwanie na pakiety EAPOL (authenticator):
    interface range GigabitEthernet 0/1-12
      switchport mode access
      dot1x port-control auto
      dot1x pae authenticator
  • Z drugiego komputera zobacz, czy da się wykorzystać porty na których ustawiono kontrolę.
  • Wykonaj komendy diagnostyczne:
    show dot1x
    show dot1x interface GigabitEthernet 0/1 details

Zadanie 15. Uwierzytelnij połączenie do switcha:

  • Stwórz plik wpa_supplicant.conf
    wpa_supplicant.conf
    ap_scan=0
    network={
      key_mgmt=IEEE8021X
      eap=PEAP
      #eap=TTLS
      phase2="autheap=MSCHAPV2"
      identity="bob"
      password="hello"
    }

    Zwróć uwagę na ap_scan=0 i key_mgmt=IEEE8021X w pliku konfiguracyjnym

  • Uwierzytelnij się używając:
    wpa_supplicant -D wired -i enp0s8 -c wpa_supplicant.conf [-d]
    Przełącznik -D wired nakazuje traktować interfejs jako kablowy (nie bezprzewodowy).
    Opcjonalny przełącznik -d włącza tryb diagnostyczny (debug)
  • Sprawdź w konsoli CISCO jak wygląda stan łącza i stan 802.1X
  • Przerwij wpa_supplicanta.
    Kiedy port zostanie zdeautentykowany (jak to jest po polsku?)?

Zadanie 16. Wymuś przeterminowywanie i periodyczne odświeżanie uwierzytelnienia:

  • W konfiguracji interfejsów wpisz:
    dot1x reauthentication
  • Skonfiguruj czas co jaki następuje żądanie ponownego uwierzytelnienia:
    dot1x timeout reauth-period 20
    Uwaga: 20 sekund to bardzo kótki czas, podany jako przykład na potrzeby labolatorium
  • Sprawdź po jakim czasie nieodświeżania uwierzytelnienia klient zostanie usunięty z sieci

Zadanie 17. Accounting

  • Włącz accounting komendą:
    aaa accounting dot1x default start-stop group radius
  • Sprawdź wpisy dotyczące accountingu
zsk/radius.txt · ostatnio zmienione: 2018/01/12 22:26 przez jkonczak