Buscar en este blog

domingo, 26 de agosto de 2012

¿QUE ES SELINUX?

 SECURITY-ENHANCED LINUX, "seguridad mejorada de linux", es una caracteristica de seguridad de linux que provee una variedad de politicas de seguridad incluyendo controles de acceso del estilo de los del departamento de defensa de estados unidos a traves del uso de módulos de seguridad en el núcleo linux, no es una distribuión de linux, si no un "set" de modificaciones que puede ser aplicado a un sistema tipo unix como linux y BSD.

-Al ejecutar un kernel SElinux MAC se protege al sistema de aplicaciones maliciosas o dañadas que pueden perjudicar o destruir el siistemam SElinux define el acceso y los derechos de transición de cada usuario, aplicación, proceso y archivo en el sistema.


-La razón de usar USERLINUX es limitar el acceso que tienen las aplicacaciones a otras aplicaciones y alos ficheros, impidiendo que un proceso pueda modificar cualquier fichero del usuario con el que se lanzó. (firefox jamás deberia ser capaz de cambiar los permisos de mi clave privada ssh.


-Un administrador de un sistema SElinux tiene la posibilidad de configurar una politca donde se define  los archivos a los que tiene acceso cada programa, SElinux implementa un mecanismo para establecer en cada archivo y proceso el contexto en el que está siendo utilizado.






CONTROL DE ESCALAMIENTO DE PRIVILEGIOS: la seguridad esta segmentada en roles principales:


user_r: el más minimo privilegio, asigando simplemente a los usuarios;alguien con este rol no puede hacer escalamiento de privilegios ni alternar de rol.


stoff_r: similar al rol user_r , con la diferencia que con este rol se puede alternar a los diferentes  roles asignados con el perfil del usuario.


auditam_r: rol encargado de las herramientas de auditoria de manera unica y exclusiva, los usuarios de este rol solamente desempeñan esta función.


secadm_r:  rol encargado de manear las herramientas de seguridad, declarar nuevos roles, crear nuevas politicas y de ver los log de auditoria, mas no puede modificarlos.

 
sysadm_r: rol máximo en el sistema pero no puede usar las herramientas de auditoria ni modificar estos reportes.

 EL ARCHIVO DE CONFIGURACIÓN  /ETC/SYSCONFIG/SELINUX


Hay dos formas de configurar SElinux bajo redhat y centos usando la herramienta de configuración de nivel de seguridad (system-config-securitylevel), o manualmente editando el archivo  /etc/sysconfig/selinux  , este es el archivo de ocnfiguración principal para habilitar o inhabilitar SElinux, asi como tambien para configurar cual politica se debe imponer en el sistema  y como hacerlo.


NOTA: EL ARCHIVO /etc/sysconfig/selinux  CONTIENE UN ENLACE SIMBÓLICO AL ARCHIVO DE CONFIGURACIÓN REAL,  /etc/selinux/config.



  SUBCONJUNTO DE OPCIONES DISPONIBLES PARA LA CONFIGURACIÓN:

  
 .selinux= < enforcing | permissive | disabled > -- define el estado superior para selinux en un sistema.

 .enforcing  o "impositivo" __ se impone la politica de seguridad SELinux.


  permissive  o "permisivo" __ el sistema selinux advierte pero no impone la politco.Util para propositos de depuración o de resolución de problemas. En modo permisivo se registrarán más rechazos, pues los sujetos podrán continuar con acciones  que de lo contrario  serian rechazadas en el modo impositivo.


 disabled o "inhabilitado" __ SELinux esta completamente desactivado.los ganchos de SELinux no están conectados  al kernel y el pseudo sistema de archivos no esta registrado.


 .selinuxtype= <targeted | strict > --Especifica cuál politica esta siendo implantada actualmente por SELinux.

 targeted  (objetivo, dirigido): solamente se protegen ciertos demonios particulares.


 strict  (estricta): proteccion SELINX completa para todos los demonios.





CONOCER EL ESTADO ACTUAL DE SELINUX:


$ GETENFORCE 

 un valor:

DISABLE: indica que selinux esta desactivado.


PERMISSIVE: indica que selinux esta desactivado pero registrando cualquier evento que infringe sus politicas sin tomar ninguna accion a cambio.

ENFORCING:   indica que selinux esta activado actualmente y listo para actuar ante cualquier evento que infrinja cualquiera de sus politicas.

TAMBIEN SE PUEDE USAR EL COMANDO  $SEINFO (-B)  PARA AMPLIAR LA INFORMACIÓN DE ESTADO MOSTRADA POR  $ GETENFORCE .



APLICACIONES QUE ESTAN SIENDO DENEGADAS POR SELINUX EN MI SISTEMA:  

 $SEALERT -A  /VAR/LOG/AUDIT/AUDIT.LOG


¿COMO PUEDO PERMITIR QUE UN SERVICIO PUEDA USAR CUALQUIER PUERTO?


Regularmente  selinux solo permite que determinadas aplicaciones utilicen solo aquellos puertos para los cuáleshan sido configurados por defecto, por ejemplo, SSH regularmente escucha   por el puerto 22 y de estar SELinux con la politica de referencia strict  resultaria casi imposible intentar cambiarlo a otro puerto, como por ejemplo al puerto 10022, para  lograrlo necesitamos desplegar un conjunto de reglas confinadas en el dominio de SELinux llamado  "sshd_port" ssh de la siguiente manera:

 $ semanage port -a -t sshd_port_t -p tcp 10022
 otro ejemplo util es cambiar el puerto 80 por defecto por donde escucha  el servidor web apache:

$ semanage port -a -t http_port_t -p tcp 81


 

 

FIREWALL DE CENTOS


 QUE ES UN FIREWALL!

Es un hardware especifico con un sistema operativo o una IOS que filtra el tráfico TCP-UDP-ICMP-IP... y decide si un paquete pasa, se modifica, se convierte o se descarta. para que un firewall entre redes funcione como tal debe tener al menos dos tarjetas  de red. 

TOPOLOGIA CLÁSICA DE UN FIREWALL
 
ESQUEMA TIPICO DE FIREWALL PARA PROTEGER UNA RED LOCAL CONECTADA A INTERNET A TRAVES DE UN ROUTER, EL FIREWALL DEBE COLOCARSE ENTRE EL ROUTER   (CON UN UNICO CABLE)   Y LA RED LOCAL  (CONECTADO AL SWITCH O AL HUB DE LA LAN).


Netfiler es un firewall basado en host para los sistemas operativos linux (centOS, Redhat, Fedora), esta incluido como parte de la distribución de linux y se activa por defecto.Este  firewall es controlado por el programa llamado "iptables".Netfilter tendra lugar en el nivel del núcleo, antes de que un programa  puede  incluso procesar los datos de los paquetes de red.
un firewall de iptables esta integrado con el kernel, es parte del  S.O,  ¿como se pone en marcha?
 realmente lo que se hace es aplicar reglas, para ello se ejecuta el comando "iptables" , con el que añadimos,borramos, o creamos reglas, por ello un firewall de iptables no es si no un simple script de shell en el que se van ejecutando las reglas de firewall.
 Los ficheros de configuración por defecto  son : /etc/sysconfig/ipables.

ACTIVAR FIREWALL:

chkconfig iptables on
service iptables start
# restart the firewall
service iptables restart
# stop the firewall
service iptables stop
 CADENAS DEL FIREWALL:

 INPUT:   (CADENA DE ENTRADA), se utiliza para los paquetes dirigidos hacia el sistema, se usa para abrir o cerrar puertos de entrada y las direcciones IP/ subred, ""paquetes que llegan a nuestra máquina"".

OUTPUT:  (CADENA DE SALIDA), se utiliza cuando los paquetes  se generan desde el sistema,utilice estos puertos de salida  de apertura o cierre y las direcciones IP /subredes ""paquetes que salen de nuestra máquina"".

FORWARD:  (CADENA DE REDIRECCIÓN), se utiliza cuando se envian los paquetes a través de otra interface, usar esta cadena para enviar  y recibir tráfico de red local a internet ( cuando le vas a dar salida a la red tu server debe tener al menos 2 nicks, una apuntando hacia la red interna y la otra hacia el exterior de tu red) , permite al administrador controlar donde se enviaran los paquetes dentro de una LAN ""paquetes que pasan por nuestra máquina"".
 
RH-Firewall-1-INPUT: esta es una cadena de usuario personalizado, es utilizado por el INPUT, OUTPUT y las cadenas FORWARD.


SIGNIFICADOS DE DESTINO:

- EL OBJETIVO ACCEPT SIGNIFICA PERMITIR PAQUETE.
- EL OBJETIVO REJECT SIGNIFICA DESCARTAR EL PAQUETE Y ENVIAR UN MENSAJE DE ERROR AL HOST REMOTO.
- EL OBJETIVO DROP SIGNIFICA DESCARTAR EL PAQUETE Y NO ENVIAR UN MENSAJE DE ERROR AL HOST REMOTO O EL ENVIO DE ACOGIDA.

MODIFICACIONES NECESARIAS EN EL FIREWALL:
SERVICIO IPTABLES:  Se puede utilizar directamente el comando "iptables" ::
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
service iptables save












O añadiendo una configuración en el archivo  /etc/sysconfig/iptables:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT



Y reinicie el servicio iptables:

service iptables restart


NOTA: LA HERRAMIENTA "IPTRAF" DEPURA Y COMPRUEBA EL FUNCIONAMIENTO  DE IPTABLES, CON IPTRAF PODEMOS COMPROBAR SI LAS CONEXIONES TCP/IP SE LLEGAN A ESTABLECER O NO.




SERVICIO DNS

 RFCs  DE DNS:

DEFINICIÓN:
 
DNS (DOMAIN NAME SYSTEM) ES UNA BASE DE DATOS DISTRIBUIDA Y JERÁRQUICA QUE PERMITE TRADUCIR DIRECCIONES IP A NOMBRES Y VICEVERSA, SUS USOS PRINCIPALES SON LA ASIGNACIÓN DE NOMBRES DE DOMINIO A DIRECCIONES IP Y LA LOCALIZACIÓN DE LOS SERVIDORES DE CORREO ELECTRÓNICO CORRESPONDIENTES PARA CADA DOMINIO.
LOS SERVIDORES DNS  UTILIZAN TCP Y UDP  EN EL PUERTO 53 PARA RESPONDER LAS CONSULTAS.




 
SERVIDOR DNS MAESTRO:
UN SERVIDOR DNS MAESTRO ALMACENA LOS REGISTROS DE LAS ZONAS ORIGINALES Y DE AUTORIDAD. ADEMÁS EL SERVIDOR DNS MAESTRO ES EL ENCARGADO DE RESPONDER A LAS PETICIONES HECHAS POR OTROS SERVIDORES DNS.

SERVIDOR DNS ESCLAVO:
UN SERVIDOR DNS ESCLAVO TAMBIÉN TIENE LA CAPACIDAD DE RESPONDER A LAS PETICIONES HECHAS POR UN CLIENTE DNS ASÍ COMO OTRO SERVIDOR DE DNS, LA DIFERENCIA RADICA EN QUE LOS SERVIDORES ESCLAVOS OBTIENEN LA INFORMACIÓN ACERCA DE LOS NOMBRES DE DOMINIO DESDE LOS SERVIDORES MAESTROS  REALIZANDO UN PROCESO DENOMINADO "TRANSFERENCIA DE ZONA".
 
SERVIDOR  CACHÉ DNS:
ESTE OFRECE SERVICIOS DE RESOLUCIÓN DE NOMBRES COMO RESPUESTA A LAS PETICIONES HECHAS POR LOS CLIENTES DE DNS, DICHOS SERVICIOS DE RESOLUCIÓN DE NOMBRES SON GUARDADOS CIERTO ESPACIO DE TIEMPO PARA PODER ACCEDER A DICHA INFORMACIÓN MAS RÁPIDAMENTE. ESTE TIPO DE SERVIDORES NO TIENE NINGUNA AUTORIDAD SOBRE LAS ZONAS DE AUTORIDAD
 
 FQDN:
EL ESPACIO DE NOMBRES DNS Y EL NOMBRE DEL HOST CONFORMAN EL NOMBRE DE DOMINIO COMPLETO QUE ES UN NOMBRE QUE SE HA DETERMINADO PARA INDICAR CON CERTEZA ABSOLUTA SU UBICACIÓN EN EL ÁRBOL DEL ESPACIO DE NOMBRES DE DOMINIO. LA DIRECCIÓN ALUMNOS.STANFORD.EDU.AU. INDICA EXACTAMENTE DONDE RESIDE ESTE HOST EN EL ESPACIO DE NOMBRES EN RELACIÓN ALA RAÍZ.SE DISTINGUE DE UN NOMBRE RE GULAR POR QUE LLEVA UN PUNTO AL FINAL, LA LONGITUD MÁXIMA DE UN FQDN ES DE 255 BYTES.
 
ZONA:
ES UNA PARTE DE LA BASE DE DATOS DNS QUE CONTIENE LOS REGISTROS DE RECURSOS PARA UN DOMINIO O LOS REGISTROS DE RECURSOS PARA VARIOS DOMINIOS, UNA ZONA PUEDE ALOJAR MAS DE UN DOMINIO SÓLO SI LOS DOMINIOS SON CONTIGUOS E EL ÁRBOL DNS , ES DECIR, ESTAN CONECTADOS MEDIANTE UNA RELACIÓN PRIMARIO-SECUNDARIO DIRECTA.


TIPOS DE ZONA: AL CONFIGURAR UN SERVIDOR DNS PUEDO CONFIGURARLO CON VARIOS TIPOS DE ZONA O CON NINGUNA, SEGÚN EL TIPO DE FUNCIÓN QUE EL SERVIDOR DNS DESEMPEÑE EN LA RED.LA OPERACIÓN NORMAL DEL SERVIDOR IMPLICA 3 ZONAS:



ZONA PRINCIPAL: Es la copia autorizada de la zona DNS donde se crean y administran registros de recursos.
ZONA SECUNDARIA: Es una copia de la zona DNS que contiene la copia de solo lectura de la zona DNS, los registros de la zona secundaria no pueden modificarse, los administradores solo pueden modificar registros de la zona DNS  principal, se configura al menos uno de estos con tolerancia a fallos.
ZONA DE CÓDIGO AUXILIAR: Son copias de una zona que contienen solo los registros de recursos necesarios para identificar el servidor DNS autorizado para dicha  zona, contiene un subconjunto de datos de zona que consta de un registro SOA(inicio de autoridad), NS(servidor de nombres) y A(adherencia).


QUE SON LOS RESOURCE RECORDS (RRs)? 

LOS REGISTROS DE DNS SIRVEN PARA DIRIGIR EL TRÁFICO HACIA SU DOMINIO Y DESDE ÉSTE. ESTOS REGISTROS ASOCIAN UN NOMBRE DE DOMINIO CON UNA DIRECCIÓN IP ESPECÍFICA. LA TABLA SIGUIENTE DESCRIBE LOS REGISTROS DE DNS USADOS CON MÁS FRECUENCIA, ASÍ COMO SUS FUNCIONES:
TIPOS DE REGISTRO:

 
 ESPACIO DE NOMBRES DE DOMINIO:
 
ES UN ÁRBOL DE NOMBRES JERÁRQUICO  QUE DNS UTILIZA PARA IDENTIFICAR Y LOCALIZAR UN HOST DADO EN UN DOMINIO EN RELACIÓN A LA RAIZ DEL ÁRBOL, EL ESPACIO DE NOMBRES DE DOMINIO PERMITE MOSTRAR NOMBRES DE RECURSOS PARA ORGANIZARLOS EN UNA ESTRUCTURA LÓGICA QUE LOS USUARIOS PUEDEN ENTENDER FÁCILMENTE, ESTE INCLUYE EL DOMINIO RAIZ, DE NIVEL SUPERIOR, DE NIVEL SECUNDARIO.

DOMINIO: SUB-ARBOL DEL ESPACIO DEL NOMBRE DE DOMINIO, U DOMINIO ES TODO LO QUE ESTA DEBAJO DEL NODO DEL DOMINIO.





DOMINIO DE NIVEL SUPERIOR:



 ESTÁNDARES PARA DENOMINACIÓN DE DNS:
 
LOS ESTANDARES ADMITEN  UN SUBCONJUNTO LIMITADO DEL JUEGO DE CARÁCTERES ASCII PARA DNS, EN EL RFC 1123 SE ESPECIFICAN COMO VÁLIDOS PARA NOMBRES DNS: 
A-Z
A-Z
0-9
GUIÓN(-) 


REENVIADOR DNS:
 
UN REENVIADOR ES UN SERVIDOR DE SISTEMA DE NOMBRES DE DOMINIO (DNS) DE UNA RED QUE SE UTILIZA PARA REENVIAR CONSULTAS DNS PARA NOMBRES DNS EXTERNOS A SERVIDORES DNS QUE SE ENCUENTRAN FUERA DE LA RED. TAMBIÉN SE PUEDEN ENVIAR CONSULTAS SEGÚN NOMBRES DE DOMINIO ESPECÍFICOS UTILIZANDO REENVIADORES CONDICIONALES.




UN SERVIDOR DNS DE UNA RED SE DESIGNA COMO REENVIADOR HACIENDO QUE LOS DEMÁS SERVIDORES DNS DE LA RED LE REENVÍEN LAS CONSULTAS QUE NO PUEDEN RESOLVER LOCALMENTE


ARCHIVOS DE CONFIGURACIÓN DEL DNS:
 
EL ARCHIVO DE CONFIGURACIÓN DEL DNS ES /ETC/BIND/NAMED.CONF,  PERO ESTE HACE REFERENCIA A OTROS COMO POR EJEMPLO:
-NAMED.CONF:                  ARCHIVO PRINCIPAL DE CONFIGURACIÓN.
-NAMED.CONF.OPTIONS:     OPCIONES GENÉRICAS.
-NAMED.CONF.LOCAL:         ESPECIFICACIÓN PARTICULAR DE ESTE SERVIDOR DNS.
-DB.127 :                        ESPECIFICACIÓN DIRECCIÓN DE RETORNO.
-DB.ROOT:                         DNSS DE NIVEL SUPERIOR.



DIFERENCIA ENTRE ZONA Y DOMINIO:


EL DOMINIO ES UN SUBÁRBOL DEL ESPACIO DE NOMBRES DE DOMINIO, ES DECIR, UN NODO CON TODOS LOS NODOS  POR DEBAJO DE ÉL, MIENTRAS QUE LAS ZONAS SON UN ARCHIVO QUE CONTIENE DETERMINADOS REGISTROS  DE LA BASE DE DATOS DEL ESPACIO DE NOMBRES DE DOMINIO.



ROOT HINTS:

(ARCHIVO DE SUGERENCIAS DE RAÍZ), CONTIENEN INFORMACIÓN DE HOST QUE SE NECESITA PARA RESOLVER NOMBRES FUERA DE LOS DOMINIOS DNS AUTORITATIVOS, CONTIENE LOS NOMBRES Y DIRECCIONES DE LOS SERVIDORES DNS RAÍZ, SI LA RED ESTA CONECTADA A INTERNET, EL ARCHIVO ROOT HINTS  DEBE CONTENER LOS REGISTROS DE LOS SERVIDORES DNS RAÍZ DE INTERNET.
SI LA RED NO ESTA CONECTADA A INTERNET DEBE REEMPLAZAR EL NS  Y REGISTROS A EN EL ARCHIVO DE CACHÉ CON NS Y REGISTROS PARA LOS SERVIDORES DNS QUE TIENEN AUTORIDAD PARA LA RAÍZ DE SU PARTICULAR RED TCP/IP.

POR EJEMPLO SUPONGA QUE A CREADO DOS SERVIDORES  DNS INTERNOS  , CREE UN ARCHIVO DE SUGERENCIAS DE RAÍZ EN OTROS SERVIDORES DNS DE LA RED, APUNTANDO A LOS SERVIDORES DNS RAÍZ INTERNOS, DE ESTA FORMA, SI OTROS SERVIDORES DE NOMBRES RECIBEN UNA CONSULTA QUE NO PUEDE RESOLVER, SIMPLEMENTE PUEDEN CONSULTAR LOS SERVIDORES RAÍZ INTERNOS ESPECIFICADOS  EN EL ARCHIVO.


TIPOS DE CONSULTA:

CONSULTA ITERATIVA: 


UNA CONSULTA ITERATIVA ES AQUÉLLA EFECTUADA A UN SERVIDOR DNS EN LA QUE EL CLIENTE DNS SOLICITA LA MEJOR RESPUESTA QUE EL SERVIDOR DNS PUEDE PROPORCIONAR SIN BUSCAR AYUDA ADICIONAL DE OTROS SERVIDORES DNS. EL RESULTADO DE UNA CONSULTA ITERATIVA SUELE SER UNA REFERENCIA A OTRO SERVIDOR DNS DE NIVEL INFERIOR EN EL ÁRBOL DNS .

CONSULTA RECURSIVA:


UNA CONSULTA RECURSIVA ES AQUÉLLA REALIZADA A UN SERVIDOR DNS, EN LA QUE EL CLIENTE DNS SOLICITA AL SERVIDOR DNS QUE PROPORCIONE UNA RESPUESTA COMPLETA A LA CONSULTA,  EL SERVIDOR DNS COMPRUEBA LA ZONA DE BÚSQUEDA DIRECTA Y LA CACHÉ PARA ENCONTRAR UNA RESPUESTA A LA CONSULTA FUERA DE SUS SERVIDORES DE DOMINIO .


TRANSFERENCIA DE ZONAS

TERMINO UTILIZADO PARA REFERIRSE AL PROCESO POR EL QUE SE COPIA EL CONTENIDO DE UN ARCHIVO DE ZONA DNS DE UN SERVIDOR DNS PRINCIPAL A UN SERVIDOR DNS SECUNDARIO.

SE PRODUCIRÁ UNA TRANSFERENCIA DE ZONAS DURANTE CUALQUIERA DE LOS SIGUIENTES ESCENARIOS:

-        AL INICIAR EL SERVIDOR DNS EN EL SERVIDOR DNS SECUNDARIO.
-        CUANDO CADUQUE EL MOMENTO DE ACTUALIZACIÓN.
-        CUANDO LOS CAMBIOS SE GUARDAN EN EL ARCHIVO.

     LAS TRANSFERENCIAS DE ZONAS SIEMPRE SE INICIAN POR EL SERVIDOR DNS SECUNDARIO. EL SERVIDOR DNS PRINCIPAL SIMPLEMENTE RESPONDE A LA SOLICITUD DE UNA TRANSFERENCIA DE ZONA DE ZONA PRINCIPAL Y HAY UNA LISTA DE NOTIFICACIÓN

SI TENEMOS UN SERVIDOR EN UN ORDENADOR Y QUEREMOS QUE SE PUEDA ACCEDER A ESE SERVIDOR A TRAVÉS DE UN NOMBRE DE DOMINIO TENEMOS QUE CONFIGURAR UNA ENTRADA DNS ASOCIADA A LA IP DE ESE SERVIDOR. PERO, ¿QUÉ PODEMOS HACER SI EL SERVIDOR TIENE IP DE INTERNET DINÁMICA?

PARA ESTO VISITE LA ENTRADA SERVICIO DDNS