Archive for the ‘Guía Linux’ Category
Servidor Apache Seguro
Tags: apache, linux, servidor, SSL
Posted in Guía Linux, Networking on Marzo 27th, 2009
Para completar la entrada sobre cómo Instalar y Configurar un servidor Apache bajo Debian; hoy quiero enseñaros cómo hacer que Apache sirva una página web utilizando el protocolo de conexión segura SSL, es decir, una página servida por https:// en vez del http:// habitual.

El primer paso es instalar openssl y el ssl-cert.
# apt-get install openssl ssl-cert
Ahora deberemos activar el módulo ssl:
# a2enmod ssl
El siguiente paso será crear el certificado.
# openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.cert -keyout /etc/apache2/apache.cert
Puede parecer raro, pero está bien para entender cómo funciona y saber cómo se hace. ¿Qué valor puede tener un certificado expedido por nosotros mismos? Después de rellenar unos cuantos datos (si queremos) pasamos al siguiente punto.
Cambiamos los permisos del certificado que acabamos de expedir:
# chmod 600 /etc/apache2/apache.cert
Si estamos en una versión actual de apache, no hará falta tocar nada acerca del puerto que se debe escuchar. En caso contrario, bastará añadir la linea ‘Listen 443‘ al fichero ‘etc/apache2/ports.conf‘
Sólo queda añadir las siguientes líneas dentro de la configuración de nuestra página web para activar SSL:
SSLEngine on
SSLCertificateFile /etc/apache2/apache.cert
Finalmente, reiniciamos apache:
# /etc/init.d/apache2 restart
Et voilà! Ahora podremos comprobar como para acceder a nuestra página web servida necesitamos hacerlo utilizando https en la barra de direcciones.
Creando comandos en Linux
Tags: bash, guía, linux, script
Posted in Guía Linux on Marzo 23rd, 2009
Puede ser que alguna vez deseéis crear un comando que esté accesible desde cualquier lugar de vuestra máquina. Estos comandos no serán otra cosa que scripts en bash.
Lo primero y más importante es crear el script. Una vez lo tengamos creado, lo que resta es bastante sencillo:
En este caso, vamos a imaginar que hemos llamado a nuestro script: ’script.txt; y el nombre que queremos que tenga que será: ‘piedra’. Lo más recomendable es dar un nombre que tenga relación con la función del script, obviamente.
Ahora tan sólo hay que mover el script a /usr/local/bin/:
# mv script.txt /usr/local/bin/piedra
A continuación habrá que darle permisos de ejecución al script:
# chmod -x nuestro_script /usr/local/bin/piedra
¡Y ya está! Ahora podremos utilizar nuestro script en cualquier momento =D
Repositorios Debian Squeeze
Tags: debian, linux, repositorios, Squeeze
Posted in Guía Linux on Marzo 22nd, 2009
El concepto de repositorio es difícil de explicar pero sencillo de entender una vez que se conoce el funcionamiento.
Un repositorio es, hablando de Linux, la localización donde están almacenados los paquetes que forman una distribución (dirección de internet, soporte físico, etc.). Un paquete es un tipo software que cumple una determinada función, pudiendo ser éste un programa, una librería, un plugin, iconos, etc. Algunos paquetes forman la base de una distribución (kernel), mientras que otros son simplemente añadidos que podemos variar.

¿Por qué existen los repositorios? Simplificando se podría decir que una distribución completa es un conjunto de repositorios (en este caso oficiales), por lo tanto, determinados repositorios contendrán todo el software oficialmente soportado por una distribución específica. Metafóricamente podríamos considerar a los paquetes como piezas, y al repositorio el sitio dónde se guardan dichas piezas. Éstas piezas permiten ‘construir’ un sistema operativo a gusto del usuario.
Además de los repositorios oficiales, existen otros de contenidos determinados (seguridad, multimedia, etc.)
La siguiente lista son unos repositorios estándar que recomiendo para utilizar con Debian Squeeze, de la cual ya hablé hace unos días:
#**Repositorios de seguridad**
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
#**Repositorios oficiales**
deb http://ftp.de.debian.org/debian testing main contrib non-free
deb-src http://ftp.de.debian.org/debian testing main contrib non-free
#**Repositorios multimedia**
deb http://www.debian-multimedia.org testing main
Para actualizar la lista de repositorios, basta con editar el archivo ‘/etc/apt/sources.list‘ con nuestro editor preferido, y añadir la lista anterior. No hay que preocuparse de los # ya que sirven para indicar que la linea es un comentario.
Por cierto, el último repositorio necesita de una ‘key‘, pero para instalarla sólo es necesario realizar lo siguiente:
# apt-get install debian-multimedia-keyring
Y recordad que cada uno es libre de tener la lista de repositorios a su gusto ;)
Instalación y Configuración de Apache en Debian
Rompiendo el tópico de los últimos días; hoy propongo aprender como instalar y configurar de forma básica un servidor de Apache en Debian Squeeze.

