linux:freeradius
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
| Következő változat | Előző változat | ||
| linux:freeradius [2025/09/08 18:24] – létrehozva riba.zoltan | linux:freeradius [2025/09/10 11:05] (aktuális) – [Kerberos hitelesítés] riba.zoltan | ||
|---|---|---|---|
| Sor 1: | Sor 1: | ||
| ====== Freeradius telepítése RHEL/ | ====== Freeradius telepítése RHEL/ | ||
| + | |||
| + | ===== Előkészítés ===== | ||
| + | |||
| + | Kiindulásként AlmaLinux 9 (x86_64) operációs rendszer telepítését kell elvégezni. A telepítés minimal telepítés. | ||
| + | |||
| + | ===== Telepítést követő lépések ===== | ||
| + | |||
| + | Módosítani kell a / | ||
| + | |||
| + | < | ||
| + | # if [ ! -f / | ||
| + | </ | ||
| + | |||
| + | Érdemes kikapcsolni a kernel üzenetek megjelenítését | ||
| + | |||
| + | < | ||
| + | # grubby --update-kernel=ALL --args=quiet | ||
| + | </ | ||
| + | |||
| + | A SElinux-ot átmenetileg megengedő módba kell kapcsolni | ||
| + | |||
| + | < | ||
| + | # sed -i ' | ||
| + | </ | ||
| + | |||
| + | Be kell állítani a rendszer locale-t en_US.UTF-8-ra | ||
| + | |||
| + | < | ||
| + | # localectl | ||
| + | </ | ||
| + | |||
| + | Listázzuk az elérhető csomagokat | ||
| + | |||
| + | < | ||
| + | # dnf list freeradius* | ||
| + | Last metadata expiration check: 1:14:21 ago on Mon 08 Sep 2025 07:24:49 PM CEST. | ||
| + | Available Packages | ||
| + | freeradius.x86_64 | ||
| + | freeradius-devel.x86_64 | ||
| + | freeradius-doc.x86_64 | ||
| + | freeradius-krb5.x86_64 | ||
| + | freeradius-ldap.x86_64 | ||
| + | freeradius-utils.x86_64 | ||
| + | </ | ||
| + | |||
| + | Telepítsük a szükséges csomagokat | ||
| + | |||
| + | < | ||
| + | # dnf install freeradius freeradius-utils | ||
| + | </ | ||
| + | |||
| + | Futtassuk a radiusd programot debug módban ahol az alábbi hibát kapjuk | ||
| + | |||
| + | < | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | Unable to check file "/ | ||
| + | / | ||
| + | rlm_eap_tls: | ||
| + | rlm_eap (EAP): Failed to initialise rlm_eap_tls | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | Inicializáljuk a tanúsítványokat | ||
| + | |||
| + | < | ||
| + | # cd / | ||
| + | |||
| + | # make ca.pem | ||
| + | make[1]: Entering directory '/ | ||
| + | make[1]: Leaving directory '/ | ||
| + | make[1]: Entering directory '/ | ||
| + | make[1]: Leaving directory '/ | ||
| + | openssl req -new -x509 -keyout ca.key -out ca.pem \ | ||
| + | -days ' | ||
| + | -passin pass:' | ||
| + | .+.......+...+......+..+++++++++++++++++++++++++++++++++++++++*..+...+.+...+.....+...+...+......+.+...+++++++++++++++++++++++++++++++++++++++*..+...+....++++++ | ||
| + | ...+..........+......+.........+...+...+.....+++++++++++++++++++++++++++++++++++++++*.......+..............+.+.....+.+..+++++++++++++++++++++++++++++++++++++++*........+...+...+............+...+..............+.............+........+...+....+..+.........+............+...+......+...............+.+.....+.............+..+...................+...+...+.....+...+.+.........+......+.....+...+.+.....+.+...........+...+......+.+...+..............+.......+.....+...+.......+.........+......+......++++++ | ||
| + | ----- | ||
| + | chmod g+r ca.key | ||
| + | chown root: | ||
| + | chmod 640 ca.* | ||
| + | |||
| + | # make server.pem | ||
| + | openssl req -new -out server.csr -keyout server.key -config ./ | ||
| + | .+......................+......+..+.......+.....+.+.....+.......+.....+.+...........+....+.....+.+.........+.....+......+...+.+.....+.........+......+....+++++++++++++++++++++++++++++++++++++++*.+............+........+.......+..+....+...........+.+++++++++++++++++++++++++++++++++++++++*........+.............+..+...+.......+..+..........+...+..+....+.....++++++ | ||
| + | .....+...+.....+.............+.....+++++++++++++++++++++++++++++++++++++++*..+......+...........+...............+......+....+......+++++++++++++++++++++++++++++++++++++++*...+..........+...+........+.+.........+............+..............+...+...+...+.+...+...+...+.........+..+..........+.....+....+..+.............+...........+.........+......+.........+......+...+..........+...+...+.........+.....+..................++++++ | ||
| + | ----- | ||
| + | chmod g+r server.key | ||
| + | openssl ca -batch -keyfile ca.key -cert ca.pem -in server.csr | ||
| + | Using configuration from ./ | ||
| + | Check that the request matches the signature | ||
| + | Signature ok | ||
| + | Certificate Details: | ||
| + | Serial Number: 1 (0x1) | ||
| + | Validity | ||
| + | Not Before: Sep 8 19:11:33 2025 GMT | ||
| + | Not After : Nov 7 19:11:33 2025 GMT | ||
| + | Subject: | ||
| + | countryName | ||
| + | stateOrProvinceName | ||
| + | organizationName | ||
| + | commonName | ||
| + | emailAddress | ||
| + | X509v3 extensions: | ||
| + | X509v3 Extended Key Usage: | ||
| + | TLS Web Server Authentication | ||
| + | X509v3 CRL Distribution Points: | ||
| + | Full Name: | ||
| + | URI: | ||
| + | X509v3 Certificate Policies: | ||
| + | Policy: 1.3.6.1.4.1.40808.1.3.2 | ||
| + | Certificate is to be certified until Nov 7 19:11:33 2025 GMT (60 days) | ||
| + | |||
| + | Write out database with 1 new entries | ||
| + | Database updated | ||
| + | openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 | ||
| + | chmod g+r server.p12 | ||
| + | openssl pkcs12 -in server.p12 -out server.pem -passin pass:' | ||
| + | chmod g+r server.pem | ||
| + | chown root: | ||
| + | chmod 640 server.* | ||
| + | </ | ||
| + | |||
| + | Amennyiben szeretnénk az eredeti állaporta állni, akkor az alábbi utasításokat futtassuk | ||
| + | |||
| + | < | ||
| + | # cd / | ||
| + | </ | ||
| + | |||
| + | A szerver tesztelését újra futtathatjuk | ||
| + | |||
| + | < | ||
| + | Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel | ||
| + | Listening on auth address * port 1812 bound to server default | ||
| + | Listening on acct address * port 1813 bound to server default | ||
| + | Listening on auth address :: port 1812 bound to server default | ||
| + | Listening on acct address :: port 1813 bound to server default | ||
| + | Listening on proxy address * port 44473 | ||
| + | Listening on proxy address :: port 54094 | ||
| + | Ready to process requests | ||
| + | </ | ||
| + | |||
| + | ==== File alapú hitelesítés ==== | ||
| + | |||
| + | Mentsük le a felhasználókat tartalmazó adatbázist | ||
| + | |||
| + | < | ||
| + | # cp -a / | ||
| + | </ | ||
| + | |||
| + | Hozzunk létre teszt felhasználót | ||
| + | |||
| + | < | ||
| + | # cat > / | ||
| + | testing Cleartext-Password := " | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | Újraindítás nélkül teszteljük a hozzáférést | ||
| + | |||
| + | < | ||
| + | # radtest testing password 127.0.0.1 0 testing123 | ||
| + | Sent Access-Request Id 146 from 0.0.0.0: | ||
| + | User-Name = " | ||
| + | User-Password = " | ||
| + | NAS-IP-Address = 192.168.110.11 | ||
| + | NAS-Port = 0 | ||
| + | Cleartext-Password = " | ||
| + | Received Access-Reject Id 146 from 127.0.0.1: | ||
| + | Message-Authenticator = 0x6fdf89ab2cd775d9cbecc980edf715f3 | ||
| + | (0) -: Expected Access-Accept got Access-Reject | ||
| + | </ | ||
| + | |||
| + | Töltsük újra a szerver konfigurációt | ||
| + | |||
| + | < | ||
| + | # systemctl restart radiusd | ||
| + | </ | ||
| + | |||
| + | Teszteljük a módosítást | ||
| + | |||
| + | < | ||
| + | # radtest testing password 127.0.0.1 0 testing123 | ||
| + | Sent Access-Request Id 161 from 0.0.0.0: | ||
| + | User-Name = " | ||
| + | User-Password = " | ||
| + | NAS-IP-Address = 192.168.110.11 | ||
| + | NAS-Port = 0 | ||
| + | Cleartext-Password = " | ||
| + | Received Access-Accept Id 161 from 127.0.0.1: | ||
| + | Message-Authenticator = 0x88d891160ee4e45002497ff6e3ca4b59 | ||
| + | </ | ||
| + | |||
| + | Teljes teszt | ||
| + | |||
| + | < | ||
| + | # radtest --help | ||
| + | Usage: radtest [OPTIONS] user passwd radius-server[: | ||
| + | -d RADIUS_DIR | ||
| + | -t < | ||
| + | type can be pap, chap, mschap, or eap-md5 | ||
| + | -P protocol | ||
| + | -x Enable debug output | ||
| + | -4 Use IPv4 for the NAS address (default) | ||
| + | -6 Use IPv6 for the NAS address | ||
| + | -6 Mandate checks for Blast RADIUS (this is not set by default). | ||
| + | |||
| + | # radtest -t pap testing password 127.0.0.1 0 testing123 | ||
| + | Sent Access-Request Id 146 from 0.0.0.0: | ||
| + | User-Name = " | ||
| + | User-Password = " | ||
| + | NAS-IP-Address = 192.168.110.11 | ||
| + | NAS-Port = 0 | ||
| + | Cleartext-Password = " | ||
| + | Received Access-Accept Id 146 from 127.0.0.1: | ||
| + | Message-Authenticator = 0x29c262c37719c7b5490dade0eba018a2 | ||
| + | |||
| + | # radtest -t chap testing password 127.0.0.1 0 testing123 | ||
| + | Sent Access-Request Id 46 from 0.0.0.0: | ||
| + | User-Name = " | ||
| + | CHAP-Password = 0xcaf4ca1ab5cbd80cfd255c0a20b5d0d7a3 | ||
| + | NAS-IP-Address = 192.168.110.11 | ||
| + | NAS-Port = 0 | ||
| + | Cleartext-Password = " | ||
| + | Received Access-Accept Id 46 from 127.0.0.1: | ||
| + | Message-Authenticator = 0x915bad7c2a2c26cb4e25f95b0f606158 | ||
| + | |||
| + | # radtest -t mschap testing password 127.0.0.1 0 testing123 | ||
| + | Sent Access-Request Id 133 from 0.0.0.0: | ||
| + | User-Name = " | ||
| + | MS-CHAP-Password = " | ||
| + | NAS-IP-Address = 192.168.110.11 | ||
| + | NAS-Port = 0 | ||
| + | Cleartext-Password = " | ||
| + | MS-CHAP-Challenge = 0x776d71a43a29e5e0 | ||
| + | MS-CHAP-Response = 0x00010000000000000000000000000000000000000000000000006469e4d8f3d977bba821d6c987ab8dc82dd22b42e70009ec | ||
| + | Received Access-Accept Id 133 from 127.0.0.1: | ||
| + | Message-Authenticator = 0xc1115e503566db3209038dbe5f119649 | ||
| + | MS-CHAP-MPPE-Keys = 0x0000000000000000166a9e32f11580c1c0b62f9cd0bda633 | ||
| + | MS-MPPE-Encryption-Policy = Encryption-Allowed | ||
| + | MS-MPPE-Encryption-Types = RC4-40or128-bit-Allowed | ||
| + | |||
| + | # radtest -t eap-md5 testing password 127.0.0.1 0 testing123 | ||
| + | Loading input data... | ||
| + | Read 1 element(s) from input: stdin | ||
| + | Loaded: 1 input element(s). | ||
| + | Adding new socket: src: 0.0.0.0:0, dst: 127.0.0.1: | ||
| + | Added new socket: 5 (num sockets: 1) | ||
| + | Sent Access-Request Id 6 from 0.0.0.0: | ||
| + | User-Name = " | ||
| + | Cleartext-Password = " | ||
| + | NAS-IP-Address = 192.168.110.11 | ||
| + | NAS-Port = 0 | ||
| + | EAP-Code = Response | ||
| + | EAP-Type-Identity = 0x74657374696e67 | ||
| + | EAP-Message = 0x02f4000c0174657374696e67 | ||
| + | Message-Authenticator = 0x00000000000000000000000000000000 | ||
| + | Received Access-Challenge Id 6 from 127.0.0.1: | ||
| + | Message-Authenticator = 0x413491aa17d3a3649ef3e4aa585cda21 | ||
| + | EAP-Message = 0x01f500160410412e576008f0de2a5122f16c9d908981 | ||
| + | State = 0x1d2d846a1dd8802f3111415ec636f0a3 | ||
| + | EAP-Id = 245 | ||
| + | EAP-Code = Request | ||
| + | EAP-Type-MD5-Challenge = 0x10412e576008f0de2a5122f16c9d908981 | ||
| + | Sent Access-Request Id 38 from 0.0.0.0: | ||
| + | User-Name = " | ||
| + | Cleartext-Password = " | ||
| + | NAS-IP-Address = 192.168.110.11 | ||
| + | NAS-Port = 0 | ||
| + | EAP-Code = Response | ||
| + | Message-Authenticator = 0x00000000000000000000000000000000 | ||
| + | EAP-Type-MD5-Challenge = 0x1070cf2ce2eb2e0cf2b1283d43583ae23b | ||
| + | EAP-Id = 245 | ||
| + | State = 0x1d2d846a1dd8802f3111415ec636f0a3 | ||
| + | EAP-Message = 0x02f50016041070cf2ce2eb2e0cf2b1283d43583ae23b | ||
| + | Received Access-Accept Id 38 from 127.0.0.1: | ||
| + | Message-Authenticator = 0x8d94e8b9207f6f19bc078121280292f6 | ||
| + | EAP-Message = 0x03f50004 | ||
| + | User-Name = " | ||
| + | EAP-Id = 245 | ||
| + | EAP-Code = Success | ||
| + | </ | ||
| + | |||
| + | ==== LDAP hitelesítés ==== | ||
| + | |||
| + | Szükséges csomagok telepítése | ||
| + | |||
| + | < | ||
| + | # dnf install freeradius freeradius-utils freeradius-ldap | ||
| + | </ | ||
| + | |||
| + | Létre kell hozni az ldap szimbolikus linket | ||
| + | |||
| + | < | ||
| + | # ln -s ../ | ||
| + | </ | ||
| + | |||
| + | Menteni kell a / | ||
| + | |||
| + | < | ||
| + | # [ ! -e / | ||
| + | |||
| + | cat > / | ||
| + | ldap { | ||
| + | server = ' | ||
| + | identity = ' | ||
| + | password = 12345678 | ||
| + | base_dn = ' | ||
| + | |||
| + | update { | ||
| + | control: | ||
| + | control: += ' | ||
| + | request: += ' | ||
| + | reply: += ' | ||
| + | } | ||
| + | |||
| + | user { | ||
| + | base_dn = " | ||
| + | filter = " | ||
| + | } | ||
| + | |||
| + | group { | ||
| + | base_dn = " | ||
| + | filter = ' | ||
| + | membership_attribute = ' | ||
| + | } | ||
| + | |||
| + | client { | ||
| + | base_dn = " | ||
| + | filter = ' | ||
| + | attribute { | ||
| + | ipaddr = ' | ||
| + | secret = ' | ||
| + | } | ||
| + | } | ||
| + | |||
| + | accounting { | ||
| + | reference = " | ||
| + | |||
| + | type { | ||
| + | start { | ||
| + | update { | ||
| + | description := " | ||
| + | } | ||
| + | } | ||
| + | |||
| + | interim-update { | ||
| + | update { | ||
| + | description := "Last seen at %S" | ||
| + | } | ||
| + | } | ||
| + | |||
| + | stop { | ||
| + | update { | ||
| + | description := " | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | post-auth { | ||
| + | update { | ||
| + | description := " | ||
| + | } | ||
| + | } | ||
| + | |||
| + | options { | ||
| + | chase_referrals = yes | ||
| + | rebind = yes | ||
| + | res_timeout = 10 | ||
| + | srv_timelimit = 3 | ||
| + | net_timeout = 1 | ||
| + | idle = 60 | ||
| + | probes = 3 | ||
| + | interval = 3 | ||
| + | ldap_debug = 0x0028 | ||
| + | } | ||
| + | |||
| + | tls { | ||
| + | start_tls = no | ||
| + | require_cert = ' | ||
| + | } | ||
| + | |||
| + | pool { | ||
| + | start = ${thread[pool].start_servers} | ||
| + | min = ${thread[pool].min_spare_servers} | ||
| + | max = ${thread[pool].max_servers} | ||
| + | spare = ${thread[pool].max_spare_servers} | ||
| + | uses = 0 | ||
| + | retry_delay = 30 | ||
| + | lifetime = 0 | ||
| + | idle_timeout = 60 | ||
| + | } | ||
| + | } | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | Menteni kell a / | ||
| + | |||
| + | < | ||
| + | # [ ! -e / | ||
| + | |||
| + | cat > / | ||
| + | server default { | ||
| + | listen { | ||
| + | type = auth | ||
| + | ipaddr = * | ||
| + | port = 0 | ||
| + | limit { | ||
| + | max_connections = 16 | ||
| + | lifetime = 0 | ||
| + | idle_timeout = 30 | ||
| + | } | ||
| + | } | ||
| + | |||
| + | listen { | ||
| + | ipaddr = * | ||
| + | port = 0 | ||
| + | type = acct | ||
| + | limit { | ||
| + | } | ||
| + | } | ||
| + | |||
| + | listen { | ||
| + | type = auth | ||
| + | ipv6addr = :: # any. ::1 == localhost | ||
| + | port = 0 | ||
| + | limit { | ||
| + | max_connections = 16 | ||
| + | lifetime = 0 | ||
| + | idle_timeout = 30 | ||
| + | } | ||
| + | } | ||
| + | |||
| + | listen { | ||
| + | ipv6addr = :: | ||
| + | port = 0 | ||
| + | type = acct | ||
| + | limit { | ||
| + | } | ||
| + | } | ||
| + | |||
| + | authorize { | ||
| + | filter_username | ||
| + | preprocess | ||
| + | chap | ||
| + | mschap | ||
| + | digest | ||
| + | suffix | ||
| + | |||
| + | eap { | ||
| + | ok = return | ||
| + | } | ||
| + | |||
| + | files | ||
| + | -sql | ||
| + | |||
| + | ldap | ||
| + | |||
| + | if ((ok || updated) && User-Password && !control: | ||
| + | update { | ||
| + | control: | ||
| + | } | ||
| + | } | ||
| + | |||
| + | expiration | ||
| + | logintime | ||
| + | pap | ||
| + | } | ||
| + | |||
| + | authenticate { | ||
| + | Auth-Type PAP { | ||
| + | pap | ||
| + | } | ||
| + | |||
| + | Auth-Type CHAP { | ||
| + | chap | ||
| + | } | ||
| + | |||
| + | Auth-Type MS-CHAP { | ||
| + | mschap | ||
| + | } | ||
| + | |||
| + | mschap | ||
| + | |||
| + | digest | ||
| + | |||
| + | Auth-Type LDAP { | ||
| + | ldap | ||
| + | } | ||
| + | |||
| + | eap | ||
| + | } | ||
| + | |||
| + | preacct { | ||
| + | preprocess | ||
| + | acct_unique | ||
| + | suffix | ||
| + | files | ||
| + | } | ||
| + | |||
| + | accounting { | ||
| + | detail | ||
| + | unix | ||
| + | -sql | ||
| + | exec | ||
| + | attr_filter.accounting_response | ||
| + | } | ||
| + | |||
| + | session { | ||
| + | } | ||
| + | |||
| + | post-auth { | ||
| + | if (session-state: | ||
| + | update reply { | ||
| + | & | ||
| + | } | ||
| + | } | ||
| + | |||
| + | update { | ||
| + | & | ||
| + | } | ||
| + | |||
| + | -sql | ||
| + | exec | ||
| + | remove_reply_message_if_eap | ||
| + | |||
| + | Post-Auth-Type REJECT { | ||
| + | -sql | ||
| + | attr_filter.access_reject | ||
| + | eap | ||
| + | remove_reply_message_if_eap | ||
| + | } | ||
| + | |||
| + | Post-Auth-Type Challenge { | ||
| + | } | ||
| + | } | ||
| + | |||
| + | pre-proxy { | ||
| + | } | ||
| + | |||
| + | post-proxy { | ||
| + | eap | ||
| + | } | ||
| + | } | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | Menteni kell a / | ||
| + | |||
| + | < | ||
| + | # [ ! -e / | ||
| + | |||
| + | cat > / | ||
| + | server inner-tunnel { | ||
| + | listen { | ||
| + | ipaddr = 127.0.0.1 | ||
| + | port = 18120 | ||
| + | type = auth | ||
| + | } | ||
| + | |||
| + | authorize { | ||
| + | filter_username | ||
| + | chap | ||
| + | mschap | ||
| + | suffix | ||
| + | update control { | ||
| + | & | ||
| + | } | ||
| + | eap { | ||
| + | ok = return | ||
| + | } | ||
| + | |||
| + | files | ||
| + | |||
| + | -sql | ||
| + | |||
| + | ldap | ||
| + | |||
| + | if ((ok || updated) && User-Password && !control: | ||
| + | update { | ||
| + | control: | ||
| + | } | ||
| + | } | ||
| + | |||
| + | expiration | ||
| + | logintime | ||
| + | |||
| + | pap | ||
| + | } | ||
| + | |||
| + | |||
| + | authenticate { | ||
| + | Auth-Type PAP { | ||
| + | pap | ||
| + | } | ||
| + | |||
| + | Auth-Type CHAP { | ||
| + | chap | ||
| + | } | ||
| + | |||
| + | Auth-Type MS-CHAP { | ||
| + | mschap | ||
| + | } | ||
| + | |||
| + | mschap | ||
| + | |||
| + | Auth-Type LDAP { | ||
| + | ldap | ||
| + | } | ||
| + | |||
| + | eap | ||
| + | } | ||
| + | |||
| + | session { | ||
| + | radutmp | ||
| + | } | ||
| + | |||
| + | post-auth { | ||
| + | -sql | ||
| + | if (0) { | ||
| + | update reply { | ||
| + | User-Name !* ANY | ||
| + | Message-Authenticator !* ANY | ||
| + | EAP-Message !* ANY | ||
| + | Proxy-State !* ANY | ||
| + | MS-MPPE-Encryption-Types !* ANY | ||
| + | MS-MPPE-Encryption-Policy !* ANY | ||
| + | MS-MPPE-Send-Key !* ANY | ||
| + | MS-MPPE-Recv-Key !* ANY | ||
| + | } | ||
| + | |||
| + | update { | ||
| + | & | ||
| + | } | ||
| + | } | ||
| + | |||
| + | Post-Auth-Type REJECT { | ||
| + | -sql | ||
| + | attr_filter.access_reject | ||
| + | update outer.session-state { | ||
| + | & | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | pre-proxy { | ||
| + | } | ||
| + | |||
| + | post-proxy { | ||
| + | eap | ||
| + | } | ||
| + | } | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | Újra kell indítani a radiusd szolgáltatást | ||
| + | |||
| + | < | ||
| + | # systemctl restart radiusd | ||
| + | </ | ||
| + | |||
| + | Létre kell hozni a DC-n a radiusbind felhasználót akinek a jelszava nem jár le | ||
| + | |||
| + | < | ||
| + | # samba-tool user create radiusbind 12345678 | ||
| + | |||
| + | # samba-tool user setexpiry radiusbind --noexpiry | ||
| + | </ | ||
| + | |||
| + | Tesztelhető a szolgáltatás | ||
| + | |||
| + | < | ||
| + | # radtest teszt.elek 12345678 127.0.0.1 0 testing123 | ||
| + | Sent Access-Request Id 158 from 0.0.0.0: | ||
| + | User-Name = " | ||
| + | User-Password = " | ||
| + | NAS-IP-Address = 192.168.110.11 | ||
| + | NAS-Port = 0 | ||
| + | Cleartext-Password = " | ||
| + | Received Access-Accept Id 158 from 127.0.0.1: | ||
| + | Message-Authenticator = 0xf111666b349fe1dcc5ea191026805f2d | ||
| + | </ | ||
| + | |||
| + | ==== Kerberos hitelesítés ==== | ||
| + | |||
| + | Szükséges csomagok telepítése | ||
| + | |||
| + | < | ||
| + | # dnf install freeradius freeradius-utils freeradius-krb5 krb5-workstation | ||
| + | </ | ||
| + | |||
| + | Hozzunk létre egy felhasználót a DC.n | ||
| + | |||
| + | < | ||
| + | # samba-tool user add radius-svc --random-password | ||
| + | User ' | ||
| + | </ | ||
| + | |||
| + | Hozzunk létre SPN-t a radius szervernek | ||
| + | |||
| + | < | ||
| + | # samba-tool spn add radius/ | ||
| + | </ | ||
| + | |||
| + | Ellenőrizzük az SPN-t | ||
| + | |||
| + | < | ||
| + | # ldbsearch -H ldap:// | ||
| + | Password for [ADOMAIN\administrator]: | ||
| + | # record 1 | ||
| + | dn: CN=radius-svc, | ||
| + | sAMAccountName: | ||
| + | servicePrincipalName: | ||
| + | |||
| + | # Referral | ||
| + | ref: ldap:// | ||
| + | |||
| + | # Referral | ||
| + | ref: ldap:// | ||
| + | |||
| + | # Referral | ||
| + | ref: ldap:// | ||
| + | |||
| + | # returned 4 records | ||
| + | # 1 entries | ||
| + | # 3 referrals | ||
| + | </ | ||
| + | |||
| + | Ez a lépés nem kötelező . Beállíthatjuk a titkosítást a felhasználói fiók esetében. | ||
| + | |||
| + | < | ||
| + | # cat > ~/ | ||
| + | dn: CN=radius-svc, | ||
| + | changetype: modify | ||
| + | replace: msDS-SupportedEncryptionTypes | ||
| + | msDS-SupportedEncryptionTypes: | ||
| + | EOF | ||
| + | |||
| + | # ldbmodify -H ldap:// | ||
| + | Password for [ADOMAIN\administrator]: | ||
| + | Modified 1 records successfully | ||
| + | </ | ||
| + | |||
| + | Exportáljuk a keytab-ot | ||
| + | |||
| + | < | ||
| + | # samba-tool domain exportkeytab / | ||
| + | Export one principal to / | ||
| + | </ | ||
| + | |||
| + | Ellenőrizzük a keytab tartalmát | ||
| + | |||
| + | < | ||
| + | # klist -k -e / | ||
| + | Keytab name: FILE:/ | ||
| + | KVNO Principal | ||
| + | ---- -------------------------------------------------------------------------- | ||
| + | 2 radius/ | ||
| + | 2 radius/ | ||
| + | </ | ||
| + | |||
| + | Másoljuk be a keytabot a megfelelő helyre és állítsuk be a jogosultságot | ||
| + | |||
| + | < | ||
| + | # cp -a / | ||
| + | |||
| + | # chown radiusd: | ||
| + | |||
| + | # chmod 0600 / | ||
| + | </ | ||
| + | |||
| + | Mentsük le az eredeti kerberos konfigurációt | ||
| + | |||
| + | < | ||
| + | # [ ! -f / | ||
| + | </ | ||
| + | |||
| + | Módosítsuk a konfigurációt | ||
| + | |||
| + | < | ||
| + | # cat > / | ||
| + | krb5 { | ||
| + | keytab = ${localstatedir}/ | ||
| + | service_principal = radius/ | ||
| + | pool { | ||
| + | start = ${thread[pool].start_servers} | ||
| + | min = ${thread[pool].min_spare_servers} | ||
| + | max = ${thread[pool].max_servers} | ||
| + | spare = ${thread[pool].max_spare_servers} | ||
| + | uses = 0 | ||
| + | lifetime = 0 | ||
| + | idle_timeout = 0 | ||
| + | } | ||
| + | } | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | Engedélyezzük a konfigurációt | ||
| + | |||
| + | < | ||
| + | # ln -s ../ | ||
| + | </ | ||
| + | |||
| + | Indítsuk újra a szolgáltatást | ||
| + | |||
| + | < | ||
| + | # systemctl restart radiusd | ||
| + | </ | ||
| + | |||
| + | Teszteljük a kapcsolatot | ||
| + | |||
| + | < | ||
| + | # radtest -t pap teszt.elek ' | ||
| + | Sent Access-Request Id 176 from 0.0.0.0: | ||
| + | User-Name = " | ||
| + | User-Password = " | ||
| + | NAS-IP-Address = 192.168.110.11 | ||
| + | NAS-Port = 0 | ||
| + | Cleartext-Password = " | ||
| + | Received Access-Accept Id 176 from 127.0.0.1: | ||
| + | Message-Authenticator = 0x662c8de328ec1703342d74ece4225877 | ||
| + | </ | ||
linux/freeradius.1757355879.txt.gz · Utolsó módosítás: szerkesztette: riba.zoltan
