Mostrando las entradas con la etiqueta firewalls. Mostrar todas las entradas
Mostrando las entradas con la etiqueta firewalls. Mostrar todas las entradas

17/11/07

sistemas de seguridad : firewalls

Una vez sabiendo cuales son los servicios con los que dispone nuestro sistema, entonces podremos decidir cuales de ellos son accesibles y cuales no. Bueno en realidad el problema es un poco mas complicado ya que cuando nuestro sistema se encuentra en medio de dos redes tendremos que decidir desde que red sera accesible un servidor y desde cual no. Pero eso mas que nada es problema de planificación, por lo que tendremos que pensar un poquito mas y estructurarlo tranquilamente ( siempre ayuda el papel y el lápiz =D ).
Una de las herramientas de seguridad que podemos utilizar son los famosos firewalls que no es nada mas que un sistema que nos permite definir reglas a evaluar cuando un paquete de red pasa por nuestro host. Ya hablando de paquetes que están en nuestro host hay tres situaciones diferentes que podemos evaluar .

1. Un paquete que sale de nuestra maquina y que sale hacia otra
2.Un paquete externo que viene desde otra maquina, pero tiene un destino que no es nuestra maquina.
3.Un paquete de origen externo que viene de otra maquina con destino ala nuestra.

Entonces lo que nos permite hacer un firewall es abrir o no las puertas, la salida o llegada de estos paquetes. Por ejemplo una de las reglas mas típicas de los firewalls escrita con simples palabras es la siguiente “ si llega un paquete desde internet con destino al puerto 80 de mi maquina, entonces, no dejarlo pasar”.

Ahora bien lo que tenemos que hacer es adecuar las reglas necesarias de firewall a nuestro sistema. Hay muchas formas, técnicas y combinaciones posibles de instalar un firewall.

Ahora veremos IPTABLES que como su nombre nos dice trabaja con tablas, y estas tablas trabajan con unas cadenas de reglas echas por nosotros.
Hay tres cadenas INPUT, OUTPUT y FORWARD, estas son cadenas para definir reglas para lo que ingresa, lo que sale y lo que pasa por nuestro sistema.

Esta es una forma básica del comando iptables.

iptables [definición] [cadena] [opción] [acción]

El parámetro [definición] es un parámetro general, ademas que es seguido de las especificaciones de cadena. En esta parte hay varias opciones posibles como :

A --> para agregar una nueva regla ala cadena
D --> para borrar la regla
L --> para visualizar la lista de reglas definidas

En el parámetro [opciones] es donde definimos los filtros.



todo lo que sale a internet
todo lo que biene desde la ip 200.133.145.12 hacia mi maquina:80
todo lo que sale de mi maquina hacia la ip 200.133.145.12

En la parte de [acción] se pone lo que tiene que hacer cuando una regla se cumple, ya sea permitirla o rechazarla.

Vamos a ver unos cuantos ejemplos para facilitar esto.

iptables -A INPUT -tcp –dport 80 -j ACCEPT

Con este ejemplo creamos una regla con [-A] para la cadena [INPUT] en la cual definimos que todo lo que entre por el puerto [80] del protocolo [TCP] sea [-p tcp –dport ] aceptado [-j AECCEPT].

ojo: siempre requiere el parametro -p para saber aque protocolo referirse la regla.

iptables -A INPUT -p icmp -j DROP

Con este ejemplo filtramos y descartamos todo lo que ingresa por el protocolo ICMP a nuestra maquina.

iptables -A OUTPUT -p tcp -d 192.168.44.4 -j REJECT

En este ejemplo en lugar de definir una regla de firewall para todo lo que entra, lo hicimos para lo que sale de nuestra maquina y se dirige a la ip 192.168.44.4 ,
esta acción [REJECT] rechaza dicho paquete y como no definimos ningún puerto rechazara todo.

Podemos utilizar una política de funcionamiento, que consiste en en rechazar todo lo que entra y después crear nuestras reglas excepcionales para dicha politica.



iptables -P INPUT DENY -------> denegamos TODO
iptables -A INPUT -p tcp –dport 23 -j ACEPT ------->abrimos lo que necesitemos
iptables -A INPUT -p tcp –dport 80 -j ACEPT

De esta forma tenemos nuestro sietema con unos pocos puertos abiertos.



-------> -A (crear regla)
-------> -D (Borramos regla)
-------> INPUT (ingreso)
-------> OUTPUT (egreso)
-------> FORWARD (paso)
-------> -p (definimos protocolo)
-------> --dport (definimos puerto)
-------> -s (definimos fuente)
-------> -d (destino)
-------> -i (dispositivo de red)
-------> ACCEPT (aceptar)
-------> DROP (descartar)
-------> REJECT (rechazar)

iptables -L -------> vemos el listado de als reglas que tenemos definidas.

iptables -F -------> hacemos un borrado a todas las listas definidas.

Para guardar las reglas que definimos ( porque una ver apagada la maquina se pierden todas las reglas definidas y que flojera hacer las de nuevo no? ).

manera sencilla y restablecerlas diariamente.

cd /sbin --> directorio de archivos de iptables

iptables-save -c > nombre_del_archivo --> nombre que quieras

iptables-restore nombre_del_archivo --> creo que esta explicito

Si queremos que cada ves que iniciemos la maquina sola se restablezcan las reglas definidas solo has te un script.