Us copio un article de edmont, que ès molt útil per muntar un proxy amb serveis per www.guifi.net, aqui podeu trobar l’original.
Configuración de un servidor
Introducción
En este apartado se detalla la configuración de un ordenador para que sirva como servidor de distintos servicios útiles para la red libre.
Parte de la información para redactar este manual ha sido obtenida de los siguientes lugares:
- guifi.net/node/9502
- www.webmin.com/deb.html
- guifi.net/proxy-fedora
- guifi.net/node/3424
- Canal #guifi del chat de guifi.net
Clica a”read more” per veure l’article complert
Configuración del ordenador
A falta de un ordenador nuevo, se usará provisionalmente un equipo viejo reciclado para tal propósito. Sus características corresponden a un Pentium 3 a 667 MHz con 64 MB de memoria RAM y disco duro de 40 GB. Hará falta añadir una nueva tarjeta de red ethernet, salvo que se cree una interfaz virtualizada.
Partimos de una instalación mínima del sistema operativo Debian, con el disco duro particionado mediante LVM (esto nos permitirá más adelante redimensionar o ampliar particiones sin problemas). Los servicios que necesitamos instalar son el servidor proxy y el servidor de gráficas, con todos sus requerimientos (servidor web, etc.). A partir de ahí se pueden instalar los servicios que consideremos oportunos.
Se supone que, como se ha explicado en un apartado anterior, tenemos creados en guifi.net tanto el dispositivo correspondiente al servidor como los servicios necesarios.
Paquetes útiles
Instalamos algunos paquetes que nos pueden ser de utilidad en el servidor:
apt-get install lynx links2 openssh-server wakeonlan ethtool
Configuración de red
Para que todo funcione correctamente, nuestro servidor debe tener bien configuradas las interfaces de red. En Debian, nada más sencillo que editar el fichero /etc/network/interfaces. Si tenemos una tarjeta de red conectada al router ADSL y la otra al routerboard del nodo guifi.net, la cosa quedaría así:
auto lo eth0 eth1
iface lo inet loopback
iface eth0 inet static
address 192.168.1.20 #Por poner una válida
netmask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.0
broadcast 192.168.1.255
iface eth1 inet static
address 10.34.192.34 # Dirección asignada al servidor en la web
netmask 255.255.255.224 # Máscara asignada para el servidor en la web
gateway 10.34.192.33 # Dirección asignada al routerboard en la web
network 10.34.192.32 # De acuerdo a la dirección del routerboard y la máscara
broadcast 10.34.192.63 # De acuerdo a la dirección del routerboard y la máscara
up ip route add 10.0.0.0/8 via 10.34.192.33 # Importante añadir esta ruta
Servidor proxy
Es el servicio esencial para que los usuarios de la red puedan acceder a Internet desde la misma. Una vez instalado, los usuarios solo necesitarán una URL o dirección IP y un puerto para poder configurar sus navegadores para que puedan acceder a internet.
La configuración del proxy es aproximadamente la que se muestra en la siguiente imagen:
Esquema de conexión de un servidor proxy (fuente)
Una de las interfaces de red irá conectada al router ADSL y la otra a un concentrador de la red interna libre, en principio al routerboard del nodo en cuestión.
Instalación del software
Todos los paquetes requeridos están disponibles en Debian, salvo webmin. Lo instalaremos desde su repositorio:
echo deb http://download.webmin.com/download/repository sarge contrib >> /etc/apt/sources.list
Instalamos la clave GPG del repositorio:
cd /root
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc
Y actualizamos:
apt-get update
Ahora ya podemos instalar todos los paquetes requeridos:
apt-get install squid sarg webmin apache2 webalizer
Configuración del software
Apache
Generamos un certificado:
openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
Cargamos el módulo SSL del Apache:
a2enmod ssl
Y lo reiniciamos para que cargue el módulo:
/etc/init.d/apache2 force-reload
Webmin
Una vez tenemos instalado el paquete, podemos acceder a su configuración desde un navegador:
lynx https://127.0.0.1:10000/
Accederemos como nuestro usuario de Linux. En el menú de la izquierda vamos a “Webmin – Change Language and Theme” para ponerlo en español.
Squid
Primero creamos un directorio que nos hará falta más adelante:
mkdir /usr/etc/
touch /usr/etc/passwd
Accederemos desde otro ordenador que tenga entorno de escritorio a la URL de webmin (https://ip_de_la_maquina:1000). Lo primero es refrescar el estado de los módulos:
Programas de autentificación
A continuación accedemos a “Servidores – Squid – Servidor Proxy – Programas de autentificación“. Ahí añadimos en “Programa de autenticación básica“, /usr/lib/squid/ncsa_auth /usr/etc/passwd y los siguientes valores marcados en la imagen:
Clicamos en “Aplicar los cambios“, arriba a la derecha, para guardar.
Control de acceso
En “Servidores – Squid – Servidor Proxy – Control de acceso”, clicamos en el botón de “Crear nueva ACL“, con el menú desplegable marcado con “Autentificación Externa” y le damos el nombre usuarios_autentificados.
Ahora en “Servidores – Squid – Servidor Proxy – Control de acceso”, vamos a la pestaña “Restricciones del proxy” y añadimos una nueva que permita los usuarios_autentificados.
Es importante el orden en que aparecen listadas las restricciones, por lo que debemos subir la nueva por encima de la que deniega todo.
Por último, debemos clicar en “Aplicar los cambios“, arriba a la derecha.
Sarg
Desde el webmin, podemos acceder a “Servidores – Generador de Informes de Análisis de Squid” y generar un informe para visualizar las estadísticas.
Federación del proxy
Para que otros usuarios de proxys federados puedan conectarse al nuestro necesitamos tener una lista actualizada de los mismos con sus contraseñas. Para ello crearemos un script que la descargue periódicamente de guifi.net mediante cron. El código del script es el siguiente:
wget –timeout=240 http://www.guifi.net/es/node/00000/view/federated -qO /tmp/passwd
touch /usr/etc/passwd
OK=`cat /tmp/passwd|wc -l`
NEW=`diff /usr/etc/passwd /tmp/passwd|wc -l`
if [ $OK != “0” ]; then
if [ $NEW != “0” ]; then
cp /tmp/passwd /usr/etc/
/etc/init.d/squid reload
echo “Nuevo /usr/etc/passwd copiado”
fi;
fi
Donde debemos sustituir el “00000” por el número de nodo correspondiente a nuestro proxy. Lo guardamos como proxypasswd.sh, le damos permisos de ejecución y lo copiamos a una ruta dentro del PATH.
chmod 755 proxypasswd.sh
mv proxypasswd.sh /usr/bin/proxypasswd.sh
Nos queda automatizar el proceso de recuperación de usuarios. Para ello usaremos cron.
crontab -e
Nos abre un archivo de texto donde están las entradas de los procesos periódicos del sistema. Añadimos la siguiente línea:
54 * * * * /usr/bin/proxypasswd.sh
Y reiniciamos cron para que tenga en cuenta los cambios (aunque no es estrictamente necesario):
/etc/init.d/cron restart
Webalizer
Creamos los directorios necesarios:
mkdir /var/www/webalizer/apache
mkdir /var/www/webalizer/squid
Y lo configuramos mediante webmin:
https://127.0.0.1:10000/
En “Servidores – Webalizer – Análisis de Históricos (Logs)” tenemos que editar dos logs pinchando en ellos:
- /var/log/apache2/access.log
Escribir informe en directorio: /var/www/webalizer/apache
Generación de informe planificada: Habilitado, a las horas escogidas abajo ..
- /var/log/squid/access.log
Escribir informe en directorio: /var/www/webalizer/squid
Generación de informe planificada: Habilitado, a las horas escogidas abajo ..
Servidor de gráficas
Es necesario para la plataforma de gestión de guifi.net, de manera que se puedan mostrar gráficas y estadísticas de tráfico de la red en su interfaz. Es una herramienta esencial para llevar a cabo un seguimiento de la evolución de la red y detectar en qué momento y lugar es necesario ampliarla.
Ejemplo de gráfica
Software necesario
El software que genera las gráficas es el paquete llamado snpservices. Lo descargamos desde (versión más reciente a 23/09/2009):
wget http://www.samaniego.cat/fitxers/snpservices_0.2.0-2_all.deb
Tras descargar el paquete, lo instalamos:
dpkg -i snpservices_0.2.0-2_all.deb
Nos dará error de dependencias. Las instalamos:
apt-get -f install
La instalación nos pedirá que introduzcamos el ID del servidor de gráficas. Ese número lo obtendremos del nodo que hemos creado en la web, en este caso de guifi.net/es/node/24562, es decir, 24562 (para otros lugares será un número distinto).
También nos preguntará si queremos recuperar en este momento el archivo mrtg.cfg. Aceptamos. Una vez instalado no tendremos que configurar nada más en el servidor, comenzará a servir gráficas inmediatamente.
Debemos modificar el nodo del servicio de gráficas para añadirle la URL del mismo, que será del tipo maquina/snpservices. También hay que establecer la versión 2.0.
Servidor NTP
El Network Time Protocol es un protocolo de protocolo de sincronización de relojes entre máquinas conectadas a una red. En la red libre es usado para mantener todos los equipos con la misma hora que las estadísticas y logs sean congruentes.
Su instalación es sencilla:
apt-get install ntp
Permitimos a las IP de la red acceder al servidor:
echo “#guifi.net users” >> /etc/ntp.conf
echo “restrict 10.0.0.0 mask 255.0.0.0 nomodify notrap” >> /etc/ntp.conf
Iniciamos el servidor y comprobamos que se ha sincronizado:
/etc/init.d/ntp start
ntpq -p
Y ya lo tenemos listo. Si en algún momento queremos usar el servicio desde otro equipo, hacemos:
ntpdate -u ip_del_servidor
Extras
Encendido remoto
Nos podría interesar en algún momento poder encender el ordenador de manera remota, por ejemplo tras un corte de luz. Aquí un buen artículo que explica como hacerlo:
miblockdenotix.wordpress.com/2008/09/17/wake-on-lan-wol-en-ubuntu/
IP virtual
Si solo tenemos una tarjeta de red en el dispositivo podemos conectarlo tanto al ADSL como a la red libre asignando dos IP a la misma interfaz. Para ello podemos utilizar el programa IPRoute2.
Instalación
Instalamos dependencias:
apt-get install flex bison libdb-dev
Descargamos la versión de IPRoute2 correspondiente a nuestro kernel (usar uname -r para determinar la versión):
wget http://devresources.linux-foundation.org/dev/iproute2/download/iproute2-2.6.28.tar.bz2
Descomprimimos y compilamos:
tar jvxf iproute2-2.6.28.tar.bz2
cd iproute2-2.6.28
make
make install
Configuración
Una vez instalado, ya podemos usar las utilidades del programa.
ip addr show
Vemos las interfaces configuradas. Tomando la de nuestra tarjeta de red (que suponemos configurada en la LAN del router ADSL como 192.168.1.2 o similar), añadimos la nueva IP correspondiente al servidor de la red libre:
ip addr add 10.34.193.3/27 broadcast + dev eth0
La IP y máscara de subred las tomamos del dispositivo correspondiente del nodo, en este caso de guifi.net/es/guifi/device/16811. Podemos comprobar que las rutas se han actualizado también con:
ip route show
IP virtual con webmin
Una manera más sencilla y rápida de crear la IP virtual es usando webmin. En “Red – Configuración de Red – Interfaces” seleccionamos la que queremos modificary clicamos en “Agregar interfaz virtual“. Basta con rellenar los campos como en la imagen y guardar.
Ejecutar winbox en remoto por ssh
Tal vez puede ser útil acceder remotamente a nuestro routerboard con winbox. Para ello hay que habilitar la ejecución de las X de manera remota. En el servidor, editamos /etc/ssh/ssh_config y descomentamos la siguiente línea:
ForwardX11Trusted yes
Reiniciamos el servicio:
/etc/init.d/ssh restart
La próxima vez que accedamos lo haremos añadiendo la opción -X al comando ssh en la máquina cliente.
ssh ip_maquina -l usuario -X
A continuación instalamos wine en el servidor:
apt-get install wine
Y descargamos el ejecutable de winbox:
wget http://demo.mt.lv/winbox/winbox.exe
Ya podemos ejecutarlo como si estuviera en nuestro ordenador:
wine ./winbox.exe
Hay que tener en cuenta que para no tener problemas debemos conectar al routerboard mediante IP y no mediante MAC. Además el servidor debería tener un ADSL con velocidad de subida razonablemente alta para no desesperar con cada clic.
Ejecutar winbox en local a través de un túnel
Otra forma de ejecutar winbox, con mejor rendimiento, es hacer un túnel del puerto de winbox entre nuestra máquina cliente y un servidor que esté dentro de la red guifi.net a la que queramos acceder. Simplemente ejecutamos en una terminal de nuestra máquina:
ssh -L 8291:ip_mikrotik:8291 usuario@url_servidor
A continuación ejecutamos winbox.exe con wine y accedemos a la IP 127.0.0.1. Ya estamos dentro del Mikrotik con el que hayamos creado el túnel. La ventaja es que con este método solo se intercambian los datos necesarios con el Mikrotik, no toda la interfaz gráfica del winbox, con lo que irá mucho mejor con conexiones lentas.
Hub de Direct Connect
La mejor manera de compartir archivos dentro de la red es a través de DC++. En Debian, la instalación de un hub es sencilla:
apt-get install opendchub
Ejecutamos por primera vez y establecemos el puerto de escucha al 4747 y las contraseñas para el hub:
opendchub
Editamos su configuración (hay que hacerlo con el programa sin ejecutar, para que se guarde bien):
nano /root/.opendchub/config
Donde deberíamos cambiar las variables hub_name, max_users, min_share, public_hub_host y hub_hostname.
Por último, para que se ejecute tras un reinicio, añadimos el comando opendchub al fichero /etc/rc.local.
AirControl
AirControl es una herramienta de Ubiquiti que permite tener un control centralizado de todos los dispositivos Ubiquiti de nuestra red. Nos puede ser muy útil si tenemos instalados muchos Nanostation o Nanostation Loco, como suele ser lo habitual. De momento está en versión beta y se puede descargar desde un enlace en foro de soporte de Ubiquiti.
Una vez obtenido el paquete lo instalamos:
dpkg -i aircontrol-1.0.04-beta.deb
Nos hará falta también Java:
apt-get install java-common
Tras instalar (especificando la contraseña de administrador) nos da error al tratar de arrancar. Para solucionarlo editamos /etc/init.d/aircontrol y sustituimos la línea:
JAVA_HOME=/usr/lib/jvm/java-6-sun
Por:
JAVA_HOME=/usr/lib/jvm/java-6-openjdk
Ya podemos arrancar el servicio:
/etc/init.d/aircontrol
Para usarlo accedemos con el navegador a la IP de nuestra máquina, puerto 9080. Como usuario ponemos ubnt y contraseña la que hayamos especificado en la instalación.
Una vez en el entorno podemos añadir dispositivos escaneando un rango de IPs y una vez conectados a ellos (se puede hacer de golpe si todos tienen mismo usuario y contraseña) actualizarle la versión de firmware que previamente hayamos descargado de la página de Ubiquiti y elegir los datos que queremos que se nos muestren en el listado.
Genial, no trobava enlloc com federar un proxy.!
A vegades les coses més simples són les que més costa trobar…. per això les solo guardar al blog que així no les perdo… Salut !