<-[-]-[-]-[E]-[Z]-[K]-[R]-[A]-[C]-[H]-[O]-[ ]-[T]-[E]-[A]-[M]-[-]-[-]->
     > Eko Magazine #04 Post Devaluation, La Odisea del Patacon 2002 <
  <----- [ El-Ju3z[] ] ---------------- [ [email protected] ] ------>
                      > Configurando Cistron Radius <

                    ... son unos mal0rs :((

Bueno, .. le rompi tanto las pelotas a ca0s que me dijo que podia
escribir un articulo en Eko jeje, soy masoquista! algunos no saben
como hacer para zafar de escribir algo y yo me entierro solo!
Lo que voy a explicar a continuacion es la instalacion/configuracion de un
Radius (Cistron Radius) para quienes gusten de hacerce un servidor de modems
o una bbs bien 31337. Y la verdad que es bastante raro este packete, pero
tiene las ventajas de sus multiples prestaciones y "no" es propietario.


NOTA: para quienes no sepan que es un servidor radius, aclaro que es un soft
de acceso por dial up para ofrecer servicios de internet u otros.
Ademas cabe aclarar que se necesita un modem por cada cliente aunque depende
tambien que sevicio queremos ofrecer (bbs, modem server, etc)



                              CARACTERISTICAS
                              ~~~~~~~~~~~~~~~



* permite gran cantidad de logins simultaneos
* permite cantidad de usuarios infinitas
* trae un proxy incorporado
* permite el uso de programas externos a clientes logeados
* corre en infinidad de sistemas (cisco, sunos, linux, unix...)
* multiples prestaciones sobre multiples protocolos
* etc, etc, etc (lo demas es como en todos los radius)
NOTA: cuando digo programas externos, me refiero a que si nos conectamos por
telefono a dicho nodo, automaticamente podemos acceder a una cuenta de email
o lo que sea.


La instalacion ocupa los siguiente ficheros y directorios:

* /etc/raddb
* /var/log/radius.log
* /var/log/radacct/detail
* /var/log/radwtmp
* /var/log/radutmp
* /var/run/radiusd.pid
* /usr/local/sbin/checkrad
* /etc/raddb/radiusd.conf
* /etc/raddb/clients
* /usr/adm/radacct
* /usr/portmaster/radius/src
* y algunas entradas en /etc/rc.d, /etc/services , inetd.conf..


En cuanto a los directorios que trae el packete son los siguientes:

/debian---> archivos para crear instalaciones de Debian
/doc------> documentacion variada
/raddb----> ejemplos de archivos para /etc/raddb
/scripts--> ejemplos de script para mantenimiento y uso
/src------> codigo fuente
/todo-----> documentacion en general ;)





                               INSTALACION
                               ~~~~~~~~~~~



Antes de instalarlo debemos configurarlo y compilarlo con lo siguiente:


1) creamos y damos permisos: chmod 700 /etc/raddb

2) creamos entradas en: /etc/services
" bah, y obvio que tambien en /etc/inetd.conf "
------------------------------------------------
radius                 1645/udp        radiusd
radacct                1646/udp
------------------------------------------------

3) ejecutamos los siguientes mandatos (pero como root! heh)

umask 22
mkdir /etc/raddb /usr/adm/radacct
chmod 700 /etc/raddb /usr/adm/radacct

4) copiamos: /usr/portmaster/radius/raddb dentro de: /etc/raddb

5) compilamos desde : /usr/portmaster/radius/src

6) y por ultimo agregamos un script en rc.d para su arranque...
quedaria algo como lo siguiente:

------------------------------- cut here ----------------------------------
#!/bin/sh
# arranque del deamond
#coloar en /etc/init.d/radiusd
###############################
RADIUSD=/usr/local/sbin/radiusd
WATCHER=/usr/local/sbin/radwatch
DESC="Cistron radius server"
NAME1=radiusd
NAME2=radwatch
ARGS="-y"
test -f $RADIUSD || exit 0
case "$1" in
start)
if [ ! -f /var/log/radutmp ]
then
:>/var/log/radutmp
fi
echo -n "Starting $DESC: "
if [ -x $WATCHER ]
then
echo -n "radwatch "
start-stop-daemon --start --quiet --startas $WATCHER \
--pidfile /var/run/$NAME2.pid --exec $RADIUSD -- $ARGS
else
start-stop-daemon --start --quiet \
--pidfile /var/run/$NAME1.pid --exec $RADIUSD -- $ARGS
fi
echo "radiusd."
;;
stop)
[ -z "$2" ] && echo -n "Stopping $DESC: "
if [ -x $WATCHER ]
then
[ -z "$2" ] && echo -n "radwatch "
start-stop-daemon --stop --quiet \
--pidfile /var/run/$NAME2.pid -- exec $RADWATCH
else
start-stop-daemon --stop --quiet \
--pidfile /var/run/$NAME1.pid --exec $RADIUSD
fi
[ -z "$2" ] && echo "radiusd."
;;
reload|force-reload)
echo "Reloading $DESC configuration files."
start-stop-daemon --stop --signal 1 --quiet --pidfile \
/var/run/$NAME1.pid --exec $RADIUSD
;;
restart)
sh /etc/init.d/radiusd stop quiet
sleep 3
/etc/init.d/radiusd start
;;
*)
echo "Usage: /etc/init.d/$NAME1 {start|stop|reload|restart}"
exit 1
esac
exit 0
------------------------------- cut here ---------------------------------

