En este tutorial vamos a ver como configurar un Host Virtual en Apache2 basado en Nombre e popular servidor web de software libre y código abierto.

Hay varios tipos de Virtual Host el más popular es el basado en Nombre y es el que aprenderemos a configurar a continuación

Que es un Host Virtual (ó Virtual Host) basado en Nombre

No es más que hospedar múltiples dominios del estilo (www.ejemplo.com, www.otrodominio.com, etc) bajo una misma dirección IP. Este tipo de configuración es muy común en los Hosting compartidos, donde múltiples clientes comparten un mismo servidor.

Para este tutorial debes tener un servidor Apache funcionando, puedes revisar los siguiente tutoriales donde explico como instalar un servidor LAMP el cual incluye el servidor Apache.

Como instalar un Servidor LAMP en Ubuntu Paso a Paso

Como instalar un Servidor LAMP en Fedora 12 paso a paso

Host Virtuales en Apache

Aquí va un poco de teoría para explicar como funciona si quieres puedes ir de una vez a la Configuración.

Apache 2 tiene varios directorios de configuración, los que nos interesan en este momento son dos el /etc/apache2/sites-available/ y el /etc/apache2/sites-enable, el primero tiene los archivos de configuración de los sitios disponibles y el segundo son links simbólicos de los sitios activos, por defecto al instalar Apache se crea un archivo llamado default que contiene la configuración básica de acceso de Apache y es un archivo que no se debe borrar.

Configurar Host Virtual Basado en Nombre

Sólo tenemos que seguir los siguientes pasos:

Vamos a suponer que queremos crear un Host Virtual llamado www.ejemplo.com y que la dirección IP pública de nuestro servidor es 10.0.0.5.

1. Creamos un archivo en /etc/apache2/sites-available llamado ejemplo.com

En Ubuntu :

sudo nano /etc/apache2/sites-available/ejemplo.com

En Fedora como root:

su -
nano /etc/apache2/sites-available/ejemplo.com

Aquí estoy usando el editor de texto nano pueden usar el de su preferencia (vim, emacs, gedit, kate, etc).

2. Dentro del archivo ejemplo.com que acabamos de crear escribimos lo siguiente:

<Virtual Host 10.0.0.5:80>
 ServerName www.ejemplo.com
 ServerAlias ejemplo.com *ejemplo.com
 DocumentRoot /var/www/ejemplo
</Virtual Host>

