Manual practico de iptables

Resetear reglas

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -t nat -F

Establecer las políticas de firewall por defecto  

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -L -v -n

Ver el estado del firewall

iptables -L -n -v

 

  • -L : Muestra las reglas.
  • -v : Muestra información detallada.
  • -n : Muestra la dirección ip y puerto en formato numérico. No usa DNS para resolver nombres. Esto acelera la lista.

Mediante este ejemplo podremos ver las reglas con el numero de lineas.


iptables -n -L -v --line-numbers  

Mostrar las reglas entrantes

iptables -L INPUT -n -v

Mostrar las reglas salientes

iptables -L OUTPUT -n -v

si agregamos –line-numbers podrémos ver el numero de lineas

Eliminar reglas de Firewall

Se puede eliminar una regla por el numero de la linea, en este caso eliminamos las reglas INPUT y OUTPUT correspondiente a la linea 4.

iptables -D INPUT 4

iptables -D OUTPUT 4

También podemos una regla concreta

iptables -D INPUT -s 10.10.33.14 -j DROP

 

  • -D : Elimina una o más reglas de la cadena seleccionada.

Guardar los cambios

service  iptables save

Sólo a bloquear el tráfico entrante

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state –state NEW,ESTABLISHED -j ACCEPT
iptables -L -v -n

Eliminar direcciones de red privada en la interfaz pública (Suponiendo eth1 como interfaz pública)

iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

Permitir todo el tráfico de loopback, y eliminar todo el tráfico a 127/8 que no usa lo0

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

Aceptar todas las conexiones entrantes establecidas

iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

Eliminar cualquier paquete inválido que no pueda ser identificado

iptables -A INPUT -m state –state INVALID -j DROP

Bloquear tráfico a un dominio

Para ello debemos sacar el rango de IP del dominio:

 

host -t a www.google.es
www.google.es has address 216.58.214.163

whois 216.58.214.163  | grep CIDR
CIDR:           216.58.192.0/19

Denegamos el acceso al rango que hemos obtenido:

iptables -A OUTPUT -p tcp -d 216.58.192.0/19 -j DROP

También es posible hacerlo por nombre de dominio

iptables -A OUTPUT -p tcp -d www.google.es -j DROP
iptables -A OUTPUT -p tcp -d google.es -j DROP

Permitir todo el tráfico entrante SSH

iptables -A INPUT  -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

Permitir tráfico HTTP

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

Permitir HTTPS saliente.

iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

 

Permitir tráfico HTTP

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

Permitir HTTPS saliente.

iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

Abrir un rango de puertos de entrada

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT

Prevenir ataques DoS
-Limit 25/minute : Limita a sólo 25 conexiones por minuto.
-Limit-burst 100: Indica que el valor de limit/minute será forzado sólo después del número de conexiones en este nivel

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

 

Abrir un rango de direcciones IPs

iptables -A INPUT -p tcp –destination-port 80 -m iprange –src-range 192.168.1.100-192.168.1.200 -j ACCEPT

 

Listado de reglas ejemplo para puertos TCP/UDP comunes:

 

open port ssh tcp port 22 ##
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 22 -j ACCEPT

## open cups (printing service) udp/tcp port 631 for LAN users ##
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp –dport 631 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp –dport 631 -j ACCEPT

## allow time sync via NTP for lan users (open udp port 123) ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p udp –dport 123 -j ACCEPT

## open tcp port 25 (smtp) for all ##
iptables -A INPUT -m state –state NEW -p tcp –dport 25 -j ACCEPT

# open dns server ports for all ##
iptables -A INPUT -m state –state NEW -p udp –dport 53 -j ACCEPT
iptables -A INPUT -m state –state NEW -p tcp –dport 53 -j ACCEPT

## open http/https (Apache) server port to all ##
iptables -A INPUT -m state –state NEW -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -m state –state NEW -p tcp –dport 443 -j ACCEPT

## open tcp port 110 (pop3) for all ##
iptables -A INPUT -m state –state NEW -p tcp –dport 110 -j ACCEPT

## open tcp port 143 (imap) for all ##
iptables -A INPUT -m state –state NEW -p tcp –dport 143 -j ACCEPT

## open access to Samba file server for lan users only ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 445 -j ACCEPT

## open access to proxy server for lan users only ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 3128 -j ACCEPT

## open access to mysql server for lan users only ##
iptables -I INPUT -p tcp –dport 3306 -j ACCEPT

 

 

:wq!

Instalación y configuración de Suse Manager 3

SUSE Manager 3 es el último software de gestión de servidores Linux que proporciona una gestión integral del ciclo de vida y monitorización de servidores Linux en diferentes distribuciones, arquitecturas de hardware, plataformas virtuales y entornos de nube. SUSE Manager 3 incluye el software de automatización Salt y características mejoradas de gestión de configuración, gestión de suscripciones más sencilla y capacidades de monitorización optimizadas.

Características

  • Permite gestionar varias distribuciones de Linux (Red Hat y SUSE®) desde una única consola centralizada
  • Es compatible con una gran variedad de hardware en entornos físicos, virtuales y en la nube
  • Permite mantener y cumplir fácilmente las políticas internas de seguridad y las normativas externas
  • Método estándar para salvaguardar la seguridad de Linux
  • Inventario de software y hardware simple y automatizado con elaboración avanzada de informes

Leer más

Creando un Failover Cluster bajo Windows Server 2012

En esta ocasión nos alejamos un poco de muestra zona de confort (del mundo del software libre y de GNU/Linux) para la implementación de un Cluster de alta disponibilidad bajo en entorno Windows Server 2012.

Dado que en nuestro entorno laboral nos toca lidiar con plataformas con múltiples sistemas operativos y por desgracia no todos ellos es software libre he decidido realizar esta entrada.

 

¿Que es Cluster de Alta Disponibilidad?

Cluster de Alta Disponibilidad. Para conseguir redundancia y protección contra fallos de un sistema, la primera de las medidas que se suelen tomar es replicar sus componentes hardware más críticos. Por ejemplo en el caso de un servidor se emplean configuraciones de discos en RAID, fuentes de alimentación redundantes, varias interfaces de red en bonding, etc. Y el mismo concepto de redundancia se aplica también para el resto de componentes como la electrónica de red o el sistema eléctrico.

Estas medidas indudablemente aumentan el nivel de disponibilidad de un sistema, pero para conseguir un nivel aun mas alto, se suelen utilizar configuraciones avanzadas de hardware y software como son los clusters de Alta Disponibilidad.

Un Cluster de Alta Disponibilidad es un conjunto de dos o mas servidores, que se caracteriza por compartir el sistema de almacenamiento, y por que están constantemente monitorizándose entre sí. Si se produce un fallo del hardware o de los servicios de alguno de las maquinas que forman el cluster, el software de alta disponibilidad es capaz de rearrancar automáticamente los servicios que han fallado en cualquiera de los otros equipos del cluster. Y cuando el servidor que ha fallado se recupera, los servicios se migran de nuevo a la máquina original.

Leer más

Instalación Graylog2 en GNU/Linux Debian

Graylog2 es un sistema Open Source (GPLv3) que nos permite centralizar los logs de sistemas afines para facilitar el análisis en tiempo real de nuestros sistemas.

Instalación:

Añadimos los repositorios

echo «deb http://ftp.debian.org/debian jessie-backports main» > /etc/apt/sources.list.d/backports.list
apt-get update && sudo apt-get upgrade

Instalamos el software necesario:

apt-get install -t jessie-backports   apt-transport-https openjdk-7-jre-headless uuid-runtime pwgen

Leer más

Pentesting web – Googling

El alcance de esta actividad es la recogida de información acerca de un sitio web publicado en Internet, o encontrar un tipo específico de aplicación, como Webmin o VNC. Hay herramientas disponibles que pueden ayudar con esta técnica, como por ejemplo googlegath, pero también es posible realizar esta operación manualmente usando las opciones de búsqueda de la web de Google. Esta operación no requiere de conocimientos técnicos especializados, y es un sistema muy bueno para recopilar información sobre una web objetivo

Leer más

Pentesting – Pruebas básicas de reconocimiento web (fingerprinting/footprinting)

Footprinting

El termino footprinting hace referencia a la técnica de descubrir y recoger la mayor cantidad de información posible con respecto a una red de destino, bien porque haya sido publicada a propósito o por desconocimiento. El objetivo es extraer información relativa de la organización que incluye, pero no se limita a:

  • Rangos de direcciones IP
  • Información del registrador del dominio
  • Servidores internos
  • Cuentas de correo de los usuarios
  • Nombres de las maquinas
  • Tipo de firewall implementado
  • Tipos de acceso remoto utilizados (SSH o VPN)
  • Archivos (doc, xls, ppt, pdf, txt, etc)
  • Metadatos, etc

