jueves, 5 de julio de 2012

configurar firewall en linux centos y RHEL

En el día de hoy me encontré en otra de esas sabrosas aventuras con las cuales uno debe aprender a las malas, "es decir buscar en internet" y es hacer que sirva el comando YUM en linux pero con el firelwall algo restrictivo... entonces me encontré con este par de palabras que me alegraron la tarde:

RELATED,ESTABLISHED


Es de recordar que si se hace como la segunda forma entonces se debe tener cuidado se agregar primero el puerto 22 que es SSH sino nos va a desconectar.

pero sin embargo se pueden hacer las cosas de multiples maneras para configurar el firewall como son:

copiar el siguiente contenido en el archivo "vi /etc/sysconfig/iptables" y luego ejecutar "/sbin/service iptables start" entonces aca está el contenido para un JBOSS y un TOMCAT:

# Generated by iptables-save v1.3.5 on Thu Jul  5 16:00:14 2012
*filter
#:INPUT ACCEPT [2:80]
#:FORWARD ACCEPT [0:0]
#:OUTPUT ACCEPT [13:876]
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8080 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -m state --state NEW -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -j DROP

COMMIT
# Completed on Thu Jul  5 16:00:14 2012




-----------------------------

pero si se desea tambien se puede dar uno el trabajo de agregar regla por regla como es:

/sbin/iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp -m state --state NEW --sport 80 -j ACCEPT




algo importante o configuraciones un poco mas detalladas las especifico a continuación (las lineas de # son comentarios):

*filter
#:INPUT ACCEPT [2:80]
#:FORWARD ACCEPT [0:0]
#:OUTPUT ACCEPT [13:876]

#acepta todas las reglas de entrada por la interfaz de loopback (127.0.0.1)
-A INPUT -i lo -j ACCEPT

#acepta todas las reglas de salida por la interfaz de loopback (127.0.0.1)
-A OUTPUT -o lo -j ACCEPT
#acepta todas las solicitudes de PING tanto entrada como salida, es util para el monitoreo y fragmentacion de paquetes
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
-A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
-A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
-A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

#acepta la conexion por el puerto 22 ssh para poder conectarse remotamente
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
#-A INPUT -p tcp -m tcp --dport 14243 -m state --state NEW -j ACCEPT
#-A INPUT -p tcp -m tcp --dport 14244 -m state --state NEW -j ACCEPT
#-A INPUT -p tcp -m tcp --dport 14245 -m state --state NEW -j ACCEPT
#-A INPUT -p tcp -m tcp --dport 42424 -m state --state NEW -j ACCEPT
#-A INPUT -p tcp -m tcp --dport 42425 -m state --state NEW -j ACCEPT
#-A INPUT -p tcp -m tcp --dport 42426 -m state --state NEW -j ACCEPT
#-A INPUT -p tcp -m tcp --dport 42427 -m state --state NEW -j ACCEPT

#acepta conexion por el puerto 3306 usado por mysql
-A INPUT -p tcp -m tcp --dport 3306 -m state --state NEW -j ACCEPT
# se pueden colocar rangos de puertos como en este caso, tiene un rango de puertos abiertos para entrada
-A INPUT -p tcp -m tcp --dport 14243:14499 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 42424:42699 -m state --state NEW -j ACCEPT

#dice que las conexiones que han sido establecidas con OUT se aceptan como seguras
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#se abre un puerto especifico diferencia sport (source port) dport (destination port)
-A OUTPUT -p tcp -m tcp --dport 12586 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 12586 -m state --state NEW -j ACCEPT

(permite aceptar las conexiones que han salido)
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#elimina todas las conexiones de entrada o solicitudes de puertos que no han sido abiertos
-A INPUT -j DROP

COMMIT
# Completed on Thu Jul  5 16:00:14 2012

No hay comentarios:

Publicar un comentario

Agradezco el interes en el tema, estaré atento para poder leer su comentario.