Lo primero y necesariamente imprescindible es instalar los servicios de apache; y para ello necesitamos ser usuario privilegiado. Por lo tanto, desde terminal, escribimos:
$ su
# apt-get install apache2
En el caso de necesitar que nuestro servidor web sea más completo, también querremos instalar lo siguiente:
# apt-get install php5 mysql-client mysql-admin mysql-query-browser phpmyadmin
Una vez instalado apache, podemos comprobar si funciona abriendo un navegador web y escribiendo http://localhost o http://127.0.0.1 en la barra de direcciones. El resultado debe ser un ‘It Works!‘ en pantalla. Ésto nos garantiza su correcto funcionamiento.
Por defecto, apache sirve las páginas webs que se encuentren en ‘/var/www/‘, por lo que si nos movemos hasta ahí con un # cd /var/www/ podremos ver un ‘index.html’ que efectivamente contiene el It Works! antes mencionado.
Si nuestra única intención es servir una página web, podemos colgar todo el contenido de la misma de aquí.
Sin embargo, si queremos servir más de una web, lo más recomendable es utilizar Hosts Virtuales.
Nos desplazamos hasta ‘/etc/apache2/sites-enabled‘ y dentro tendremos un fichero llamado ‘000-default’ que podemos tomar como ejemplo. En ese directorio podremos meter tantos servidores virtuales como queramos. Da igual el nombre que les demos, pero recomiendo mantener un cierto orden, separando cada uno en un fichero diferente, por ejemplo: 001-web1, 002-web2, 00n-webn, etc.
El configuración de los ‘Virtual Host’ permite servir varias webs desde una sóla dirección IP (la de nuestro equipo), utilizando para cada una un puerto diferente. Uno de los ficheros de los hosts virtuales quedaría así:
Listen 80
<VirtualHost *:80>
DocumentRoot /var/www/web1
DirectoryIndex index.html inicio.html index.htm index.xml
ServerName www.web1.net
</VirtualHost>
Explicación de las lineas (directivas):
- Listen 80 -> El puerto establecido de http es el 80. Para las siguientes webs habrá que declarar otros puertos diferentes, o no funcionarán.
- *:80 -> * representa localhost, y 80, obviamente, el puerto elegido. Tanto el Listen como éste deberán tener el mismo valor.
- DocumentRoot -> Informa de dónde se encuentra el directorio raíz que contiene el sitio web a servir.
- DirectoryIndex -> Lista los posibles nombres que puede adquirir la página de inicio del sitio.
- ServerName -> Indica el nombre asociado al sitio web a servir
Repitiendo éste proceso podemos llegar a servir tantas páginas web como deseemos.
Incluso se pueden servir de forma no-pública, incluyendo un fichero .htaccess en la raíz de cada directorio que queramos configurar. .htaccess almacena directivas de configuración, que entre otras cosas, nos permite autentificar según unos usuarios y contraseñas.
Creamos un fichero llamado .htaccess con nano, vi, emacs o vuestro editor favorito que contenga lo siguiente:
AuthType Basic
AuthName privado
AuthUserFile /etc/htpasswords
Require user usuario
Para crear el fichero con las contraseñas escribiremos en nuestro terminal:
# htpasswd -c /etc/htpasswords usuario
Tanto en el .htaccess como en el último comando, ‘usuario‘ es el nombre de usuario que queremos que se pueda autentificar.
Recordad que si queremos ver como cualquier cambio surge efecto, deberemos reiniciar el servicio http de apache:
# /etc/init.d/apache2 restart
Una vez reiniciado, podremos acceder a todas las páginas que estemos sirviendo desde un navegador web. Para especificar el puerto se escribe ‘dirección IP:puerto‘, en nuestro caso podemos escribir ‘localhost:puerto‘, donde el puerto será el que hayamos asignado a cada una de las webs que se sirven con Virtual Hosts.
Redimensionar imágenes en Linux
Tags: guía, ImageMagick, linux
Posted in Guía Linux on Enero 11th, 2009
Ayer por la noche estuve hablando con Stuntman sobre redimensionar fotografías, y le comenté que yo nunca había tenido la necesidad de cambiar muchas fotos a la vez, por lo que utilizaba GIMP, que de forma rápida las reducía al tamaño que necesitaba.
Pero pensé: ¿qué pasará el día que necesite realizar cambios a un gran número de fotografías?
Por lo que hoy por la mañana he buscado información al respecto; y la solución es muy sencilla y rápida.
Existe una suite que permite crear, editar y componer imágenes. Además entiende más de 100 formatos diferentes de imágenes. Sus funciones incluyen la posibilidad de mover, girar, espejar, rotar, escalar, recortar, transformar imágenes, ajustar colores, aplicar varios efectos o dibujar texto, líneas, polígonos, elipses y curvas de Bèzier; por lo que sus posibilidades y funcionalidades son enormes.
Además es software libre multiplataforma, por lo que puede ser usado indistintamente del Sistema Operativo que se use. El programa del que hablo se llama: ImageMagick.
Pero lo más cómodo es que se puede utilizar mediante línea de comandos, por lo que con una simple orden en nuestra terminal nos ofrece unos resultados increíbles.
Retomando la conversación con Stuntman…: después de instalar el paquete imagemagick desde repositorios (que estoy seguro de que todas las distribuciones lo tienen), utilizando el siguiente comando se puede redimensionar una gran cantidad de imágenes.
Yo recomiendo crear una carpeta y guardar alli una copia de las fotografías que queremos modificar. Nos desplazamos hasta dicha carpeta mediante el comando cd y ejecutamos el comando siguiente para redimensionar todas las imágenes .jpg que contuviera la carpeta a un tamaño de 800×800 (ésto depende del formato de la fotografía original. Siempre mantendrá relaciones respecto al original):
$ mogrify -resize 800x800 *.jpg
Si quisiéramos reducir todas las fotografías a la mitad usaríamos:
$ mogrify -resize 50% *.jpg
A veces también necesitaremos cambiar el formato de una serie de imágenes. Podemos utilizar el comando siguiente para convertir todas las fotografías .jpg en .png.:
$ convert *.jpg *.png
Espero que os resulte útil. (^-^*)
Videos y fotos desde consola
Tags: consola, debian, linux, terminal
Posted in Guía Linux, Mundo Geek on Noviembre 28th, 2008
Hoy ha venido a casa un amigo que pronto se convertirá en mi alumno debianita ^^u; y me ha preguntado cómo se podían ver videos desde el terminal. Hacía mucho que no lo hacía, a pesar de lo sencillo (y friki) que es. Algunos se preguntarán cómo es posible. Fácil; sólo es necesario convertir cada imagen/video a código ASCII, creando puro arte ASCII.

El paquete caca-utils contiene dos ejemplos de su funcionamiento: cacafire y cacademo
Acceder como superusuario o root: su ( o sudo en caso de que se use ubuntu)
#apt-get install mplayer caca-utils
Con lo anterior se instalará el reproductor mplayer y el caca-utils, que permitirá de una manera simple y efectiva visualizar videos e imágenes. Ya está listo. Para ver imágenes se necesitará escribir lo siguiente:
$cacaview ruta/de/la/imagen
Para ver videos habrá dos opciones:
$mplayer -vo caca ruta/del/video ##Para color
$mplayer -vo aa ruta/del/video ##Para blanco y negro
¡Incluso permite ver subtítulos! Genial para máquinas viejas que sólo te permitan modo consola. ( ̄▽ ̄)
Solucionando problemas con los DNS y resolv.conf
Tags: debian, linux, resolv.conf
Posted in Guía Linux on Octubre 18th, 2008
El día que volví a mi hogar, despúes de haber disfrutado de las “vacaciones”, me dí cuenta de que algo raro pasaba con mi ordenador. 2 meses sin darle mimitos y va y se me estropea =^-^=. Por ello me tocó formatearlo, y reinstalé una Debian Lenny de 64 bits actualizada, la cual, por cierto, me sorprendió gratamente. Pero eso no viene al caso.
La cuestión es que no había tenido ningún tipo de problemas con ella, hasta que el otro día los de ya.com nos enviaron un router Wi-Fi adsl2+ porque mi padre había contratado una tarifa TOTAL para dejar de pagar la cuota de línea a Telefónica, y a partir de ahora todas las llamadas funcionarían a partir del router, es decir, telefonia IP, o VoIP.
Pero parece que a mi máquina le gustaba mi viejo router 3com, y no le ha debido caer nada bien el nuevo, porque desde el día que lo instalé, cada vez que iniciaba sesión mis DNS se borraban, por lo que me tocaba introducirlas manualmente cada vez que encendía el PC.
El contenido del archivo /etc/resolv.conf era el siguiente:
#Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
Pero la solución era más fácil de lo que pensaba. Bastó con editar /etc/resolvconf/resolv.conf.d/head y añadir allí las DNS; en mi caso utilizo ‘194.224.52.4 y 194.224.52.6′:
#nano /etc/resolvconf/resolv.conf.d/head
nameserver 194.224.52.4
nameserver 194.224.52.6
Et voilà. De momento he reiniciado un par de veces y me funciona a la perfección el arreglo. Si sigue dándome problemas en el futuro, optaré por añadir directamente las DNS al archivo de configuración de interfaces, o como medida más drástica, crear un script para que automaticamente al iniciar sesión se añadan al resolv.conf.


























