Vamos a ver línea por línea:

  • Empezamos con <Virtual Host 10.0.0.5:80> Aquí estamos indicando la directiva VirtualHost para decir que es un Servidor Virtual indicamos la dirección IP donde va a responder y el puerto (80 es el puerto por defecto donde escucha Apache). Si queremos que escuche en todas las direcciones IP quitamos la dirección y colocamos un asterisco quedaría *:80.
  • ServerName es el nombre del servidor en nuestro caso es www.ejemplo.com
  • ServerAlias son otras formas que el usuario puede escribir el nombre, sin el www y el *.ejemplo indica que puede tener subdominios como foro.ejemplo.com, y todos irán a la misma página.
  • DocumentRoot es donde están guardados los archivos de nuestra página. En este caso en /var/www/ejemplo pero puede ser cualquier carpeta donde tengan los archivos (cuidado con la seguridad y los permisos de la carpeta.

3. Guarda el archivo y ejecuta en el terminal el siguiente comando como administrador (o con sudo según el caso):

a2ensite ejemplo.com

Este comando crea un link simbólico en la carpeta /etc/apache2/sites-enabled, para activar nuestro sitio.

4. Reinicia el Apache:

Ubuntu:

sudo service apache2 restart

Fedora:

su -
service httpd restart

Y prueba en tu navegador que funciona correctamente escribiendo la dirección www.ejemplo.com (o la que hayas configurado) te debería aparecer la pagina que elegiste. Si estás utilizando un servidor interno de pruebas sin dirección IP pública recuerda colocar en el archivo /etc/resolv.conf de la PC desde donde vayas accesar la dirección y nombre del dominio algo como:

10.0.0.5     www.ejemplo.com

Para que no haga la petición al DNS y sepa a que dirección debe apuntar.

Eliminar un Host Virtual en Apache

Si queremos deshabilitar el sitio ejecutamos como root o utilizando sudo:

a2dissite ejemplo.com

Esto elimina el link simbólico a /etc/apache2/sites-enabled/, y deja de funcionar el Host Virtual.

Eso es todo por ahora en la serie de artículos de Apache, como siempre cualquier duda, pregunta o sugerencia puedes dejar tu comentario.

Autor: Olivers De Abreu es el director y fundador de Vensign

Si necesitas capacitación a tu medida, soporte o instalar cualquier tipo de Servidor ponte en contacto con nosotros en Vensign y con gusto te haremos una propuesta sin ningún compromiso.

Pueden seguirnos a través de nuestro Feed RSS o a través de Twitter @odeabreu

Nivel : Básico – Intermedio

Ya ha pasado un tiempo desde que escribí el tutorial de Instalar un servidor LAMP en Fedora Core 6 , Core 7 y Core 8, es un artículo con muchas visitas y con más de 100 comentarios y preguntas, he decidido a que ya es hora de actualizarlo a la versión 12 de Fedora que es la más reciente al momento, además aprovechar y agregar mucho de los tips y preguntas incluidas en los comentarios así como también las cosas que han cambiado y algunos tópicos más avanzados. Así que empecemos…

En este tutorial vamos a ver como instalar y configurar un servidor LAMP para Fedora 12.

Un servidor LAMP se refiere a un conjunto de aplicaciones que por sus siglas es Linux+Apache+MySQL+PHP y en este caso vamos a instalar y configurar un servidor con los siguientes componentes:

Apache 2 – Servidor Web muy versatil y uno de los más utilizados en el mundo

MySQL 5 – Uno de los servidores de base de datos más populares y utilizados en sitios y aplicaciones web

PHP 5 – Es un lenguaje interpretado utilizado para construir aplicaciones y páginas web

Y veremos algunas utilidades como phpmyadmin que nos permitirán administrar mejor nuestro servidor.

Concepto: Un servidor no es más que un PC que presta algún servicio (como mostrar páginas web).

Pasos previos:

  • Obtener e Instalar Fedora: lo pueden obtener desde la página Oficial del proyecto Fedora.
  • El servidor debe tener al menos 256 MB de memoria RAM, si no saben cuanta memoria tiene su PC simplemente ejecuten free -m en el terminal si donde dice total es mayor a 256 están bien. Yo personalmente recomiendo tener al menos 512 MB de memoria RAM
  • También pueden probar instalando el servidor en una máquina virtual ya sea con virtualbox, vmware, kvm o el manejador de máquinas virtuales de su preferencia.
  • Si van a hacer la administración del servidor LAMP de manera remota les aconsejo instalar openssh-server (yum install openssh-server esto lo deben ejecutar como root).

Les aconsejo también seguir el tutorial paso a paso, he tratado de hacer los pasos lo más concretos y cortos posibles, para que así no se pierdan de nada y tampoco les aburra el tutorial.

Bueno ya tenemos todo listo para empezar así que abran un Terminal y pongámonos a trabajar.

A partir de ahora todos los comandos deben ser ejecutados como root (administrador)

1. Actualizar el Sistema

Es siempre aconsejable realizar la actualización de nuestro sistema antes de llevar a cabo cualquier instalación simplemente ejecuten lo siguiente en el terminal

yum -y update

Con este comando se actualiza nuestra lista de repositorios y los paquetes que tengamos instalados si hay alguna actualización disponible.

2. Instalar Apache y PHP en un sólo comando

Fedora nos da la opción de instalar paquetes en “grupos” algo parecido al tasksel de Debian y Ubuntu.

Para instalar el servidor Apache y PHP 5 vamos a utilizar el grupo “Servidor Web” para ver los paquetes que contiene este grupo ejecutamos el comando:

yum groupinfo "Servidor Web"

Nota: Si tu servidor está en otro idioma que no sea Español puedes reemplazar “Servidor Web” por “Web Server” que funciona para cualquier idioma

Esto nos dá la siguiente lista:

Paquetes obligatorios:
 httpd
 Paquetes predeterminados:
 crypto-utils
 distcache
 httpd-manual
 mod_perl
 mod_python
 mod_ssl
 php
 php-ldap
 php-mysql
 squid
 webalizer
 Paquetes opcionales:
 ...

Para instalar el grupo ejecutamos:

yum -y groupinstall "Servidor Web"

Al finalizar la instalación ya deberíamos tener instalado el servidor Apache y PHP5

Si quieres comprobar que versión de Apache se ha instalado debes ejecutar el siguiente comando:

httpd -v

Te aparecerá algo como:

Server version: Apache/2.2.14 (Unix)
Server built:   Dec  3 2009 10:25:53

Para finalizar la configuración de Apache debemos configurarlo para que inicie siempre que reiniciemos nuestro servidor para esto ejecutamos en el terminal:

chkconfig --level 345 httpd on

Ahora iniciamos Apache con:

service httpd start

Si todo está bien debería aparecer un [OK]

Los comandos para manejar el servidor Apache son los siguientes, pueden utilizar cualquiera de las dos versiones del comando la versión larga o la corta, todos estos comandos deben ejecutarse como root:

Función Comando Comando Corto
Iniciar Apache /etc/init.d/httpd start service httpd start
Detener Apache /etc/init.d/httpd stop service httpd stop
Reiniciar Apache /etc/init.d/httpd restart service httpd restart
Estatus Apache /etc/init.d/httpd status service httpd status

El archivo de configuración por defecto de Apache se encuentra en el directorio /etc/httpd/ y el directorio por defecto de los archivos donde se guardarán las páginas web es en /var/www/html

Para probar que Apache está funcionando bien basta con ir a la dirección en tu navegador (Firefox, Konqueror o el que prefieran) http://localhost desde el mismo servidor o http://ipservidor desde otra PC y les debe aparecer algo como lo siguiente:

Fedora Pagina por defecto de Apache

Para comprobar la versión de PHP ejecutamos:

php -v

Debería aparecer algo como:

PHP 5.3.1 (cli) (built: Nov 20 2009 12:52:06)
 Copyright (c) 1997-2009 The PHP Group
 Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

Para comprobar que PHP  está funcionando correctamente, vamos a crear el siguiente archivo llamado prueba.php como root con tu editor favorito puedes utilizar nano, vim, gedit, etc.:

vim /var/www/html/prueba.php

Nota: Aquí estoy utilizando vim para editar utilicen el editor de su preferencia.

Dentro del archivo copiamos lo siguiente:

<?php phpinfo(); ?>

Guardamos al archivo y vamos al navegador y colocamos la dirección http://localhost/prueba.php si estamos en el mismo servidor o http://ipdelservidor/prueba.php. Deberia desplegar una lista con toda la información de PHP, los módulos y librerias instalados.

Pagina de prueba.php phpinfo()

Si te aparece una pantalla parecida a la anterior es que PHP está correctamente instalado y funcionando con Apache. Si te aparece algo como que quiere guardar el archivo prueba.php intenta reiniciar el servidor Apache con service httpd restart.

El archivo de configuración de PHP se encuentra en /etc/php.ini

3. Instalar MySQL

MySQL es una de las base de datos open source más popular y utilizadas en innumerables páginas web y aplicaciones tanto gratuitas como comerciales. Es una base de datos bastante robusta y flexible, fácil de configurar y lo bastante rápida para la mayoría de las aplicaciones comunes.

Al igual que para Apache existe un Grupo de paquetes de instalación para MySQL llamado “Base de datos MySQL” para ver los contenidos de este grupo de paquetes puedes ejecutar:

yum groupinfo "Base de datos MySQL"

Para instalar el servidor de MySQL debemos ejecutar el siguiente comando:

yum -y groupinstall "Base de datos MySQL"

Nota: Si tu servidor está en otro idioma que no sea Español puedes reemplazar “Base de datos MySQL” por “MySQL Database” que funciona para cualquier idioma

Esto instalará todos los paquetes y librerias necesarios para que funcione el servidor MySQL

Ahora debemos hacer que el servidor MySQL se inicie cada vez que se arranque o se reinicie el sistema para esto ejecutamos:

chkconfig --level 345 mysqld on

Para iniciar MySQL ejecutamos

service mysqld start

Luego debemos configurar el servidor MySQL para configurar la clave de administrador ejecutando:

mysql_secure_installation

Primero nos pregunta por la contraseña de root de MySQL, aquí presionamos enter ya que todavía no hay ninguna contraseña de root configurada para MySQL

Enter current password for root (enter for none): 

Luego nos pregunta si queremos asignarle una contraseña de root para MySQL escribimos Y y presionamos Enter/Intro

Set root password? [Y/n]

Luego nos pide la contraseña, aquí deberán colocar una clave para el administrador de la base de datos (no confundir con root de Fedora), no es recomendable colocar la misma clave del usuario de Fedora, se recomienda también que tenga una longitud mayor a 8 caracteres y que mezclen letras, símbolos y números, no son permitidos los espacios en blanco.

New password:

Cuando diga Re-enter new password: Simplemente volvemos a escribir la contraseña anterior

Luego nos pregunta si eliminamos los usuarios anónimos, a lo cual respondemos que Y por medidas de seguridad

Remove anonymous users? [Y/n]

Ahora pregunta si el usuario administrador solo puede ser utilizado desde el host local, esto es recomendable por razones de seguridad, a menos que tengas algún requerimiento especial respondemos Y

Disallow root login remotely? [Y/n]

Removemos la base de datos test que es de prueba si queremos respondiendo que Y

Remove test database and access to it? [Y/n]

Por último nos pide que reiniciemos los privilegios para que se efectuen los cambios respondemos Y

Reload privilege tables now? [Y/n]

Listo ya nuestra base de datos MySQL está instalada y segura.

Para comprobar el funcionamiento del servidor MySQL ejecuten el siguiente comando:

mysql -u root -p

Deberá pedirles la clave que colocaron en el paso anterior y aparecerles el prompt  mysql> algo parecido a esto:

vensign@lamp-vensign:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 11
Server version: 5.1.42 Source distribution

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

Vemos que nos muestra la versión del MySQL que acabamos de instalar. Para salir del prompt de mysql y volver al terminal de Linux simplemente escriban exit y presionen Enter o Intro.

Los comandos para administrar MySQL son:

Función Comando Comando Corto
Iniciar MySQL /etc/init.d/mysqld start service mysqld start
Detener MySQL /etc/init.d/mysqld stop service mysqld stop
Reiniciar MySQL /etc/init.d/mysqld restart service mysqld restart
Estatus MySQL /etc/init.d/mysqld status service mysqld status

El archivo de configuración de mysql se encuentra en /etc/my.cnf

Con estos tres pasos ya tenemos instalado un servidor LAMP en Fedora.

Con esto finalizamos el tutorial, ya tenemos un servidor web LAMP totalmente funcional y ya pueden empezar a colocar sus páginas y desarrollar sus proyectos, pronto publicaremos más tutoriales de configuración y seguridad de servidores web así que estén pendientes.

Cualquier duda o sugerencia por favor dejen sus comentarios

Autor: Olivers De Abreu es el director y fundador de Vensign

Si necesitas capacitación a tu medida, soporte o instalar cualquier tipo de Servidor ponte en contacto con nosotros en Vensign y con gusto te haremos una propuesta sin ningún compromiso.

Pueden seguirnos a través de nuestro Feed RSS o a través de Twitter @odeabreu


titulo tutorial sed


Nivel : Principiante

En esta serie de 3 partes vamos a presentar el comando sed, uno de los comandos más poderosos en Linux para manipular texto y una herramienta muy valiosa para aquellos que administran sistemas Linux.


Bienvenido SED

Normalmente un administrador de sistemas tiene que modificar archivos de configuración, tablas y otros archivos de texto repetidamente para realizar cambios y ajustes. Linux trae una gran cantidad de editores de texto tanto para la línea de comandos (emacs, vim, nano, etc) como gráfico (gedit, kate, etc), este tipo de editores son útiles cuando vamos a editar un par de textos. Pero que pasa cuando queremos modificar una gran cantidad de archivos o queremos automatizar modificaciones a través de un script, en este caso es que entra el comando sed.

La versión GNU de sed viene incluida por defecto en la gran mayoría (sino en todas) las distribuciones de GNU/Linux.

En la definición de la Free Software Fundation acerca de sed:

Sed (streams editor) no es realmente un verdadero editor o procesador de texto. En cambio es utilizado para filtrar texto, por ejemplo, toma la entrada de texto y realiza sobre ella alguna operación (o conjunto de operaciones)  y imprime el texto modificado. Sed es usado típicamente para extraer parte de un archivo usando un patron o sustituyendo múltiples ocurrencias de una cadena de texto dentro de un archivo.

Al momento de escribir este tutorial la última versión estable de GNU sed (sed de ahora en adelante) es la 4.2.1. Para ver la versión que tienes ejecuta en el terminal:

sed --version

Lo Básico de Sed

El formato básico del comando sed es:

sed opciones [script] [archivo(s)]

Características principales de sed:

  • Si no se le da ningún archivo sed toma la entrada estandar (stdin).
  • Sed filtra línea por línea, no letra por letra.
  • La salida por defecto de sed es la salida estándar (stdout).

Para los ejemplos vamos a trabajar con el siguiente texto es una cita de Carl Sagan creen un archivo llamado texto1 con el siguiente contenido

Vivimos en una sociedad profundamente

dependiente de la ciencia y la tecnología y

en la que nadie sabe nada de estos temas.

Ello constituye una fórmula segura para el desastre.

Noten que el texto tiene líneas en blanco entre cada línea de texto, no las borren ya nos encargaremos de ellas.

Las acciones principales de sed son las siguientes:

Borrar línea o conjunto de líneas

Ejecuten el siguiente comando:

sed -e '1d' texto1

Deben ver en el terminal el texto sin la primera línea, vamos a analizar un poco el comando, le dimos la opción -e que es para editar, luego colocamos   ‘1d’ que le dice a sed que tome la primera ocurrencia de línea y la borre (d=delete) y luego le pasamos el nombre del archivo texto1.  Noten que sed no modifica el archivo original como tal, simplemente nos muestra la modificación en la salida estándar (stdout), si queremos guardar la modificación en un nuevo archivo debemos redireccionar la salida lo cual lo veremos más adelante.

Ahora que pasa si queremos borrar más de una línea, pues afortunadamente sed permite que le demos rangos, si queremos borrar de la línea 2 a la línea 5 ejecutamos:

sed -e '2,5d' texto1

Este comando es muy parecido al anterior solo que en esta oportunidad le estamos dando un rango de la línea 2 a la línea 5. Noten que sed toma en cuenta las líneas en blanco también.

Utilizar Expresiones Regulares

Como casi todos los comandos en Linux sed también soporta expresiones regulares las cuales son muy útiles para filtrar patrones, al utilizar estas expresiones regulares es que podemos utilizar sed a su máximo potencial.

Vamos a ver un ejemplo y después entramos en detalle. Supongamos que queremos eliminar todas las líneas en blanco de nuestro archivo de texto1 utilizaríamos el siguiente comando:

sed -e '/^$/d' texto1

Lo único que hemos cambiado en el comando es la expresión regular /^$/ esta expresión quiere decir todas las líneas que estén en blanco. Muy útil cuando queremos ver un archivo que tiene muchas líneas en blanco y queremos compactar todo para verlo mejor.

Otro comando útil es para eliminar los comentarios que comienzan normalmente con # en los archivos de configuración para eliminarlos ejecutamos:

sed -e '/^#/d' /etc/services | less

Esto elimina todas las líneas que comienzan con #. No se preocupen por modificar el archivo como les dije anteriormente sed imprime el resultado en la salida estándar (stdout) y no en el archivo.

Vamos a dar un pequeño repaso de expresiones regulares.

Las expresiones regulares son un grupo de caractéres y reglas que sirven para filtrar patrones de letras, números, símbolos y condiciones como por ejemplo al principio de la línea o al fina, un caracter o varios, etc.

Caracteres especiales:

Caracter Descripción
^ Corresponde al inicio de la línea
$ Corresponde al final de la línea
. Filtra un sólo caracter
* Filtra cero o más caracteres
[] Filtra todo el rango dentro de los []

Para entender un poco mejor vamos a ver unos ejemplos todos estos los pueden colocar dentro de las ‘ ‘ en el comando sed para filtrar según sea el caso:

Expresión Regular Descripción
/./ Filtra cualquier línea que tenga al menos 1 caracter
/…/ Filtra cualquier línea que tenga al menos 3 caracter
/^#/ Filtra cualquier línea que comience con #
/^$/ Filtra cualquier línea en blanco
/)$/ Filtra cualquier línea que termine con ‘)’ (sin espacios)
/) *$/ Filtra cualquier línea que termine con ‘)’ seguido por cero o más espacios
/[xyz]/ Filtra cualquier linea que contenga las letras ‘x’ ‘y’ o ‘z’ en minúsculas
/^[DEF]/ Filtra cualquier línea que comience con ‘D’, ‘E’ o ‘F’


