Aunque la documentación de Apache sobre Hadoop insta a desactivar el Firewall, creo que es mejor (aunque lleve más tiempo) tener una sistema de Firewall activo con unas sencillas reglas para evitar el acceso de cualquiera a nuestro cluster.
Aunque esta configuración se hace sobre Solaris 10 para Hadoop, se puede extender a cualquier tipo de filtrado ya que no dejan de ser los mismos comandos y simplemente debemos cambiar las reglas del archivo Aunque esta configuración se hace sobre , se puede extender a cualquier tipo de filtrado ya que no dejan de ser los mismos comandos y simplemente debemos cambiar las reglas del archivo ipf.conf
Comprobar el Estado de IPFilter y activarlo
Nuestro primer paso será comprobar el estado de IPFilter en el sistema, que si no hemos hecho nada antes por defecto viene desactivado.
Comprobar el Estado de IPFilter y activarlo
Nuestro primer paso será comprobar el estado de IPFilter en el sistema, que si no hemos hecho nada antes por defecto viene desactivado.
# svcs ipfilter
STATE STIME FMRI
disabled ago_13 svc:/network/ipfilter:default
Creación de Reglas
Las reglas están en el archivo /etc/ipf/ipf.conf y tiene el siguiente formato:
{block | pass } {in|out} [log] [quick] from {IP|pool|any} [port] to {IP|pool |any} [port]
Por ejemplo, si queremos denegar todos los paquetes que vienen desde la red 10.7.0.0/16 a nuestra máquina (que si recordais nuestro NameNode es la 10.1.1.3) utilizaremos lo siguiente
block in quick from 10.7.0.0/16 to any
block out quick from any to 10.7.0.0/16
Hemos utilizado los modificadores quick y any en nuestro ejemplo para conseguir lo siguiente
- Modificador quick Si IPFilter hace match en la regla no seguirá evaluando más
- Modificador any Hace referencia a cualquier IP, es como poner 0.0.0.0/0
Cuándo utilizar quick?
Por regla general es mejor utilizarlo siempre que tengamos un firewall puro, es decir, imaginaros el pseudo archivo de configuración
permit ssh
permit web
permit smtp
block all
En este modelo de firewall (el tradicional y más seguro) debemos dejar de evaluar las reglas, ya que sino evaluaría todas las reglas, y siempre haría match en block all, por ejemplo, un paquete de tráfico ssh se evaluaría así:
- permit ssh (OK)
- permit web (N/A)
- permit smtp (N/A)
- block all (DENY)
Y el paquete SSH sería denegado.
Configuración del archivo /etc/ipf/ipf.conf
Vamos a permitir el acceso SSH desde nuestra LAN y acceso a nuestro NameNode, esta versión es muy restrictiva ya que no nos permite acceder a Internet, DNS, icmp, etc. fuera de nuestra LAN
# vi /etc/ipf/ipf.conf# eliminamos los paquetes peque!nosblock in log quick from any with ipoptsblock in log quick proto tcp from any to any with short
#################################### PERMITIMOS SSH SOLO##################################pass in quick from 10.0.0.0/8 to 10.1.1.3/32 port=22pass out quick from 10.1.1.3/32 port=22 to 10.0.0.0/8pass in quick from 10.0.0.0/8 port=22 to 10.1.1.3/32pass out quick from 10.1.1.3/32 to 10.0.0.0/8 port=22
#################################### PERMITIMOS ACCESO LIBRE EN LAN##################################pass in quick from 10.0.0.0/8 to 10.1.1.3/32pass out quick from 10.1.1.3/32 to 10.0.0.0/8
#################################### TODO LO DEMAS DENEGADO##################################block in from any to anyblock out from any to any
:wq
Activaremos nuestro IPFilter y comprobaremos su correcto funcionamiento mediante svcs
# svcadm enable ipfilter# svcs ipfilterSTATE STIME FMRIonline 10:07:37 svc:/network/ipfilter:default
Una vez activado, debemos cargar las reglas que hemos creado, para ello, utilizaremos el comando ipf con el modificador -f y la ruta donde tenemos las reglas, en nuestro caso /etc/ipf/ipf.conf
Nota: también he utilizado el comando -Fa para que haga un FlushAll esto produce un corte y hay que utilizarlo con cuidado.
# ipf -E# ipf -Fa -f /etc/ipf/ipf.conf
Referencias
Hola, Urko, el primer enlace de referencias, ya no existe, por la compra de Sun por parte de Oracle.
ResponderEliminarAhora lleva a una página genérica de documentación
Un saludo y gracias por el post. Me ha venido bien para clarificar el uso de Quick. Me imaginaba que era para eso, pero perfecto para confirmarlo
Un saludo
Rodolfo