Etiquetas: redes
Proteger directorios con .htaccess en Apache
por e1kio el Sep.01, 2010, en Informática
Continuando con el post sobre cómo instalar el servidor web Apache en Ubuntu, podría suponer que ahora me interesa proteger un directorio de mis archivos públicos. Para ello voy a recurrir a la creación de unos archivos de control que se encontrarán en el directorio a proteger y que verificarán las credenciales del usuario o usuarios que nosotros definamos.
En primer lugar, voy a crear una nueva carpeta vacía en el directorio del servidor que se llamará “privado”:
$ sudo mkdir /var/www/privado
Dentro de ella voy a copiar un archivo que he creado de prueba en mi home:
$ sudo cp $HOME/archivo_prueba.html /var/www/privado/
El contenido puede ser, por ejemplo:
<html>
<head>
<title>Prueba</title>
</head>
<body>Hola, mundo!</body>
</html>
En esta carpeta privada tengo que crear también el archivo llamado “.htaccess” (ojo al punto para que quede oculto) con el siguiente contenido:
AuthUserFile /var/www/privado/.usuarios
AuthName carpeta_privada
AuthType Basic
require valid-user
<files "archivo_prueba.html">
require valid-user
</files>
Veamos el .htaccess con más detalle:
AuthUserFile /var/www/privado/.usuarios
Aquí, el servidor Apache consultará un fichero llamado .usuarios (puedes utilizar el nombre que quieras; yo recomiendo cambiarlo y convencionalmente se denomina .htpasswd) donde se almacenan los nombres de usuario y las contraseñas encriptadas (más adelante se detalla el contenido de este archivo).
AuthName carpeta_privada
AuthType Basic
De estas dos lineas, la primera es la que muestra el mensaje con el que se indica a dónde se accede y la segunda que el tipo de autenticación es “básico”:

También se exige que el usuario sea un usuario válido:
require valid-user
Y finalmente restringimos un archivo (en este caso “archivo_prueba.html”) a usuarios válidos.
<files "archivo_prueba.html">
require valid-user
</files>
Como es probable que no queramos que nuestro archivo “.htaccess” ni tampoco el “.usuarios” sean visibles, añadiremos la directiva siguiente:
IndexIgnore .usuarios
IndexIgnore .htaccess
De esta forma nuestro “.htaccess” queda completo tal y como se puede ver a continuación:
AuthUserFile /var/www/privado/.usuarios
AuthName carpeta_privada
AuthType Basic
require valid-user
IndexIgnore .usuarios
IndexIgnore .htaccess
<files "archivo_prueba.html">
require valid-user
</files>
Ahora me ocuparé del contenido del fichero .usuarios. En el, los usuarios se guardan como texto plano, seguidos de el símbolo dos puntos y su contraseña encriptada. Puedes encontrar muchas páginas web para encriptar contraseñas de forma sencilla, como por ejemplo la de U-Net. Por cada linea del fichero se almacena un usuario. En nuestro archivo solo existe una línea con un usuario de prueba:
u_prueba:TXzy66Lhrey4A
Este fichero puede encontrarse en otro directorio y llamarse como tu quieras, pero en el .htaccess debes especificar la ruta absoluta hacia él.
Aquí puedes ver el ejemplo de cómo proteger directorios con Apache mediante usuario y contraseña llevado a la práctica. Necesitas introducir el usuario “u_prueba” y la contraseña “c_prueba”.
Impresora en red en Ubuntu
por e1kio el Ago.31, 2010, en Informática
Estas instrucciones son para añadir una impresora en red a nuestra máquina con Ubuntu o alguna distribución GNU/Linux similar. Para empezar, necesitaremos tener Samba instalado, tal y como expliqué en el post sobre cómo acceder a archivos compartidos de Windows desde Ubuntu. Abreviando, bastará con introducir en el terminal:
$ sudo apt-get install samba smbfs
Luego debemos dirigirnos al menú Sistema/Administración/Impresoras y se abrirá el cuadro de impresoras instaladas. En el ejemplo se ve la Epson SX210:

Cuando estés listo pincha en el botón añadir y se abrirá un nuevo cuadro en el que debes seleccionar “Impresora de red” y, si como en este caso es una impresora compartida desde un PC con Windows, seleccionar las impresoras “Samba” tal y como se ve en la imagen:

Como ves, hemos añadido a mano directamente la direccion LAN de la impresora (\\servidor\hp\), pero tambien podríamos pulsar en “Browse” y seleccionar la impresora mediante una interfaz de árbol:

