Tema 7
ASII 1
Administración de servicios Internet Intranet
Tema 7: Seguridad
Tema 7
ASII 2
Seguridad
Tipos de ataques:
Ataques físicos
.
Ataques de denegación de servicio
.
Ataques de privilegios
.
Router Internet
Tema 7 ASII 3
Servidor proxy
Internet LAN Servidor ProxyConexión a Internet utilizando un servidor proxy:
Proporciona seguridad actuando como una puerta de enlace
entre nuestra red y la Internet
Almacena en caché información para reducir el tráfico entre
nuestra intranet y la Internet
Tema 7
ASII 4
Funcionamiento del proxy
Equipos cliente IP = 192.168.1.3 IP = 192.168.1.4 IP = 192.168.1.5 Equipo Proxy IP interna = 192.168.1.1 IP externa = 131.107.2.1
1. El cliente envía el paquete al equipo que funciona como proxy
4. El Proxy determina el destino, almacena en la caché la página para siguientes peticiones.
2. El equipo que funciona como proxy comprueba si ese equipo tiene permiso para salir y envía el paquete a Internet.
3. El servidor Web envía una respuesta al equipo que es Proxy
Internet
Servidor Web
Tema 7
ASII 5
Squid
• Software para servidor Proxy más popular y extendido.
• Es muy confiable, robusto y versátil.
• Hace de Proxy y caché con los protocolos HTTP, FTP,
GOPHER y WAIS, Proxy de SSL, caché transparente,
WWCP, aceleración HTTP, caché de consultas DNS y otras
muchas más.
Tema 7 ASII 6
/etc/squid/squid.conf
Parámetros configurables:
•
http_port
•
cache_mem
•
ftp_user
•
cache_dir
•
Al menos una Lista de Control de Acceso
•
Al menos una Regla de Control de Acceso
•
httpd_accel_host
•
httpd_accel_port
Tema 7
ASII 7
http_port
Squid por defecto utilizará el puerto 3128 para atender peticiones,
pero puede especificarse otro, o más de uno.
• Proxy Transparente, utiliza el puerto 80 y redirecciona peticiones.
• Proxy convencional, los usuarios suelen traer por defecto el
puerto 8080 (servicio de cacheo WWW).
http_port 3128 http_port 8080
Si desea incrementar la seguridad, para acceder desde la RAL.
http_port 192.168.1.254:3128 http_port 192.168.1.254:8080
Tema 7
ASII 8
cache_mem y cache_dir
Establece la cantidad ideal de memoria para lo siguiente:
• Objetos en tránsito.
• Objetos Hot.
• Objetos negativamente almacenados en el caché.
Los datos se almacenan en bloques de 4 Kb. Por defecto se
establecen 8 MB.
cache_mem 16 MB
Mientras más grande el caché de disco, más objetos de
almacenarán en éste y por lo tanto se utilizará menos el
ancho de banda. Por defecto 100 Mb.
Tema 7
ASII 9
Listas de control de acceso
Listas de control de acceso.
Regularmente una lista de control de acceso se establece
siguiendo la siguiente sintaxis:
acl [nombre de la lista] src [lo que compone a la lista]
acl miredlocal src 192.168.1.0/255.255.255.0
acl clase src 192.168.1.64/26
También puede definirse una Lista de Control de Acceso
invocando un fichero con una lista de direcciones IP:
Tema 7
ASII 10
Reglas de control de acceso
http_access [deny o allow] [lista de control de acceso]
http_access allow permitidos
También pueden definirse reglas valiéndose de la expresión
!
,
la cual significa excepción.
http_access allow lista1 !lista2
Ejemplo (lista de control):acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255 acl redlocal src "/etc/squid/lista"
Ejemplo (regla de control):
http_access allow localhost http_access allow redlocal http_access deny all
Tema 7
ASII 11
Opciones varias de Squid
Aceleración con Proxy:
httpd_accel_host virtual httpd_accel_port 0 httpd_accel_with_proxy onErrores en español:
rm -f /etc/squid/errors ln -s /usr/lib/squid/errors/Spanish /etc/squid/errorsRedireccionamiento (iptables) para usar el servidor proxy:
/sbin/iptables -t nat -A PREROUTING -i eth0Tema 7
ASII 12
Acceso por Autentificación con Squid
Instrucciones:
touch /etc/squid/claves chmod 600 /etc/squid/claves
chown squid:squid /etc/squid/claves htpasswd /etc/squid/claves manu
Parámetros en squid.conf:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/claves
acl password proxy_auth REQUIRED http_access allow redlocal password
Tema 7
ASII 13
Restricción de accesos a sitios Web con Squid
/etc/squid/sitiosdenegados:
www.porno www.otroporno.es culos warez hackers.es/etc/squid/squid.conf:
acl sitiosdenegados url_regex "/etc/squid/sitiosdenegados”
http_access allow redlocal !sitiosdenegados
Tema 7
ASII 14
Ejemplo squid.conf
#Lista que define método de autenticación:
acl password proxy_auth REQUIRED
# Listas de control de acceso por defecto:
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
# Listas que definen conjuntos de maquinas
acl redlocal src "/etc/squid/redlocal"
acl privilegiados src "/etc/squid/privilegiados" acl restringidos src "/etc/squid/restringidos" acl administrador src 192.168.1.254
# Listas que definen palabras contenidas en un URL
acl porno url_regex "/etc/squid/porno"
# Contenido: # # sex # porn # girl # celebrit # extasis # drug # playboy # hustler # Lista de sitios inocentes que accidentealmente sean bloqueados
acl noporno url_regex "/etc/squid/noporno"
# Contenido: # # missingheart # wirelessexcite # msexchange # msexcel # freetown # geek-girl # Define una lista estricta de extensiones prohibidas
acl multimedia urlpath_regex "/etc/squid/multimedia"
# Contenido: # # \.mp3$ # \.avi$ # \.mov$ # \.mpg$ # \.bat$ # \.pif$ # \.sys$ # \.lnk$ # \.scr$ # \.exe$ # Define una lista moderada de extensiones prohibidas
acl peligrosos urlpath_regex "/etc/squid/peligrosos"
# Contenido: # # \.bat$ # \.pif$ # \.sys$ # \.lnk$ # \.scr$ # \.exe$
Tema 7
ASII 15
Ejemplo squid.conf
acl matutino time MTWHF 09:00-15:00 # Reglas de control de acceso
# Regla por defecto:
http_access allow localhost # Ejemplos de reglas de control de acceso
http_access allow restringidos password !porno !multimedia http_access allow redlocal password !porno !peligrosos http_access allow privilegiados password !peligrosos http_access allow matutino !porno
http_access allow administrador http_access allow noporno all # Regla por defecto:
Tema 7
ASII 16
Cortafuegos
Securizando las conexiones a Internet utilizando un cortafuegos:
Evita un acceso no autorizado a nuestra red
Permite especificar el tipo de tráfico permitido que entra y sale
de nuestra red
Intranet Internet
Router Cortafuegos
Tema 7
ASII 17
Cortafuegos
Un firewall es el conjunto de hardware, software y reglas
utilizados para proteger el sistema.
Si se usa una máquina “segura” como cortafuegos separada
del resto de máquinas que dan servicio:
host bastión
Se puede usar una máquina que es cortafuegos y da servicios.
Internet
Servidor Web
Tema 7
ASII 18
Filtrado de paquetes
Técnica basada en inspeccionar los datagramas IP para
decidir los que se procesan y los que se descartan.
Criterios de elección
Tipo de protocolo: TCP, UDP, ICMP…
Número de socket
Tipo de datagrama: SYN/ACK,data
Dirección de origen o de destino.
Se utiliza iptables (versión 2.4 del kernel).
Tema 7
ASII 19
Iptables
Utiliza 3 tablas o listas de reglas:
filter — La tabla por defecto para el manejo de paquetes
de red.
nat — Usada para alterar paquetes que crean una
nueva conexión.
mangle — Usada por tipos específicos de alteración de
paquetes.
Cada una de estas tablas tiene un grupo de
cadenas
internas que corresponden a las acciones llevadas a
cabo por el filtro de red en el paquete.
Tema 7
ASII 20
Tabla filter
Las cadenas internas para la tabla filtro son las
siguientes:
INPUT
— Aplica a los paquetes recibidos a través de
una interfaz de red.
OUTPUT
— Esta cadena sirve para paquetes enviados
por medio de la misma interfaz de red que recibió los
paquetes.
FORWARD
— Esta cadena sirve para paquetes
Tema 7
ASII 21
Tabla nat
Las cadenas internas para la tabla nat son las
siguientes:
PREROUTING
— Esta cadena altera paquetes
recibidos por medio de una interfaz de red cuando
llegan.
OUTPUT
— Esta cadena altera paquetes generados
localmente antes de que sean dirigidos por medio de
una interfaz de red.
POSTROUTING
— Esta cadena altera paquetes antes
Tema 7
ASII 22
Configuración iptables
Cuando un paquete cumple una regla en particular en una de las tablas, se asignan a un objetivo (target)particular:
ACCEPT: el paquete se salta el resto de las verificaciones de la regla y se permite que continúe hacia su destino.
DROP: a el paquete se le niega el acceso al sistema y no se envía nada de vuelta al servidor que envió el paquete.
QUEUE: el paquete se pasa al espacio del usuario.
REJECT: el paquete es entregado, pero se envía un paquete de error al que envió el paquete.
Si ninguna de estas reglas en la cadena se aplican al paquete, entonces el paquete es tratado de acuerdo a la política por defecto.
Tema 7
ASII 23
iptables orden especificación_de_regla extensiones
-A — Añade la regla iptables al final de la cadena especificada. Este es el comando utilizado para simplemente añadir una regla cuando el orden de las reglas en la cadena no importa.
-C — Verifica una regla en particular antes de añadirla en la cadena especificada por el usuario. Este comando puede ser de ayuda para construir reglas iptables complejas pidiéndole que introduzca parámetros y opciones adicionales.
-D — Borra una regla de una cadena en particular por número (como el 5 para la quinta regla de una cadena). Puede también teclear la regla entera e iptables borrará la regla en la cadena que corresponda.
-E — Renombra una cadena definida por el usuario. Esto no afecta la estructura de la tabla.
-F — Libera la cadena seleccionada, que borra cada regla de la cadena. Si no se especifica ninguna cadena, este comando libera cada regla de cada cadena,
-h — Proporciona una lista de estructuras de comandos, así como también un resúmen rápido de parámetros de comandos y opciones.
Tema 7
ASII 24
Más ordenes
-I — Inserta una regla en una cadena en un punto especificado por un valor entero definido por el usuario. Si no se especifica ningún número, iptables colocará el comando en el tope de la cadena.
-L — Lista todas las reglas de la cadena especificada tras el comando. Para ver una lista de todas las cadenas en la tabla filter por defecto. La sintaxis siguiente deberá utilizarse para ver todas la listas de todas las reglas de una cadena específica en una tabla en particular:
-N — Crea una nueva cadena con un nombre especificado por el usuario. -P — Configura la política por defecto para una cadena en particular de tal
forma que cuando los paquetes atraviesen la cadena completa sin cumplir ninguna regla, serán enviados a un objetivo en particular, como puedan ser ACCEPT o DROP.
-R — Reemplaza una regla en una cadena particular. El número de la regla debe ser especificado después del nombre de la cadena. La primera regla en una cadena corresponde a la regla número uno.
-X — Borra una cadena especificada por el usuario. No se permite borrar ninguna de las cadenas predefinidas para cualquier tabla.
-Z — Pone ceros en los contadores de byte y de paquete en todas las cadenas de una tabla en particular.
Tema 7
ASII 25
Especificación de regla
-c — Resetea los contadores de una regla en particular.
-d — Configura el nombre de la máquina destino, dirección IP o red de un paquete que coincide con la regla.
-f — Aplica esta regla sólo a los paquetes fragmentados.
Usando la opción ! después de este parámetro, únicamente los paquetes no fragmentados se tendrán en cuenta.
-i — Configura la interfaz de red entrante, tal como eth0 o ppp0. Con iptables, este parámetro opcional puede ser usado solamente con las cadenas INPUT y FORWARD cuando es usado con la tabla filter y la cadena PREROUTING con las tablas nat y mangle.
Este parámetro también soporta las siguientes opciones especiales: ! — Dice a este parámetro que no concuerde, queriendo decir esto que las interfaces especificadas se excluirán de esta regla.
+ — Un caracter tipo comodín utilizado para coincidir todas las interfaces con una cadena de caracteres particular. Por ejemplo, el parámetro -i eth+ aplicará esta regla a cualquier interfaz Ethernet pero excluirá cualquier otra interfaz, tal com ppp0.
Tema 7
ASII 26
Especificación de regla
-j — Le dice a iptables que salte a un objetivo particular cuando un paquete coincide con una regla. Los objetivos válidos a usar después de la opción -j incluye las opciones estándar, ACCEPT, DROP, QUEUE, y RETURN. Si no especifica ningún objetivo, el paquete se mueve hacia atrás en la regla sin llevar a cabo ninguna acción. A pesar de todo, el contador para esta regla se sigue incrementando en uno, a partir del momento en el que el paquete se adecua a la regla especificada.
-o — Configura la interfaz de red de salida para una regla y puede ser usada solamente con las cadenas OUTPUT y FORWARD en la tabla de filtro y la cadena POSTROUTING en las tablas nat y mangle. Estos parámetros de opciones son los mismos que aquellos de la interfaz de entrada (-i).
-p — Configura el protocolo IP para la regla, el cual puede ser icmp, tcp, udp, o all, para coincidir todos los protocolos soportados. Además, se puede usar cualquier protocolo listado en /etc/protocols. Si esta opción es omitida cuando se esté creando una regla, la opción all es la opción por defecto.
-s — Configura la fuente para un paquete particular usando la misma sintaxis que el parámetro (-d).
Tema 7
ASII 27
Identificación de paquetes (TCP)
Estas opciones de identificación están disponibles en el protocolo TCP (opción -p tcp):
--dport — Configura el puerto de destino para el paquete. Use bien sea un nombre de servicio (tal como www o smtp), número de puerto, o el rango de números de puertos para configurar esta opción, tal como -p tcp --dport 3000:3200. El caracter de exclamación (!) indica todos los paquetes que no usan el servicio de red o puerto.
--sport — Configura el puerto fuente del paquete usando las mismas opciones que --dport. La opción --source-port es sinónimo con --sport. --syn Provoca que todos los paquetes designados de TCP, comúnmente llamados paquetes SYN, cumplan esta regla.
--tcp-flags — Permite a los paquetes TCP packets con bits específicos o banderas, ser coincididos con una regla. La opción --tcp-flags acepta dos parámetros. El primer parámetro es la máscara, la cual configura banderas a ser examinadas en el paquete. El segundo parámetro se refiere a la bandera que se debe configurar para poder coincidir. Las banderas posibles son ACK, FIN, PSH, RST, SYN, URG, ALL y NONE.
--tcp-option Intenta seleccionar con opciones específicas de TCP que pueden estar activas en un paquete en particular. Esta opción se puede revertir con el punto de exclamación (!).
Tema 7
ASII 28
Identificación de paquetes (UDP)
Estas opciones de selección están disponibles para el protocolo UDP (-p udp):
--dport — Especifica el puerto destino del paquete UDP, usando el nombre del servicio, número de puerto, o rango de números de puertos. La --destination-port que coincide la opción es sinónimo con --dport. --sport — Especifica el puerto fuente de un paquete UDP, usando el
nombre del servicio, número de puerto, o rango de números de puertos. La --source-port opción es sinónimo con --sport.
Tema 7
ASII 29
Identificación de paquetes (ICMP y módulos)
Estas opciones de coincidencia están disponibles para el Internet Control Message Protocol (ICMP) (-p icmp):
--icmp-type Selecciona el nombre o el número del tipo ICMP que concuerde con la regla. Se puede obtener una lista de nombres válidos ICMP tecleando el comando iptables -p icmp -h.
Opciones adicionales de coincidencia. -m <module-name>
limit module — Permite colocar un límite en cuántos paquetes son coincididos a una regla particular. Tiene las opciones siguientes:
--limit — Configura el número de coincidencias en un intervalo de tiempo,
<número>/<tiempo>. Ej: --limit 5/hour
--limit-burst — Configura un límite en el número de paquetes capaces de cumplir una regla en un determinado tiempo.
módulo state — Habilita la coincidencia de estado. Tiene las siguientes opciones:
--state — coincide un paquete con los siguientes estados de conexión:
ESTABLISHED El paquete seleccionado se asocia con otros paquetes en una conexión establecida.
INVALID El paquete seleccionado no puede ser asociado a una conexión conocida. NEW El paquete seleccionado o bien está creando una nueva conexión o bien forma parte de una conexión de dos caminos que antes no había sido vista.
RELATED El paquete seleccionado está iniciando una nueva conexión en algún punto de la conexión existente.
módulo mac — Habilita la coincidencia de direcciones MAC de hardware:
--mac-source — Coincide una dirección MAC a la tarjeta de red que envió el paquete. Para excluir una dirección MAC de la regla, coloque un símbolo de exclamación (!) después de la opción --mac-source.
Tema 7
ASII 30
Ejemplo de cortafuegos
modprobe ip_tables
iptables –F FORWARD
iptables –P FORWARD DROP
iptables –A FORWARD –m tcp –p tcp –s 0/0 --sport
80 –d 182.16.1.0/24 –syn –j DROP
iptables –A FORWARD –m tcp –p tcp –s
172.16.1.0/24 --sport 80 –d 0/0 –j ACCEPT
iptables –A FORWARD –m tcp –p tcp –s
172.16.1.0/24 --dport 80 –s 0/0 –j ACCEPT
Tema 7
ASII 31
ISA Server
• Cortafuegos.
• Proxy.
Tema 7
ASII 32
Tema 7
ASII 33