SW-P2 · running-config (Cisco IOS)
! Switch de acceso planta 2: Desarrollo + WiFi invitados
vlan 20
name DESARROLLO
vlan 30
name INVITADOS
vlan 99
name GESTION
vlan 999
name NATIVA_SIN_USO
!
interface range GigabitEthernet1/0/1 - 22
description Puestos Desarrollo
switchport mode access
switchport access vlan 20
switchport nonegotiate
switchport port-security
switchport port-security maximum 2
switchport port-security violation restrict
spanning-tree portfast
spanning-tree bpduguard enable
!
interface GigabitEthernet1/0/23
description AP-2 (SSID invitados, gestion sin etiquetar)
switchport mode trunk
switchport trunk native vlan 99
switchport trunk allowed vlan 30,99
!
interface GigabitEthernet1/0/24
description Uplink a SW-CORE
switchport mode trunk
switchport trunk native vlan 999
switchport trunk allowed vlan 20,30,99
switchport nonegotiate
ip dhcp snooping trust
!
ip dhcp snooping vlan 20,30
ip dhcp snooping
! IP de gestión solo en la VLAN 99
interface Vlan99
ip address 192.168.1.116 255.255.255.240
no shutdown
ip default-gateway 192.168.1.113
/etc/nftables.conf (FW-EDGE)
#!/usr/sbin/nft -f
flush ruleset
define WAN = "eth0"
define INVITADOS = 192.168.0.0/24
define DESARROLLO = 192.168.1.0/26
define ADMIN = 192.168.1.64/27
define SERVIDORES = 192.168.1.96/28
define GESTION = 192.168.1.112/28
table inet filtro {
chain forward {
type filter hook forward priority filter; policy drop;
ct state established,related accept
ct state invalid drop
# R1 · La VLAN de gestión administra toda la red
ip saddr $GESTION accept
# R2 · Ningún otro segmento entra en gestión
ip daddr $GESTION drop
# R3/R4 · Invitados: solo DNS y web hacia Internet
ip saddr $INVITADOS oifname $WAN udp dport 53 accept
ip saddr $INVITADOS oifname $WAN tcp dport { 80, 443 } accept
ip saddr $INVITADOS drop
# R5 · Puestos → dominio, DNS, ficheros y hora
ip saddr { $ADMIN, $DESARROLLO } ip daddr $SERVIDORES tcp dport { 88, 389, 445 } accept
ip saddr { $ADMIN, $DESARROLLO } ip daddr $SERVIDORES udp dport { 53, 88, 123 } accept
# R6 · Desarrollo imprime en la impresora de planta 1
ip saddr $DESARROLLO ip daddr 192.168.1.70 tcp dport 9100 accept
# R7/R8 · Navegación de los puestos y Git por SSH
ip saddr { $ADMIN, $DESARROLLO } oifname $WAN tcp dport { 80, 443 } accept
ip saddr { $ADMIN, $DESARROLLO } oifname $WAN udp dport 53 accept
ip saddr $DESARROLLO oifname $WAN tcp dport 22 accept
# R9 · Servidores: actualizaciones, NTP y copia off-site
ip saddr $SERVIDORES oifname $WAN tcp dport 443 accept
ip saddr $SERVIDORES oifname $WAN udp dport { 53, 123 } accept
# R10 · Desde Internet no se inicia nada; el resto cae en "policy drop"
iifname $WAN log prefix "fw-wan-drop: " drop
}
}
table ip nat {
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
oifname $WAN masquerade
}
}