Escojamos la opción que escojamos, en el siguiente paso habrá que seleccionar el fabricante, modelo y driver a instalar:


Al terminar, la impresora aparecerá añadida y se nos ofrecerá la posibilidad de imprimir una página de prueba para verificar que todo está bien. También podemos aprovechar para configurarla:

Instalar Apache en Ubuntu
por e1kio el Ago.11, 2010, en Informática
Apache es un servidor web HTTP que podemos instalar en Ubuntu desde el terminal:
$ sudo apt-get install apache2
El sistema nos pedirá instalar otros paquetes adicionales:
apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
Descargará poco más de 3 Mb y se ocuparán 10,5 Mb de espacio en el disco duro. Al terminar, podemos comprobar que el servidor esta configurado para iniciarse con el sistema si escribimos:
$ ls /etc/init.d/apache2
y recibimos como respuesta:
/etc/init.d/apache2
Esto quiere decir que se ha creado el guión de inicio del servidor.
El servidor ya debe estar iniciado al acabar la instalación pero por si falla, podemos iniciar el servicio manualmente, así como detenerlo o reiniciarlo. Basta con usar la orden que necesitemos de entre las siguientes:
$ sudo /etc/init.d/apache2 start
$ sudo /etc/init.d/apache2 stop
$ sudo /etc/init.d/apache2 restart
Ahora al hacer start, debería decirnos que el servicio ya se ha iniciado:
$ sudo /etc/init.d/apache2 start
* Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.1.1 for ServerName
httpd (pid 2523) already running

Se puede comprobar haciendo un listado de los procesos cargados y que se estén ejecutando actualmente con el comando:
$ ps -ef | grep apache
Que por ejemplo puede devolver:
root 2523 1 0 10:21 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 2525 2523 0 10:21 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 2526 2523 0 10:21 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 2527 2523 0 10:21 ? 00:00:00 /usr/sbin/apache2 -k start
emi 3230 3015 0 13:32 pts/1 00:00:00 grep --color=auto apache
Ahora podemos también verificar que el servidor está funcionando correctamente, basta con acceder a la dirección http://localhost/, que es la dirección local de una máquina (equivale a http://127.0.0.1/).
En el navegador veremos una página de confirmación:

Espero poco a poco ir añadiendo entradas para poder utilizar el servidor de forma útil. Hay mucha más información disponible en las guías de Ubuntu, por ejemplo: http://www.guia-ubuntu.org/index.php?title=Servidor_web.
Ubuntu: Acceder a carpetas y archivos compartidos de Windows
por e1kio el Jul.26, 2010, en Informática
Para acceder a recursos compartidos de máquinas con Windows desde Ubuntu o sus derivados, necesitamos instalar los paquetes que proporcionan compatibilidad con el protocolo de compartición de Microsoft.
Para eso, basta con introducir en el terminal:
$ sudo apt-get install samba smbfs
Ahora basta con ver la red desde el menú “Lugares”, donde podremos ver los grupos de trabajo.