Imprimir línea o conjuntos de líneas

Hasta ahora solo hemos borrado líneas pero que tal si queremos que imprima las líneas que coinciden con nuestro filtro. Vamos a ver un ejemplo supongamos que queremos imprimir las líneas que comienzan con d y e minúsculas entonces ejecutamos lo siguiente:

sed -n -e '/^[de]/p' texto1

Tenemos dos elementos nuevos en nuestro comando, el primero es la opción -n que hace que sólo se imprima lo que coincida con nuestro filtro y hemos cambiado el comando ‘d’ por el comando ‘p’ (print) que dice que imprima el espacio del patrón.

Si ejecutan el comando anterior deberían obtener sólo dos líneas.

Más de Expresiones Regulares

Ahora vamos a hacer algo más complejo vamos a mezclar dos expresiones regulares, supongamos que de nuestro archivo texto1 queremos imprimir desde la línea que comienza con Vivimos hasta la línea que finaliza con tecnología. para esto ejecutamos:

sed -n -e '/Vivimos/,/tecnología/p' texto1

Cuando se utiliza de esta forma sed filtrará cualquier línea que comience con la primera expresión, en este caso ‘Vivimos’, hasta que consiga la siguiente expresión, en este caso ‘tecnología’, esto nos permite imprimir bloques de texto delimitados por ciertas palabras o expresiones.

Por último si para cualquiera de los comandos anteriores queremos guardar el resultado en un nuevo archivo en vez de que sólo lo imprima en pantalla debemos redireccionar la salida (>) hacia el nuevo archivo por ejemplo:

sed -n -e '/Vivimos/,/tecnología/p' texto1 > texto2

Lo que acabamos de ver es lo básico de sed aún queda mucho más por descubrir y lo veremos en la parte 2 y 3 de esta serie.

Cualquier duda o sugerencias por favor dejen su comentario

Saludos

Olivers De Abreu

Director Vensign

Muchas veces nos pasa que cuando migramos un servidor o una aplicación a un nuevo servidor cambia la dirección IP y ya sea porque nuestros servidores DNS aún apuntan a la vieja dirección o nuestros clientes no han actualizado la IP en sus PC todavía apuntan al viejo servidor.

En este tutorial vamos a ver en 3 pasos sencillos como redireccionar el tráfico de nuestra red a una nueva IP utilizando IPtables con las reglas de NAT.

Les recuerdo que para ejecutar estos comandos necesitan tener privilegios de administrador (root). En caso que utilices Ubuntu debes colocar sudo al principio de cada comando.

Voy a suponer que no tienes echa ninguna regla en la tabla nat que afecte el PREROUTING o el POSTROUTING.

Vamos a comenzar

1. Habilitar el IP Forwarding

El IP Forwarding sirve para darle capacidad de Router a nuestro servidor es decir que pueda recibir y reenviar los paquetes por una o varias interfaces, ya sea que realice una transformación de dichos paquetes o no.

Para esto solo tenemos que ejecutar el siguiente comando:

echo "1" > /proc/sys/net/ipv4/ip_forward

También podemos ejecutar:

sysctl net.ipv4.ip_forward=1

Luego de esto tenemos que reniciar nuestro servicio de red ejecutando:

/etc/init.d/networking restart

Nota: En algunas distribuciones es network y no networking

También puedes ejecutar en algunas distribuciones como Fedora, CentOS, RedHat:

service network restart

2. Crear reglas en IPtables

Voy a suponer que la dirección IP del servidor viejo es 5.5.5.5 y la queremos redireccionar a la IP nueva 7.7.7.7 con el puerto 9999.

iptables -t nat -A PREROUTING -p tcp --dport 9999 -j DNAT --to-destination 7.7.7.7:9999

Esta primera regla redirecciona todo lo que entre por el puerto TCP 9999 a la dirección 7.7.7.7 puerto 9999 esta es una regla de PREROUTING que afecta a la tabla nat (-t nat) de IPtables. Si quisieras redireccionarlo a un puerto diferente solo tienes que cambiar 7.7.7.7:#puerto al que quieras, también tienes que estár pendiente si el puerto es tcp o udp.

La segunda regla es para enmascarar la dirección IP, de modo que el servidor nuevo va a ver como si todas las peticiones vienen de la IP 5.5.5.5:

iptables -t nat -A POSTROUTING -j MASQUERADE

3. Listo

Ya puedes probar que tus reglas están funcionando, con una PC que apunte al viejo servidor prueba que te responde el nuevo servidor, puedes hacer un tracert. Tambien puedes hacer un tcpdump en el nuevo servidor y ver que todas las peticiones están llegando del viejo servidor.

Otras opciones

Puedes modificar la regla de PREROUTING para otros casos por ejemplo:

Redireccionar el tráfico que viene de una IP específica:

iptables -t nat -A PREROUTING -s 10.1.1.15 -p tcp --dport 9999 -j DNAT --to-destination 7.7.7.7:9999

Redireccionar el tráfico de un segmento de red:

iptables -t nat -A PREROUTING -s 10.1.1.0/24 -p tcp --dport 9999 -j DNAT --to-destination 7.7.7.7:9999

Redireccionar el tráfico que llegue por una interfaz específica:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9999 -j DNAT --to-destination 7.7.7.7:9999

Y cualquier mezcla de los anteriores para más información puedes ver las páginas man de iptables:

man iptables

O ver este tutorial de IPtables muy completo en inglés.

Este tutorial está basado en el tutorial How-To: Redirecting network traffic to a new IP using IPtables que está hecho por chantra, con algunas mejoras y cambios.

Espero que les sirva cualquier duda o comentario no duden en escribir

Saludos

Olivers

Si quieres recibir notificaciones de cuando se publican nuevos artículos y tutoriales en Vensign por favor subscribete a nuestro boletín RSS.

En este mini tutorial les voy a explicar como pueden cambiar y recuperar la clave de root y otros usuarios en MySQL.

Cambiar la clave usando mysqladmin

Si no existe la clave de root para MySQL y nunca la han colocada pueden cambiarla simplemente ejecutando el comando:

Continuar

Samba es un programa de código abierto que permite compartir archivos e impresoras desde una computadora Linux hacia una computadora con MS Windows, como si fuera una mas de ella, lo cual es muy util ya que podemos tener un servidor de archivos y de impresión basado en Linux colocado en una red donde se conectan PC con Windows.

La página oficial de Samba la puedes encontrar aquí.

Si tienes Ubuntu o Debian instalado puedes encontrar el tutorial aquí.

Lo primero que vamos a hacer es instalar Samba en nuestra computadora con Fedora, para esto debes tener privilegios de root, ejecutamos el siguiente comando en el shell:

Continuar

Actualización: Existe una versión más nueva de este tutorial para Fedora 12 lo pueden encontrar aquí:

Como instalar un Servidor LAMP en Fedora 12 paso a paso

Un servidor LAMP se refiere a la mezcla de Linux+Apache+Mysql+PHP en este caso les voy a mostrar como configurar un servidor con los siguientes componentes:

  • Apache 2 – Servidor Web de Linux
  • MySQL 5 – Servidor de base de datos MySQL
  • PHP4/5 – Lenguaje interpretado PHP
  • phpMyAdmin – Software de administración de base de datos via web

Nota: esta instalación es realizada para Fedora Core 7 (funciona también para Core 6 y Core 8 ) la instalación para Debian y Ubuntu la puedes encontrar aquí.

Continuar