Delirando sobre informática, fotografía, programación, móviles y mucho más desde 2003
Siguiendo con la serie de entradas sobre OpenWRT el siguiente paso es instalar un servidor Subversion, complemento perfecto para desarrollo. En este caso será imprescindible contar con soporte de almacenamiento USB, ya que el tamaño de los repositorios crece rápidamente y el dispositivo no tiene capacidad suficiente.
Lo primero es instalar los paquetes necesarios:
opkg update opkg install subversion-client subversion-server
Se instalará el servidor nativo svnserve de forma muy básica, donde la configuración se encuentra en /etc/config/subversion. El problema es que no tiene autentificación pudiendo acceder cualquiera a los repositorios. Para añadir un poco de seguridad, debemos crear un fichero de configuración (en /mnt/usb/svn/svn.conf, por ejemplo) que contenga lo siguiente:
[general] realm = openwrt anon-access = none auth-access = write
Esto forzará que svnserve solicite identificación, pero como no se ha indicado un archivo de usuarios/contraseñas y no será posible acceder a través del protocolo nativo. Lo que interesa es que se pueda acceder a través de svn+ssh, pero por defecto OpenWRT sólo crea el usuario root y no dispone de los comandos típicos de gestió de usuarios y grupos, por lo que es necesario añadir los nuevos usuarios a pelo, editando el archivo /etc/passwd copiado la primera línea y modificando el nombre de usuario, el UID/GID y la ruta de su home:
root:[contraseña]/:0:0:root:/root:/bin/ash david:[contraseña]/:1013:1013:david:/home/david:/bin/ash
Recomendable usar un UID/GID mayor de 1000 y copiar la contraseña de root (que luego se puede cambiar con el comando passwd [usuario]) para poder probar el primer acceso. Del mismo modo, hay que editar el archivo /etc/groups:
root:x:0: david:x:1013:
Una vez añadido el usuario, bastará reiniciar el router para tener el servidor Subversion 100% operativo a través de svn+ssh. Para probarlo, se puede crear un repositorio con svnadmin create /var/local/svn/test e intentar acceder a él con el comando svn info svn+ssh://[router]/var/local/svn/test.
Para empezar a aprovechar mi nuevo router Asus me puse a instalar un servidor web que me permitiera tener siempre disponible el software que utilizo frecuentemente: un wiki y un gestor de favoritos. Tras probar Apache, Cherokee, Lighttpd y thttpd (todos en el repositorio oficial) me quedé con Lighttpd, ya que fué el más ligero, rápido y fácil de instalar.
Como comenté en mi anterior entrada, opté por OpenWRT como firmware para mi nuevo router principalmente por su parecido con Debian: instalación mínima y todo el resto vía repositorios. Pero como Debian, necesita algún tuneo para tener todo bien ajustado y cómodo.
Lo primero es añadir módulos a LuCI (la interfaz web de OpenWRT), que como todo también es modular. Es necesario instalar mediante opkg (y en la memoria del router, no en el dispositivo USB) los siguientes paquetes:
También es interesante mejorar un poco el intérprete de comandos (ash en este caso) modificando el archivo /etc/profile y añadiendo alias para hacer más facil el uso de ciertos comandos:
Por último, otros añadidos útiles son:
En los repositorios también hay muchas cosas interesantes, que pueden ser útiles si queremos acceder desde cualquier lugar via SSH, como el navegador web elinks o el cliente de correo mutt, ambos en modo texto. También existen multitud de servidores, como FreeRadius, OpenVPN, Samba, Subversion o NFS.
Recientemente me he hecho con un router Asus WL-520GU para reemplazar al viejo Linksys WRT54GL. Lo interesante de este dispositivo es su conexión USB 2.0, que al instalarle OpenWRT (o cualquier variante) multiplica sus posibilidades permitiendo usar impresoras en red, cámaras web o dispositivos de almacenamiento masivo.
Pero, ¿porqué OpenWRT y no DD-WRT u otras distribuciones derivadas?. Porque se parece mucho a Debian: la instalación es mínima, ligera y con lo imprescindible y porque dispone de un gestor de paquetes (opkg, al más puro estilo apt-get) que permite añadir software o módulos al kernel desde un repositorio. DD-WRT proporciona firmwares preconfigurados para tener soporte USB, VPN o VoIP, pero con muchas cosas extra que no se usan para nada. Con OpenWRT puede personalizarse por completo, teniendo únicamente lo que se necesita.
Delirios de un Informático :: Gestionado con WordPress :: Alojado en Bitacoras.com :: Licenciado bajo Creative Commons