/* El deamond en si, se encuentrea en /usr/local/sbin/radiusd */

Creo que es demasiado facil para nuestro gusto, eso seria toda la instalacion
pero no se duerman que ahora viene la configuracion del server y los clientes
NOTA: esto esta explicado lo mas brevemente posible, y puede suckear.. je





                        CONFIGURACION DE CLIENTES
                        ~~~~~~~~~~~~~~~~~~~~~~~~~


El portMaster, hostname y el shared secret se colocan en: /etc/raddb/clients
separados por "tabulaciones".
Las entradas de usuarios se depositan en: /etc/raddb/users

ejemplo del fichero de clientes:

Client Name             Key
----------------        ----------
el-ju3z.ju3z.org        un4m3
ezkracho.com.ar         3k0rul3z
lamahacka.2.org         lamahacka

(incluimos el host/ip completo y la clave encriptada de usuarios permitidos,
otra cosa interesante es que para identificar a los clientes, se pude usar
el UID del mismo, o el ip asignado que tenga (en caso de tenerlo).

Por ultimo lo mas importante, el fichero de usuarios y sus configuraciones
(numero de telefono, direcciones de acceso, protocolos aceptados,etc...)
solo debemos sacarles las almoadillas "#" a los servicios que usemos, porque
trae muchas boludeces por default.

#steve
steve   Auth-Type = Local, Password = "testing"
Service-Type = Framed-User,
Framed-Protocol = PPP,
Framed-IP-Address = 172.16.3.33,
Framed-IP-Netmask = 255.255.255.0,
Framed-Routing = Broadcast-Listen,
Framed-Filter-Id = "std.ppp",
Framed-MTU = 1500,
Framed-Compression = Van-Jacobsen-TCP-IP


# Dial user
Deg     Auth-Type = Local, Password = "El-Ju3z[]"
Service-Type = Callback-Login-User,
Login-IP-Host = 0.0.0.0,
Callback-Number = "5,4521234",
Login-Service = Telnet,
Login-TCP-Port = 23

#dialbk
dialbk  Auth-Type = Local, Password = "callme"
Service-Type = Callback-Login-User,
Login-IP-Host = timeshare1,
Login-Service = PortMaster,
Callback-Number = "9,1-800-555-1212"

# para ppp ;)
DEFAULT Framed-Protocol = PPP
Framed-Protocol = PPP,
Framed-Compression = Van-Jacobson-TCP-IP

Para darnos cuenta las actividades del mismo o si alguien nos quiere h4x0r34r
podemos ver /etc/raddb/logfile y chekear si todo esta en orden, o tambien se
puede dedicar una terminal (tty) y redirigir el log a /dev/console para ver
que esta sucediendo en tiempo real. (o usar "stdout" para la salida)

Restaria explicar como setear ips diferentes para cada terminal o como hacer
para usar un proxi, pero   como dije antes, este software trae demasiadas
cosas, y es imposible explicar todo :/

El metodo de coneccion para los clientes puede ser con el radius-client o
con algun cliente comun de dial up ;) pero eso varia segun lo que pusimos
nosotros en los ficheros de configuracion..

dudas o comentarios a: [email protected]
(abstenerse a decirme lamer porque ando medio sensible, snif ..snif..)

NOTAS FINALES: la ultima version que poseo es la version 1.5.4.3
y si mal no recuerdo el soft se lo pueden bajar de livington.com
o desde: ftp://sunsite/.././/...??
Y por supuesto SUSE trae uno .. justamente CISTRON (citroen jeje)

FE DE ERRATA: este write papp0r fue reenviado y re-writeado cuando me
entere la existencia de un atroz y mortifero BUG (buaaajjaja) que afecta a
las versiones 1.16.xxx , no solo de Cistron Radiusd, sino tambien de
muchos otros como:
Ascend Radius, Free Radius, GnuRadius, Icradius, Yard Radius, Xradius,
y Lucent Radius...
los cuales pueden ser atacados con una denegacion de servicio mediante la
construccion maliciosa del atributo "vendor-specific"
(vendor-specific es un atributo de Vendor-Length)
y tambien existe otra bulneravilidad de D.o.S , para ser mas especifico,
en la cadena que contiene el secreto compartido que se concatena con el
pakete recibido sin controlar el tamanio del buffer :(
(los c0derz de este soft son unos mal0rs)


               community.ezkracho.com.ar/el-ju3z


     > Eko Magazine #04 Post Devaluation, La Odisea del Patacon 2002 <
                      > Configurando Cistron Radius <
                                  [EOF]