Eduroam в Софийския университет "Св. Климент Охридски"

Начало > Ръководство на администратора при анализ на проблеми с удостоверяването

Ръководство на администратора при анализ на проблеми с удостоверяването

Съдържание:

  1. Типове RADIUS сървъри в инфраструктурата на Eduroam
  2. Каква информация трябва да се изисква от потребителя при анализ на проблем
  3. Как да локирате проблема използвайки журналните файлове на FreeRADIUS

    3.1. Необходими журнални файлове, софтуер за анализа им и настройки на FreeRADIUS

    3.2. Анализ на записите в журналните файлове на "home" RADIUS сървърите

    3.3. Анализ на записите в журналните файлове на "proxy" RADIUS сървърите

 

1. Типове RADIUS сървъри в инфраструктурата на Eduroam

В инфраструктурата на Eduroam, по отношение на процеса на удостоверяване на потребителя, има следните два типа RADIUS сървъри:

  • "home" RADIUS сървър
  • "proxy" RADIUS сървър

Между клиентския WiFi софтуер и "home" RADIUS сървъра се изгражда TLS тунел, по който се пренася удостоверителната информация за идентифициране на потребителя (потребителското име и паролата). В тази схема "home" RADIUS сървъра е този, който извършва проверката дали потребителското име и парола криптирани в TLS тунела са коректни. Когато клиентският WiFi софтуер се свързва към точка за достъп до Eduroam, която не е директно свързана към "home" RADIUS сървъра, пакетите за изграждане и поддържане на TLS тунела се транспортират от междинните "proxy" RADIUS сървъри.

ВНИМАНИЕ! За един домейн даден RADIUS сървър може да е "home", а за друг - "proxy". Всичко зависи от конкретната настройка и местоположение на сървъра в инфраструктурата на Eduroam. Повече информация как да се определи ролята на даден FreeRADIUS сървър може да бъде намерена в Приложение 2, по-долу.

 

2. Каква информация трябва да се изисква от потребителя при анализ на проблем

Потребителят следва да предостави информацията описана в секцията "Как да получите помощ при проблем със свързването с мрежата "eduroam" на ръководството, което той е използвал, за да настрои профила за свързване към Eduroam.

 

3. Как да локирате проблема използвайки журналните файлове на FreeRADIUS

3.1. Необходими журнални файлове, софтуер за анализа им и настройки на FreeRADIUS

Журналните файлове (текущия и архивираните от logrotate в Gzip формат) се намират в директория /var/log/radius/. По-долу е даден примерно съдържание на директорията /var/log/radius/ (възможно е там да има и други файлове, но тези в примера са тези дискутираните по-долу в това ръководство):

-rw-r-----.  1 radiusd radiusd  50387  Sep  3 03:00 radius.log
-rw-r-----.  1 radiusd radiusd  199536 Jun  1 03:57 radius.log-20180601.gz
-rw-r-----.  1 radiusd radiusd  374110 Jul  1 04:09 radius.log-20180701.gz
-rw-r-----.  1 radiusd radiusd  434969 Aug  1 04:26 radius.log-20180801.gz
-rw-r-----.  1 radiusd radiusd  893516 Sep  1 03:17 radius.log-20180901.gz

За анализирането на тези файлове е необходим скрипта parse.py. Ако той не е наличен в системата, инсталирайте го следвайки инструкциите в Приложение 1.

Бъдете сигурни, че в настройките на FreeRADIUS е указано описването в /var/log/radius/radius.log. Във файла /etc/raddb/radiusd.conf стойността на auth в секцията log трябва да бъде установена на yes:

log {
       ...
       auth = yes
       ...
    }

ВНИМАНИЕ!!! Ако стойността на auth е била yes по време на възникване на проблема докладван от потребителя, най-вроятно в /var/log/radius/radius.log няма да има достатъчно количество информация за извършване на анализите.

3.2. Анализ на записите в журналните файлове на "home" RADIUS сървърите

В Приложение 2 е описано как да се определи, че даден FreeRADIUS сървър е с роля "home".

  • успешно удостоверяване на потребителя:
    Sat Sep  8 22:04:23 2018 : Auth: Login OK: [anonymous@uni-sofia.bg] (from client radius-rec.uni-sofia.bg port 0 via TLS tunnel)
    Sat Sep  8 22:04:23 2018 : Auth: Login OK: [username@uni-sofia.bg] (from client radius-rec.uni-sofia.bg port 0 cli 78-D7-F6-2A-3E-22)
    

    В този случай всичко е наред и няма нужда да се предприемат никакви стъпки по отстраняване на проблем.

  • комбинацията от потребителско име и парола (предавани в TLS тунела) не е вярна:
    Thu Sep  6 02:31:01 2018 : Auth: Login incorrect: [anonymous@uni-sofia.bg] (from client radius-rec.uni-sofia.bg port 0 via TLS tunnel)
    Thu Sep  6 02:31:01 2018 : Auth: Login incorrect: [username@uni-sofia.bg] (from client radius-rec.uni-sofia.bg port 0 cli 78-D7-F6-2A-3E-22)
    

    В този случай помолете потребителя да провери дали вярно е въвел потребителското си име и парола. Проверете също така и журналните файлове на приложението или сървъра, който извършва крайния удостоверителен процес (най-често LDAP сървър) за повече яснота относно кое причинява проблема.

  • CA сертификата инсталиран от потребителя не може да удостовери сървърския сертификат на "home" RADIUS сървъра:
    Thu Aug 30 01:26:53 2018 : Error: TLS Alert read:fatal:unknown CA
    Thu Aug 30 01:26:53 2018 : Error:     TLS_accept: failed in SSLv3 read client certificate A
    Thu Aug 30 01:26:53 2018 : Error: rlm_eap: SSL error error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
    Thu Aug 30 01:26:53 2018 : Error: SSL: SSL_read failed inside of TLS (-1), TLS session fails.
    

    Помолете потребителя да изтрие профила с настройките за свързване към Eduroam и да го създаде наново следвайки ръководствата.

  • WiFi клиентът на потребителя по някакъв начин смята, че TLS тунела е "жив" и се опита да се удостовери отново:
    Sat Sep  8 04:49:25 2018 : Error: rlm_eap: No EAP session matching the State variable.
    Sat Sep  8 04:49:25 2018 : Auth: Login incorrect: [username@uni-sofia.bg] (from client radius-rec.uni-sofia.bg port 0 cli 78-D7-F6-2A-3E-22)

    В този случай помолете потребителя да деактивира за момент безжичния адаптор и след това да го активира отново, след което да опита отново да се свърже към точка за достъп на Eduroam.

3.3. Анализ на записите в журналните файлове на "proxy" RADIUS сървърите

В тези журнални файлове не се пази информация относно процеса на удостоверяването на потребителя, а САМО СУМАРИЗАЦИЯ НА СТАТУСА на удостоверяването. И причината е, че "proxy" RADIUS сървърът само участва (най-често с помощта на други "proxy" RADIUS сървъри) в транзитирането на тунела, който пренася в крипиран вид криптираната потребителска информация.

  • успешно удостоверяване на потребителя (от страна на "home" RADIUS сървъра):
    Sun Sep  9 01:22:47 2018 : Auth: Login OK: [anonymous@uni-sofia.bg/<via Auth-Type = Accept>] (from client 172.19.2.8 port 1 cli 78-D7-F6-2A-3E-22)

    В този случай всичко е наред с удостоверяването и няма проблем.

  • по някакъв начин "home" RADIUS сървъра не може да удостовери комбинацията от потребителско име и парола:
    Sun Sep  9 02:02:04 2018 : Auth: Login incorrect (Home Server says so): [anonymous@uni-sofia.bg/<no User-Password attribute>] (from client 172.19.4.5 port 1 cli 78-D7-F6-2A-3E-22)

    В този случай помолете потребителя да провери дали вярно е въвел потребителското име и паролата. Отбележете, че потребителското име и парола се предават в криптиран тунел и те няма как да бъдат видяни в журналния файл на "proxy" RADIUS сървърите. Върху тях могат да бъдат видяни само MAC адреса на потребителския WiFi адаптер и формалното потребителско име използвано за анонимизация. Въпреки, че това формално име за анонимизация може в някои редки случаи да съвпада с потребителското име предавано в тунела, в общия случай те нямат нищо общо понежду си. Ако "home" RADIUS сървъра обслужващ удостоверяването на домейна на потребителя е в мрежата на Софийския университет, свържете се с неговия администратор, за да провери на какво се дължи провала в удостоверяването, като му препратите информацията, която сте получили от потребителя за часа на възникване на проблема, формалното име за анонимизация използвано от потребителя и MAC адреса на потребителския WiFi адаптер. Ако имате достъп до "home" сървъра на потребителя, продължете с проверката там, както е указано по-горе.

 

Приложение 1. Инсталиране и използване на скрипта parser.py за извеждане на информация по удосотверяването на даден потребител

  • Инсталиране

    Използвайте git за да изтеглите последната актуална версия на кода на скрипта за анализ на журналните файлове на FreeRADIUS по MAC адрес:

    $ git clone https://github.com/vessokolev/radius_log_parser.git
    $ cd radius_log_parser
    $ chmod 755 parser.py
    $ sudo cp parser.py /usr/local/bin/
    

    Изпълнението на скрипта изисква наличието на Python 3 в системата. Ако не е наличен, инсталирайте го използвайки пакетния мениджър на Linux дистрибуцията.

  • Използване

    Когато даден потребител съобщи за проблем, той трябва да предостави MAC адреса на неговия WiFi адаптер. След като този адрес стане известен, скрипта parse.py може да се изпълни за да се провери дали и какви записи относно удостоверяването на този потребител същестуват в журналните файлове на RADIUS сървърите, които се намират в Eduroam инфраструктурата на мрежата на Софийския университет. Търсенето става по MAC адрес. За примера по-долу се предполага, че MAC адреса на WiFi адаптора на потребителя е 95:A4:30:28:F4:03:

    # FILES=`ls /var/log/radius/radius.log*` && for i in $FILES ; do parser.py 95A43028F403 $i ; done
    

    Евентуално намерените редове с информация за този MAC адрес се анализират така, както е обяснено по-горе. В тези редове ще се намира описанието на анонимното потребителско име, използвано при опита за установяване на TLS тунела, статуса на удостоверяването (успешно или не), датата и часа на събитието, а така също и коя точка за достъп или RADIUS сървър е страна по комуникацията за установяване на тунела.

    Можете да ограничите проверката само до един от журналните файлове, например само до /var/log/radius/radius.log (текущия журнален файл):

    # parser.py 95A43028F403
    

    или някой от архивирани компресирани или не файлове (например /var/log/radius/radius.log-20180701.gz):

    # parser.py 95A43028F403 /var/log/radius/radius.log-20180701.gz
    

 

Приложение 2. Как да определим кои са "proxy" и "home" RADIUS сървърите на Eduroam в СУ за домейна на потребителя

ВНИМАНИЕ! Когато в текста по-долу става дума за "home" и "proxy" RADIUS сървъри в мрежата на СУ, то това са сървъри свързани с процеса на удостоверяването на потребители от домейните на Софийския университет достъпни в Eduroam.

Определянето на това кои RADIUS сървър са "proxy" и кои "home" става чрез проследяване на описанията в конфигурационните им файлове, ако няма предварително направена схема, която да показва това. Ако потребителят използва точка за достъп до Eduroam извън мрежата на Софийския университет или такава, която е в капус "Ректорат" на СУ, проследяването трябва да започне от конфигурацията на RADIUS сървъра работещ на radius-rec.uni-sofia.bg. В случай, че потребителят използва точка за достъп в кампус "Лозенец", то проследяването може да започне от конфигурацията на RADIUS сървъра върху service-loz.uni-sofia.bg. Ако върху него не бъдат намерени нужните записи, проследяването следва да започне от radius-rec.uni-sofia.bg.

Отворете файла /etc/raddb/proxy.conf на съответния RADIUS сървър и потърсете в него записи за домейна на потребителя. Ако тези записи сочат към друг RADIUS сървър в мрежата на СУ (това посочване става чрез атрибутите authhost и accthost сочещи към IP адрес или име на хост), то в този случай проверявания RADIS сървър е "proxy" за домейна на потребителя. Например, следните записи:

realm "phys.uni-sofia.bg" {
   authhost = 62.44.98.1:1812
   accthost = 62.44.98.1:1813
   secret = c165c711699755b27687f9fea553f58e6d4158fe89199de3014db5b2303781a2
   nostrip
}
в /etc/raddb/proxy.conf на radius-rec.uni-sofia.bg показват, че следващия RADIUS сървър участващ в удостоверяването на потребителите за домейна phys.uni-sofia.bg е с IP адрес 62.44.98.1. Следователно, проследяването трябва да продължи на 62.44.98.1. Ако в /etc/raddb/proxy.conf на 62.44.98.1 има следните записи:
realm "phys.uni-sofia.bg" {
   type = radius
   authhost = LOCAL
   accthost = LOCAL
}

то 62.44.98.1 е "home" RADIUS сървъра за домейна phys.uni-sofia.bg, защото стойностите на authhost и accthost са LOCAL, а не IP адрес или име на хост. Стойността LOCAL означвава, че процесът на удостоверяване излиза извън протокола за комуникация между RADIUS сървърите и продължава локално или не с използване на други протоколи, например PAM, LDAP, IMAP, AD и т.н. За да може да се случи това локално удостоверяване, "home" RADIUS сървъра трябва да в единия край на TLS тунела (потребителят е от другата му страна), за може да научи през тунела потребителското име и парола, чрез които да продължи удостоверяването спрямо другите протоколи (PAM, LDAP, IMAP, AD и т.н).

 


Последна актуализация: 29 май 2023

Автор на първоначалната версия на документа: Веселин Колев

2023 УЦИКТ, Софийски университет