Configuracion de un Firewall en Linux

Imagen

 Actualmente en una empresa o en nuestro mismo hogar todos los equipos electrónicos sean o no informáticos pueden estar conectados entre si lo que conlleva a la implementación de redes en nuestros hogares o empresas, en algunos lugares la información que se maneja es mas importante que en otros, si el caso fuera que la información manejada en nuestro hogar o ya sea una empresa en la que trabajemos o nuestra propia empresa, sea de vital importancia y sea totalmente confidencial y nuestro objetivo es tener privacidad de nuestros datos y evitar ataques informáticos mal intencionados se puede lograr, a través de un firewall o cortafuegos en español, con la finalidad de tener seguridad informática y proteger nuestro datos y la información que en ellos se interpreta, también se puede utilizar para restringir nuestra red local como seria un ejemplo limitar a que solo ciertas aplicaciones puedan salir a la internet.

En este caso se hará la configuración manualmente y en otro post se hará con un software de licencia libre especializado para esta tarea.

¿Que es un Firewall?

Un firewall es un conjunto de tecnologías usadas para gestión control y seguridad de entradas y salidas de datos en una red.

  • controla el tipo de tráfico entre redes
  • asegura el acceso a equipos y servicios
  • fuente de información para el admin de la red.

Se detallara los pasos a seguir para configurar una red de diferentes maquinas virtuales utilizando una de ellas como firewall de la red, todo este proceso se hizo con la ayuda del compañero Yorman Castellanos estudiante de la UNET.

Para ello utilizaremos el siguiente diagrama:

Imagen

 Paso 1: Configurar maquinas virtuales

Configuraremos 2 maquinas virtuales en este caso para ello utilizamos una maquina con el sistema operativo Debian y otro con el sistema operativo Ubuntu.

La maquina con Ubuntu será la maquina que funcione como router y firewall esta tendrá 2 interfaces de red un en modo host-only en este caso eth0 y la otra interfaz en modo NAT la eth1

La maquina con Debian representara un equipo dentro de nuestra red local que solo tendrá una interfaz de red en modo host-only y estará regida de acuerdo a las reglas configuradas en la maquina que contiene el firewall

en las imagenes se muestra como se configuraron las interfaces de ambas VM con VMWare

Imagen

Imagen

 Paso 2: Configurando NAT

La maquina que utilizaremos como firewall con el sistema operativo Ubuntu le aplicaremos la configuración del NAT

para ello primero denegamos todos los permisos con los siguientes comandos:

# /bin/bash

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

#borrar reglas

iptables -F
iptables -Z
iptables -X

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -i eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i eth1 -p icmp -j ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -m state --state NEW -j DNAT --to 192.168.237.133
iptables -t nat -A PREROUTING -p tcp --dport 21 -i eth0 -m state --state NEW -j DNAT --to 192.168.237.133
iptables -t nat -A PREROUTING -p tcp --dport 22 -i eth0 -m state --state NEW -j DNAT --to 192.168.237.133
iptables -t nat -A PREROUTING -p tcp --dport 1024 -i eth0 -m state --state NEW -j DNAT --to 192.168.237.133

echo "Finalizado con exito"

con este script logramos dar permisos a protocolos como ftp y http que son los requeridos para poder acceder a la maquina con el servidor apache (maquina Debian) y su salida a FTP

 Paso 3: Configurando Debian.

para configurar la maquina con el sistema operativo debian utilizaremos los siguientes comandos:

#/bin/bash/

#150.187.65.3

route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.237.131

#borrar reglas

iptables -F

iptables -Z

iptables -X

#politicas por defecto

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP

#reglas

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -i eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i eth0 -p icmp -j ACCEPT

iptables -A INPUT -i eth0 -p tcp –dport 21 -j ACCEPT

iptables -A INPUT -i eth0 -p tcp –dport 22 -j ACCEPT

#iptables -A INPUT -i eth0 -p tcp –dport 80 -j ACCEPT

iptables -A INPUT -i eth0 -p tcp –dport 1024 -j ACCEPT

echo “Finalizado con éxito”

aquí daremos permisos para que la maquina permita la entrada de http y la salida de ftp para los fines de la practica.

Esta maquina tendrá configurado un servidor apache para lo cual se necesita realizar los siguientes pasos a continuación:

sudo apt-get install apache2

/etc/init.d/apache2 start

Ya tenemos configurado un firewall en linux de forma manual que comparte internet y restringe la navegación solo al puerto 80 del servidor apache y la salida al FTP unet ftp.unet.edu.ve

de macs03

Configuración de Apache y SSH en linux con IPv6

¿Que es Apache?

 

El servidor HTTP Apache es un servidor web HTTP de código abierto, para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.12 y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y “civilizasen” el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. En inglés, a patchy server (un servidor “parcheado”) suena igual que Apache Server.

 

Wikipedia.

Instalación:

 

Para proceder a instalar el servicio de servidor apache se debe descargar los archivos desde la consola con los siguientes comandos:

 

como súper usuario:

apt-get install apache2

como usuario:

sudo apt-get install apache2

Configuración:

 

Apache viene configurado para trabajar con el protocolo de internet versión 4 y para la versión 6 también pero solo las direcciones locales en esta versión, para lo cual se deben configurar las direcciones diferentes a la del host local, en este caso habilitaremos una dirección global 2001:db8:2000::1/64 para ello esta dirección debemos habilitarla en la interfaz correspondiente ya sea eth0 o fw1 o la correspondiente antes de eso debemos configurar el navegador que utilicemos para las pruebas para que lea direcciones ipv6 en un paso previo.

 

Paso previo:

 

Habilitar firefox y Google Chrome para ipv6

 

En Firefox:

 

En la barra de direcciones scribiremos los siguiente “http:// about:config” y modificar la configuración de “network.dns.disableIPv6” que puede estar en “true” cambiarla a “false”

 

En Chrome:

 

para activar el ipv6 en chrome seguiremos estos 3 pasos:

 

1. Escribir en el campo de direcciones lo siguiente about:net-internals luego nos aparacera una pagina nueva en la que vamos a visualizar un menu que nos lleva al paso siguiente.

2. Del menu que podemos visualizar escogeremos la opcion de DNS, en ella nos aparecera una breve informacion de como nuestro host o nuestro dispositivo resuelve las direcciones.. generalmente esta desabilitado la opcion de ipv6, es decir, saldra como disable y nos lleva al siguiente paso.

  1. Cambiar de Disable a Enable la opcion de Ipv6 esto cambiara a Default address family: UNSPECIFIED lo que nos indica que reconocera tanto direcciones ipv4 como direcciones ipv6

 

Paso 1.

 

Configurar en la interfaz etho o fw1 la dirección ipv6 global q utilizaremos

 

Lo podremos hacer con el comando ifconfig y seria con el siguiente comando.

 

Ifconfig eth0 inet6 add 2001:db8:2000::1/64

 

y con esto ya tendremos disponible en esa interfaz esta dirección.

Paso 2.

 

Configurar el archivo apache2.conf para que escuche nuestra nueva dirección.

 

El archivo apache2.conf se encuentra en la siguiente direccion /etc/apache2/apache2.conf para editarlo y configurarlo lo haremos con el siguiente comando “nano” pero antes de ello es recomendable hacer un respaldo de este archivo ya que en el se ecuentra toda la informacion de configuracion de este servicio.

 

Como super usuario

 

nano /etc/apache2/apache2.conf

 

y en el agregaremos lo siguiente:

 

Listen [2001:db8:2000::1]:8080

 

Cabe destacar que este servicio utiliza el puerto 80 para las comunicaciones web nosotros en esta nueva configuración usaremos el puerto 8080

Paso 3:

 

Configuración del virtual host.

 

En la dirección del apache /etc/apache2 hay una serie de carpetas nos enfocaremos en la carpeta “sites-enabled” y dentro de ella encontraremos un archivo “000-default” lo editaremos como super usuario con el siguiente comando.

 

nano /etc/apache2/sites-enabled/000-default

 

y editaremos lo siguiente.

 

<VirtualHost [2001:db8:2000::1]:8080>

#Configuracion

</VirtualHost>

 

en la configuración usaremos la misma configuración que para ipv4 ademas le agregaremos lo siguiente.

 

ErrorLog “/var/log/apache2/ipv6.error.log”
CustomLog “/var/log/apache2/ipv6.access.log” common

Paso extra:

 

Cabe destacar que los archivos se guardan en la pagina www ubicada en la dirección /var/www allí podremos guardar nuestros archivos y esta el archivo index.html que muestra que el apache esta trabajando.

Si queremos que nuestro sitio con direccionamiento ipv6 tenga un nombre de dominio como por ejemplo www.prueba.com haremos el siguiente paso, en la direccion /etc/hosts entraremos y editaremos lo siguiente:

 

como super usuario:

nano /etc/hosts

y agregaremos lo siguientes:

 

[2001:db8:2000::1] www.prueba.com

 

así podremos acceder a nuestra pagina con esa dirección.

 

Finalizado todo esto solo debemos reiniciar nuestro servidor web apache para ello se hace con el siguiente comando.

 

/etc/init.d/apache2 restart

 

tambien tenemos comandos para detenerlo e iniciarlo como lo son.

 

/etc/init.d/apache2 start

/etc/init.d/apache2 stop

 

Instalación y Configuración en ipv6 de SSH en Linux

 

¿Que es SSH?

 

SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo.

Además de la conexión a otros dispositivos, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH.

Wikipedia

Instalación:

 

Para proceder a instalar el servicio de SSH se debe descargar los archivos desde la consola con los siguientes comandos:

 

como súper usuario:

apt-get install ssh

como usuario:

sudo apt-get install ssh

Configuración:

 

Paso 1:

 

Para iniciar o parar el servicio SSH se utilizan los siguientes comandos.

 

Como super usuario:

 

/etc/init.d/ssh start

/etc/init.d/ssh stop

Paso 2:

 

Generar las claves de acceso tanto publicas como privadas.

 

Se generan 2 tipos de clave el cual genera 2 archivos uno para la clave privada y el otro para la clave publica, el servidor SSH utilizara la clave publica para que cualquier hosts q tenga autorización pueda conectarse a el.

 

Para utilizar la clave lo haremos como el usuario que la va a utilizar, y se emplea la siguiente linea de comando.

 

Como usuario:

 

ssh-keygen -t rsa

 

aceptaremos la carpeta que nos aparce como “home ~/.ssh/id_rsa” paso seguido nos solicita la clave y genera los 2 archivos anteriormente mencionados, luego se modifican los permisos para el servicio con la siguiente linea de comando.

 

Chmod 755 ~/.ssh

Paso 3:

Prueba de conexión al servicio SSH en Ipv6

 

Dado que ya tenemos configurada en nuestra interfaz eth0 una dirección Ipv6 diferente a [::1] como lo es [2001:db8:2000::1] procederemos a hacer una conexión al servicio de la siguiente manera

 

como usuario:

 

ssh 2001:db8:2000::1

 

Luego nos pedirá la clave o passphrase luego de autenticarnos ya podremos manejar la shell del servidor hacer transferencias de archivos entre otros servicios que nos ofrece.

Deshabilitar ipv4

 

para hacer las pruebas solo utilizando la Ipv6 tendremos que desactivar Ipv4 lo cual se puede hacer por medio del entorno gráfico de la siguiente manera.

 

Paso 1:

Ubicaremos la ventana de configuración del sistema

Paso 2:

Seleccionaremos el icono de Red

 

 

Paso 3:

Entraremos en las opciones de la interfaz q estamos utilizando luego iremos a ajustes de ipv4

 

Paso 4:

En método seleccionaremos inhabilitado y salvaremos todo de esta manera quedara desactivado ipv4.

 

de macs03

Activando ipv6 en google Chrome

ipv6

Anteriormente se habia explicado como activar el ipv6 en el navegador firefox gracias a la ayuda de la comunidad mozilla hispano.

Pues ahora con un poco de investigacion en la internet he encontrado como hacer el mismo procedimiento pero esta vez para activar el ipv6 en el google chrome. Los pasos son los siguientes:

1. Escribir en el campo de direcciones lo siguiente about:net-internals luego nos aparacera una pagina nueva en la que vamos a visualizar un menu que nos lleva al paso siguiente.

2. Del menu que podemos visualizar escogeremos la opcion de DNS, en ella nos aparecera una breve informacion de como nuestro host o nuestro dispositivo resuelve las direcciones.. generalmente esta desabilitado la opcion de ipv6, es decir, saldra como disable y nos lleva al siguiente paso.

3. Cambiar de Disable a Enable la opcion de Ipv6 esto cambiara a Default address family: UNSPECIFIED lo que nos indica que reconocera tanto direcciones ipv4 como direcciones ipv6.

Ya con estos 3 pasos nuestro navegador google chrome estara listo para trabajar con direcciones de la nueva generacion del protocolo ip

de macs03 Etiquetado como
ipv6

Ip v6 en Mozilla FireFox

ipv6

Desde hace ya untiempo en varios paises mas que todo asiaticos se ha venido migrando de Ipv4 a Ipv6 lo que nos brinda una gran cantidad de direcciones ip, como se sabe en los paises asiaticos todo esta interconectado desde una cafetera hasta el mismo vehiculo en el que se transportan a diario. Por eso Mozilla con su navegador Web FireFox no se queda atras y ya nos enseña como poder activar dichas direcciones Ipv6 y asi poder acceder a ellas escribiendo en la barra de direcciones  una direccion Ipv6 validad en mozilla hispano nos lo explican de mejor manera…

En estos días está sien
do activado en Internet la nueva versión del protocolo IP, que permitirá que haya cientos de miles de millones de direcciones IP que nos dará una cantidad de IPs tan grande que nos permitirá conectar la cama, la mesa de la cocina, y hasta l
a ducha a internet de cada persona del mundo si así lo deseamos.

Para poder acceder a paginas usando una IPv6 desde Firefox debemos dirigirnos a la dirección http://about:config y modificar la configuración network.dns.disableIPv6 y pasarla de True a False

De esta manera podremos acceder a direcciones IPv6 desde la barra de direcciones. Por ejemplo, para acceder a mi propia máquina al puerto 80 deberé escribir http://[::1]:80

aki se les deja el enlace de mozilla hispano para tener mayor informacion

access point

http://www.mozilla-hispano.org/activando-ipv6-en-firefox/

de macs03