Πέμπτη 7 Ιουνίου 2018

802.1x authentication LDAP , EAP-TTLS (bind as ldap user)


Freeradius είναι ένας RADIUS server που έχει την ιδιότητα να κάνει:
  • authentication(διαδικασία ταυτοποίησης με username και password)
  • authorization(διαδικασία που καθορίζει “ποιος θα πάρει πρόσβαση και που”)
  • accounting(διαδικασία που καταγράφει πληροφορίες ενός συστήματος, δραστηριότητες και πληροφορίες ενός χρήστη μέσα στο δίκτυο).
Στο δίκτυο υπάρχουν κάποια vlans τα οποία χωρίζουν τα groups των εργαζομένων.(sales, support, sysadmins, developers etc.)
Κάθε vlan έχει ξεχωριστά policies. Για να έχει πρόσβαση ένα pc στο δίκτυο, απαιτείται να κάνει authenticate με τα credentials του αντίστοιχου χρήστη που βρίσκεται στον LDAP Server. Αν η διαδικασία πραγματοποιηθεί, τότε ο χρήστης που ανήκει στο x ldap group, θα πρέπει να μπει και στο αντίστοιχο vlan. 

Τα passwords των χρηστών είναι αποθηκευμένα ως SSHA στον LDAP. Οπότε σύμφωνα με τον παρακάτω πίνακα, θα πρέπει να χρησημοποιηθεί είτε PAP protocol , EAP-GTC, ή EAP-TTLS(PAP).Το EAP-TTLS είναι μια μέθοδος η οποία κάνει TLS και Tunneling μεταξύ του Supplicant(end device) - Authentication Server(Freeradius) και έπειτα, μπορεί χρησημοποιήσει το authentication protocol που θελει ο χρήστης (PAP, CHAP, MSCHAP κλπ.)


Δεν θα χρησημοποιήσουμε PAP, γιατί μεταδίδει μη κρυπτογραφημένους κωδικούς μέσω δικτύου και γι αυτό θεωρείται μη ασφαλές. Θα χρησημοποιήσουμε EAP-TTLS(PAP)


Πως λειτουργεί ο freeradius;

O radius client στέλνει ένα access request στον authentication server.
O radius server το λαμβάνει, και σύμφωνα με τα modules που έχει ενεργοποιημένα στο authorized section του default configuration file, το αποδέχεται ή το απορρίπτει. Αν πουμε οτι το module που μπορεί να το εξυπηρετήσει, είναι ενεργοποιημένο, τότε το module θα κοιτάξει τα key- attributes(Pap-Challenge, Chap-Challenge κλπ) του request. Αν δει οτι μπορεί να το αναλάβει, τοτε ο freeradius προχωράει τη διαδικασία πηγαίνοντας στο authenticate section. Εκεί λοιπόν το αντίστοιχο module κοιτάζει το User-Password ή το Nt-Password attribute, και προσπαθεί να το συγκρίνει με το password που βρίσκεται στο directory ή database που συνδέεται ο radius server. Προχωράμε στο post-authentication, όπου εκεί επιβεβαιώνεται το authentication και πλέον το end-device έχει συνδεθεί στο δίκτυο μέσω 802.1x protocol.

Εγκατάσταση και παραμετροποίηση freeradius-ldap module

Πριν ξεκινήσουμε να παραμετροποιούμε τα configuration files του freeradius, θα πρέπει να εγκαταστήσουμε το freeradius-ldap module το οποίο θα χρησημοποιήσουμε για database. Για να ενεργοποιήσουμε το freeradius-ldap module, θα χρειαστεί να κάνουμε symbolic link το module απο το mods-available στο mods-enabled directory.

Ανοίγουμε το ldap module(/etc/freeradius/3.0/mods-available/ldap) και αλλάζουμε τις εξής παραμέτρους:

server = ‘ldap-server’
port = 636
base_dn = ‘dc=example,dc=com’

Στo user section:

base_dn = ‘ou=People,dc=example,dc=com’

Στο group section:

base_dn = ‘ou=Groups,dc=example,dc=com’

Αν το posixGroup object class δεν είναι δηλωμένο στο ldap group τότε πρέπει να κάνουμε comment out το membership_attribute = ‘memberOf’

Αν ο ldap-server ακούει στην πόρτα 389, δεν χρειάζεται να πειράξουμε το tls section
Στο section tls:

ca_file = το public key to ldap



Παραμετροποίηση eap module

default_eap_type = ttls

Στο section ttls:

default_eap_type = ttls
copy_request_to_tunnel = yes
use_tunneled_reply = yes
virtual-server = “ονομα του virtual-server”

Παραμετροποίηση default configuration
Στο authorize section, κάνουμε comment τα εξής:

cui
auth_log
chap
mschap
digest
wimax
IPASS 
suffix
ntdomain
unix
files
-sql
smbpasswd
daily

Στο authenticate section, αφήνουμε μόνο τo eap




Παραμετροποίηση virtual-server(inner-tunnel)

Στο authorize section αφήνουμε comment out:

files
-ldap
expiration
logintime

και προσθέτουμε:

if (User-Password) {
update control {
Auth-Type := ldap
}
}
Στο authenticate section κάνουμε comment out το section
Auth-Type LDAP {
ldap
}

και comment το eap.



Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου