Buscando información sobre IpTables he encontrado este magnífico manual en el que se explica que es IpTables y unos cuantos scripts de configuraciones de ejemplo con comentarios.
Este manual práctico puede ser muy útil en caso de tener que enfrentarnos a montar un cortafuegos.
Ir al manual de IpTables
Mario ASI
Tutoriales y noticias sobre informática, o sobre lo que se me ocurra.
13 jun 2011
9 jun 2011
¿Cómo es de segura tu contraseña?
Navegando encontré esta página que me pareció curiosa, sobre todo al comprobar que la contraseña de mi WIFI tardaría en romperse 28 millones de años...
7 jun 2011
Despliegue de Joomla en NGINX
NGINX es uno de los servidores web que más popularidad está adquiriendo, gracias a su gran rapidez y capacidad para responder un gran número de peticiones sin alterarse.
Como virtudes, este servidor web tiene las que ya hemos comentado:
- Gran rendimiento y velocidad de gestión de peticiones.
Como defectos:
- Menor implantación.
- Menor número de módulos de compatibilidad.
De todos modos es una gran opción que está creciendo y que puede ser muy interesante según que casos. Por ello vamos a desplegar uno de los CMS más usados, es decir Joomla, en nginx para trastear un poco con este servidor web.
1- Instalamos NGINX y MySQL:
Comprobamos que nginx está corriendo:
2- Instalamos los siguientes módulos PHP:
Especificamos a php5 que utilice FastCgi:
3- Instalamos y configuramos spawn-fcgi
Debemos indicar a FastCGI el puerto de escucha, y el usuario y grupo que serán los propietarios del fichero. Para ello ejecutaremos la siguiente instrucción:
Para que arranque el servicio automáticamente nos vamos al fichero /etc/rc.local y añadimos la misma instrucción que antes:
Ahora tenemos que crear un script con el nombre php-fastcgi en el directorio /etc/init.d/php-fastcgi el cual contendrá lo siguiente:
Damos permiso de ejecución al script:
Realizaremos un enlace de este script en los directorios en los siguientes directorios:
4- Configuramos NGINX:
Por último debemos configurar nginx para que pueda servir los ficheros php por medio de FastCGI. Para hacer esto entramos en el fichero /etc/nginx/sitesavailable/ default añadimos lo siguiente:
Ahora nos disponemos a desplegar Joomla en el directorio /var/www
Para ello lo movemos a dicho directorio y lo descomprimimos:
Seguimos los pasos de instalación especificando nuestro servidor MySQL y sus credenciales.
Una vez terminada la instalación ya tenemos Joomla corriendo sobre NGINX:
Un saludo!!
Como virtudes, este servidor web tiene las que ya hemos comentado:
- Gran rendimiento y velocidad de gestión de peticiones.
Como defectos:
- Menor implantación.
- Menor número de módulos de compatibilidad.
De todos modos es una gran opción que está creciendo y que puede ser muy interesante según que casos. Por ello vamos a desplegar uno de los CMS más usados, es decir Joomla, en nginx para trastear un poco con este servidor web.
1- Instalamos NGINX y MySQL:
aptitude install mysql-client-5.0 mysql-server-5.0 nginx
Comprobamos que nginx está corriendo:
ps aux | grep nginx root 4243 0.0 0.0 9608 892 pts/0 S+ 10:45 0:00 grep nginx
2- Instalamos los siguientes módulos PHP:
aptitude install -R php5-cgi php5-mysql php5-curl php5-gd php-pear php5-imagick php5-imap php5-mcrypt php5-sqlite php5-xmlrpc php5-xsl
Especificamos a php5 que utilice FastCgi:
nano /etc/php5/cgi/php.iniDescomentamos cgi.fix_pathinfo=1
3- Instalamos y configuramos spawn-fcgi
aptitude install spawn-fcgi
Debemos indicar a FastCGI el puerto de escucha, y el usuario y grupo que serán los propietarios del fichero. Para ello ejecutaremos la siguiente instrucción:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
Para que arranque el servicio automáticamente nos vamos al fichero /etc/rc.local y añadimos la misma instrucción que antes:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
Ahora tenemos que crear un script con el nombre php-fastcgi en el directorio /etc/init.d/php-fastcgi el cual contendrá lo siguiente:
#!/bin/sh ### BEGIN INIT INFO # Provides: php-fastcgi # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start and stop php-cgi in external FASTCGI mode # Description: Start and stop php-cgi in external FASTCGI mode ### END INIT INFO # Author: Kurt Zankl <[EMAIL PROTECTED]> # Do NOT "set -e" PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="php-cgi in external FASTCGI mode" NAME=php-fastcgi DAEMON=/usr/bin/php-cgi PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME PHP_CONFIG_FILE=/etc/php5/cgi/php.ini # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
Damos permiso de ejecución al script:
chmod + x /etc/init.d/php-fastcgi
Realizaremos un enlace de este script en los directorios en los siguientes directorios:
ln -s /etc/init.d/php-fastcgi /etc/rc2.d ln -s /etc/init.d/php-fastcgi /etc/rc3.d ln -s /etc/init.d/php-fastcgi /etc/rc4.d ln -s /etc/init.d/php-fastcgi /etc/rc5.d
4- Configuramos NGINX:
Por último debemos configurar nginx para que pueda servir los ficheros php por medio de FastCGI. Para hacer esto entramos en el fichero /etc/nginx/sitesavailable/ default añadimos lo siguiente:
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name; include fastcgi_params; }Vemos que el servidor está escuchando por el puerto 9000:
netstat -putan | grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 4881/php5-cgi5- Despliegue de Joomla
Ahora nos disponemos a desplegar Joomla en el directorio /var/www
Para ello lo movemos a dicho directorio y lo descomprimimos:
mv /home/usuario/Escritorio/Joomla_1.5.9-Stable-Full_Package.zip /var/www/ cd /var/www unzip Joomla_1.5.9-Stable-Full_Package.zipAhora nos vamos a nuestro navegador y accedemos a localhost y nos aparece la pantalla de instalación de Joomla:
Una vez terminada la instalación ya tenemos Joomla corriendo sobre NGINX:
Un saludo!!
Etiquetas:
fastcgi,
Joomla,
nginx,
servidor web
1 jun 2011
DNS Dinámico con Bind9
Para mi primera entrada he elegido el DNS por ser uno de los servicios más importantes y utilizados, además de necesitarse para muchos otros servicios. A lo largo de esta memoria detallaré paso a paso el proceso de instalación y condifguración de un servidor DNS con actualizaciones dinámicas, pero también podría utilizarse este documento para un DNS estático, simplemente saltándonos la parte de DHCP.
El manual fue realizado sobre una máquina con sistema operativo Linux Debian Squeeze.
Empezamos:
Paso 1.-Instalamos el servidor DNS bind9 y las dnsutils que nos harán falta para la comprobación de funcionamiento con el comando dig:
Comprobaremos si existen errores de sintaxis (esto no quiere decir que este bien configurado pero si que está bien escrito) con el siguiente parser:
*rndc-key es la clave que utilizarán para comunicarse entre el servidor DNS y DHCP para poder realizar las actualizaciones dinámicas. Este fichero contiene lo siguiente:
Paso 3.- Los ficheros que definirán con detalle las asociaciones entre IP y nombre, tanto de la zona directa como de la inversa, se encuentran en el directorio /var/cache/bind/.
Estos ficheros contienen lo siguiente (hay que tener cuidado de no dejarnos un espacio o un caracter por este fichero, si esto ocurre fallará, con lo cual aconsejo copiar a mano lo siguiente):
Zona directa: /var/cache/bind/example.com.db
Zona inversa: /var/cache/bind/10.0.0.db
Comprobación Zona directa:
Comprobación Zona inversa:
Hasta este momento hemos configurado un servidor DNS estático y hemos comprobado que funciona, ahora nos disponemos a montar el servidor DHCP para integrarlos y hacer un servidor DNS-Dinámico.
Paso 5.- Instalamos el servidor DHCP:
Paso 6.- Editamos el fichero de configuración del servidor DHCP:
Paso 9.- Comprobamos que el DHCP concede IP a krilin automáticamente:
Paso 10.- Echaremos un vistazo al log del servidor (goku) para comprobar que se están realizando las peticiones y las respuestas correctamente:
Paso 11.- Hacemos ping desde goku hacia krilin y comprobamos que aun cambiando la IP de krilin se realiza con éxito:
Y al fin tenemos nuestro servidor DNS Dinámico funcionando.
Espero que les sea útil.
El manual fue realizado sobre una máquina con sistema operativo Linux Debian Squeeze.
Empezamos:
Paso 1.-Instalamos el servidor DNS bind9 y las dnsutils que nos harán falta para la comprobación de funcionamiento con el comando dig:
aptitude install bind9 dnsutilsPaso 2.- Configuramos bind9 en la máquina “goku” que será master del dominio “example.com”. Para ello comenzamos añadiendo la zona directa y la zona inversa del servidor en el fichero /etc/bind/named.conf.local:
include "/etc/bind/zones.rfc1918"; zone "example.com" { type master; file "/var/cache/bind/example.com.db"; allow-update {key "rndc-key";}; notify yes; }; zone "0.0.10.in-addr.arpa" { type master; file "/var/cache/bind/10.0.0.db"; allow-update {key "rndc-key";}; notify yes; };
Comprobaremos si existen errores de sintaxis (esto no quiere decir que este bien configurado pero si que está bien escrito) con el siguiente parser:
/etc/bind# named-checkconf named.conf.local
*rndc-key es la clave que utilizarán para comunicarse entre el servidor DNS y DHCP para poder realizar las actualizaciones dinámicas. Este fichero contiene lo siguiente:
key "rndc-key" { algorithm hmac-md5; secret "NJAvKcLLKI5pUyr5SdWc7A=="; };
Paso 3.- Los ficheros que definirán con detalle las asociaciones entre IP y nombre, tanto de la zona directa como de la inversa, se encuentran en el directorio /var/cache/bind/.
Estos ficheros contienen lo siguiente (hay que tener cuidado de no dejarnos un espacio o un caracter por este fichero, si esto ocurre fallará, con lo cual aconsejo copiar a mano lo siguiente):
Zona directa: /var/cache/bind/example.com.db
$ORIGIN . $TTL 86400 example.com IN SOA goku.example.com. root.goku.example.com. ( 1 ; 604800 ; 21600 ; 3600 ; 604800 ; ) ; @ NS goku.example.com. $ORIGIN example.com. goku A 10.0.0.1 $TTL 1800 ; 30 minutes krilin A 10.0.0.2 TXT "0034c01d37441096e65f6c71820527d786" $TTL 86400 ; 1 day localhost A 127.0.0.1Para comprobar posibles errores de sintaxis utilizaremos el siguiente parser:
/var/cache/bind# named-checkzone example.com example.com.db
Zona inversa: /var/cache/bind/10.0.0.db
$ORIGIN 0.0.10.in-addr.arpa. $TTL 86400; @ IN SOA goku.example.com. root.goku.example.com. ( 1 ; 604800 ; 3600 ; 604800 ; 21600 ; ) ; @ NS goku.example.com. 1 IN PTR goku.example.com.Por último para comprobar errores de sintaxis de la zona inversa utilizaremos este parser:
/var/cache/bind# named-checkzone 0.0.10.in-addr.arpa 10.0.0.dbPaso 4.- Llegados a este punto, haremos comprobaciones de que el dns funciona correctamente mediante el comando dig:
Comprobación Zona directa:
dig @10.0.0.1 goku.example.com
Comprobación Zona inversa:
dig -x 10.0.0.1
Hasta este momento hemos configurado un servidor DNS estático y hemos comprobado que funciona, ahora nos disponemos a montar el servidor DHCP para integrarlos y hacer un servidor DNS-Dinámico.
Paso 5.- Instalamos el servidor DHCP:
aptitude install isc-dhcp-server
Paso 6.- Editamos el fichero de configuración del servidor DHCP:
nano /etc/dhcp/dhcpd.conf #Lineas para la actualización del servidor DNS server-identifier goku; ddns-updates on; ddns-update-style interim; ddns-domainname "example.com."; ddns-rev-domainname "in-addr.arpa."; deny client-updates; include "/etc/bind/rndc.key"; zone example.com. { primary 127.0.0.1; key rndc-key; } zone 0.0.10.in-addr.arpa. { primary 127.0.0.1; key rndc-key; } #Configuración general DHCP default-lease-time 3600; max-lease-time 86400; authoritative; subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.1 10.0.0.127; option domain-name "example.com."; option domain-name-servers 10.0.0.1; option broadcast-address 10.0.0.255; }Paso 7.- Puesta en marcha. Pararemos ambos servidores y vaciaremos los ficheros de peticiones dhcp que se pudiesen haber generado:
/etc/init.d/bind9 stop /etc/init.d/dhcp3-server stop echo "" > /var/lib/dhcp3/dhcpd.leases echo "" > /var/lib/dhcp3/dhcpd.leases~Arrancamos los servicios de nuevo:
/etc/init.d/bind9 start /etc/init.d/dhcp3-server startPaso 8.- En el cliente (krilin) editaremos el fichero /etc/dhcp/dhclient.conf y le diremos que envíe su nombre junto con la petición DNS:
send host-name krilin;Así el DHCP y el DNS sabrán quien realiza la petición.
Paso 9.- Comprobamos que el DHCP concede IP a krilin automáticamente:
dhclient
Paso 10.- Echaremos un vistazo al log del servidor (goku) para comprobar que se están realizando las peticiones y las respuestas correctamente:
tail -f /var/log/syslog
Paso 11.- Hacemos ping desde goku hacia krilin y comprobamos que aun cambiando la IP de krilin se realiza con éxito:
ping krilin
Y al fin tenemos nuestro servidor DNS Dinámico funcionando.
Espero que les sea útil.
Etiquetas:
bind9,
dhcp,
dns,
dns-dinamico
Suscribirse a:
Entradas (Atom)