LinuxParty
Administrar la seguridad de la red
Dejamos atrás de cierta forma todo lo que aquí se recoge con respecto a la seguridad local y damos paso al primer o segundo muro con el que chocará un atacante, y decimos primer o segundo por el mismo motivo que comentábamos en la sección de la seguridad local, puesto que dependerá desde donde se produzca el ataque. Lo que ya tenemos claro es que contra mas piedras pongamos en el muro mas difícil o mas tiempo llevará su derribo y con ello su penetración.
En esta sección del capítulo vamos a estudiar aquellos aspectos a tener en cuenta con referencia a la red. Haremos una pequeña introducción sobre alguna de las técnicas mas usadas para el ciberataque y algunas posibles contramedidas.
Técnicas utilizadas en los ataques y contramedidas
La ciberseguridad es algo que se encuentra en constante cambio, siempre existen mejoras y al poco tiempo se encuentran vulnerabilidades que explotar para esas nuevas mejoras. Se pueden encontrar vulnerabilidades a nivel de software o hardware por lo que es importante mantenerse siempre actualizado. A continuación se enumerarán algunas técnicas de ataque o tipos de vulnerabilidades y sus contramedidas o posibles métodos preventivos para la detección de lo que puede estar sucediendo en nuestro sistema:
Tengo un gran número de archivos almacenados en el directorio ~/Descargas. ¿Cómo puedo ordenar los tamaños en un formato legible por humanos con el comando du -h en Linux?
Puedes pasar la opción -h o --human-numeric-sort al comando sort para ordenar y comparar números legibles como 2K, 300M, 1G y más. Esta es una nueva opción
sintaxis tipo
La sintaxis es:
EN ESTE CAPÍTULO SE ABARCAN LOS SIGUIENTES OBJETIVOS DEL EXAMEN:
- 105.1: Personalizar y utilizar el entorno de la consola (4)
- 105.2: Programar shell scripts (4)
- 108.3: Funcionamiento y configuración del correo electrónico (3)
- 105.3: Administración básica de datos SQL (2)
El entorno de Consola, Shell Scripts, el Correo Electrónico y uso básico de SQL
Administrar el entorno de la consola
En el Capítulo 1 “Herramientas básicas para la línea de comandos Linux” vimos las consolas mas comunes para entornos Linux, como se exportaba una variable, diferencia entre comandos internos y externos a la shell, y alguna que otra característica del empleo del modo comando. Durante el Capítulo 7 “Administrar el sistema” aprendimos como crear un entorno para un usuario y que archivos eran los que definirían sus características, archivos que dependían en gran medida del directorio /etc/skel (comúnmente llamado directorio esqueleto). Vimos que este directorio contenía aquellos archivos con los que de algún modo queríamos preconfigurar o proporcionar una configuración local base para un entorno de usuario. Vamos a repasar brevemente estos archivos puesto que a continuación veremos en cual de ellos deberemos de modificar datos dependiendo de donde queremos que tomen efectos, bien de forma local y aislada para un usuario, o de forma global, lo que afectará a todos los usuarios del sistema.
Correo electrónico
A diferencia de otros sistemas, en Linux el correo electrónico es uno de los servicios de red mas importantes. Linux hace uso del correo electrónico para muchas de sus tareas. Además de estar estrechamente ligado a las cuentas de los usuarios, el correo en Linux es utilizado por ejemplo para informar de sus actividades programadas con cron, o enviar notificaciones sobre operaciones realizadas por shell scripts, entre otras. El servidor de correo contiene los mensajes entrantes de cada usuario, normalmente en /var/spool/mail, aunque como siempre, esto pueda variar en función de la distribución que estemos usando. Deberemos de tener un conocimiento básico sobre su funcionamiento, configuración y posibilidades (crear alias de correo, reenviar correos, configurar el correo en aplicaciones clientes, etc…).
Existen varios protocolos para administrar el correo electrónico, siendo el mas común SMTP (Simple Mail Transfer Protocol, Protocolo simple de transferencia de correo). En la mayoría de ocasiones se utiliza SMTP como sistema de entrega de correo, por estar diseñado como sistema push (el sistema emisor inicia la transferencia). No obstante en la etapa final del envío del correo se utilizan protocolos de tipo pull (el sistema receptor inicia la transferencia) como POP (Post Office Protocol, Protocolo de oficina de correos) o IMAP (Internet Message Access Protocol, Protocolo de acceso a mensajes de Internet). Estos protocolos son útiles sobre todo cuando el sistema receptor es el equipo de un usuario, el cual suele permanecer apagado en muchas ocasiones. La diferencia básica entre ambos protocolos es que con POP descargaremos los mensajes a nuestro equipo y con IMAP podremos leerlos desde el propio servidor.
Resumen: Uno de los puntos fuertes de Linux es su carácter multiplataforma: se puede ejecutar en x86, x86-64, SPARC, PowerPC, y muchas otras unidades de procesamiento central (CPU). Esta riqueza de opciones de hardware representa un desafío para los desarrolladores de software, sin embargo. Asegurar que el software compila y se ejecuta correctamente, en todas las plataformas puede ser difícil. El uso del paquete QEMU puede ayudar a aliviar esta carga.
QEMU es un emulador de máquina que soporta una amplia gama de CPUs, para que pueda ejecutar el software de un PowerPC en un equipo x86, x86-64 o éste, en un equipo SPARC, o lo que sea. Este servicio es especialmente útil para los programadores que necesitan para probar la compatibilidad y verificar el software en CPUs con características específicas. QEMU también le permite ejecutar diferentes sistemas operativos, de modo que usted puede probar la capacidad de un programa para compilar y ejecutar en FreeBSD, Solaris, o Microsoft ® Windows ® sin necesidad de salir de Linux. ;-)
Linux viene con un firewall basado en hosts llamado Netfilter. Según el sitio oficial del proyecto:
netfilter es un conjunto de hooks dentro del kernel de Linux que permite a los módulos del núcleo registrar las funciones de devolución de llamadas con la pila de red. Una función de devolución de llamadas registradas entonces se llamó de nuevo para cada paquete que atraviese el hooks correspondiente dentro de la pila de red.
Este firewall basado en Linux está controlada por el programa llamado iptables para el filtrado para IPv4 e ip6tables. Recomiendo que primero lea nuestro tutorial rápido que explica cómo configurar un firewall basado en host llamado Netfilter (iptables) en CentOS / RHEL / Fedora / Red Hat Enterprise Linux. Este post muestra las listas más comunes de iptables con las soluciones requeridas por un nuevo usuario de Linux que quiera asegurar su sistema operativo Linux de intrusos.
Iptables Las reglas de ejemplo
- La mayor parte de las acciones enumeradas en este post están escritos con la suposición de que será ejecutado por el usuario root o cualquier otro con usuario con privilegios. No escriba los comandos en un sistema remoto, ya que desconecte el acceso.
- Para propósito de la demostración que he usado Red Hat Enterprise Linux 6.x, pero el siguiente comando debería funcionar con cualquier distribución de Linux moderna.
- Esto no es un tutorial sobre cómo configurar iptables. Ver tutorial aquí . Se trata de una hoja de trucos rápido a los comandos comunes de iptables.
# 1: Visualización del estado de su firewall
Escriba el siguiente comando como root:
# iptables -L -n -v
Salidas de la muestra:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
Por encima de la producción indica que el firewall no está activa. El siguiente ejemplo muestra un firewall activo:
# iptables -L -n -v
Salidas de la muestra:
Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 394 43586 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 93 17292 ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 1 142 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- br0 br0 0.0.0.0/0 0.0.0.0/0 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 0 0 TCPMSS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 wanin all -- vlan2 * 0.0.0.0/0 0.0.0.0/0 0 0 wanout all -- * vlan2 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 425 packets, 113K bytes) pkts bytes target prot opt in out source destination Chain wanin (1 references) pkts bytes target prot opt in out source destination Chain wanout (1 references) pkts bytes target prot opt in out source destination
He intentado averiguar que IPs "externas" estaban haciendo consultas a la BBDD de MySQL, bueno, yo al menos, por mucho que lo he intentado no he conseguido conocer más IP que la del server de la BBDD, y ésta, no es la IP que quiero conocer.
Por lo que trasteando un poco, buscando por allí y por acá, vi algunos scripts de Python que me indicaban que consultas se estaban haciendo, (pero no las IP "externas" a ellas asociadas) la mayoría de estos guiones están basados en "processlist", una función incluida en MySQL, así que me dije... pues ya está estoy, voy a hacer el siguiente script, que aquí os dejo para vuestro regocijo, y que es lo más que se aproxima a lo que yo buscaba.
La mayoría de nosotros piensa en Europa como el hogar ancestral de la gente blanca. Pero un nuevo estudio muestra que la palidación de la piel, así como otras características como la altura y la capacidad de digerir la leche como adultos, llegaron a la mayor parte del continente hace relativamente poco tiempo. La obra, que se presenta aquí la semana pasada en la reunión anual 84 de la Asociación Americana de Antropólogos Físicos, ofrece evidencia dramática de la evolución reciente en Europa y muestra que la mayoría de los europeos modernos no se parecen mucho a los de hace 8.000 años.
LPIC-1 Capítulo 8
EN ESTE CAPÍTULO SE ABARCAN LOS SIGUIENTES OBJETIVOS DEL EXAMEN:
- 109.1: Fundamentos de los protocolos de Internet (4)
- 109.2: Configuración básica de redes (4)
- 109.3: Resolución de problemas básicos de red (4)
-
109.4: Configuración DNS en el lado del cliente (2)
Configuración básica de redes TCP/IP
La mayoría de los sistemas Linux están conectados a una red, ya sea como máquinas clientes, servidores o ambos a la vez. Es por ello necesario saber como configurar las herramientas básicas de red, de manera que sea posible mantener comunicaciones con el exterior.
Una red a parte de estar formada por máquinas clientes y servidoras, consta de una serie de dispositivos que deben estar interconectados como son los routers, switch, hubs, modems, hardware, radioenlaces y/o telefonía IP, además de servicios y programas.
Un esquema de red básico donde se usan PCs clientes, servidor, switch o hub y router con conexión al exterior, podría ser el siguiente:
Nota: En la red de la imagen se ha utilizado un switch y no hub. Los hub redirigen todo el tráfico entre todos los ordenadores, mientras que los switch son lo bastante inteligentes como para enviar paquetes solo al destino pertinente, además los hub sólo permiten una transmisión semidúplex (como la usada por los walkie-talkies, mientras uno envía mensaje el otro extremo solo escucha), por el contrario, los switch usan conexiones dúplex, en la que ambas partes pueden enviar información al mismo tiempo. Estas características hacen superiores a los switch frente a los hubs.
LPIC-1 Capítulo 8
EN ESTE CAPÍTULO SE ABARCAN LOS SIGUIENTES OBJETIVOS DEL EXAMEN:
- 109.1: Fundamentos de los protocolos de Internet (4)
- 109.2: Configuración básica de redes (4)
- 109.3: Resolución de problemas básicos de red (4)
-
109.4: Configuración DNS en el lado del cliente (2)
Configuración básica de redes TCP/IP
Configurar la red en Linux
Durante la instalación de una distribución de Linux, lo mas normal es que se pida que realicemos la configuración de la tarjeta de red de forma casi automática, con una serie de parámetros que nos permitan conectarnos a Internet o bien mantener comunicación con los dispositivos de nuestra red local. Normalmente basta con marcar que queremos recibir unos parámetros de forma automática vía DHCP. No obstante podremos introducir de forma manual y personalizada esos valores si indicamos que queremos conservar una configuración estática.
Los parámetros mínimos para que una red pueda tener comunicación con el resto de dispositivos son: la dirección IP del host, la máscara de red, la puerta de acceso y un servidor DNS. Veremos estos y otros parámetros en la sección de “configuración de red con parámetros estáticos”
Para aprender a configurar la red desde 0 vamos a suponer que no la hemos configurado ya durante la instalación y que además no vamos a usar las herramientas GUI que se nos ofrecen para tal fin. Dicho esto comencemos.