Anda di halaman 1dari 39

UNIVERSIDAD PRIVADA DEL NORTE

Integrantes:
HUASASQUICHE QUEVEDO, PAULO
ODAR JAUREGUI, ARNOLD
RAMOS GONZALES, RICHARD
VEREAU AGUILERA, LUIS.
Docente:
PEREZ QUIROZ, ALEJANDRO HUGO
Materia:
SISTEMAS OPERATIVOS

Ao:

2015

SELINUX

1. Introduccin
Security-Enhanced Linux (SELinux) es un mdulo de seguridad para el kernel Linux. Es un mecanismo de
control de acceso mandatorio (CMD), implementado en el kernel Linux. Fue introducido por primera vez
en CentOS 4 y desde entonces ha presentado mejoras significativas. Estas mejoras hacen que el
contenido vare en la forma cmo SELinux utiliza los tiempos para resolver problemas.

1.1. Por Qu es Importante


Para entender mejor, por qu SELinux es importante y qu puede hacer por nosotros, veamos lo
siguiente. Si no tenemos SELinux activado, solo los mtodos tradicionales de control de acceso
discrecional (DAC), como son los permisos de archivos o las listas de Control de Acceso (ACLs), se
utilizarn para controlar el acceso a archivos de los usuarios. A los Usuarios y programas, por igual, se les
permite conceder permisos de archivos inseguros a otros o, a la inversa, para obtener acceso a partes del
sistema que no deberan ser necesarios para un funcionamiento normal. Por ejemplo:
o

Los administradores no tienen forma de controlar usuarios: Un usuario podra establecer permisos
globales legibles en archivos confidenciales, como claves ssh y en directorios que contengan estas
claves, generalmente: ~/.ssh/

Los procesos pueden cambiar las propiedades de seguridad: Los archivos de correo de usuario
deben ser legibles solo por dicho usuario, pero el software cliente de correos tiene la habilidad de
cambiarlos para que sean legibles globalmente.

Procesos heredan derechos de usuario: Firefox, si se ve comprometido por un troyano, podra lees
las claves ssh privadas de los usuarios, incluso si no tuviera razn para hacerlo.

Esencialmente, bajo el modelo DAC tradicional, hay 2 niveles de privilegios, root y usuario, y no hay
manera fcil de hacer cumplir un modelo de privilegios mnimos. Muchos procesos iniciados por root
luego ceden sus derechos para ejecutarse como usuario restringido y algunos procesos pueden
ejecutarse en una crcel chroot (seccin de archivos que va a utilizar un usuario en particular), excepto
aquellos que tengas mtodos de seguridad discrecional.

1.2. La Solucin
SELinux sigue el modelo de privilegios mnimos de forma estricta. Por defecto, bajo una configuracin
enforcing estricta, todo es denegado y luego una serie de polticas de excepcin son escritas para dar a
cada elemento del Sistema (un servicio, programa o usuario)

solo el acceso requerido para su

funcionamiento. Si un servicio, programa o usuario, intenta acceder o modificar un archivo o recurso que
no sea necesario para su funcin, entonces el acceso es denegado y la accin es registrada.
Debido a que SELinux es implementado dentro del kernel, las aplicaciones no necesitan ser escritas
especialmente o modificadas para trabajar bajo SELinux aunque, por supuesto, si es escrita para
observar los cdigos de error que SELinux retorne, podra funcionar mejor. Si SELinux bloquea una
accin, esta es reportada a la aplicacin subyacente como un error de tipo acceso denegado a la
aplicacin. Muchas aplicaciones, sin embargo, no prueban todos los cdigos de retorno en las llamadas
de Sistema y podran no retornar mensajes explicando el problema, o podran retornarlo de forma
engaosa.
Tenga en cuenta, sin embargo, que los ejemplos hipotticos planteados para proporcionar una mayor
seguridad posible de:
o

restringir esos programas autorizados a un conjunto limitado de programas, con permisos de lectura
del directorio ~/.ssh/ de un usuario.

Prevenir a un programa Agente de Entrega de Correo de la manipulacin de la propiedad de un grupo


o la configuracin de los permisos de lectura de un grupo o de un archivo.

Un navegador web est limitado nicamente a leer el directorio home de un usuario.

2. SELinux Modes
SELinux posee 3 modos bsicos de operacin, de los cuales, el modo Enforcing se establece como
predeterminado al momento de la instalacin. Existe, sin embargo, un calificador adicional especfico o
mls que controla la profundidad de las reglas SELinux, que se estn siendo direccionadas al nivel menos
estricto.
o

Enforcing: El modo por defecto, que habilita y hace cumplir las politicas de seguridad SELinux en el
sistema, negando las acciones de acceso y registro.

Permissive: En modo permisivo, SELinux se encuentra activo pero no forzar las polticas de
seguridad. En su lugar, solo mostrar advertencias y registrar acciones realizadas. Este modo es til
para soluciones de problemas en el SELinux.

Disabled: SELinux est desactivado.

El modo en que se encuentra SELinux se puede ver y modificar usando la herramienta de Interfaz Grfica
SELinux Management, disponible en el Men de Administracin, o desde lnea de comandos ejecutando
system-config-selinux (La interfaz grfica SELinux Management no se encuentra instalada por defecto).
Los usuarios que prefieran usar la lnea de comandos, pueden usar el comando sestatus para visualizar
el estado actual de SELinux:
# sestatus
SELinux status:

enabled

SELinuxfs mount:

/selinux

Current mode:

enforcing

Mode from config file:

enforcing

Policy version:

21

Policy from config file:

targeted

El

comando

'setenforce'

puede

utilizarse

para

cambiar

entre

los

modos Enforcing and Permissive temporalmente, pues una vez reiniciado el sistema se retornar a los
valores por defecto.
Para que los cambios sean permanentes sin importar si el sistema se reinicie, se debe editar la lnea
SELINUX en: /etc/selinux/config ya sea para enforcing, permissive, o disabled. Por ejemplo:
'SELINUX=permissive'

3. SELinux Policy
Como se ha sealado, SELinux sigue el modelo de privilegios mnimos; de forma predeterminada todo se
negado y luego se escribe una poltica que le da a cada elemento del sistema, slo el acceso necesario
para funcionar. Esta descripcin describe mejor la estricta poltica. Sin embargo, es difcil escribir una
poltica que encaje en el amplio rango de circunstancias que un producto como Enterprise Linux es

probable que se utilicen. El resultado final es que, es probable que SELinux cause problemas a los
administradores de sistemas y usuarios finales; por lo que en lugar de resolver estos problemas, los
administradores del sistema pueden simplemente desactivar SELinux evitando as las protecciones
incorporadas.
Por diseo, SELinux permite que las diferentes polticas escritas sean intercambiables. La poltica por
defecto en CentOS es la poltica especfica en la que que "objetivos" y confines seleccionan los procesos
del sistema. En CentOS 4 slo existan 15 objetivos definidos (incluyendo httpd, dhcpd, mysqld). Ms
tarde, en CentOS 5 este nmero haba aumentado a ms de 200 destinos.
Todos los otros procesos del sistema y todos los programas restantes del mbito de usuarios, as como
las aplicaciones propias, es decir todo lo dems en el sistema, se ejecutan en un dominio no confinado y
no est cubierto por el modelo de proteccin de SELinux.
Uno de los objetivos podra ser para todos los procesos que se encuentran instalados y que, por defecto,
se ejecuten durante el arranque deban ejecutarse en un dominio confinado. Esta poltica dirigida est
diseada para proteger el mayor nmero de procesos clave como sea posible sin afectar negativamente a
la experiencia del usuario final y la mayora de los usuarios deben ser totalmente conscientes de que
SELinux est an en funcionamiento.

4. SELinux Access Control


SELinux tiene 3 formas de control de acceso:
o

Tipo de Aplicacin (TE): Tipo de Aplicacin es el principal mecanismo de control de acceso utilizado
en la poltica especfica.

Role-Based Access Control (RBAC): Basada en los usuarios de SELinux (no necesariamente el
mismo que el usuario de Linux), pero no se utilizada en la poltica especfica por defecto.

Multi-nivel de seguridad (MLS): No se utiliza comnmente y, a menudo oculta en la poltica


especfica.

Todos los procesos y archivos tienen un contexto de seguridad SELinux.


$ ls -Z

Adems de los permisos de archivos estndar y propietarios, podemos ver los campos de contexto de
seguridad de SELinux: system_u: object_r: httpd_sys_content_t.

Esto se basa en el usuario:rol:tipo:mls. En nuestro ejemplo anterior, los campos usuario:rol:tipo: se


muestran y se oculta mls.

5. Solucin de problemas SELinux


Tarde o temprano, nos podemos encontrar en situaciones en las que SELinux nos niegue el acceso a algo
y necesitemos solucionar este problema. Las razones por las que SELinux puede negarnos el acceso a
un archivo proceso o recurso son:

Un archivo mal etiquetados.

Un proceso que se ejecuta bajo un contexto de seguridad SELinux errneo.

Un error en la poltica. Una aplicacin requiere acceso a un archivo que no se haba previsto cuando
se redact la poltica y genera un error.

Un intento de intrusin.

Para solucionar cualquier problema, los archivos de registro son fundamentales y SELinux no es
diferente. Por defecto los mensajes de registro de SELinux se registran en /var/log/audit/audit.log travs
del Sistema de Auditora Linux auditd , que se inicia de forma predeterminada. Si el auditd daemon no
se est ejecutando, los mensajes se escriben en/ var / log / messages . Mensajes de registro de
SELinux estn etiquetados con la palabra clave "AVC" para que puedan ser fcilmente filtrados de otros
mensajes, como con grep.
Comenzando con CentOS 5 la herramienta de solucin de problemas de SELinux se puede utilizar para
ayudar a analizar los archivos de registro convirtindolos en un formato ms legible. La herramienta
consiste en una herramienta de interfaz grfica de usuario para la visualizacin de los mensajes en
formato y soluciones posibles legibles, una notificacin en el escritorio el icono de alerta de nuevos temas
y un proceso de daemon, setroubleshootd , que comprueba nuevas alertas SELinux AVC y alimenta
el icono de notificacin.Notificaciones de correo electrnico tambin se pueden configurar, como para los
que no se est ejecutando un servidor X. La herramienta de solucin de problemas SELinux es
proporcionada por el setroubleshoot paquete. La herramienta puede ser lanzado desde el men del
sistema gestor de ventanas X GUI o desde la lnea de comandos:

sealert -b

sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt

5.1. Reetiquetado de Archivos


El comando 'chcon' se puede usar para cambiar el contexto de seguridad de SELinux de un archivo o
archivos / directorios de una manera similar a la forma 'chown' o 'chmod' puede utilizarse para cambiar la
propiedad o de archivos estndar de permisos de un archivo.
Veamos algunos ejemplos.
Supongamos que creamos un directorio (o tal vez un punto de montaje) a / html / y creamos
un index.html archivo existe:
# Mkdir /html
# Touch /html/index.html
# ls -Z /html/index.html
-rw-r - r-- user_u raz root: object_r: default_t /html/index.html
Vemos que tanto el directorio /html / y el archivo /html/index.html tienen el tipo de contexto de
seguridad: default_t. Si empezamos nuestro navegador web y tratamos de ver la pgina, SELinux negar
adecuadamente el acceso y registrar el error porque el directorio y el archivo (s) tienen el contexto de
seguridad incorrecto. Tenemos que establecer el tipo de contexto de seguridad correcta para Apache de:
httpd_sys_content_t.
# Chcon -v --type = httpd_sys_content_t /html
contexto de / html cambi a user_u: object_r: httpd_sys_content_t
# Chcon -v --type = httpd_sys_content_t /html/index.html
contexto de /html/index.html cambi a user_u: object_r: httpd_sys_content_t
# ls -Z /html/index.html
-rw-r - r-- user_u raz root: object_r: httpd_sys_content_t /html/index.html

