elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Sistemas Operativos
| |-+  GNU/Linux (Moderador: MinusFour)
| | |-+  Denegar acceso a todos los puertos menos uno en iptables
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Denegar acceso a todos los puertos menos uno en iptables  (Leído 8,399 veces)
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Denegar acceso a todos los puertos menos uno en iptables
« Respuesta #10 en: 10 Mayo 2015, 03:51 am »

Genial!, creo que tengo un pato de goma de mi hijo en el baño xD pero si comienzo a usarlo entonces me voy a ahorrar mas de la mitad de los post en el foro y la gente que pueda tener los mismos problemas no va a encontrar una respuesta :P

Me sale mas fácil hacer un barco de papel, lo pondré al lado de mi monitor.

Al final el baneo lo hice baneando la ip por completo y luego habilitandole el acceso al puerto 22 y finalmente guardando las reglas y al final una tarea programada para eliminar las reglas.

Código
  1. <?php
  2. 'sudo iptables -I INPUT -s '.escapeshellarg($_SERVER['HTTP_WIM_REAL_IP']).' -j DROP && '.
  3. 'sudo iptables -I INPUT -p tcp -s '.escapeshellarg($_SERVER['HTTP_WIM_REAL_IP']).' --dport 22 -j ACCEPT && '.
  4. 'sudo service iptables save && '.
  5. 'echo "sudo iptables -D INPUT -s '.escapeshellarg($_SERVER['HTTP_WIM_REAL_IP']).' -j DROP ; sudo iptables -D INPUT -p tcp -s '.escapeshellarg($_SERVER['HTTP_WIM_REAL_IP']).' --dport 22 -j ACCEPT ; sudo service iptables save;" | sudo at now + '.(int)$unban_minutes.' minutes'
  6. );


En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Denegar acceso a todos los puertos menos uno en iptables
« Respuesta #11 en: 10 Mayo 2015, 04:10 am »

Lo se, simplemente dije esto porque seguro que tiene una politica en ACCEPT, desde mi punto de vista y desde el de mucha gente, es mucho mejor tener una politica en DROP, para lo que el quiere hacer.

No colocar un DROP a 1.2.3.4 y luego crear otra con un ACCEPT y el puerto.

Solo dije una recomendacion ya se que el problema no va de eso, la proxima no digo nada.

Un saludo.

No digo que una política DROP no sea mejor, es la manera en la que planteaste la solución. Si puedes usar una política DROP, pero tienes que agregar reglas ACCEPT para tus puertos.

Si usas una politica DROP:
Código
  1. iptables -P INPUT DROP
  2. iptables -A INPUT -i lo -j ACCEPT
  3. iptables -A INPUT -s 1.2.3.4 -j ACCEPT
  4. iptables -A INPUT -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  5. iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 22 -j ACCEPT
  6. iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 80 -j ACCEPT

Pero las reglas para banear las vas a tener que insertar a partir del indice 3.

Código
  1. sudo iptables -I INPUT 3 -s x.x.x.x -j DROP

Si pones tus reglas al principio de la tabla puedes perder la conexion porque el DROP pasa antes que el ACCEPT. Si pones tus reglas al final de la tabla el ACCEPT del puerto 80 hace ACCEPT antes que llegue a los drops del puerto 80. Es decir la gente que baneaste puede seguir accediendo al sistema atraves de los puertos que habilitaste.

Si usas una poltica ACCEPT:

Código
  1. iptables -P ACCEPT
  2. iptables -A INPUT -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  3. iptables -A INPUT -s 1.2.3.4 -j ACCEPT

Para banear gente, simplemente agregas al final de la tabla tu regla:

Código
  1. sudo iptables -A INPUT -p tcp -s x.x.x.x -j DROP

En ambos casos:

1.2.3.4 viene siendo tu ip.
x.x.x.x viene siendo la ip que quieres banear.

La diferencia entre las dos politicas, es que usando una politica DROP es mas restrictiva.
Genial!, creo que tengo un pato de goma de mi hijo en el baño xD pero si comienzo a usarlo entonces me voy a ahorrar mas de la mitad de los post en el foro y la gente que pueda tener los mismos problemas no va a encontrar una respuesta :P

Me sale mas fácil hacer un barco de papel, lo pondré al lado de mi monitor.

Al final el baneo lo hice baneando la ip por completo y luego habilitandole el acceso al puerto 22 y finalmente guardando las reglas y al final una tarea programada para eliminar las reglas.

Código
  1. <?php
  2. 'sudo iptables -I INPUT -s '.escapeshellarg($_SERVER['HTTP_WIM_REAL_IP']).' -j DROP && '.
  3. 'sudo iptables -I INPUT -p tcp -s '.escapeshellarg($_SERVER['HTTP_WIM_REAL_IP']).' --dport 22 -j ACCEPT && '.
  4. 'sudo service iptables save && '.
  5. 'echo "sudo iptables -D INPUT -s '.escapeshellarg($_SERVER['HTTP_WIM_REAL_IP']).' -j DROP ; sudo iptables -D INPUT -p tcp -s '.escapeshellarg($_SERVER['HTTP_WIM_REAL_IP']).' --dport 22 -j ACCEPT ; sudo service iptables save;" | sudo at now + '.(int)$unban_minutes.' minutes'
  6. );

Yo pense que querias agregar solo una regla para que no te banee a ti. En lugar de agregar la regla que permite acceso al SSH por cada IP, mejor simplemente agrega una regla para permitir acceso SSH al principio de la tabla:

Código
  1. iptables -I INPUT -p tcp --dport 22 -j ACCEPT

Igual si los baneas, les estas permitiendo acceso SSH asi que es mejor dejar el acceso abierto a SSH en lugar de agregar una regla nueva por cada IP.


« Última modificación: 10 Mayo 2015, 04:17 am por MinusFour » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Denegar acceso a todos los puertos menos uno en iptables
« Respuesta #12 en: 10 Mayo 2015, 04:22 am »

Buena idea, no se me había ocurrido :P
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Denegar Acceso a Archivo o Directorios [SUB]
.NET (C#, VB.NET, ASP)
Keyen Night 0 3,974 Último mensaje 10 Agosto 2009, 02:31 am
por Keyen Night
Denegar acceso por ip « 1 2 »
PHP
teudiss 12 7,098 Último mensaje 17 Abril 2010, 21:52 pm
por fede_cp
Como puedo crear reglas con iptables para cerrar todos los puertos?
Redes
aixeiger 3 6,174 Último mensaje 7 Diciembre 2012, 02:01 am
por dato000
iptables puertos redireccionado lan
GNU/Linux
fabiancorreo 1 2,517 Último mensaje 1 Junio 2015, 19:49 pm
por xv0
Abrir puertos FTP con iptables
GNU/Linux
Drakaris 9 5,572 Último mensaje 15 Noviembre 2019, 16:26 pm
por Drakaris
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines