miércoles, 5 de julio de 2017

5) CentOS 7 Firewall IpTables Instalación y Configuración

  1 comentario


Introducción

En el presente informe haremos la práctica de virtualización del servidor CentOS con su instalación de diversas características, que iremos configurando de los más básicos hasta posteriores cambios que requieran más características en el transcurso de la practica
Se realizarán configuración básica como la instalación de un servidor DHCP para Centos 7 en nuestra práctica, evidenciaremos como las configuraciones iniciales de nuestro servidor tienen un impacto alto a la hora de ir agregando características.

Esto nos permitirá detectar clientes en nuestra red y asignar direcciones prestablecidas de forma automática. Buscando establecer de forma correcta configuraciones para la comunicación entre El servidor Centos 7 y el cliente (Windows / Linux,etc.)


Glosario  

Hyper-V. - 
Tecnología de virtualización nativa para sistemas operativos Windows, optimizados
CentOS. - 
CentOS es una distribución de el código fuente de Red Hat Enterprise Linux contando con las mismas características y funcionalidades, también que está abierto para todos.
Direcciones estáticas. - 
Dirección IP asignada por el usuario de manera manual, o por el servidor de la red con base en la Dirección MAC del cliente.
Direcciones dinámicas. - 
IP asignada mediante un servidor DHCP (Dynamic Host Configuration Protocol) al usuario.
Iptables.- 
Es el nombre de la herramienta de espacio de usuario (User Space, es decir, área de memoria donde todas las aplicaciones, en modo de usuario, pueden ser intercambiadas hacia memoria virtual cuando sea necesario) a través de la cual los administradores crean reglas para cada filtrado de paquetes y módulos de NAT. Iptables es la herramienta estándar de todas las distribuciones modernas de GNU/Linux.
Cadenas.- 
Las cadenas pueden ser para tráfico entrante (INPUT), tráfico saliente (OUTPUT) o tráfico reenviado (FORWARD).
Reglas Destino.-
Las reglas de destino pueden ser aceptar conexiones (ACCEPT), descartar conexiones (DROP), rechazar conexiones (REJECT), encaminamiento posterior (POSTROUTING), encaminamiento previo (PREROUTING), SNAT, NAT, entre otras.
Políticas por Defecto. - 
Establecen cual es la acción a tomar por defecto ante cualquier tipo de conexión. La opción -P cambia una política para una cadena. En el siguiente ejemplo se descartan (DROP) todas las conexiones que ingresen (INPUT), todas las conexiones que se reenvíen (FORWARD) y todas las conexiones que salgan (OUTPUT), es decir, se descarta todo el tráfico que entre desde una red pública y el que trate de salir desde la red local.
Reglas Específicas.- 
Las opciones más comunes son:
-A añade una cadena, la opción -i define una interfaz de tráfico entrante
-o define una interfaz para tráfico saliente
-j establece una regla de destino del tráfico, que puede ser ACCEPT, DROP o REJECT.
-m define que se aplica la regla si hay una coincidencia específica
--state define una lista separada por comas de distinto tipos de estados de las conexiones (INVALID, ESTABLISHED, NEW, RELATED).
--to-source define que IP reportar al tráfico externo
-s define trafico de origen
-d define tráfico de destino
--source-port define el puerto desde el que se origina la conexión
--destination-port define el puerto hacia el que se dirige la conexión
-t tabla a utilizar, pueden ser nat, filter, mangle o raw.
Ipv4.- 
El firewall iptables está diseñado para manejar reglas de tráfico IPv4.

Grafica Iptables Función Básica


Práctica
Instalación Iptables en Centos 7
Procederemos a cambiar el firewalld por IPtables en centos 7
Instalar Iptables
1)      Ejecutar terminal y acceder root
Ejecutaremos un terminal y accederemos al root con el comando “sudo su”, y escribiremos la contraseña y se mostrará el indicador # que ya estamos como root.

2)      Instalar Iptables mediante yum
Procederemos a instalar mediante yum el paquete Iptables para esto ejecutaremos “yum install iptables-service -y”
3)      Verificación de Instalación
Para verificar que nuestro servicio se instaló de forma correcta y que tenemos habilitado su archivo de configuración ejecutaremos “head -2 /etc/sysconfig/iptables”,  al obtener el resultado #sample indicara que el archivo esta listo para configurarse
Cambiar FirewallD a Iptables
Ahora procederemos a realizar el cambio de firewall para esto debemos recordad que teníamos un firewall por defecto en centos 7,ahora implementaremos otro, las migraciones entre reglas de FirewallID a Iptables resultan tediosas y poco acertadas, se recomienda elegir un firewall al inicio de la instalación de centos, para nuestro caso que tenemos pocas reglas implementadas no nos tomara mucho tiempo adaptar el nuevo firewall con lo cual evidenciaremos un cambio de estructuras en producción.
1)      Desactivar FirewallD de Centos 7
Para esto ejecutaremos “systemctl stop firewalld”, NOTA: En producción el firewall debe cambiado de forma rápida reduciendo índice de sinseguridad.
2)      Inicializar Iptables como Firewall
De forma rápida (Escenario en producción) ejecutaremos “systemctl start iptables; systemctl start ip6tables” con esto iniciamos nuestro nuevo firewall
3)      Verificación  de Reglas Iptables
Verificaremos que el archivo de configuración de iptables entro en funcionamiento ejecutando “iptables -S”
4)     Quitar firewallD de inicio automático
Una vez hecho el cambio no queremos que al apagar nuestro servidor el firewalld se inicie para esto ejecutaremos “systemctl disable firewalld”
5)     Limpiar accesos de inicio
Ejecutaremos el siguiente comando “systemctl mask firewalld”  con esto nos aseguramos de desvincular cualquier registro de este firewall del inicio con el sistema
6)      Activar Iptables con inicio del sistema
Haremos que iptables arranque con el Servidor Centos7 para esto ejecutaremos “systemctl enable iptables; systemctl enable ip6tables”
7)      Verificación de estado Iptables
Comprobaremos el estado del servicio iptables con “systemctl status iptables”
Configuraciones de Reglas en Iptables
Configuraremos la reglas de forma básica para nuestro servidor, habilitando las reglas necesarias para que nuestros servicios funcionen de nuevo, ya que se encuentran bloqueados por el nuevo firewall
Configuraciones Reglas
1)     Archivo de configuracion
Para configurar las reglas de iptables accederemos a su archivo de configuración con “nano /etc/sysconfig/iptables”, aquí iremos agregando reglas necesarias para nuestro servicio sea funcional.

2)     Reglas para nuestro DNS Server
Como configuramos un servidor DNS anteriormente tenemos unas ventajas, como al permitir la conexión al DNS agilitaremos las conexiones a nuestros servicios/ports en el servidor como (:80,:1813,etc)


3)     Reglas para nuestro Servicio/Port 80
Configuraremos iptables para le puerto 80
4)     Reglas para nuestro Servicio/Port 1813
Configuraremos iptables para le puerto 1813
5)      Reglas para nuestro Servicio/Port 67:68
Configuraremos iptables para le puerto 67:68
6)      Establecer Configuración
Finalmente, nuestra configuración deberá quedar de la siguiente forma. Echo esto apretaremos CTRL + O para guardar y CTRL+X para salir
7)      Reiniciamos nuestro Servicio Iptables
Para establecer los cambios reiniciaremos  con “systemctl restart iptables”
Conexión Cliente Windows
Probaremos el funcionamiento de los diversos servicios que hasta ahora tenemos en nuestro servidor
Comprobando Conjunto
1)     Comprobar la asignación de DHCP
En el cmd ejecutamos “ipconfig /renew” y como vemos la asignación esta funcionado

2)      Comprobar DNS servidor
Ahora ejecutaremos en el cmd “nslookup server.practica.com” y como resultado nos resolverá nuestra dirección también podemos probar con ping a la dirección del servidor “ping server.practica.com”
3)      Acceder a Webmin (Interfaz)
Probaremos accediendo a la dirección “server.practica.com:1813”  con esto evidenciamos nuestro nuevo firewall está configurado correctamente (Conf. Básica)
Conclusiones
El firewallD por defecto que ofrece Centos 7 es muy bueno en tareas de Filtrados pero tiene limitantes, la razón de la implementación de Iptables en centos es su estructura de reglas que suele ser más configurable.
Iptables nos ofrece más alternativas aparte de ser un excelente firewall a nivel local, también puede serlo a nivel de WEB asumiendo técnicas de Proxy Cliente/Servidor y tiene la posibilidad de ser un Enrutador de paquetes con lo cual podremos brindar internet realizando rutas a nuestros clientes.
Por último, es muy importante las configuraciones iniciales de nuestro servidor en los que se incluyen Configuraciones de adaptadores, de hostnames, de dirección Hosts, y del archivo resolv.conf. Por este motivo estas configuraciones fueron realizadas en la práctica de instalación y configuración de CentOS 7, así también el registro de los puertos en el firewall.

Links para configuración de Iptables/Rules

http://www.alcancelibre.org/staticpages/index.php/introduccion-iptables
https://www.adslayuda.com/linux-iptables_basico.html

1 comentario :

  1. Buenas tardes amigo,

    Configure un server DHCP con CentOS 7 y no puedo darle internet a mi equipo cliente Windows 7, le asiga una ip pero no me da internet, te envio la configuracion del dhcpd.conf

    default-lease-time 600;
    max-lease-time 7200;

    log-facility local7;

    # A slightly different configuration for an internal subnet.
    subnet 10.0.0.0 netmask 255.255.255.0 {
    interface enp0s8;
    range 10.0.0.50 10.0.0.100;
    option domain-name-servers 8.8.8.8;
    option domain-name "soporte.cl";
    option routers 10.0.0.1;
    option broadcast-address 10.0.0.255;
    }

    host Cliente1 {
    hardware ethernet 08:00:27:B6:13:16;
    fixed-address 10.0.0.30;
    }

    y la del iptables:

    # Generated by iptables-save v1.4.21 on Sun Jun 24 14:07:25 2018
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [6:968]
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    -A INPUT -i enp0s3 -p tcp -m tcp --dport 80 -j ACCEPT
    -A FORWARD -i enp0s3 -p tcp -m tcp --dport 80 -j ACCEPT
    COMMIT
    # Completed on Sun Jun 24 14:07:25 2018
    # Generated by iptables-save v1.4.21 on Sun Jun 24 14:07:25 2018
    *nat
    :PREROUTING ACCEPT [4:987]
    :INPUT ACCEPT [4:987]
    :OUTPUT ACCEPT [2:204]
    :POSTROUTING ACCEPT [2:204]
    -A POSTROUTING -s 10.0.0.0/24 -o enp0s3 -j MASQUERADE
    COMMIT

    Cabe destacar que el servidor dhcp tanto como el cliente en win7 sestan virtulizados
    Gracias de antemano!

    ResponderEliminar