Igualmente podramos haber establecido tanto de una sola vez con el interruptor recursiva -R:
# Chcon -Rv --type = httpd_sys_content_t /html
La modificacin de contextos de seguridad de esta manera se mantendrn sobre el reinicio del sistema,
pero slo hasta que la parte modificada del sistema de archivos es reetiquetado. Esta es una operacin
bastante comn y la solucin adecuada, despus de las pruebas, es escribir una regla personalizada
local (un Mdulo de Polticas llamada) y fusionar en las reglas locales de base. Esta ser una regla
adicional en la parte superior de las reglas 200+ mencionados anteriormente. Para hacer que el contexto
de seguridad cambia permanente, incluso a travs de un reetiquetado del sistema de archivos completo,
podemos usar la herramienta de gestin de SELinux o el comando 'semanage' desde la lnea de
comandos:
semanage fcontext -a -t httpd_sys_content_t "/html(/.*)?"
aadir un contexto de archivo de tipo httpd_sys_content_t para todo bajo / html.
El comando 'restorecon' se puede utilizar para restaurar el contexto de SELinux de un archivo (s).
/# Restorecon -v /var/www/html/index.html
o para restaurar de forma recursiva los contextos de seguridad predeterminada para todo el directorio:
# Restorecon -Rv /var/www/html
Adems, si simplemente pretendemos profundizar en los contextos de seguridad del directorio / var / www
/ html para ver si todos los archivos necesarios a sus contextos de seguridad restaurados, podemos
utilizar restorecon con la opcin -n para evitar cualquier reetiquetado que ocurre:
# Restorecon -Rv -n /var/www/html

5.3. Reetiquetar sistema de archivos completo


A veces es necesario volver a etiquetar el sistema de archivos completo aunque esto slo debera ser
necesario al activar SELinux despus de haber sido deshabilitado o cuando se cambia la poltica de
SELinux de predeterminado a estricta. Para volver a etiquetar automticamente el sistema de archivos
completo despus del reinicio, hacer:
# touch /.autorelabel
# reboot

A veces un reetiquetado del sistema de archivos completo fallar si el sistema se ha actualizado a


CentOS-5.2 con SELinux deshabilitado y SELinux est habilitado entonces. Si el procedimiento anterior
no funciona correctamente un reetiquetado del sistema de archivos completo, trate de emitir el comando ''
genhomedircon primero:
# genhomedircon
# touch /.autorelabel
# reboot

5.4. Permitir el acceso a un puerto


Podemos querer un servicio como Apache que se le permitiera unirse y escuchar las conexiones
entrantes en un puerto no estndar. Por defecto, la poltica de SELinux nicamente permitir el acceso a
los servicios de puertos reconocidos asociados con esos servicios. Si quisiramos permitir que Apache
escucha en el puerto TCP 81, podemos agregar una regla para permitir que con el comando 'semanage':
# semanage port -a -t tcp -p http_port_t 81
Una lista completa de los puertos que los servicios se permiten el acceso de SELinux se puede obtener
con:
# semanage -l puerto

6. Personalizacin de Polticas de SELinux


Se pueden realizar modificaciones de menor importancia a las polticas de SELinux sin modificar y
recompilar la fuente poltica estableciendo valores booleanos de caractersticas opcionales. Tales
caractersticas incluyen permitir a los usuarios compartir sus directorios bajo Samba o permitir que
Apache para servir archivos desde directorios usuarios domsticos que de otro modo se les niega por la
poltica de SELinux.

7. Creacin de Polticas de Mdulos personalizadas SELinux con


audit2allow
A veces, hay ocasiones en que ninguno de los mtodos anteriores frente a una situacin dada y tenemos
que extender la poltica de SELinux mediante la creacin de un mdulo de directiva personalizada para
permitir un cierto conjunto de condiciones. Por ejemplo, considere la postgrey servicio add-on para un

servidor de correo SMTP. Nuestro servidor SMTP necesita comunicarse con postgrey sobre un socket de
Unix y que es algo que la poltica de SELinux por defecto para nuestro servidor smtp no permite. En
consecuencia, el servicio est bloqueado por SELinux. Este es un tema que no puede ser fijado por el
cambio o la restauracin de contextos de seguridad de tipo de archivo y no es algo que tiene un valor
booleano que podemos cambiar para permitir. Podramos desactivar la proteccin de SELinux del
servidor SMTP a travs de un booleano, que sera mejor que deshabilitar SELinux completamente, pero
que an est lejos de ser ideal.
Si cambiamos de SELinux en modo permisivo y corremos nuestro servidor de correo por un perodo
determinado de tiempo, podemos registrar problemas de SELinux, mientras que todava permite el
acceso. Comprobacin de nuestros registros, vemos los siguientes mensajes de SELinux AVC:
type = AVC msg = audit (1218128130.653: 334): avc: {negado ConnectTo} para pid
= 9111 comm = ruta "smtpd" = "/ var / spool / postfix / postgrey / enchufe"
scontext = system_u: system_r: postfix_smtpd_t: s0 tcontext = system_u:
system_r: initrc_t: s0 tclass = unix_stream_socket
type = AVC msg = audit (1218128130.653: 334): avc: negado {} para escribir pid
= 9111 comm = "smtpd" name = "socket" dev = sda6 ino = 39977017
scontext = system_u: system_r: postfix_smtpd_t: s0 tcontext = system_u:
object_r: postfix_spool_t: s0 tclass = sock_file
Entonces podemos usar 'audit2allow' para generar un conjunto de reglas de poltica que permitan las
acciones requeridas. Podemos generar un archivo de poltica Ejecucin Tipo postgrey local
(postgreylocal.te):
#

Grep

smtpd_t

/var/log/audit/audit.log

postgreylocal.te
# Cat postgreylocal.te
mdulo postgreylocal 1,0;
require {
write postfix_smtpd_t;
write postfix_spool_t;
write initrc_t;
write class sock_file;
ConnectTo clase unix_stream_socket;

audit2allow

-m

postgreylocal>

}
# ============= Postfix_smtpd_t ==============
permitir initrc_t postfix_smtpd_t: ConnectTo unix_stream_socket;
permitir postfix_spool_t postfix_smtpd_t: escritura sock_file;
Arriba vemos que podemos grep el archivo audit.log para las cuestiones relativas a nuestro servidor smtp
y el tubo de esas cuestiones que audit2allow que genera un conjunto de reglas que se cree que permitira
las acciones actualmente negados por la poltica de SELinux. La revisin de estas reglas que vemos
nuestro servidor smtp quiere conectarse y escribir a un socket Unix que vemos en los registros de salida
es el socket de Unix que el servicio postgrey est escuchando. Como esto parece perfectamente
razonable, podemos seguir adelante y utilizar audit2allow para hacer un mdulo de directiva
personalizada para permitir que estas acciones:
# Grep smtpd_t /var/log/audit/audit.log | audit2allow -M postgreylocal
Luego cargamos nuestro mdulo poltica postgrey con el comando 'semodule' en la actual poltica de
SELinux:
postgreylocal.pp -i semodule
que

se

sumarn

nuestro

mdulo

poltica

postgrey

/etc/selinux/targeted/modules/active/modules/postgreylocal.pp. Podemos comprobar el mdulo de poltica


cargado correctamente haciendo una lista de los mdulos cargados con '-l semodule'.
Entonces podemos seguir vigilando nuestros archivos de registro de SELinux para comprobar que
nuestras obras mdulo de poltica de encargo y una vez que estamos satisfechos podemos volver a
habilitar modo obediente SELinux y otra vez beneficiarse de la proteccin de SELinux de nuestro servidor
smtp ahora completamente funcional.

7.1. Manual de Personalizacin de Mdulos


A menudo audit2allow crear automticamente un mdulo de directivas personalizado para resolver un
tema en particular, pero hay momentos en los que no lo entiende del todo bien y podemos querer editar y
compilar el mdulo de polticas manualmente. Por ejemplo, considere el siguiente registro de auditora
AVC:
Correr audit2allow en el error anterior, y la revisin del archivo de poltica postfixlocal.te resultante vemos:
# Grep postdrop /var/log/audit/audit.log | audit2allow -M postfixlocal

# Cat postfixlocal.te
module postfixlocal 1,0;
require {
write httpd_log_t;
write postfix_postdrop_t;
getattr clase dir;
write de clase {read getattr};
}
# ============= Postfix_postdrop_t ==============
let httpd_log_t postfix_postdrop_t: archivo getattr;
Esperemos que la primera cosa que nos golpea aqu es por qu postdrop necesita acceso a / var / log /
httpd / error_log? Es de suponer que esto no es algo que esperaramos as que tenemos que evaluar si
se trata de una accin que deseamos permitir o no. Tenemos un nmero de opciones. Podramos
simplemente ignorar el error y permitir SELinux para continuar el bloqueo y el registro de los intentos de
acceso o podramos permitir que la accin mediante la creacin del mdulo de directiva personalizada
como sugiere audit2allow.Como alternativa podemos editar el archivo de mdulo .te poltica personalizada
para prevenir la auditora de este error particular, mientras que todava permite SELinux para continuar
impidiendo el acceso. Hacemos esto editando el permitir que la lnea, cambindolo a dontaudit :
# ============= Postfix_postdrop_t ==============
dontaudit postfix_postdrop_t httpd_log_t: archivo getattr;
Ahora podemos compilar manualmente y cargar el mdulo de directiva personalizada editado:
# Checkmodule -M -m -o postfixlocal.mod postfixlocal.te
# Semodule_package -o postfixlocal.pp -m postfixlocal.mod
# Semodule -i postfixlocal.pp
El acceso a / var / log / httpd / error_log por postdrop seguir siendo impedido por SELinux pero no vamos
a recibir alertas constantes y mensajes de error que llenan nuestra archivos de registro cada momento el
acceso est bloqueado.

8. Resumen

Este artculo pretende dar una visin general del trabajo con SELinux para los nuevos usuarios de
SELinux. SELinux est instalado y habilitado por defecto, y para la mayora de los usuarios que
funcionar sin problema proporcionando un mayor nivel de seguridad. SELinux es conveniente para todas
las clases de la instalacin, incluyendo servidores, estaciones de trabajo, computadoras de escritorio y
porttiles.
Aunque SELinux puede parecer bastante desalentador y complejo para los usuarios que no estn
familiarizados con ella, eso no es motivo para desactivarlo en la instalacin. Si hace SELinux cuestiones
presentes, entonces es fcil de cambiar al modo permisivo en el que cuestiones puntuales solamente se
registran y no obstruidas. Cuando los problemas surgen las tcnicas presentadas en este artculo se
puede utilizar para solucionar problemas y resolverlos.

Configuracin de Firewall con IPTables

Un firewall es un dispositivo, ya sea software o hardware, que filtra


todo el trfico de red. El sistema operativo Linux dispone de un
firewall llamado IPtables.
Iptables es un firewall incluido en el kernel de Linux desde la
versin 2.4 que est incluido en el sistema operativo. Es un firewall
basado en reglas, su funcionamiento se basa en aplicar reglas que
el mismo firewall ejecute.
Estas IPtables tambin se encuentran en los firmwares basados en Linux y por supuesto, los
dispositivos Android.

Qu es IpTables?
IPtables es un sistema de firewall vinculado al kernel de linux que se ha extendido enormemente
a partir del kernel 2.4 de este sistema operativo. Al igual que el anterior sistema ipchains, un
firewall de iptables no es como un servidor que lo iniciamos o detenemos o que se pueda caer
por un error de programacin (esto es una pequea mentira, ha tenido alguna vulnerabilidad que
permite DoS, pero nunca tendr tanto peligro como las aplicaciones que escuchan en
determinado puerto TCP): iptables est integrado con el kernel, es parte del sistema operativo.
Cmo se pone en marcha? Realmente lo que se hace es aplicar reglas. Para ellos se ejecuta el
comando iptables, con el que aadimos, borramos, o creamos reglas. Por ello un firewall de
iptables no es sino un simple script de shell en el que se van ejecutando las reglas de firewall.

Para Iniciar/Parar/Reiniciar Iptables debemos ejecutar estos comandos:

sudo service iptables Start

sudo service iptables stop

sudo service iptables restart

Los principales comandos de IPtables son los siguientes (argumentos de una orden):

-A append agrega una regla a una cadena.

-D delete borra una regla de una cadena especificada.

-R replace reemplaza una regla.

-I insert inserta una regla en lugar de una cadena.

-L list muestra las reglas que le pasamos como argumento.

-F flush borra todas las reglas de una cadena.

-Z zero pone a cero todos los contadores de una cadena.

-N new-chain permite al usuario crear su propia cadena.

-X delete-chain borra la cadena especificada.

-P policy explica al kernel qu hacer con los paquetes que no coincidan con ninguna
regla.

-E rename-chain cambia el orden de una cadena.

Condiciones principales para Iptables:

-p protocol la regla se aplica a un protocolo.

-s src source la regla se aplica a una IP de origen.

-d dst destination la regla se aplica a una Ip de destino.

-i in-interface la regla de aplica a una interfaz de origen, como eth0.

-o out-interface la regla se aplica a una interfaz de destino.

Condiciones TCP/UDP

-sport source-port selecciona o excluye puertos de un determinado puerto de origen.

-dport destination-port selecciona o excluye puertos de un determinado puerto de


destino.

Existen muchas ms condiciones para una configuracin avanzada del firewall, pero las
elementales ya las tenemos listadas.

Configurar reglas por defecto


La configuracin por defecto de un firewall debera ser, traducido al espaol, bloquear todo
excepto [reglas]. Para configurar el firewall para que bloquee todas las conexiones debemos
teclear:

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT DROP

Con esto nos quedaremos sin internet, por lo que a continuacin debemos empezar a crear
reglas permisivas.

Para aplicar una regla que filtre un determinado puerto, debemos ejecutar:

iptables -A INPUT -p tcp sport 22 22 crea una regla para el puerto de origen tcp 2222

Para bloquear el trfico procedente de una determinada IP, debemos ejecutar:

iptables -A INPUT -p tcp -m iprange src-range 192.168.1.13-192.168.2.19 (ejemplo de IP)

Tambin podramos bloquear por MAC con la condicin mac-source.

iptables -A INPUT -m mac mac-source 00:00:00:00:00:01

Una vez ejecutadas las reglas que queramos aplicar, debemos guardarlas tecleando sudo
service
iptables save

Ver el estado del firewall

iptables -L -n -v

El parmetro L muestra las lneas abiertas. V permite recibir ms informacin sobre las
conexiones y N nos devuelve las direcciones IP y sus correspondientes puertos sin pasar por un
servidor DNS.

Eliminar las reglas existentes


Para borrar toda la configuracin del firewall para volver a configurarlo de nuevo debemos
teclear:

iptables F

Permitir conexiones entrantes


Teclearemos los siguientes parmetros:

iptables -A INPUT -i [interface] -p [protocolo] dport [puerto] -m state state


NEW,ESTABLISHED -j ACCEPT

-i: debemos configurar la interfaz, por ejemplo, eth0. Esto es til en caso de tener varias
tarjetas de red, si tenemos slo una, no tenemos por qu especificar este parmetro.
-p: protocolo. Debemos especificar si el protocolo ser TCP o UDP.
dport: el puerto que queremos permitir, por ejemplo, en caso de HTTP sera el 80.

Un ejemplo para permitir las conexiones entrantes desde pginas web:

iptables -A INPUT -i eth0 -p tcp dport 80 -m state state NEW,ESTABLISHED -j ACCEPT

Permitir las conexiones salientes

iptables -A OUTPUT -o [interfaz] -p [protocolo] sport [puerto] -m state state


ESTABLISHED -j ACCEPT

-o: debemos configurar la interfaz, por ejemplo, eth0, al igual que en el caso anterior.
-p: protocolo. Debemos especificar si el protocolo ser TCP o UDP.
sport: el puerto que queremos permitir, por ejemplo, en caso de HTTPS sera el 443.

Un ejemplo para permitir el trfico saliente hacia pginas web:

iptables -A OUTPUT -o eth0 -p tcp sport 80 -m state state ESTABLISHED -j ACCEPT

Permitir los paquetes ICMP


Por defecto, el ping est deshabilitado. Debemos habilitarlo manualmente aadiendo las
correspondientes entradas en iptables. Para ello teclearemos:
Para poder hacer ping a otros servidores:

iptables -A OUTPUT -p icmp icmp-type echo-request -j ACCEPT

Para permitir recibir solicitudes de ping de otros equipos:

iptables -A INPUT -p icmp icmp-type echo-reply -j ACCEPT

Permitir que el trfico interno salga a internet


En el caso de tener 2 tarjetas de red (eth0 en local y eth1 conectada a internet) podemos
configurar el firewall para que reenve el trfico de la red local a travs de internet. Para ello
escribiremos:

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

Bloquear y prevenir ataques DDoS

iptables -A INPUT -p tcp dport 80 -m limit limit 25/minute limit-burst 100 -j ACCEPT

Consultar los paquetes rechazados por iptables


Para saber los paquetes que iptables ha rechazado debemos teclear:

iptables -N LOGGING

Ejemplos prcticos:
Cmo bloquear las conexiones entrantes por el puerto 1234:

iptables -A INPUT -p tcp dport 1234 -j DROP

iptables -A INPUT -i eth1 -p tcp dport 80 -j DROP bloquea en la interfaz eth1

Bloquear una direccin IP:

iptables -A INPUT -s 192.168.0.0/24 -j DROP

Bloquear una direccin IP de salida:

iptables -A OUTPUT -d 75.126.153.206 -j DROP

Tambin podemos bloquear una url, por ejemplo, facebook:

iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP

Bloquear el trfico desde una direccion MAC:

iptables -A INPUT -m mac mac-source 00:0F:EA:91:04:08 -j DROP

Bloquear peticiones ping:

iptables -A INPUT -p icmp icmp-type echo-request -j DROP

UFW (Uncomplicated Firewall) es una herramienta de configuracin de firewall para Ubuntu


desde la consola, desarrollado para facilitar la configuracin del firewall Iptables. Ufw
proporciona una manera fcil de crear un firewall basado en host IPv4 o IPv6.
Lo primero que debemos hacer es instalar ufw desde apt-get con:

sudo apt-get install ufw

Ahora ejecutamos el firewall tecleando sudo ufw enable. Para parar el firewall, teclearemos
sudo ufw disable, y para reiniciarlo, primero lo pararemos y a continuacin lo volveremos a
arrancar con los comandos especificados.
Una vez tengamos el firewall funcionando, ya podemos comenzar a establecer reglas en su
funcionamiento. Para aplicar una regla que permita por defecto todo el trfico, tecleamos:

sudo ufw default allow

Por el contrario, para bloquear todo el trfico, teclearemos:

sudo ufw default deny

Para aplicar reglas a determinados puertos, lo haremos mediante el comando:

sudo ufw allow\deny [puerto]/[protocolo]

Ejemplo:

sudo ufw allow 1234/tcp (permite las conexiones del puerto 1234 en tcp)

sudo ufw deny 4321/udp (bloquea las conexiones del puerto 4321 en udp)

Existe un archivo que contiene ms reglas predefinidas en la ruta /etc/ufw/before.rules donde,


por ejemplo, podemos permitir o bloquear el ping externo.
Para ello, pondremos una # delante de la linea -A ufw-before-input -p icmp icmp-type echorequest -j ACCEPT
Podemos consultar las reglas del firewall desde un terminal tecleando sudo ufw status
Como podemos ver, con UFW es bastante sencillo gestionar a nivel ipv4 e ipv6 nuestro firewall
iptables. Todo ello podemos gestionarlo desde un terminal sin necesidad de disponer de una
interfaz grfica, pero an podemos facilitarlo ms con otra aplicacin, llamada gufw, que es una
interfaz grfica para ufw que simplifica an ms su uso.
Para instalar gufw debemos escribir en un terminal sudo apt-get install gufw

Una vez instalado, lo ejecutamos escribiendo gufw o buscndolo en el panel de aplicaciones.


La primera ventana que nos muestra el programa nos permite activar y desactivar el firewall,
establecer reglas por defecto para el trfico entrante y saliente (permitir, rechazar y denegar), y,
en la parte inferior, crear reglas.

Si pulsamos en el botn + de la parte inferior, accedemos al men de configuracin de reglas.


Aqui podemos aadir reglas personalizadas en cuanto a puertos, aplicaciones, ips de origen,
etc.

Para aadir una regla por puerto igual que hemos especificado desde terminal, seleccionamos si
queremos permitir (allow) o bloquear (deny), si queremos que se filtre el trfico entrante o
saliente, el protocolo, ya sea tcp o udp y el puerto a filtrar.
Las posibilidades de iptables son prcticamente infinitas, y la dificultad de configuracin aumenta
exponencialmente segn sean de complejas las configuraciones que queremos realizar. Desde

RedesZone esperamos que con este pequeo tutorial podis configurar vuestro firewall iptables
a nivel bsico de forma sencilla.

Configurar un Firewall en Windows Server 2012

1. Qu es un firewall?
Un servidor de seguridad es una pieza de software o dispositivo de hardware que se utiliza para
proteger una red y los nodos conectados a esa red de externo (as como internas) amenazas.
Funciona inspeccionando los paquetes entrantes y comparndolos con un conjunto de reglas. Si las
reglas permiten el paquete, el firewall pasa el paquete al protocolo TCP/IP para su procesamiento
adicional. Si las reglas no permiten el paquete, el firewall descarta el paquete y, si est habilitado el
registro, crea una entrada en el archivo de registro del firewall.
La lista de trfico permitido se rellena de una de las maneras siguientes:

Cuando el equipo que tiene el firewall habilitado inicia la comunicacin, el firewall crea una
entrada en la lista para que se permita la respuesta. La respuesta de entrada se considera
trfico solicitado y no es necesario configurarla.

Un administrador configura las excepciones para el firewall. Esto permite el acceso a


programas especficos que se ejecutan en el equipo o el acceso a los puertos de conexin
especificados en el equipo. En este caso, el equipo acepta el trfico de entrada no solicitado
cuando acta como un servidor, un agente de escucha o un equipo del mismo nivel. ste es
el tipo de configuracin que se debe completar para conectar a SQL Server.

Elegir una estrategia del firewall es ms complejo que decidir simplemente si un puerto determinado
debe estar abierto o cerrado. Al disear una estrategia de firewall para la empresa, asegrese
considerar todas las reglas y opciones de configuracin disponibles.

2. Cul es el Firewall de Windows?


El Firewall de Windows es un firewall con estado basado en host que est integrada en el sistema
operativo Windows. La primera implementacin del Firewall de Windows estaba en Windows XP
Service Pack 2 e incluye caractersticas tales como el registro de seguridad, programas y portuarias
excepciones, y las normas de transmisin de ICMP. Mientras que la funcin de conjunto inicial era
suficiente en el momento, el Firewall de Windows se ha convertido en una herramienta de seguridad
ms robusta. Con nuevas iteraciones del Firewall de Windows no slo ha mejorado en gran medida
Microsoft la granularidad de las normas de proteccin, sino que tambin han implementado nuevas
caractersticas tales como la configuracin de proteccin de IPSec y la integracin PowerShell
extendida.

3. Configuracin Predeterminada del Firewall


El primer paso para planear la configuracin del firewall es determinar el estado actual del firewall
para el sistema operativo. Si el sistema operativo se actualiz desde una versin anterior, se puede
haber conservado la configuracin de firewall anterior. Adems, otro administrador o una Directiva de
grupo podra haber cambiado la configuracin del firewall en el dominio.
Nota:
La activacin del firewall afectar a otros programas que tengan acceso a este equipo, tales
como el uso compartido de impresoras y archivos, y las conexiones remotas al escritorio. Los
administradores deben considerar todas las aplicaciones que se estn ejecutando en el equipo antes
de ajustar la configuracin de firewall.

4. Novedades para el Firewall de Windows en Windows Server 2012 y Windows Server 2012 R2
Windows Server 2012 y Windows Server 2012 R2, al tiempo que ofrece una experiencia de Firewall
de Windows muy similar a versiones anteriores, ha mejorado de las siguientes maneras:
1. Windows Store aislamiento de la red de aplicaciones - Anteriormente, se poda solamente
hacer cumplir las normas de seguridad basados en programas o puertos. Con Windows
Server 2012 y Windows Server 2012 R2, ahora se puede configurar reglas de seguridad para
aislar aplicaciones de Windows Store. Por ejemplo, si desea slo para permitir que una
aplicacin de Windows para acceder a la red local y se conecta a Internet, esto es ahora
posible.
2. Los cmdlets de PowerShell - Con nuevas, amplias cmdlets, ahora puede configurar por
completo su poltica de Firewall desde el entorno de Windows PowerShell. Gestin remota de
reglas de cortafuegos tambin es posible ahora con Windows Remote Management (WinRM)
que est habilitado en Windows Server 2012 de forma predeterminada.
3. Internet Key Exchange versin 2 (IKEv2) para el modo de transporte IPsec - apoyo IKEv2
se ha mejorado y ahora soporta caractersticas tales como conexiones en modo de transporte
de extremo a extremo de IPsec.

5. Programas para configurar el firewall


Hay tres maneras de configurar el Firewall de Windows.

Elemento Firewall de Windows del Panel de control.


El elemento Firewall de Windows se puede abrir desde el Panel de control.

Aviso: Los cambios realizados en el elemento Firewall de Windows del Panel de control
solo afectan al perfil actual. Los dispositivos mviles, por ejemplo un porttil, no deben utilizar el
elemento Firewall de Windows del Panel de control, dado que el perfil podra cambiar cuando
se conecte con una configuracin diferente. Entonces, el perfil configurado previamente no
estar en vigor.
El elemento Firewall de Windows del Panel de control permite configurar opciones
bsicas. Entre ellas, figuran:
Activar o desactivar el elemento Firewall de Windows en el Panel de
o

Habilitar y deshabilitar reglas

Conceder excepciones para puertos y programas

Establecer algunas restricciones de mbito

control

El elemento Firewall de Windows del Panel de control es muy adecuado para los usuarios
que tengan experiencia en la configuracin de firewall y que estn configurando opciones de
firewall bsicas para equipos que no sean mviles. Tambin puede abrir el elemento Firewall
de Windows del Panel de control con el comando run utilizando el procedimiento siguiente:
Para abrir el elemento Firewall de Windows

En el men Inicio, haga clic en Ejecutar y, a continuacin, escriba firewall.cpl.

Haga clic en Aceptar.

Microsoft Management Console (MMC)


El complemento MMC del Firewall de Windows con seguridad avanzada permite establecer opciones
de configuracin de firewall ms avanzadas. Este complemento presenta la mayora de las opciones
de firewall de una manera fcil de usar y presenta todos los perfiles de firewall.

NETSH
Un administrador puede utilizar la herramienta netsh.exe para configurar y supervisar los equipos
basados en Windows en un smbolo del sistema o utilizando un archivo por lotes. Con la
herramienta netsh, puede dirigir los comandos de contexto que escriba a la aplicacin auxiliar
adecuada y, a continuacin, esta ejecutar el comando. Una aplicacin auxiliar es un archivo de
biblioteca

de

vnculos

dinmicos

(.dll)

que

extiende

la

funcionalidad

de

la

herramienta netsh proporcionando funciones de configuracin, supervisin y soporte tcnico de uno o


ms servicios, utilidades o protocolos. Todos los sistemas operativos que admiten SQL Server tienen
una aplicacin auxiliar de firewall. Windows Server 2008 tambin tiene una aplicacin auxiliar de
firewall avanzada denominada advfirewall. Los detalles del uso denetsh no se explican en este
tema. Sin embargo, muchas de las opciones de configuracin descritas se pueden configurar
utilizando netsh. Por ejemplo, ejecute el script siguiente en un smbolo del sistema para abrir el
puerto TCP 1433:
netsh firewall set portopening protocol = TCP port = 1433 name = SQLPort mode = ENABLE scope =
SUBNET profile = CURRENT
Un ejemplo similar que usa Firewall de Windows para la aplicacin auxiliar Seguridad avanzada:
netsh advfirewall firewall add rule name = SQLPort dir = in protocol = tcp action = allow localport =
1433 remoteip = localsubnet profile = DOMAIN

6. Perfiles De Firewall
Los sistemas operativos identifican y recuerdan cada una de las redes a las que se conectan con
respecto a la conectividad, las conexiones y la categora.
Hay tres tipos de ubicacin de red en Firewall de Windows con seguridad avanzada:

Dominio. Windows puede autenticar el acceso al controlador de dominio para el dominio al


que est unido el equipo.

Pblicas. Excepto las redes de dominio, todas las redes se categorizan inicialmente como
pblicas. Las redes que representan conexiones directas a Internet o que estn en
ubicaciones pblicas, tales como aeropuertos o cafeteras, deben dejarse como pblicas.

Privadas. Una red identificada por un usuario o una aplicacin como privada. Solo las redes
confiables se deben identificar como redes privadas. Es probable que los usuarios deseen
identificar las redes domsticas o de pequea empresa como privadas.

El administrador puede crear un perfil para cada tipo de ubicacin de red, cada perfil conteniendo
diferentes directivas de firewall. En cada momento se aplica solamente un perfil. El orden de perfile se
aplica de la manera siguiente:
1. Si todas las interfaces se autentican para el controlador de dominio para el dominio del que
es miembro el equipo, se aplica el perfil del dominio.
2. Si todas las interfaces se autentican para el controlador de dominio o estn conectadas a
redes clasificadas como ubicaciones de la red privada, se aplica el perfil privado.
3. De lo contrario, se aplica el perfil pblico.
Utilice el complemento MMD de Firewall de Windows con seguridad avanzada para ver y configurar
todos los perfiles del firewall. El elemento Firewall de Windows del Panel de control solo configura el
perfil actual.

7. Utilizar el complemento Firewall de Windows con seguridad avanzada


Se pueden configurar opciones de firewall avanzadas adicionales utilizando el complemento MMC del
Firewall de Windows con seguridad avanzada. El complemento incluye un asistente de reglas y

expone valores de configuracin adicionales que no estn disponibles en el elemento Firewall de


Windows en el Panel de control. Entre estas opciones de configuracin, se incluyen las siguientes:

Configuracin de cifrado

Restricciones de servicios

Restringir conexiones para equipos por nombre

Restringir conexiones para usuarios o perfiles especficos

Cruce de permetro que permite que el trfico evite los enrutadores de Traduccin de
direcciones de red (NAT)

Configurar reglas salientes

Configurar reglas de seguridad

Requerir IPSec para conexiones entrantes

Para crear una nueva regla de firewall mediante el asistente de Nueva regla
1. En el men Inicio, haga clic en Ejecutar, escriba WF.msc y, a continuacin, haga clic
en Aceptar.
2. En el Firewall de Windows con seguridad avanzada, en el panel izquierdo, haga clic con
el botn secundario en Reglas de entrada y, a continuacin, haga clic en Nueva regla.
3. Complete el Asistente para nueva regla de entrada usando la configuracin que desee.

8. Solucionar problemas de configuracin del firewall


Las herramientas y tcnicas siguientes pueden ser tiles para solucionar problemas del firewall:

El estado efectivo del puerto es la unin de todas las reglas relacionadas con el
puerto. Cuando intente bloquear el acceso a travs de un puerto, puede ser til para revisar
todas las reglas que citan el nmero de puerto. Para ello, utilice el complemento MMC del

Firewall de Windows con seguridad avanzada y ordene las reglas entrantes y salientes por
nmero de puerto.

Revise los puertos activos en el equipo en el que se est ejecutando SQL Server. Este
proceso de revisin incluye la comprobacin de qu puertos TCP/IP estn escuchando y
tambin la comprobacin del estado de los puertos.

Para comprobar qu puertos estn escuchando, utilice la utilidad de la lnea de


comandos netstat. Adems de mostrar las conexiones TCP activas, la utilidad netstat tambin
muestra diversa informacin y estadsticas de IP.

Para mostrar qu puertos TCP/IP estn escuchando


1. Abra la ventana de smbolo del sistema.
2. En el smbolo del sistema, escriba netstat -n -a.

El modificador -n indica a netstat que muestre numricamente la direccin y el nmero de


puerto de las conexiones TCP activas. El modificador -a indica a netstat que muestre los
puertos TCP y UPD en los que est escuchando el equipo.

La utilidad PortQry se puede usar para notificar el estado de los puertos TCP/IP para indicar
que estn escuchando, no escuchando o filtrados. (Con un estado de filtrado, el puerto puede
o no estar escuchando; este estado indica que la utilidad no ha recibido una respuesta del
puerto.) La utilidad PortQry se puede descargar desde el Centro de descargas de Microsoft.

9. Demostracin :
Cortafuegos de Windows con seguridad avanzada
Como sabemos, el cortafuego permite o deniega la apertura de una conexin
con nuestro equipo en un puerto determinado. Para acceder a la configuracin bsica
del servidor podemos hacerlo desde el centro de redes:

Como vemos, en la parte izquierda tenemos un enlace para acceder a su


configuracin:

Como vemos en el recuadro marcado, podemos de una forma rpida, habilitar


nuestro servidor para permitir un determinado trfico. Por ejemplo, cuando tengamos
el servicio DHCP instalado en el prximo captulo, la instalacin crear una regla para
permitir este trfico. Adems de poder crear reglas podemos directamente habilitar el
cortafuegos para determinados programas:

En este caso, el
servidor sabe que puertos utiliza el servicio de DHCP, abriendo esos puerto mediante las
correspondientes reglas.
Configuracin avanzada
Accedemos a la configuracin Avanzada (Se puede Acceder de 2 formas); esta vez
trabajaremos desde el Administrador de Servidores
1. Abra el Administrador de servidores de la barra de tareas.

2. Haga clic en el men Herramientas y seleccione Firewall de Windows con


seguridad avanzada .

3. Primero revise la configuracin actual seleccionando Propiedades de Windows


Firewall de la pgina de destino MMC. Esto permite el acceso a modificar la
configuracin para cada uno de los tres perfiles de firewall, de dominio, privado y
pblicos , as como la configuracin de IPSec.

La aplicacin de reglas personalizadas


Reglas personalizados permiten el mejor nivel de control sobre el trfico entrante y saliente a
su Windows Server 2012.
1. Si an no lo ha hecho ya cargar el MMC Firewall de Windows, abra
el Administrador de servidores de la barra de tareas, haga clic en el men
Herramientas y seleccionar el Firewall de Windows con seguridad avanzada .
2. Seleccione Reglas de entrada o Reglas de salida bajo el Firewall de Windows
con seguridad avanzada en el lado izquierdo de la consola de administracin.

Nota: Esto proporcionar un listado en cada una de las reglas de cortafuegos


configurados actualmente. Reglas que estn habilitados actualmente se indican con
el icono casilla verde, mientras que las reglas con discapacidad muestran un icono de
la casilla gris. Rightclicking regla permitir alternar activar / desactivar.

3. En el lado derecho de cada una de la Reglas de entrada o Reglas de


salida pestaa haga clic en Nueva regla .

4. Seleccione personalizada desde el botn radial Tipo de regla y haga clic


en Siguiente .

5. Seleccione la asociacin Programa para la regla de firewall personalizada ya sea Todos


los programas o la ruta a un programa y haga clic en Siguiente .

6. En el campo Tipo de protocolo , seleccione el tipo de protocolo y haga clic


en Siguiente .

7. Seleccione una asociacin de direcciones IP para las direcciones locales y


remotas y haga clic en Siguiente .

8. Seleccione una accin a tomar en la coincidencia de trfico y haga clic


en Siguiente .

9. Seleccione los perfiles asociados a la regla personalizada y haga clic


en Siguiente .

10. Proporcionar un nombre para la regla de firewall y una descripcin


opcional y haga clic en Finalizar .

11. Una vez creada la regla se activar. La regla de firewall se puede encontrar en la
pestaa Regla correspondiente, ya sea de entrada o salida, dependiendo del tipo
creado. Para desactivar o eliminar la regla encontrar la regla en la MMC, haga clic en
l y seleccione Regla Desactivar o Eliminar.

Bibliografa
Annimo. (s.f.). Linux Mxima Seguridad. Madrid, Espaa: Prentice Hall.
Matthews, M. (2009). Windows Server. Guia del Administrador. Madrid: McGRAW-HILL.
Sanz Mercado, P. (2008). Seguridad en Linux. Madrid: Servicio de Publicaciones de la Universidad Autnoma de Madrid.

Anda mungkin juga menyukai