FreeRADIUS: Diferència entre les revisions
De Guifi.net - Wiki Català
Línia 15: | Línia 15: | ||
# apt-get update | # apt-get update | ||
# apt-get upgrade | # apt-get upgrade | ||
− | * Instal·lem el freeRADIUS | + | * Instal·lem el paquet freeRADIUS i les dependencies |
− | # apt-get install freeradius freeradius-ldap | + | # apt-get install freeradius |
− | * Editem | + | * Instal·lem el paquet freeRADIUS i les dependencies |
− | + | # apt-get install freeradius-ldap | |
− | + | * Editem l'arxiu de configuració '''/etc/freeradius/radiusd.conf''' | |
− | + | No s'utilitza EAP, eliminem la linea "$INCLUDE eap.conf".Excepte això, la resta de l'arxiu '''radiusd.conf''' queda per defecte. | |
− | + | prefix = /usr | |
− | + | exec_prefix = /usr | |
− | + | sysconfdir = /etc | |
− | + | localstatedir = /var | |
− | + | sbindir = ${exec_prefix}/sbin | |
− | = /usr | + | logdir = /var/log/freeradius |
− | exec_prefix = /usr | + | raddbdir = /etc/freeradius |
− | sysconfdir = /etc | + | radacctdir = ${logdir}/radacct |
− | localstatedir = /var | + | |
− | sbindir = ${exec_prefix}/sbin | + | name = freeradius |
− | logdir = /var/log/freeradius | + | |
− | raddbdir = /etc/freeradius | + | confdir = ${raddbdir} |
− | radacctdir = ${logdir}/radacct | + | run_dir = ${localstatedir}/run/${name} |
− | + | ||
− | name = freeradius | + | db_dir = ${raddbdir} |
− | + | ||
− | confdir = ${raddbdir} | + | libdir = /usr/lib/freeradius |
− | run_dir = ${localstatedir}/run/${name} | + | pidfile = ${run_dir}/${name}.pid |
− | + | ||
− | db_dir = ${raddbdir} | + | user = freerad |
− | + | group = freerad | |
− | libdir = /usr/lib/freeradius | + | |
− | pidfile = ${run_dir}/${name}.pid | + | max_request_time = 30 |
− | + | cleanup_delay = 5 | |
− | user = freerad | + | max_requests = 1024 |
− | group = freerad | + | |
− | + | listen { | |
− | max_request_time = 30 | + | type = auth |
− | cleanup_delay = 5 | + | ipaddr = * |
− | max_requests = 1024 | + | port = 0 |
− | + | } | |
− | listen { | + | |
− | type = auth | + | listen { |
− | ipaddr = * | + | ipaddr = * |
− | port = 0 | + | port = 0 |
− | } | + | type = acct |
− | + | } | |
− | listen { | + | |
− | ipaddr = * | + | hostname_lookups = no |
− | port = 0 | + | allow_core_dumps = no |
− | type = acct | + | |
− | } | + | regular_expressions = yes |
− | + | extended_expressions = yes | |
− | hostname_lookups = no | + | |
− | allow_core_dumps = no | + | log { |
− | + | destination = files | |
− | regular_expressions | + | file = ${logdir}/radius.log |
− | extended_expressions | + | syslog_facility = daemon |
− | + | stripped_names = no | |
− | log { | + | auth = no |
− | destination = files | + | auth_badpass = no |
− | file = ${logdir}/radius.log | + | auth_goodpass = no |
− | syslog_facility = daemon | + | } |
− | stripped_names = no | + | |
− | auth = no | + | checkrad = ${sbindir}/checkrad |
− | auth_badpass = no | + | |
− | auth_goodpass = no | + | security { |
− | } | + | max_attributes = 200 |
− | + | reject_delay = 1 | |
− | checkrad = ${sbindir}/checkrad | + | status_server = yes |
− | + | } | |
− | security { | + | |
− | max_attributes = 200 | + | proxy_requests = yes |
− | reject_delay = 1 | + | $INCLUDE proxy.conf |
− | status_server = yes | + | $INCLUDE clients.conf |
− | } | + | |
− | + | thread pool { | |
− | proxy_requests | + | start_servers = 5 |
− | $INCLUDE proxy.conf | + | max_servers = 32 |
− | $INCLUDE clients.conf | + | min_spare_servers = 3 |
− | + | max_spare_servers = 10 | |
− | thread pool { | + | max_requests_per_server = 0 |
− | start_servers = 5 | + | } |
− | max_servers = 32 | + | |
− | min_spare_servers = 3 | + | modules { |
− | max_spare_servers = 10 | + | $INCLUDE ${confdir}/modules/ |
− | max_requests_per_server = 0 | + | } |
− | } | + | |
− | + | instantiate { | |
− | modules { | + | exec |
− | $INCLUDE ${confdir}/modules/ | + | expr |
− | } | + | expiration |
− | + | logintime | |
− | instantiate { | + | } |
− | exec | + | |
− | expr | + | $INCLUDE policy.conf |
− | expiration | + | $INCLUDE sites-enabled/ |
− | logintime | + | * Editem l'arxiu de configuració '''/etc/freeradius/clients.conf''' |
− | } | + | Afegim les subxarxes permeses i la clau d'accés al servidor freeradius. Per defecte és "testing1234", és recomanable canviar-la. |
− | + | client localhost { | |
− | $INCLUDE policy.conf | + | ipaddr = 127.0.0.1 |
− | $INCLUDE sites-enabled/ | + | secret = testing1234 |
− | + | nastype = other | |
− | + | } | |
− | + | ||
− | + | client 192.168.0.0/16 { | |
+ | secret = testing1234 | ||
+ | nastype = other | ||
+ | } | ||
+ | |||
+ | client 10.0.0.0/8 { | ||
+ | secret = testing1234 | ||
+ | nastype = other | ||
+ | } | ||
+ | * Editem l'arxiu de configuració '''/etc/freeradius/modules/ldap''' | ||
+ | Adaptem els paràmetres perquè coincideixin amb el domini guifi.net. Afegim “set_auth_type = yes” dins la instància '''ldap''' | ||
+ | ldap { | ||
+ | server = "ldap.guifi.net" | ||
+ | server = "ldap2.guifi.net" | ||
+ | port = "636" | ||
+ | identity = "uid=proxyldap2011,o=proxyusers,dc=guifi,dc=net" | ||
+ | password = proxyaproxy2011 | ||
+ | basedn = "o=proxyusers,dc=guifi,dc=net" | ||
+ | filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})" | ||
+ | ldap_connections_number = 5 | ||
+ | timeout = 4 | ||
+ | timelimit = 3 | ||
+ | net_timeout = 1 | ||
+ | dictionary_mapping = ${confdir}/ldap.attrmap | ||
+ | edir_account_policy_check = no | ||
+ | set_auth_type = yes | ||
+ | } | ||
+ | * Editem l'arxiu de configuració '''/etc/freeradius/sites-available/default''' | ||
+ | Desmarquem l'opció '''ldap''' i suprimim les altres. | ||
+ | authorize { | ||
+ | ldap | ||
+ | } | ||
+ | authenticate { | ||
+ | Auth-Type LDAP { | ||
+ | ldap | ||
+ | } | ||
+ | } | ||
+ | preacct { | ||
+ | } | ||
+ | accounting { | ||
+ | } | ||
+ | session { | ||
+ | radutmp | ||
+ | } | ||
+ | post-auth { | ||
+ | exec | ||
+ | Post-Auth-Type REJECT { | ||
+ | attr_filter.access_reject | ||
+ | } | ||
+ | } | ||
+ | pre-proxy { | ||
+ | } | ||
+ | post-proxy { | ||
+ | } |
Revisió de 18:42, 16 març 2014
Aquest article està en desenvolupament. Pràcticament totes les pàgines del Wiki de Guifi.net són editables, però en aquesta falta informació essencial. Ampliant-ho ajudaràs a millorar Guifi.net.
Potser puguis ajudar-te amb els wikis castellà i anglès si tenen una pàgina equivalent.
FreeRADIUS
Introducció
Intenció: disposar d'un mecanisme d'autenticació federat compatible amb serveis (pptp, openvpn, squid, hotspots,..) per ampliar la capacitat dels servidors proxy o hotspot, per validar usuaris de guifi.net.
Es tria Radius perquè permet extendre la validació que ja s'ofereix via LDAP_SSL, i poder federar directament trastos Mikrotik, o serveis no compatibles amb LDAP com ara PPTP.
Requisits
Es parteix d'un servidor Debian/Ubuntu configurat amb guifi-proxy3.
Instal·lació i configuració
Entrem per ssh a la màquina:
- Actualitzem els paquets
# apt-get update # apt-get upgrade
- Instal·lem el paquet freeRADIUS i les dependencies
# apt-get install freeradius
- Instal·lem el paquet freeRADIUS i les dependencies
# apt-get install freeradius-ldap
- Editem l'arxiu de configuració /etc/freeradius/radiusd.conf
No s'utilitza EAP, eliminem la linea "$INCLUDE eap.conf".Excepte això, la resta de l'arxiu radiusd.conf queda per defecte.
prefix = /usr exec_prefix = /usr sysconfdir = /etc localstatedir = /var sbindir = ${exec_prefix}/sbin logdir = /var/log/freeradius raddbdir = /etc/freeradius radacctdir = ${logdir}/radacct name = freeradius confdir = ${raddbdir} run_dir = ${localstatedir}/run/${name} db_dir = ${raddbdir} libdir = /usr/lib/freeradius pidfile = ${run_dir}/${name}.pid user = freerad group = freerad max_request_time = 30 cleanup_delay = 5 max_requests = 1024 listen { type = auth ipaddr = * port = 0 } listen { ipaddr = * port = 0 type = acct } hostname_lookups = no allow_core_dumps = no regular_expressions = yes extended_expressions = yes log { destination = files file = ${logdir}/radius.log syslog_facility = daemon stripped_names = no auth = no auth_badpass = no auth_goodpass = no } checkrad = ${sbindir}/checkrad security { max_attributes = 200 reject_delay = 1 status_server = yes } proxy_requests = yes $INCLUDE proxy.conf $INCLUDE clients.conf thread pool { start_servers = 5 max_servers = 32 min_spare_servers = 3 max_spare_servers = 10 max_requests_per_server = 0 } modules { $INCLUDE ${confdir}/modules/ } instantiate { exec expr expiration logintime } $INCLUDE policy.conf $INCLUDE sites-enabled/
- Editem l'arxiu de configuració /etc/freeradius/clients.conf
Afegim les subxarxes permeses i la clau d'accés al servidor freeradius. Per defecte és "testing1234", és recomanable canviar-la.
client localhost { ipaddr = 127.0.0.1 secret = testing1234 nastype = other } client 192.168.0.0/16 { secret = testing1234 nastype = other } client 10.0.0.0/8 { secret = testing1234 nastype = other }
- Editem l'arxiu de configuració /etc/freeradius/modules/ldap
Adaptem els paràmetres perquè coincideixin amb el domini guifi.net. Afegim “set_auth_type = yes” dins la instància ldap
ldap { server = "ldap.guifi.net" server = "ldap2.guifi.net" port = "636" identity = "uid=proxyldap2011,o=proxyusers,dc=guifi,dc=net" password = proxyaproxy2011 basedn = "o=proxyusers,dc=guifi,dc=net" filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})" ldap_connections_number = 5 timeout = 4 timelimit = 3 net_timeout = 1 dictionary_mapping = ${confdir}/ldap.attrmap edir_account_policy_check = no set_auth_type = yes }
- Editem l'arxiu de configuració /etc/freeradius/sites-available/default
Desmarquem l'opció ldap i suprimim les altres.
authorize { ldap } authenticate { Auth-Type LDAP { ldap } } preacct { } accounting { } session { radutmp } post-auth { exec Post-Auth-Type REJECT { attr_filter.access_reject } } pre-proxy { } post-proxy { }