elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
20 Julio 2008, 23:48  



+  Foro de elhacker.net
|-+  Sistemas Operativos
| |-+  GNU/Linux (Moderador: dxr)
| | |-+  Como hacer un firewall en linux 1era parte
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Imprimir
Autor Tema: Como hacer un firewall en linux 1era parte  (Leído 3308 veces)
enygma

Desconectado Desconectado

Mensajes: 43


TE AMO PAPI... Ab imo pectore amor meum tibi offer


Ver Perfil
Como hacer un firewall en linux 1era parte
« en: 10 Noviembre 2005, 04:20 »

Bueno como veo que muchos se estan animando a instalar y probar linux (tux rulz) se me ocurrio el hacer una mini guia sobre como poner un pokito de seguridad en su pc aprovechando algunas herramientas k nos ofrece nuestro propio kernel.
Asi k aki explicare algunas reglas y una forma facil de configurar un firewall para Linux usando iptables.

Bueno iptables viene siendo una aplicación de nuestro propio kernel (apartir del 2.4.x antes se llamaba ipchains 2.2.x) y nos sirve para administrar el filtrado de packetitos que entran y salen de nuestro sistema, ahora bueno todos saben bien lo k es un firewall asi que empezaremos ha hacer uno para nuestra pc.


Lo primero que vamos a hacer es irnos a nuestro kernel y ha activar los modulitos que necesitemos haciendo un make config ahí tenemos que activar los siguientes modulos:
Código:
CONFIG_PACKET
CONFIG_NETFILTER
CONFIG_IP_NF_CONNTRACK
CONFIG_IP_NF_FTP
CONFIG_IP_NF_IPTABLES
CONFIG_IP_NF_MATCH_LIMIT
CONFIG_IP_NF_MATCH_MAC
CONFIG_IP_NF_MATCH_MARK
CONFIG_IP_NF_MATCH_MULTIPORT
CONFIG_IP_NF_MATCH_TOS
CONFIG_IP_NF_MATCH_TCPMSS
CONFIG_IP_NF_MATCH_STATE
CONFIG_IP_NF_MATCH_UNCLEAN
CONFIG_IP_NF_MATCH_OWNER
CONFIG_IP_NF_FILTER
CONFIG_IP_NF_TARGET_REJECT
CONFIG_IP_NF_TARGET_MIRROR
CONFIG_IP_NF_NAT
CONFIG_IP_NF_TARGET_MASQUERADE
CONFIG_IP_NF_TARGET_REDIRECT
CONFIG_IP_NF_TARGET_LOG
CONFIG_IP_NF_TARGET_TCPMSS
CONFIG_IP_NF_COMPAT_IPFWADM
Lo ideal es cargar todos estos modulos y complilarlos en el kernel ya que muchos de estos son necesarios para el funcionamiento del script rc.firewall.

Ya hecho esto bueno y dandole un pokito de orden al asunto nos vamos a

Código:
/etc/rc.d/iptables

Ahí nos vamos para arrancar el servicio de iptables y para indicarle en que niveles de ejecución debe arrancar el servicio cuando prendamos nuestra pc.

Ahí le indicamos
Código:
chkconfig --level 235

Código:
iptables on
Código:
service iptables start

Y listo ya tenemos nuestro servicio de iptables corriendo desde k prendemos nuestra makina a nivel multiusuario sin NFS, en modo completo y en modo grafico.


Bueno ya tenemos corriendo el servicio asi que es hora que empezemos a crear nuestras reglas, lo primero que tenemos que conocer es que iptables tiene 3 tipos de tablas Filter, Nat y Mangle, por ahora utilizaremos unicamente la tabla Filter mas adelante iremos complementando la información para utilizar las otras tablas.
Ahora empezaremos conociendo la sintaxis y los principales comandos para hacer nuestras reglas de iptables.

Principales comandos:
Código:
-A  lo usamos para añadir una regla.
-D lo usamos para borrar alguna regla
-R lo usamos para reemplazar alguna regla
-I lo usamos para insertar una regla en una cadena
-L lo usamos para desplegar la lista completa de reglas ( osease nos da la lista de reglas)
-F lo usamos para eliminar todas las reglas
-Z lo usamos para iniciar desde 0 los contadores de una cadena
-N lo usamos para crear una nueva cadena
-X lo usamos para eliminar una cadena
-P lo usamos para indicar la politica de alguna cadena
-E lo usamos para cambiar el nombre de una cadena
Si tienen alguna duda sobre estos comandos es simple solo ponen en su consola

Código:
Iptables –h
y se desplegara la ayuda con un pekeño glosario y sintaxis de las reglas.

Ahora veremos rapido un glosario sobre las comparaciones para ya arrancar con la creación de nuestras reglas:
Código:
-p Lo usamos para indicar el protocolo ya sean tcp, udp, icmp
-s Lo usamos para indicar la ip de origen
-d Lo usamos para indicar la ip de destino
-i Lo usamos para indicar la interfaz ( si es eth0 etc)
-f Lo usamos para indicar que hablamos de un pakete fragmentado
-j Lo usamos para indicar que hacia donde se enviara el paketito
-m Lo usamos para indicar cual sera la comparación k usaremos para la regla
Comparaciones
Código:
-- dport  Lo usamos para indicar puerto de destino
-- limint Lo usamos para limitar el registro de actividad de reglas especificas.
-- state  Lo usamos para indicar una regla según el estado de la conexión

Código:
INPUT  Lo usamos para indicar que la regla se basa en los paketes entrantes
OUTPUT Lo usamos para indicar que la regla se basa en los paketes k salen.
DROP Lo usamos para indicar que el pakete sera eliminado
ACCEPT Lo usamos para indicar que el pakete sera admitido y pasara por el firewall
REJECT Lo usamos para indicar que se rechazara cualquier tipo de pakete
LOG Lo utilizamos para indicar que ese trafico debera de almacenarse en nuestro syslog.

SINTAXIS PARA LA CREACION DE REGLAS

Código:
iptables -tabla -[opciones] [regla] [criterio] -j [acción]

Y bueno ahora si ya tenemos mas que suficiente para iniciar con la creación de nuestro firewall lo primero que vamos a hacer sera decirle a nuestro sistema que no nos interesa recibir trafico del protocolo icmp asi evitaremos la respuesta al ping y en algunos casos nos llegamos a prevenir el barrido de puertos ya que nuestro sistema no respondera nada para crear esta regla vamos a tomar en cuenta los tipos de icmp k existen según su datagrama asi k les recomiendo k cheken esta tablita:

Código:
0 echo-reply Respuesta a eco
3 destination-unreachable Destino inaccesible
4source-quench Disminución del tráfico desde el origen
5 redirect Redirección
8 echo-request Solicitud de eco
11 time-exceeded Tiempo superado
12 parameter-problem Problema de parámetros
13 timestamp-request Solicitud de marca de tiempo
14 timestamp-reply Respuesta de marca de tiempo
15 none Solicitud de información
16 none Respuesta de información
17 address-mask-request Petición de máscara de dirección
18 address-mask-reply Respuesta de máscara de dirección
Bueno ya que chekaron los tipos de datagrama para icmp haremos la siguiente regla:

Código:
iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j DROP

si revisamos la sintaxis de esta regal veremos k primero para hacer cualkier regla tenemos k indicar la palabra iptables despues al no indicar la tabla ( en este caso filter) el sistema toma por default k nos referimos a la tabla filter despues vemos la palabra INPUT donde estamos indicandole que hablamos de conexiones de entrada despues le indicamos la interfaz en este caso eth0 ( en terminos mortales le estamos diciendo a nuestro firewall k nos referimos a cualkier pakete k entre por nuestro cable o sea conexion a internet) despues le estamos indicando el protocolo en este caso estamos hablando de icmp y a la vez estamos haciendo una comparación cuando ponemos –icmp-type donde indicamos el tipo de datagrama del protocolo después le estamos indicando a nuestra regla k hacer con esos paketes en este caso lo enviamos ala basura.

Bueno ya k hicimos nuestra regla simplemente damos enter y ea ea se cargo a nuestro firewall ahora para asegurarnos k esta ahí solo tecleamos:

Código:
Iptables –L

Y nos debera salir algo como esto:
Código:
target     prot opt source               destination
DROP    icmp --  anywhere           anywhere            icmp echo-request
Hasta aqui todo cool o sea como pueden ver no es tan dificil hacer reglas asi k les recomiendo k hagan una regla para cada tipo de datagrama unicamente sustituyendo el numero ya que la sintaxis sera la misma, pero bueno ahora vamos a hacer otra regla, ahora vamos a indicarle a nuestro firewall k no nos interesa el trafico k entra desde internet con direcciones reservadas como son 127.0.0.0 etc.

Asi k ahora haremos lo siguiente:

Código:
iptables -A INPUT -i eth0 –p tcp -s 10.0.0.0/8  -j LOG

primero le indicamos a nuestro firewall k debemos guarder un registro o sease un log de la actividad y trafico creado entrando de internet hacia esa ip

Código:
iptables -A INPUT -i eth0 –p tcp -s 10.0.0.0/8  -j DROP

despues le indicamos k una vez logueada esta informacion no nos interesa el trafico k genere asi k la enviamos a la basura.

Esta regla debemos aplicarla a las direcciones internas como son:
Código:
127.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Y ahora algunos se preguntaran pork en unas direcciones usamos /8 y en otras otro numero bueno es simple ese numerito es el numero de bits k va a saltar y bueno esto esta basado en las tablas generalmente usadas en mascaras de red, ahí busken algo de info en google o si kedan dudas en otro post abrire una explicación breve con los valores habituales de las mascaras.

Y bueno hasta aki vamos bien si keremos ver las reglas k hemos hecho bueno ya saben k poner como anteriormente mencione.

Ahora hagamos otra regla util esta vez vamos a decirle a nuestro firewall k no keremos aceptar ningun tipo de paketes fragmentados ( o sea paletitos k son divididos en 2 o 3 pasan por nuestro sistema pero no se puede leer el header y ya dentro de nuestro sistema se ensamblan) digo nunca esta de mas una regla pork no sabemos k rayos se pueda ensamblar ya k paso a nuestro sistema asi k haremos lo siguiente:

Código:
Iptables –A INPUT –i eth0 –p all –f –j DROP

Y listo ahi estamos enviando todos los paketes fragmentados k lleguen a nuestro sistema al basurero, al poner la palabra all estamos diciendole a nuestro firewall k no importa el protocolo siempre k sea fragmentado se ira a la basura.

Y bueno antes de aturdirlos con tanta info vamos a hacer una regla mas y dejaremos un par de dias por si surgen dudas y seguiremos con reglas utiles para la creación de nuestro firewall.

Ahora haremos una regla para evitar que haya conexiones entrantes al puerto 23 en este caso telnet jaja ya saben k luego hay haxores por ahí intentando cosas raras asi k bueno la sintaxis seria la siguiente:

Código:
iptables -A INPUT -p tcp -i eth0 -m state --state NEW,ESTABLISHED,RELATED,INVALID --dport 23 -j DROP

Bueno aki la regla es muy clara ahora vamos a fijarnos en la parte donde estamos indicando el estado le estamos diciendo a nuestro firewall k no nos interesa k sea una conexion nueva, este establecida, sea relacionada o sea invalida nosotros no keremos k nada entre de fuera hacia nuestro Puerto 23 asi k todo lo k intente entrar lo enviamos a la basura.

Si alguno de uds es algo paranoico recomiendo entonces k antes haga una regla sobre el mismo puerto pero k guarde un log para asi saber k kiso conectarse por ahí.

Y bueno aki terminamos la primera parte de esta sencilla guia, si por alguna razon se ekivocaron al hacer una regla bueno solo hagan lo siguiente la eliminan y la hacen de nuevo :)

Código:
Iptables –L – line-numbers
    aki indicamos k nos de la lista de las reglas pero enumeradas

Después damos
Código:
Iptables –D (tipo de regla ya sea INPUT o OUTPUT) [ y aki el # de la regla] damos enter y listo regla eliminada.

Espero les sea util esta mini guia y si tienen alguna duda pues a preguntar..

saludos
« Última modificación: 17 Noviembre 2005, 03:42 por enygma » En línea

Joven maligna, virgen,encendida, cerrada,te estoy viendo y amando,tu sangre alborotada.........
Slasher-K

Desconectado Desconectado

Mensajes: 1.481


Ver Perfil
Re: Como hacer un firewall en linux
« Respuesta #1 en: 10 Noviembre 2005, 04:33 »

plap plap plap (Y). Realmente una  E X C E L E N T E  guia para los que comienzan con linux y se quieren meter con la seguridad informática.

La verdad que te lo curraste lindo Enygma ;D, felicitaciones y espero que haya más de estos, ya me los estoy copiando y haciendo pdf xD.

Saludos.
En línea



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
Xpeed

Desconectado Desconectado

Mensajes: 480


Res Publica Non Dominetur


Ver Perfil
Re: Como hacer un firewall en linux
« Respuesta #2 en: 10 Noviembre 2005, 04:40 »

emmm.. ;D buehhh aunque no sé nada entendí algo y eso es porque está muy bien explicado ... enygma te luciste nena, es digno de ti  :-*

un saludo.
En línea

icisneros
GNU/Linux
Colaborador

Desconectado Desconectado

Mensajes: 1.284



Ver Perfil WWW
Re: Como hacer un firewall en linux
« Respuesta #3 en: 10 Noviembre 2005, 10:20 »

Yo ya lei el libro "Firewalls" asi que eso lo tengo más o menos aprendido, pero esta muy bien explicado! Enhorabuena!!  ;D

Saludos!!
En línea

Kalisto

Desconectado Desconectado

Mensajes: 89


escucho voces... pero ninguna palabra.


Ver Perfil
Re: Como hacer un firewall en linux
« Respuesta #4 en: 11 Noviembre 2005, 03:35 »

Muy buen tutorial enygma :*, explicado claramente. Creo que merece quedar como tema pegado :P
En línea

"El general que sabe cuando atacar hace que su enemigo no sepa cuando defenderse."
Soul Lost
GNU/Linux

Desconectado Desconectado

Mensajes: 2.452



Ver Perfil WWW
Re: Como hacer un firewall en linux
« Respuesta #5 en: 11 Noviembre 2005, 06:37 »

Muy buen tutorial enygma :*, explicado claramente. Creo que merece quedar como tema pegado :P

Agregado a FAQS y HOWTOS...
Gracías por la colaboración.. (ya estaba un tema parecido, pero uno mas no cae mal)
En línea

Siempre hay algo nuevo que aprender
Mi NUEVO BLOG: soullost.org
mordiskos

Desconectado Desconectado

Mensajes: 126



Ver Perfil
Re: Como hacer un firewall en linux
« Respuesta #6 en: 14 Noviembre 2005, 16:41 »

Wenas, el manual perfecto, excepto que yo no puedo hacer que se ejecute iptables con el sistema, he conseguido que se ejecute junto al Gnome, pero no se como hacerlo para que se inicie junto con el sistema...Ya os digo que el metodo que esta aqui puesto no me funciona, tengo Ubuntu 5.10.

A ver cuando llega la 2 parte...
En línea
Soul Lost
GNU/Linux

Desconectado Desconectado

Mensajes: 2.452



Ver Perfil WWW
Re: Como hacer un firewall en linux
« Respuesta #7 en: 14 Noviembre 2005, 20:01 »

Ya miraste si esta agregado a los demonios del sistema.. o a tu runlevel con el que arrancas.. (mirar /etc/inittab)
En línea

Siempre hay algo nuevo que aprender
Mi NUEVO BLOG: soullost.org
mordiskos

Desconectado Desconectado

Mensajes: 126



Ver Perfil
Re: Como hacer un firewall en linux
« Respuesta #8 en: 14 Noviembre 2005, 20:58 »

Wenas, el problema es que no se a que runlevel lo tengo que agregar...Vamos que no si lo tengo que poner en rc0.d, rc1.d...

Donde puedo mirar si esta agregado a los demonios del sistema???

Salu2
En línea
icisneros
GNU/Linux
Colaborador

Desconectado Desconectado

Mensajes: 1.284



Ver Perfil WWW
Re: Como hacer un firewall en linux
« Respuesta #9 en: 14 Noviembre 2005, 23:09 »

Depende en que nivel quieras ejecutarlo, por ejemplo en modo texto el nivel es el 3 y para modo grafico el nivel es el 5.

Saludos!!
En línea

_R€d_

Desconectado Desconectado

Mensajes: 1.346



Ver Perfil WWW
Re: Como hacer un firewall en linux
« Respuesta #10 en: 14 Noviembre 2005, 23:27 »

Citar
Wenas, el problema es que no se a que runlevel lo tengo que agregar...Vamos que no si lo tengo que poner en rc0.d, rc1.d...

Donde puedo mirar si esta agregado a los demonios del sistema???

Salu2

Primero deberías mirar tu /etc/inittab; y buscar cual es el nivel que se adecue mejor a tus necesidades...podrías ponerlos en los run levels de 2 a 5 (multiusuario); ya que al ser un firewall; es muy importante en la seguridad. :D

Ah, felicitaciones por el tuto enygma... ;)
En línea

Kalisto

Desconectado Desconectado

Mensajes: 89


escucho voces... pero ninguna palabra.


Ver Perfil
Re: Como hacer un firewall en linux
« Respuesta #11 en: 15 Noviembre 2005, 06:40 »

Mete el script en /etc/init.d y luego teclea:
Código:
update-rc.d iptables.sh defaults
suerte  :D
En línea

"El general que sabe cuando atacar hace que su enemigo no sepa cuando defenderse."
enygma

Desconectado Desconectado

Mensajes: 43


TE AMO PAPI... Ab imo pectore amor meum tibi offer


Ver Perfil
Re: Como hacer un firewall en linux
« Respuesta #12 en: 15 Noviembre 2005, 06:43 »

mordiskos es recomendable que lo actives dentro de los niveles
2 Nivel multiusuario NFS
3 Nivel en modo completo
5 Nivel en modo grafico

pero de acuerdo a tus necesidades deberas decidir a que nivel te funcionaria mejor.

Por cierto la segunda parte del manual esta este viernes como maximo :) es k he tenido algo de trabajo pero ya lo toy preparando.

saludos a todos y gracias por los comentarios
En línea

Joven maligna, virgen,encendida, cerrada,te estoy viendo y amando,tu sangre alborotada.........
mordiskos

Desconectado Desconectado

Mensajes: 126



Ver Perfil
Re: Como hacer un firewall en linux
« Respuesta #13 en: 15 Noviembre 2005, 07:25 »

Pues muchas gracias, cuando tenga tiempo lo pruebo.

Estoy ansioso porque llegue ya la segunda parte...

Salu2
En línea
enygma

Desconectado Desconectado

Mensajes: 43


TE AMO PAPI... Ab imo pectore amor meum tibi offer


Ver Perfil
Re: Como hacer un firewall en linux
« Respuesta #14 en: 17 Noviembre 2005, 03:17 »

:p me dieron una recomendacion para abrir la segunda parte en otro post y asi no se confundiera pero ya esta la otra parte puesta :D saludos

aki les dejo el link :D

http://foro.elhacker.net/index.php/topic,95317.0.html
« Última modificación: 17 Noviembre 2005, 03:44 por enygma » En línea

Joven maligna, virgen,encendida, cerrada,te estoy viendo y amando,tu sangre alborotada.........
Páginas: [1] 2 Ir Arriba Imprimir 
Ir a:  








Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC