bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


pfsense_vagrant

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
pfsense_vagrant [2026/11/10 11:53]
enric_mieza_sanchez [pfSense amb Vagrant]
pfsense_vagrant [2026/11/10 12:10] (actual)
enric_mieza_sanchez [Configurar pfSense]
Línia 1: Línia 1:
 ====== pfSense amb Vagrant ====== ====== pfSense amb Vagrant ======
  
-Propòsit de la pràctica: conèixer el software pfSense i la configuració bàsica per a gestió d'una xarxa petita amb clients i servidors, amb gestió dels serveis amb HAProxy.+Propòsit de la pràctica: conèixer el software **pfSense** i la configuració bàsica per a gestió d'una xarxa petita amb clients i servidors, amb gestió dels serveis amb **HAProxy** (que ve embarcat com a //plugin// a pfSense).
  
 {{ pfsense.jpeg?400 }} {{ pfsense.jpeg?400 }}
Línia 24: Línia 24:
  
 La WAN hauria de tenir tots els ports tancats per defecte, i només obrir el 80 i 443 d’accés web quan tinguem els serveis ben configurats. En aquest cas, però, la WAN (vtnet0) coincideix amb la xarxa default de Vagrant, i necessita tenir el port 22 d’accés SSH obert, raó per la qual hem posat una regla predefinida al firewall i el servei SSH engegat perquè no doni errors poc amigables de gestionar. La WAN hauria de tenir tots els ports tancats per defecte, i només obrir el 80 i 443 d’accés web quan tinguem els serveis ben configurats. En aquest cas, però, la WAN (vtnet0) coincideix amb la xarxa default de Vagrant, i necessita tenir el port 22 d’accés SSH obert, raó per la qual hem posat una regla predefinida al firewall i el servei SSH engegat perquè no doni errors poc amigables de gestionar.
 +
 +HAProxy respon a les sigles «High Availability Proxy» i és un software molt emprat com a proxy invers. A la pràctica el farem servir en 2 llocs: (1) a l’escriptori Isard l’instal·larem per fer un port forwarding dels ports 80 i 443 i redirigir-los al pfSense; i (2) dins de pfSense l’importarem com un mòdul afegit a mode de plugin per gestionar l’accés als serveis HTTP i HTTPS que posarem al Server 1 i Server 2.
  
 \\ \\
  
-===== +===== Vagrantfile ===== 
 + 
 +Partiu del següent Vagrantfile per a crear la VM pfSense. 
 + 
 +Afegiu un servidor amb Apache2 a cada xarxa aïllada, amb IP: 192.168.xx.20 (on xx és 31, 32, 33, 34). Apache haurà de mostrar un missatge tipus "<h1>Servidor Y</h1>" on Y serà el número de xarxa (1, 2, 3 o 4). 
 + 
 +<file ruby Vagrantfile> 
 +# -*- mode: ruby -*- 
 +# vi: set ft=ruby : 
 + 
 +Vagrant.configure("2") do |config| 
 + 
 +  # appliance pfsense 
 + 
 +  config.vm.define :pfsense , primary:true do |pfsense| 
 +    pfsense.vm.box = "emieza/pfsense" 
 +    pfsense.vm.provider "libvirt" do |vm| 
 +      vm.memory = "2048" 
 +    end 
 +    # credencials 
 +    pfsense.ssh.insert_key = false 
 +    pfsense.ssh.username = "admin" 
 +    pfsense.ssh.password = "vagrant" 
 +    pfsense.ssh.shell = "/bin/sh" 
 +    # deshabilitem carpeta compartida per defecte, no ens cal i no funciona 
 +    pfsense.vm.synced_folder ".", "/vagrant", disabled: true 
 +    # creem interfícies però sense auto_config (no funciona) 
 +    pfsense.vm.network "private_network", ip: "192.168.31.10", name: "net1", auto_config: false 
 +    pfsense.vm.network "private_network", ip: "192.168.32.10", name: "net2", auto_config: false 
 +    pfsense.vm.network "private_network", ip: "192.168.33.10", name: "net3", auto_config: false 
 +    pfsense.vm.network "private_network", ip: "192.168.34.10", name: "net4", auto_config: false 
 +  end 
 + 
 +  # servers 
 +  # crea aquí els servers Apache 
 + 
 +end 
 +</file> 
 + 
 +===== Configurar pfSense ===== 
 + 
 +Comencem els ajustos bàsics de interfícies del pfSense: 
 +  - Accedirem a la consola de la VM pfsense per poder configurar-lo. Accedeix mitjançant l’aplicació de l’escriptori «virt-manager» → Doble click sobre la VM 
 +  - Mirem la IP que ha estat assignada a la WAN 
 +  - Ens demanarà l’assignació d’interfícies, anem assignant: 
 +    - WAN → vtnet0 
 +    - LAN → vtnet1 
 +    - OPT1 → vtnet2 
 +    - Després introduïm enter sense res mes per indicar que ja hem acabat de configurar. 
 +  - Ens apareixerà de nou el menú principal, amb les interfícies vtnet0, vtnet2 i vtnet2 amb una certa configuració. 
 +  - Ara configurarem les IPs de la LAN i OPT1. Segons el Vagrantfile (que no ha funcionat en l’assignació d’IPs) hauríem d’assignar (opció 2 del menú de la terminal): 
 +    * LAN : static 192.168.31.10 /24 
 +    * OPT1: static 192.168.32.10 /24 
 +    * No revertim a HTTP. Mantindrem el webConfigurator en HTTPS (port 443) a https://192.168.31.10 
 +    * NOTA 1: no activeu DHCP en cap d’aquestes interfícies. Tampoc hem d’assignar cap gateway ja que per ser el mes real possible aquesta funció només l’ha de fer la WAN. Tampoc configurarem cap IPv6. 
 +    * NOTA 2: el més habitual seria que fossin adreces acabades en .1 ja que pfSense sol fer de DHCP intern i gateway. En el nostre cas no podem fer-ho ja que aquestes xarxes les ha configurat Vagrant com a xarxa interna i les adreces .1 estan ja assignades a l’escriptori Isard (que ja ens anirà bé per poder accedir a aquestes xarxes). 
 +  - Accedim a la interfície web a través de la LAN (interfície per defecte on el webConfigurator és accessible) amb el navegador de l’escriptori IsardVDI apuntant a l’adreça 192.168.31.10 i usuari admin/pfsense (son els defaults de fàbrica). 
 +  - Assegureu que les interfícies LAN i OPT tenen les IPs adequades. Si no estan OK, modifiqueu-les amb el webConfigurator o el terminal (opció 2). Testegeu que des del terminal del pfSense podeu fer ping a les VMs (Servidor 1 i Servidor 2) i que funciona l’accés a la web al port 80 (amb curl, per exemple). 
 +  - Canvieu el port del webConfigurator al 11111 per evitar conflictes amb els serveis web que configurarem seguidament. 
 +    * System → Advanced 
 +    * Port: 11111 
 +    * WebGUI redirect : Disable webConfigurator redirect rule : ACTIVAT 
 +  - Habilitem la connexió SSH amb SSH-keys. S’ha de fer a la interfície web de pfSense, si ho féssim directament amb l’habitual ssh-copy-id (o escrivint sobre /root/.ssh/authorized_keys) s’esborraria al reiniciar la VM (és el comportament natural de pfSense): 
 +    * Creem claus al host (escriptori Isard). Responem a tot amb <Enter>:<code>$ ssh-keygen</code> 
 +    * Copiem la clau pública al pfSense (copiar contingut de l’arxiu ''~/.ssh/id_rsa.pub'' <code>System → User Manager → Users→ admin → Edit → Keys → Authorized SSH Keys</code> 
 + 
 +\\ 
 + 
 +===== Configuració HAProxy dins pfSense ===== 
 + 
 +HAProxy ens permetrà redirigir les crides HTTP i HTTPS que ens arribin del bastió cap als servidors de les LANs. Abans de configurar el bastió i els certificats, ens caldrà configurar el HAProxy del pfSense. Després ja farem arribar les crides externes amb un altre HAProxy dins l’escriptori Isard. 
 + 
 +  - Assegureu que heu fet bé les parts anteriors, en especial que estan ben assignades les IPs de cada interfície i que podeu veure les VMs internes. També que el webConfigurator està al port 11111 per no col·lisionar amb la configuració del serveis web que farem a continuació.<code>Status → Interfaces</code> 
 +  - Instal·lar HAProxy amb el webConfigurator:<code>System → Package Manager → Available Packages → Cercar «haproxy» → +Install</code> 
 +  - Activar HAProxy<code>Services → HAProxy → Settings → Enable HAProxy 
 +Maximum Connections: 1000 
 +</code> 
 +  - Crear Backend web1:<code>Services → HAProxy → Backends 
 +Name: web1 
 +Server List: 
 + server1 192.168.31.20 port 80  
 + server2 192.168.32.20 port 80  
 +Loadbalancing options: Round Robin</code> 
 +  - Crear Frontend:<code>Name: frontend-http 
 +Listen Address: WAN address (IPv4) 
 +Port 80 
 +Default backend: web1</code> 
 +  - Obrir firewall a la WAN perquè HAProxy pugui escoltar les peticions HTTP<code> 
 +Firewall → Rules → WAN → Add 
 +Address Family: IPv4 
 +Protocol: TCP 
 +Source: Any 
 +Destination: This firewall (self) 
 +Destination Port Range: From 80 to 80</code> 
 +  - Comproveu a Status → Services que HAProxy està funcionant correctament. 
 +  - Desactiveu el bloqueig de IPs locals a la WAN (IMPORTANT!)<code>Interfaces → WAN →  Block private networks and loopback addresses  → DESACTIVAT</code>NOTA: en algunes versions de pfsense està activat per defecte, i sol ser una mesura de seguretat convenient, però en aquest cas necessitem desactivar-ho ja que la IP interna que emprem a la WAN és de tipus local (192.168./16) 
 +  - Mireu la IP de pfSense a la WAN (hauria de ser una 192.168.121.x o similar), i connecteu-vos amb el navegador web des de l’escriptori Isard, hauríeu de veure el Server 1 i Server 2 alternativament en cada recàrrega. 
 + 
 +Arribats aquí hauriem de tenir funcionant les webs dels servers 1 i 2 accessibles des de la interfície WAN del pfSense. 
 + 
 +\\ 
 + 
 +===== Troubleshooting ===== 
 +  * Comprova les assignacions de interfaces, IPs i xarxes. 
 +Comprova curosament les màscares de xarxa que no siguin /32 sinó /24 
 +  * Comprova que el servei HAProxy està en marxa a Status → Services 
 +  * Comprova que tens un Frontend i un Backend correctament configurats com descrit. 
 +  * Comprova que les regles del firewall a la WAN permeten visualitzar el port 80 i que NO hi ha la regla «Block private networks» activa. 
 +  * Si has apagat les VM i has tornat a engegar, pot haver canviat la IP de la WAN (va per DHCP). Comprova-ho. 
pfsense_vagrant.1794311595.txt.gz · Darrera modificació: 2026/11/10 11:53 per enric_mieza_sanchez