Google ofrece búsquedas cifradas
por e1kio el May.28, 2010, en Informática
Leo en Linux Journal una entrada de Zach Schneider en la que se hacen eco de que Google ofrecerá cifrado en las búsquedas Google Search (o sea, en su buscador).
Esto viene de algo más atrás: los coches que fotografían calles provistos de cámaras 3D para componer las imágenes de StreetView tambien recogen datos de redes Wi-Fi. En particular, anotan el SSID (el nombre de la red) y la MAC del punto de acceso (el identificador del dispositivo que da cobertura inalámbrica, por ejemplo un router). Lo que en Google no preveían era que también se recolectasen datos que, en el momento del escaneo, circulaban en las redes desprotegidas (redes abiertas sin ningún tipo de clave de seguridad). Hace unas semanas, se acusó a Google de recopilar estos datos y la compañía rectificó a tiempo, publicando una nota con sus disculpas de la forma más diplomática posible.
Con la lección aprendida, no solo revisarán su sistema de recolección de datos, sino que han comenzado a ofrecer en el buscador la opción de cifrar la información, accediendo mediante servidores seguros (https://www.google.com/) y ofreciendo un tipo de cifrado tal y como sucede ya desde hace tiempo en el servicio de correo Gmail.
Comprobando MD5 de archivos descargados
por e1kio el May.12, 2010, en Informática
El MD5 es un algoritmo de cifrado que, aunque desde hace unos años ha quedado en entredicho, es muy útil para la comprobación sencilla de la integridad de archivos que hayan sido descargados de internet o recibidos por correo electrónico (MD5 en la wikipedia). Por ejemplo, en un repositorio oficial de ubuntu (como el ftp de la FIC) se encuentran, además de las diferentes ISO’s y otros archivos, los archivos md5sums.

Al abrir uno de ellos (por ejemplo este: ftp://ftp.udc.es/ubuntu-releases/lucid/MD5SUMS) se puede ver el resultado de aplicar el MD5 a las imágenes de los discos de instalación. Para verificar que se han descargado bien, basta con abrir un terminal y escribir:
$ md5sum nombre_iso_descargada.iso
Esto retornará el valor de la suma MD5 del archivo en el disco duro; que de coincidir con el publicado en la página web querrá decir que, efectivamente, ha sido descargado correctamente.
Si son claves distintas, será mejor descargarlo de nuevo, porque puede haber llegado corrupto o haber sido modificado por un tercero.
FIC OnLan 2010
por e1kio el Abr.24, 2010, en FIC, Informática
Este año se va a realizar algo nuevo en la FIC: una LAN party. La FIC OnLan será los días 14, 15, 16 y 17 de mayo y cuenta con una buena cantidad de plazas para todos los que se quieran acercar (sean o no estudiantes de la UDC). Hay programadas bastantes actividades, sobretodo en cuanto a juegos de mesa como el juego de tablero de Starcraft; incluyendo torneos de videojuegos bastante variados y una serie de conferencias que se pueden ver aquí.
Tras registrarse, toca hacer un pago de 20 € y te regalan una camiseta del evento. El pabellón de deportes de Elviña habilitará esos días las duchas, los vestuarios y un área de descanso. La conexión a internet será de 10 Gbps (proporcionada por rediris) y la LAN será Gigabit.
En el foro de QueGrande.org hay más información: http://quegrande.org/foro/viewtopic.php?f=2&t=4001
User-mode Linux: Emular una red de ordenadores
por e1kio el Mar.18, 2010, en Informática
En la revista @rroba nº 150 (de marzo de 2010) encontré un interesante artículo de Ramiro Cano Gómez (quien hace referencia al mismo en su propio blog). El tema era la virtualización bajo GNU/Linux, algo que no puede parecer muy emocionante (al fin y al cabo es algo común), pero que toma color cuándo uno comprende que se puede virtualizar una red de múltiples terminales virtuales. Esto puede ser tremendamente útil para muchos propósitos: desde aprender un poco sobre redes hasta simular ataques entre máquinas, etc; ya que además es poco probable que dispongamos de tiempo, espacio y dinero para montarnos varias redes y subredes en nuestra propia casa.
Como en las versiones 2.6.x y superiores del Kernel de GNU/Linux ya se incluye el User-mode Linux, podemos valernos de esta herramienta. Entre otras bondades, User-mode Linux permite que ejecutemos instrucciones propias del Kernel en un espacio de memoria dedicado a los procesos que ejecuta el usuario (de ahí el nombre), y en el caso de que algo vaya mal, ese espacio de memoria puede limpiarse y el sistema anfitrión no se ve afectado. Esto es prácticamente la definición de virtualización de un sistema. Podemos ejecutar llamadas a un Kernel mientras otro se ejecuta como base. Por si pareciese poco, User-Mode Linux maneja el hardware de forma directa, con el beneficio de rendimiento que eso supone. Así, tan solo necesitaremos un par de herramientas más con las que ponernos en marcha.
Quiero aclarar antes que no voy a copiar todo el artículo de Cano Gómez aquí (no tiene sentido) pero sí quiero resaltar el primer ejemplo que explica; que es una sencilla toma de contacto con las posibilidades de estos programas. Quien busque más, puede dirijirse al sitio wiki de Netkit: http://wiki.netkit.org/
Lo primero será instalar el entorno de Java JRE para correr aplicaciones escritas con este lenguaje. También vamos a añadir un servidor de telnet (telnetd) y unas librerías para X11 (xwit), asi que abrimos una ventana de terminal y escribimos la siguiente orden:
$ sudo apt-get install sun-java6-jre xwit telnetd
Netkit es el programa que nos permitirá emular redes. Acompañado de NetGUI (de la Universidad Rey Juan Carlos de Madrid), nuestro fin será coser y cantar. Hay que bajar el paquete y descomprimirlo en /usr/local. Esto tardará un poco porque el archivo a descargar son 170 Mb aproximadamente y además hay que descomprimirlo. Estos tres comandos son los que deberemos introducir en nuestro terminal:
$ wget http://mobiquo.gsyc.es/netgui/netgui-v0.4.2b.tar.bz2
$ cd /usr/local
$ sudo tar -xvjf $HOME/netgui-v0.4.2b.tar.bz2
Cuando haya terminado, podremos lanzar la aplicación llamando a:
$ /usr/local/netkit2/netgui/bin/netgui.sh

Esto abre la ventana de la aplicación. Moverse por ella es algo trivial; por ejemplo, añadir un terminal es hacer un clic en el icono del ordenador, un clic en la parte en blanco en donde queremos situarlo y asignarle un nombre identificador en el cuadro de diálogo que se abre. Arrancar y detener las máquinas virtuales se hace con los dos iconos fácilmente identificables que hay a la derecha. Para conectar unos elementos con otros, haremos clic sobre el icono de cable y luego clic en los dos nodos a relacionar. Es poco más que un juego. Al encender uno de estos ordenadores virtualizados, se abre una ventana de terminal virtual con un sistema completo. Dejaré el resto de sorpresas sin desvelar.
Del artículo quiero extraer el ejemplo más sencillo de uso de todo esto. Cano cuenta que sobre un MacOSX con VMWare Fusion corrió un sistema Ubuntu 9.10 con solo un procesador y 512 Mb de RAM, y dentro de este sistema virtualizado logró correr hasta 10 maquinas virtuales; lo cual es una noticia aún mejor para quien disponga de procesadores con conjuntos de instrucciones de virtualización (actualmente Intel-VT y AMD-V, por ejemplo). No he probado esto en un eeePC (lo cual ya sería la locura máxima alrededor de uno de estos fantásticos netbooks, aunque el procesador Atom no sea el más adecuado) pero podríamos esperar cierta solvencia. Quizás lo intente, al fin y al cabo… ¿Porque no llevar una red de ordenadores propia en la palma de mi mano?
Para ver el manejo y las posibilidades de usar Netkit con User-mode Linux, basta sin embargo con dos PCs interconectados por un hub, tal y como se ve en la siguiente imagen:

Ahora configuremos la red en ambos sistemas. En la terminal del PC1 tecleamos:
$ ifconfig eth0 10.0.0.1 netmask 255.255.255.0
Y repetimos la operacion en la terminal del PC2 con la ip 10.0.0.2, sin variar el resto de los datos. Como ya están conectados; comprobemos que podemos llegar de uno a otro haciendo ping. Desde, por ejemplo, el PC1:
$ ping -c 5 10.0.0.2
Se enviarán los paquetes a la máquina nº2. Podemos comprobarlo si en esta vemos en contenido de la caché de paquetes entrantes ARP:
$ arp -a
Si queremos comprobar las direcciones, el comando “ifconfig” sin ningún parámetro puede ser usado para ver la MAC de la primera máquina, que deberá coincidir con la de la caché ARP de la segunda maquina.
Por ahora un simple “ping” puede saber a poco, pero seguiré con un ojo puesto sobre el tema…
Configurar la udcwifi en Ubuntu
por e1kio el Feb.10, 2010, en FIC
En foros como quegrande.org o páginas sobre el uso de Ubuntu se recomienda desinstalar el network-manager, usar madwifi, editar nosequé archivos de configuración…
Yo sin embargo creo que para la udcwifi basta con una instalación normal de GNU/Linux y configurar correctamente los parámetros de la red. Suponiendo, claro, que no se haya trasteado antes con los controladores o el firmware o parámetros del sistema, etc.
En un caso normal y corriente, Ubuntu detectará nuestra wifi sin problemas, sobretodo porque en las últimas versiones la compatibilidad hardware es, en mi opinión, muy buena. Cuando tengamos la red al alcance, bastará con clicar sobre ella en el menú de redes disponibles. Al conectarse, nos pedirá los datos. Los haremos coincidir con los de esta imagen, tomada en Ubuntu 9.10 (karmic koala):

Por supuesto necesitaremos el archivo de certificado de seguridad, que se puede bajar desde la web de la misma universidad, y obviamente cambiaremos aaaaaaa@udc.es por nuestro login y nuestra contraseña. El certificado está en http://www.udc.es/udcwifi/documentos/udcwifi.ca.pem (clic con el boton derecho del ratón, “Guardar enlace como” en Firefox o “Guardar destino como” en IE).
Esto ha sido suficiente para que funcione en mi portatil Packard Bell y en mi EeePC 901 (con tarjetas Atheros e Intel, respectivamente).
Actualización Junio 2010: He sustituido el certificado de seguridad antiguo por el que entra en vigor este mes.