Leer más

Instalación y Configuración de BareOS en GNU/Linux

¿Que es BareOS?

BareOS (Backup Archiving Recovery Open Sourced) Es un potente y flexible solución de backup en red multipataforma. Se basa en una arquitectura Cliente-servidor que resulta eficaz y fácil de manejar. BareOS se trata un fork de Bacula, está división del proyecto se dio debido a que la empresa que está detŕas de Bacula solamente incorporó las mejoras y parches aportados por la comunidad en su versión comercial.

Esta instalación la vamos a centrar en dos distribuciones diferentes Debian y CentOS

Leer más

Comandos básicos Veritas Cluster

Estos son los comandos básicos para controlar un VCS (Veritas Cluster Server) desde línea de comandos. Ver el estado del Cluster,  arrancar/parar/reiniciar/mover recursos y servicios, etc.

Iniciar veritas Cluster:

[root@vcs01 ]#   hastart
[root@vcs01 ]#   hasys -force <NODO SERVIDOR>
Parar Veritas Cluster
[root@vcs01 ]#   hastop -local
[root@vcs01 ]#   hastop -sys <NODO SERVIDOR>
[root@vcs01 ]#   hastop -all
Guardar la configuración
[root@vcs01 ]#   haconf -dump -makero
Crear nuevo usaurio:
[root@vcs01 ]#   hauser -add user

Iniciar un grupo

[root@vcs01 ]#   hagrp -online <GRUPO> -sys <NODO SERVIDOR>

[root@vcs01 ]#   hagrp -online <GRUPO> -any

Parar un  Grupo

[root@vcs01 ]#   hagrp -offline <GRUPO> -sys <NODO SERVIDOR>

[root@vcs01 ]#   hagrp -offline <GRUPO> -any

Balancear recurso del cluster

[root@vcs01 ]#   hagrp -switch <GRUPO> -to <NODO SERVIDOR>

[root@vcs01 ]#   hagrp -switch <GRUPO> -any

Flush del servicio

[root@vcs01 ]#   hagrp -flush group -sys <NODO SERVIDOR>

Iniciar un recurso

[root@vcs01 ]# hares -online <RECURSO> -sys <NODO SERVIDOR>

Parar un recurso

[root@vcs01 ]# hares -offline <RECURSO> -sys <NODO SEREVIDOR>

Comprobar el estado del cluster (Sistema, recurso, grupos, agentes)

[root@vcs01 ]#  hastatus -summary

Comprobar el estado de LLT 

l[root@vcs01 ]#  ltconfig
[root@vcs01 ]#  lltconfig -a list
[root@vcs01 ]#  lltstat
[root@vcs01 ]#  vlltstat -nvv

Comprobar el estado de GAB

[root@vcs01 ]#  gabconfig -a
Iniciar LLT

[root@vcs01 ]#  lltconfig -c

Parar LLT

[root@vcs01 ]#  lltconfig -U
Iniciar GAB

[root@vcs01 ]#  gabconfig -c -n <seed_number>

Parar GAB

[root@vcs01 ]#  gabconfig -U

Congelar un grupo

[root@vcs01 ]#  hagrp -freeze <GRUPO>

Descongelar un grupo

[root@vcs01 ]#  hagrp -unfreeze <GRUPO>

Congelar un sistema

[root@vcs01 ]#  hasys -freeze  <NODO SERVIDOR>

Descongelar un sistema

[root@vcs01 ]#  hasys -unfreeze <NODO SERVIDOR>

Mas información: http://unixadminguide.blogspot.com.es/2014/01/veritas-cluster-cheat-sheet.html
un saludo
:wq!

Instalación y configuración de Veritas Cluster Server (sfha) en GNU/Linux Red Hat

¿Que es Veritas Cluster?

VCS (Veritas cluster server)

Software de clúster de gran disponibilidad desarrollado por Symantec para plataformas UNIX, Linux y Windows.

Una solución de clústeres de sistemas abiertos que elimina el tiempo fuera de servicio planeado e imprevisto, simplifica la consolidación de servidores y permite la administración eficaz de una amplia gama de aplicaciones en entornos de varias plataformas.

Leer más