Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

: 08:02 root@kmh-nac1: ~ # cat /etc/resolv.conf
# This is /run/systemd/resolve/resolv.conf managed by man:systemd-resolved(8).
# Do not edit.
#
# This file might be symlinked as /etc/resolv.conf. If you're looking at
# /etc/resolv.conf and seeing this text, you have followed the symlink.
#
# This is a dynamic resolv.conf file for connecting local clients directly to
# all known uplink DNS servers. This file lists all configured search domains.
#
# Third party programs should typically not access this file directly, but only
# through the symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a
# different way, replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 10.10.1.62
nameserver 10.10.1.63
search cnaas.io
: 08:02 root@kmh-nac1: ~ #


För att felsöka en klient som autentiserar via FreeRADIUS


Börja med att slå på mer loggning i servern, detta kan göras med kommandot "radmin" och sedan "debug level 3". Detta kommer att skriva ut mer information till loggen i Docker-containern som FreeRADIUS körs i och på dom system som inte kör FreeRADIUS i en Docker-container så hamnar det i /var/log/freeradius/radius.log.

OBS: Glöm inte att sätta tillbaka debug level till 0 när du är klar annars kommer loggen att växa väldigt fort och riskrera att fylla upp allt ledigt diskutrymme.

När du har mer loggning så kan du se vad som händer när klienten försöker autentisera. Om det är något som inte fungerar så kommer det att stå i loggen. Leta börja med att leta i loggen efter det användarnamn klienten försöker autentisera med och se om det finns något felmeddelande där. Alternativt den MAC-adress som klienten försöker autentisera med.

Om klienten lyckas autentisera ska FreeRADIUS skicka en Access-Accept annars en Access-Reject.

De vanligaste orsakerna till att en klient inte kan autentisera är:

1. Klienten har inte anslutit alls. Det går att se i en SQL-databas
   om en klient har försökt ansluta eller ej och om det gick.

   Exempel:

: 07:53 root@kmh-nac1: ~ # docker exec -it nac_nac_postgres_1 psql -U cnaas nac
nac=# select * from radpostauth where username = 'aa:bb:cc:dd:ee:ff' order by id desc limit 10;
    id     |     username      |       pass        |     reply     | calledstationid | callingstationid |           authdate
-----------+-------------------+-------------------+---------------+-----------------+------------------+-------------------------------
 206113678 | aa:bb:cc:dd:ee:ff | aa:bb:cc:dd:ee:ff | Access-Accept |                 |                  | 2024-09-10 07:51:22.690465+00
 206111387 | aa:bb:cc:dd:ee:ff | aa:bb:cc:dd:ee:ff | Access-Accept |                 |                  | 2024-09-10 07:34:04.695947+00
 206108626 | aa:bb:cc:dd:ee:ff | aa:bb:cc:dd:ee:ff | Access-Accept |                 |                  | 2024-09-10 07:13:18.493735+00
 206107827 | aa:bb:cc:dd:ee:ff | aa:bb:cc:dd:ee:ff | Access-Accept |                 |                  | 2024-09-10 07:09:38.110926+00
 206105267 | aa:bb:cc:dd:ee:ff | aa:bb:cc:dd:ee:ff | Access-Accept |                 |                  | 2024-09-10 06:55:35.675794+00
 206104981 | aa:bb:cc:dd:ee:ff | aa:bb:cc:dd:ee:ff | Access-Accept |                 |                  | 2024-09-10 06:53:36.973087+00
 206104905 | aa:bb:cc:dd:ee:ff | aa:bb:cc:dd:ee:ff | Access-Accept |                 |                  | 2024-09-10 06:53:04.352627+00
 206104677 | aa:bb:cc:dd:ee:ff | aa:bb:cc:dd:ee:ff | Access-Accept |                 |                  | 2024-09-10 06:51:26.458762+00
 206104572 | aa:bb:cc:dd:ee:ff | aa:bb:cc:dd:ee:ff | Access-Accept |                 |                  | 2024-09-10 06:50:33.779772+00
 206103755 | aa:bb:cc:dd:ee:ff | aa:bb:cc:dd:ee:ff | Access-Accept |                 |                  | 2024-09-10 06:43:46.589659+00
(10 rows)

MAC-adressen aa:bb:cc:dd:ee:ff ovan kan bytas ut mot godtyckligt
användarnamn, t.ex. kristofer@sunet.se.


2. Klienten skickar fel användarnamn eller lösenord. Kolla i loggen om
   det står något om att lösenordet är fel. Exempel med ntlm_auth:

(295552725) mschap: Creating challenge hash with username: aan22023@mdu.se
(295552725) mschap: Client is using MS-CHAPv2
(295552725) mschap: Executing: /usr/bin/ntlm_auth --allow-mschapv2 --request-nt-key --domain=ad.mdu.se --username=%{%{Stripped-User-Name}:-%{%{mschap:User-Name}:-%{%{User-Name}:-None}}} --challenge=%{%{mschap:Challenge}:-00} --nt-response=%{%{mschap:NT-Response}:-00}:
(295552725) mschap: EXPAND --username=%{%{Stripped-User-Name}:-%{%{mschap:User-Name}:-%{%{User-Name}:-None}}}
(295552725) mschap:    --> --username=aan22023
(295552725) mschap: Creating challenge hash with username: aan22023@mdu.se
(295552725) mschap: EXPAND --challenge=%{%{mschap:Challenge}:-00}
(295552725) mschap:    --> --challenge=0e1fc4babff7259c
(295552725) mschap: EXPAND --nt-response=%{%{mschap:NT-Response}:-00}
(295552725) mschap:    --> --nt-response=108846d60534ed84e88eb03b822affeb20bf66e5bb246a78
(295552577) Cleaning up request packet ID 7 with timestamp +25374511
(295552725) mschap: ERROR: Program returned code (1) and output 'The attempted logon is invalid. This is either due to a bad username or authentication information. (0xc000006d)'
(295552725) mschap: External script failed
(295552725) mschap: ERROR: External script says: The attempted logon is invalid. This is either due to a bad username or authentication information. (0xc000006d)
(295552725) mschap: ERROR: MS-CHAP2-Response is incorrect

3. Klienten använder ett certifikat som inte är giltigt. Kolla i loggen
   om det står något om att certifikatet är ogiltigt. T.ex:

(295553470) Received Access-Request Id 198 from 10.130.10.31:46426 to 172.31.0.20:1812 length 259
(295553470)   User-Name = "pelle123@mdu.se"
(295553470)   NAS-IP-Address = 1.2.3.4
(295553470)   NAS-Identifier = "30:86:XX:XX:B2:7F-eduroam"
(295553470)   Called-Station-Id = "30-86-XX-XX-B2-7F-eduroam"
(295553470)   NAS-Port-Type = Wireless-802.11
(295553470)   NAS-Port = 12
...
(295553470) eap_peap: Initiating new EAP-TLS session
(295553470) eap_peap: [eaptls start] = request
...
(295552725) eap: ERROR: TLS Alert write:fatal:unknown CA