Configurar router en Archlinux

Todo lo relacionado con hacer funcionar a Arch como servidor de lo que sea (pagina web, ftp, archivos, firewall & router, etc...).
Responder
PFP
Novato
Mensajes: 3
Registrado: 03 Mar 2016, 14:39

Configurar router en Archlinux

Mensaje por PFP » 03 Mar 2016, 15:43

Saludos:
En primer lugar decirles que soy nuevo en este foro por lo que les agradecería (de antemano) disculpen cualquier gazapo que pudiera cometer en la edición de mensajes o solicitud de ayudas.
No soy nuevo en Linux y tengo cierta experiencia en manejar cualquier distro Linux, pero ahora me encuentro en un dilema que me cuesta resolver, creo que bastante complicado, y sugiero (y pido, por favor) una ayuda para encontrar dónde he cometido el error.
Se trata de configurar 'iptables' para Archlinux como servidor/encaminador.
El esquema de la instalación es el siguiente:
[Internet] <--> [Router] <--> [Firewall] <--> [Servidor] <--> [Red local]
[Router] es igual a una conexión ADSL por DHCP.
[Firewall] es igual a un equipo que filtra el tráfico entrante/saliente de la red local. El software es 'ICPop' y su configuración de la interface externa es por DHCP, y la configuración de la interface interna es estática por IP 192.168.100.1. Funciona correctamente.
[Servidor] es un equipo servidor que controla la red local. Instalado varios SO's (W.S.2008, Gentoo, Debian, CentOS 7, Arch Linux ...)
Bien, aquí me encuentro con un problema en Arch configurando 'iptables' que, desde un cliente de la red local (Win) me dice lo siguiente:
"Conexión de área local" no tiene una configuración IP válida. No corregido
Arch se conecta a Internet correctamente con la interface externa, mientras que la interface interna (parece ser) que no está bien configurada. He seguido (creo) al pie de la letra las instrucciones de la wiki Router https://wiki.archlinux.org/index.php/Si ... enlace_NAT amén de cualquier otra documentación, los detalles son los siguientes:
Interfaz externa:
Description='Public Interface.'
Interface=enp5s0
Connection=ethernet
IP='dhcp'

Interfaz interna:
Description='Private Interface.'
Interface=enp6s0
Connection=ethernet
IP='static'
Address=('192.168.10.1/27')

/etc/dhcpcd.conf
hostname
duid
persistent
option rapid_commit
option interface_mtu
require dhcp_server_identifier
slaac private
noipv4ll
nohook resolv.conf

/etc/dnsmasq.conf
interface=enp6s0
dhcp-range=192.168.10.1,192.168.10.250,12h

/etc/iptables/iptables.rules
# Generated by iptables-save v1.4.21 on Thu Mar 3 18:58:11 2016
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 8000 -j DNAT --to-destination 192.168.100.1:80
-A POSTROUTING -s 192.168.100.0/24 -o ppp0 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE
COMMIT
# Completed on Thu Mar 3 18:58:11 2016
# Generated by iptables-save v1.4.21 on Thu Mar 3 18:58:11 2016
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:IN_SSH - [0:0]
:TCP - [0:0]
:UDP - [0:0]
:fw-interfaces - [0:0]
:fw-open - [0:0]
-A INPUT -s 127.0.0.0/8 ! -i lo -j DROP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 30/min --limit-burst 8 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
-A INPUT -p tcp -m recent --set --name TCP-PORTSCAN --mask 255.255.255.255 --rsource -j REJECT --reject-with tcp-reset
-A INPUT -p udp -m recent --set --name UDP-PORTSCAN --mask 255.255.255.255 --rsource -j REJECT --reject-with icmp-port-unreachable
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j IN_SSH
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j IN_SSH
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j fw-interfaces
-A FORWARD -j fw-open
-A FORWARD -j REJECT --reject-with icmp-host-unreachable
-A IN_SSH -m recent --rcheck --seconds 10 --hitcount 3 --rttl --name sshbf --mask 255.255.255.255 --rsource -j DROP
-A IN_SSH -m recent --rcheck --seconds 1800 --hitcount 4 --rttl --name sshbf --mask 255.255.255.255 --rsource -j DROP
-A IN_SSH -m recent --set --name sshbf --mask 255.255.255.255 --rsource -j ACCEPT
-A TCP -p tcp -m recent --update --seconds 60 --name TCP-PORTSCAN --mask 255.255.255.255 --rsource -j REJECT --reject-with tcp-reset
-A TCP -p tcp -m tcp --dport 80 -j ACCEPT
-A TCP -p tcp -m tcp --dport 443 -j ACCEPT
-A TCP -p tcp -m tcp --dport 22 -j ACCEPT
-A UDP -p udp -m recent --update --seconds 60 --name UDP-PORTSCAN --mask 255.255.255.255 --rsource -j REJECT --reject-with icmp-port-unreachable
-A UDP -p udp -m udp --dport 53 -j ACCEPT
-A fw-interfaces -i enp5s0 -j ACCEPT
-A fw-interfaces -i enp6s0 -j ACCEPT
-A fw-open -d 192.168.100.1/32 -p tcp -m tcp --dport 80 -j ACCEPT
COMMIT
# Completed on Thu Mar 3 18:58:11 2016


Pregunto: ¿Qué me falta y/o qué me sobra? ¿Qué ip está mal?
El servidor funciona correctamente con cualquier otro sistema mientras que en Arch se me resiste. Gracias por la ayuda.

Avatar de Usuario
sud_crow
Administrador
Administrador
Mensajes: 952
Registrado: 16 Abr 2005, 00:38
Ubicación: Buenos Aires - Argentina
Contactar:

Re: Configurar router en Archlinux

Mensaje por sud_crow » 05 Mar 2016, 18:29

Quien administra el DHCP?
Por que razón estás usando dos interfaces en el servidor Arch, y poniendo la red local detras del equipo ese cuando tenes un IPCOP como firewall/router?
Que servicios pretendes que Arch le brinde a la "red local"?

Si Arch lo queres poner entre el firewall y la red local (basicamente estas haciendo otro NAT) tenes que asegurarte que le des servicio a lo que está detras, es decir o brindas DHCP en la "interfaz que llamas interna" o configuras los equipos a mano. Y te aseguras que el firewall de Arch tenga habilitado el forwarding y masking para que los clientes puedan salir a internet vía la "interfaz externa" de Arch.
¿Revisaste la wiki? | ¿Usaste la función buscar del foro? | ¿Leíste las normas del foro?
Blog : | Correo+Jabber: leonardo @ archlinux-es.org

PFP
Novato
Mensajes: 3
Registrado: 03 Mar 2016, 14:39

Re: Configurar router en Archlinux

Mensaje por PFP » 06 Mar 2016, 09:56

En el esquema de instalación física omití que tengo dos "switch" intercalados que conmutan el DHCP entre 'IPCop' y el 'Servidor' y otro entre el 'Servidor' y la red local, tal como sigue:
[Internet] <--> [Router] <--> [Firewall] <--> [Switch] <--> [Servidor] <--> [Switch] <--> [red local]
El objetivo (en mi opinión) de ese montaje es garantizar mayor seguridad contra ataques externos, o dicho de otra manera ponérselo más difícil, el 'IPCop' es un formidable cortafuegos que protege aún más al servidor. Me funciona con 'WinServer 2008 R2', con Gentoo, con Debian, con CentOS 7, instalados en el 'Servidor' pero con Arch no logro sincronizar IPTABLES, que es dónde supongo que cometo algún error de configuración.
Tanto el equipo 'IPCop' como el 'Servidor' incorporan dos interfaces cada uno, las llamadas externa e interna, básicamente el esquema es una línea continua para conectarse al exterior pero filtrando el tráfico de red, las dos interfaces llamadas "externas" son las que administran el DHCP en cada equipo correspondiente, y las interfaces llamadas "internas" están configuradas a mano, es decir, con una IP estática, la IP estática del firewall (IPCop) es única (192.168.100.1) y la IP estática del servidor es otra (192.168.10.1), por consiguiente se conmutan a través de los 'switch' para alcanzar a WAN.
La configuración de IPTABLES en el servidor es distinta en cada sistema operativo Linux y no me funcionan en Arch con las pruebas efectuadas, por lo tanto he llegado a la conclusión de que la configuración de IPTABLES en Arch es muy particular y continuo haciendo pruebas.
Por supuesto que el 'forwarding' está habilitado e incluso hice pruebas con el Shorewall sin configurar IPTABLES y me fallaron.
Gracias por responder, saludos ;)

Avatar de Usuario
sud_crow
Administrador
Administrador
Mensajes: 952
Registrado: 16 Abr 2005, 00:38
Ubicación: Buenos Aires - Argentina
Contactar:

Re: Configurar router en Archlinux

Mensaje por sud_crow » 08 Mar 2016, 02:39

Sinceramente lo que estás haciendo no tiene mucho sentido o no está claro. Y salvo que lo estes haciendo para experimentar, estarías complicando una solución que es bastante sencilla.

Cual sería la función del "Servidor Arch" en tu diagrama? Lo único que entiendo que hace según lo que explicas es un NAT para la red local (y está mal hecho por eso no anda), que no tiene sentido por que habitualmente ya tenes un NAT entre el modem y el router, y muy probablemente estes agregando otro en el firewall.

La definición habitual para las placas de red "interna" (verde) y "externa" (roja), es la misma para ambos equipos, es decir que tu Firewall debería tener su interfaz externa/roja en la WAN contra el router, y lo mismo el Servidor, con su interfaz externa/roja hacía el Firewall. La red de ambos equipos debería ser manual, ya que no tenes DHCP en ninguno de los extremos.

El demonio DHCPD debería funcionar siempre en la interfaz interna/verde, pero como no entiendo la arquitectura que estas usando ("internet" es modem? "router" es router/modem? "firewall" que servicios tiene además de iptables?)

No se cual es la función de tu "servidor", pero si la idea es tener servicios públicos (como un webserver o correo electrónico) deberías reformular esa topografía hacía algo así:

Asumiendo que:
[internet] = modem de proveedor
[router] = router tipo appliance (linksys, dlink, buffalo, etc.)
[firewall] = ipcop
[servidor] = host de equipos virtuales? (no comprendo sino a que te referis con que tenes win2008, gentoo, debian, etc.)
[red local] = pc/laptop de escritorio

Deberías hacer:

[internet] <--> [router] <--> [firewall]

[firewall] --> [lan]
[firewall] --> [dmz]

donde LAN es la red local y DMZ es el servidor/es. La idea es siempre tener aislados los equipos que tenes 24hs funcionando, sobre todo cuando tienen acceso público y/o pueden tener vulnerabilidades y evitar que tengan acceso desde allí a la red local.
¿Revisaste la wiki? | ¿Usaste la función buscar del foro? | ¿Leíste las normas del foro?
Blog : | Correo+Jabber: leonardo @ archlinux-es.org

PFP
Novato
Mensajes: 3
Registrado: 03 Mar 2016, 14:39

Re: Configurar router en Archlinux

Mensaje por PFP » 08 Mar 2016, 09:41

Sinceramente lo que estás haciendo no tiene mucho sentido o no está claro. Y salvo que lo estes haciendo para experimentar, estarías complicando una solución que es bastante sencilla.
Bueno, un poco (o mucho) de esto es ... veamos si me se explicar mejor.
[Internet] es igual a la red externa, o lo que es lo mismo al ISP que suministra la conexión mediante pago.
[Router] es el dispositivo suministrado por el ISP conectado (en mi domicilio) a la red telefónica general. A su vez incorpora un SSID (nombre identificador), una contraseña cifrada alfanumérica, y una IP (gateway) o pasarela por la que hay que transitar todo el tráfico de red entrante y saliente.
[Firewall] es un equipo PC modesto con un S.O. tipo 'IPCop' que filtra todo el tráfico de la red local mediante dos interfaces ethernet, una (externa) conectada al Router por DHCP, y la otra (interna) conectada a un "swirch" que conmuta con la red local mediante una IP estática.
[Switch] es un dispositivo conmutador intercalado entre el "IPCop" y el equipo "Servidor".
[Servidor] es un equipo de última generación potente que suministra servicios a los clientes de la red local. Incorpora tres interfaces de red, una está inactiva (sin conexión), otra interfaz ethernet conectada al "switch" que a su vez conecta con el equipo 'IPCop' via DHCP, y la tercera ethernet conectada (via IP estática) a otro "switch" que a su vez se conecta con la red local. Este equipo servidor tiene diversos sistemas operativos instalados citados anteriormente, y funciona perfectamente otorgando diversos servicios a los equipos de la red local (dos PC's domésticos y un portátil).
[Switch] es un dispositivo conmutador de la red local intercalado entre el equipo "Servidor" y el resto de los locales.
Este esquema lineal será redundante en cuanto a configuraciones NAT se refiere, el caso es que me funciona de forma experimental con todos los sistemas instalados menos con Arch Linux; insisto que (a mi parecer) puede ser un problema de configuración de los cortafuegos bien sea de shorewall o de iptables.
La configuración de "iptables" en Gentoo es diferente de las que tienen Debian y CentOS. En el caso de CentOS tuve que deshabilitar NetworkManager y lo que me sorprende es que en Arch el NetworkManager gobierna las interfaces de red por excelencia, en fin intentaré aprender más leyendo y experimentando.
Gracias por responder, saludos ;-)

Responder