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 els arxius de configuració
+
* Instal·lem el paquet freeRADIUS i les dependencies
:'''/etc/freeradius/radiusd.conf'''
+
# apt-get install freeradius-ldap
<table
+
* Editem l'arxiu de configuració '''/etc/freeradius/radiusd.conf'''
style="text-align: left; height: 32px; font-family: monospace; background-color: rgb(232, 232, 232); width: 507px;"
+
No s'utilitza EAP, eliminem la linea "$INCLUDE eap.conf".Excepte això, la resta de l'arxiu '''radiusd.conf''' queda per defecte.
border="1" cellpadding="0" cellspacing="0">
+
prefix = /usr
<small> </small><tbody width="424">
+
exec_prefix = /usr
<tr width="424">
+
sysconfdir = /etc
<small> </small><td
+
localstatedir = /var
style="vertical-align: top; width: 422px; background-color: rgb(204, 204, 204);"><small>prefix
+
sbindir = ${exec_prefix}/sbin
= /usr<br>
+
logdir = /var/log/freeradius
exec_prefix = /usr<br>
+
raddbdir = /etc/freeradius
sysconfdir = /etc<br>
+
radacctdir = ${logdir}/radacct
localstatedir = /var<br>
+
 
sbindir = ${exec_prefix}/sbin<br>
+
name = freeradius
logdir = /var/log/freeradius<br>
+
 
raddbdir = /etc/freeradius<br>
+
confdir = ${raddbdir}
radacctdir = ${logdir}/radacct<br>
+
run_dir = ${localstatedir}/run/${name}
&nbsp;<br>
+
 
name = freeradius<br>
+
db_dir = ${raddbdir}
&nbsp;<br>
+
 
confdir = ${raddbdir}<br>
+
libdir = /usr/lib/freeradius
run_dir = ${localstatedir}/run/${name}<br>
+
pidfile = ${run_dir}/${name}.pid
&nbsp;<br>
+
 
db_dir = ${raddbdir}<br>
+
user = freerad
&nbsp;<br>
+
group = freerad
libdir = /usr/lib/freeradius<br>
+
 
pidfile = ${run_dir}/${name}.pid<br>
+
max_request_time = 30
&nbsp;<br>
+
cleanup_delay = 5
user = freerad<br>
+
max_requests = 1024
group = freerad<br>
+
 
&nbsp;<br>
+
listen {
max_request_time = 30<br>
+
type = auth
cleanup_delay = 5<br>
+
ipaddr = *
max_requests = 1024<br>
+
port = 0
&nbsp;<br>
+
}
listen {<br>
+
 
type = auth<br>
+
listen {
ipaddr = *<br>
+
ipaddr = *
port = 0<br>
+
port = 0
}<br>
+
type = acct
&nbsp;<br>
+
}
listen {<br>
+
 
ipaddr = *<br>
+
hostname_lookups = no
port = 0<br>
+
allow_core_dumps = no
type = acct<br>
+
 
}<br>
+
regular_expressions   = yes
&nbsp;<br>
+
extended_expressions   = yes
hostname_lookups = no<br>
+
 
allow_core_dumps = no<br>
+
log {
&nbsp;<br>
+
destination = files
regular_expressions&nbsp;&nbsp;&nbsp; = yes<br>
+
file = ${logdir}/radius.log
extended_expressions&nbsp;&nbsp;&nbsp; = yes<br>
+
syslog_facility = daemon
&nbsp;<br>
+
stripped_names = no
log {<br>
+
auth = no
destination = files<br>
+
auth_badpass = no
file = ${logdir}/radius.log<br>
+
auth_goodpass = no
syslog_facility = daemon<br>
+
}
stripped_names = no<br>
+
 
auth = no<br>
+
checkrad = ${sbindir}/checkrad
auth_badpass = no<br>
+
 
auth_goodpass = no<br>
+
security {
}<br>
+
max_attributes = 200
&nbsp;<br>
+
reject_delay = 1
checkrad = ${sbindir}/checkrad<br>
+
status_server = yes
&nbsp;<br>
+
}
security {<br>
+
 
max_attributes = 200<br>
+
proxy_requests = yes
reject_delay = 1<br>
+
$INCLUDE proxy.conf
status_server = yes<br>
+
$INCLUDE clients.conf
}<br>
+
 
&nbsp;<br>
+
thread pool {
proxy_requests&nbsp; = yes<br>
+
start_servers = 5
$INCLUDE proxy.conf<br>
+
max_servers = 32
$INCLUDE clients.conf<br>
+
min_spare_servers = 3
&nbsp;<br>
+
max_spare_servers = 10
thread pool {<br>
+
max_requests_per_server = 0
start_servers = 5<br>
+
}
max_servers = 32<br>
+
 
min_spare_servers = 3<br>
+
modules {
max_spare_servers = 10<br>
+
$INCLUDE ${confdir}/modules/
max_requests_per_server = 0<br>
+
}
}<br>
+
 
&nbsp;<br>
+
instantiate {
modules {<br>
+
exec
$INCLUDE ${confdir}/modules/<br>
+
expr
}<br>
+
expiration
&nbsp;<br>
+
logintime
instantiate {<br>
+
}
exec<br>
+
 
expr<br>
+
$INCLUDE policy.conf
expiration<br>
+
$INCLUDE sites-enabled/
logintime<br>
+
* Editem l'arxiu de configuració '''/etc/freeradius/clients.conf'''
}<br>
+
Afegim les subxarxes permeses i la clau d'accés al servidor freeradius. Per defecte és "testing1234", és recomanable canviar-la.
&nbsp;<br>
+
client localhost {
$INCLUDE policy.conf<br>
+
ipaddr = 127.0.0.1
$INCLUDE sites-enabled/</small></td>
+
secret = testing1234
<small> </small></tr>
+
nastype    = other
<small></small>
+
}
</tbody>
+
 
</table>
+
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 19:42, 16 març 2014

Icona d'esboç

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 {
}
Eines de l'usuari