Methode computer infrastructuur
Inhoud
Minimale benodigdheden hardware
De volgende onderdelen zijn minimaal nodig:
Server-1
- Procesor: 4 cores 6 mb cache met de volgende supported onderdelen
- Intel® Virtualization Technology (VT-x)
- Intel® Virtualization Technology for Directed I/O (VT-d)
- x64 instructie set
- Ram (geheugen): 16 gb ddr3 (liefst ECC)
- Voeding: bij het gebruik van duurdere hardware moet zeker een voedingsbron worden gebruikt die goud gecertificeerd is, zodat deze 24/7 kan draaien.
- Moederbord: minimaal 2 pci express sloten. Uit kostenoverwegingen is aan te raden om tweedehands hardware te gebruiken..
- Accessoires: Optioneel: 2 monitoren, 2 toetsenborden en 2 muizen.
- Opslag: een ssd van minimaal 256 Gb en een hdd van minimaal 500gb. Ik raad ten zeerste aan om te zorgen voor voldoende opslagcapaciteit.
- NIC: met minimaal 4 ethernet ports.
Server-2
Voor gebruik van een cloud desktop server zijn alle bovengeniemde onderdelen ook nodig, met als extra toevoeging 24GB ram en 6 cores. Dit is voldoende om 3 desktop sessies te hosten.
Routers
Bij het gebruik van wireless accespoints moet een wireless router aangeschaft zijn.
Extra computer / laptop
Een extra computer is noodzakelijk. Deze moet worden gebruikt om diverse virtual machines op te zetten met als doel het netwerk te testen en verschillende configuraties te voltooien op de server.
Usb stikje
Minimaal 8 gb.
Benodigde software
Via de in de tabel hieronder opgenomen "bron-link" kom je terecht bij de originele software zoals de uitgevers deze op het internet aanbieden. Je kan de software via deze link dus downloaden.
Er is ook een "mirror-link" opgenomen, waardoor je direct bij de desbetreffende software komt. Druk je op deze link, dan begint de software direct te downloaden op je computer. Door het creëren van deze mirror downloads heb je een back-up link mocht de originele website er uit liggen.
proxmox | -mirror | -bron |
---|---|---|
pfsense | -mirror | -bron |
openvpn | -mirror | -bron |
windows-server | -mirror | -bron |
rufus | -mirror | -bron |
windows-enterprise | -mirror | -bron |
putty | -mirror | -bron |
vm-player | -mirror | -bron |
filezilla | -mirror | -bron |
gpu-z | -mirror | -bron |
cpu-z | -mirror | -bron |
venyon | -mirror | -bron |
virtIO drivers | -mirror | -bron |
MDT | -mirror | -bron |
ADK | -mirror | -bron |
WinPE | -mirror | -bron |
Optioneel te downloaden
office | -mirror | -bron |
---|---|---|
adbobe reader | -mirror | -bron |
ninite | -mirror | -bron |
Let op: De ninite mirror installeert de volgende applicaties in één keer. chrome, winrar, discord, vlc, audacity, spotify, java (jre), paint.net, python, filezilla, notepad++. Een eigen ninite download kan worden gemaakt via de bron-link.
Maken van opstart usb
De volgende stappen zijn niet noodzakelijk omdat het software programma Rufus dit zelf ook al doet. Maar in sommige gevallen (bv als de usb stick schrijf beschermd is of niet wordt herkend door windows) kan dit worden toegepast. Let op: Deze stappen verwijderen alle aanwezige informatie van de usb-stick!
- Druk op de windows knop; typ cmd in.
- Click met rechter muisknop op cmd en open als administrator.
Hier rechts staat een plaatje van hoe de command prompt er uit ziet
Voer het volgende uit om de disk op te schonen:
diskpart
list disk
select disk <jou usb stick>
clean
# als het clean command niet werkt
# attributes disk clear read-only
create partition primary
format fs=fat32 quick
Als er meerdere usb stickjes in de computer zitten, raad ik aan om deze uit de computer te halen om vergissingen te voorkomen.
Nu kun rufus gebruiken om een opstartdisk van de usb te maken. Bij gebruik van UEFI opstart moet je de partitie indeling op gpt zetten. Deze optie is links boven in rufus aan te passen. Wanneer dit is gedaan kan er op start worden gedrukt. Mocht de computer niet willen opstarten vanaf de usb stick dan kun je proberen om "dd modus" te selecteren in rufus.
Let op! Wanneer de usb stick in "dd modus" wordt gezet, dan is de usb stick beschermd. Je kan dan geen nieuwe bestanden op de usb stick meer zetten. De enige manier om dit ongedaan te maken is via een programma zoals "diskpart".
Installatie
Voordat je begint met de installatie van proxmox moet het een en ander worden aangepast in de BIOS. Jammer genoeg is elke BIOS verschillend en kan ik niet stapsgewijs uitleggen wat je precies moet aanpassen, maar ik zal toch een poging wagen.
Je begrint met het opnieuw opstarten van de computer en het intoetsen van F12,Esc, Del en F8 tot er een scherm wordt geopend waar je instelingen kan aanpassen. Voordat je verder gaat controleer je eerst of de informatie in de BIOS klopt zoals de datum, de tijd, het aantal ram, de opslag etc. Zorg er voor dat de volgende opties aan of uit staan:
- zet UEFI aan (meestal onder geavanceerd);
- zet intel vt/d en vt/x aan;
- zet de videokaart uit als standaard display (indien er een videokaart aanwezig is);
- zet "trust removable drives" als opstart aan.
Vervolgens sla je de veranderingen op en maak je gebruik van het boot menu om vanaf de usb op te starten. Mocht dit niet werken dan kan je voor korte tijd de boot volgorde aanpassen en "removable devices" als eerste zetten. Nu zou je in de installatie van proxmox moeten komen. De installatie is vrij gemakkelijk. Ga door de installatie wizzard heen tot je bij "target disk" komt. Hierbij raad ik aan om een ssd of hdd te kiezen, omdat dit de IO delays erg verkort. Een tweede usb-stick zou in theorie ook kunnen werken.
Bij het scherm waar je adressen moet invullen moet je even opletten. Kies de onboard NIC (van het moederbord). Dit is de NIC met 1 netwerkpoort. Doe een ethernet kabel van de proxmox machine naar je eigen computer. Vergeet niet dat de ethernetkabel in de port gaat met 1 port. Vervolgens moet je ervoor zorgen dat de adapter instellingen van beide computers op hetzelfde subnet zitten. In het profielwerkstuk is uitgelegd hoe dit moet.
Let op! Er zal nu geen internetverbinding zijn voor de computer, maar een lan verbinding van de computer met de server.
Als je 2 proxmox installaties wil gaan doen vergeet niet twee verschillende hostnamen te gebruiken. Je moet ervoor zorgen dat de achtervoegsels hetzelfde zijn. Als je niet wilt dat proxmox en windows server kunnen communiceren dan moet het domein verschillend zijn.
In mijn geval zal het worden pve.home en voor de virtual machines in proxmox vm123.wake |
Configuratie van proxmox
Nadat de proxmox installatie is voltooid volgt een heropstart (reboot). Hierna kunnen we proxmox configureren. Als de adapter instellingen goed zijn ingesteld kun je in je browser naar het volgende adres toegaan: https://<proxmox ip>:8006 . Https wordt niet als standaard geselecteerd. Daarom zou het direct invullen van het ip adres niet werken. Vergeet daarom niet om https er voor te zetten. Afhankelijk van je browser krijg je nu een fout melding. Deze kan worden genegeerd. Dit heeft ermee te maken dat het certificaat van de server "self signed" is. In geval van chrome druk je op "meer informatie" en ga je verder naar deze site. Log in met de gebruikersnaam root en het wachtwoord wat je eerder hebt aangemaakt. Nu kun je - als je wilt - een ZFS pool opzetten als je gebruikt maakt van meerdere schijven en je bestanden veilig wilt stellen. In mijn geval maak ik hier geen gebruik van omdat ik niet genoeg schijven heb. Als het goed is heb je proxmox geïnstalleerd op een ssd of hdd en zou er nog een 2de storage disk over moeten zijn. Deze kunnen we nu instellen onder het kopje disks in proxmox. Dit is te vinden onder <jouwhostname>. Druk nu onder directory "create new directory". Kies als disk type ext4 en de naam kan je zelf geven.
Let op! Maak geen LVM storage aan. Het is niet makkelijk om dit weer te verwijderen! Een hernieuwde installatie van proxmox moet dan weer worden uitgevoerd!
Nu kun je de ISO bestanden die zijn gedownload uploaden naar de schijf. Zie het plaatje waar dit gebeurd.
Nu ga je pfSense installeren. Dit gebruik je om je netwerk beter te beveiligen en te monitoren.
PCLe passthrough
Voordat je verder kan gaan moet je de NIC isoleren van de kernel. Dit doe je door een zogeheten "PCLe passthrough" te doen. Hierbij isoleer je de NIC kaart van Proxmox, zodat deze niet kan worden gebruikt door proxmox maar alleen door de pfSense virtual machine. Dit doe je als volgt:
Open de shell van Proxmox vanaf de browser of de server console en typ het volgende in:
nano /etc/default/grub
Met de arrow keys kan je naar boven en beneden gaan:
Verander GRUB_CMDLINE_LINUX_DEFAULT="<commands>"
in GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
type ctl + x
druk op y en dan enter . Belangrijk is dat je niks anders aanpast!
Vervolgens slaan we de aanpassing op door middel van:
update-grub
Nu moet je een aantal modules toevoegen aan /etc/modules
. Dit kan weer worden gedaan door nano /etc/modules
.
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
Om problemen van een slechte IOMMU grouping te voorkomen, maak je gebruik van onderstaande.
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
Nu moet je zoeken welke "device id" de NIC heeft die je wil gebruiken voor pfSense. Dit doe je als volgt:
lspci -nnk
Dan zoek je de naam van de netwerkkaart. In mijn geval krijg ik de volgende output. Als je kijkt zie je dat in mijn geval de 4 verschillende ethernet poorten apart worden gedetecteerd in de groepen 4:00 en 5:00 Je typt dan ook
lspci -n -s 04:00
lspci -n -s 05:00
Als het goed is moet ongeveer hetzelfde uit beide komen. In mijn geval krijg ik 04:00.0 0200: 8086:10bc (rev 06). Het stuk dat je wilt gebruiken ligt in het deel dat net voor (rev 06) ligt. In mijn geval is dit 8086:10bc. In het volgende gedeelte krijg ik dan ook:
echo "options vfio-pci ids=8086:10bc" > /etc/modprobe.d/vfio.conf
Vervolgens voer je de volgende commands uit:
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
update-initramfs -d -u
reboot now
Nu wordt de computer opnieuw opgestart. Nadat deze is opgestart kijk je of alles is gelukt met
lspci -nnk
Onder de groepen waar de NIC zat moet nu staan Kernel driver in use: vfio-pcid
. Als dit niet het geval is dan is er iets mis gegaan. Als dit er wel staat kun je doorgaan naar de volgende stap.
Maken van de virtual machine (VM)
Click met de rechtermuis knop op <jou hostnaam> en druk dan op Create VM. Hiermee open je een wizzard waarmee je de VM configureert. Kies de naam voor de VM. Vervolgens kies je pfSense iso installatie die je ingevolge het vorige hoofdstuk hebt geüpload naar de proxmox server. Onder het kopje "systeem" pas je de bios naar UEFI en machine naar Q35. Vervolgens kies je de locatie waar hij de EFI disk opslaat. Onder het kopje CPU verander je het aantal cores naar 3. De memory zet je naar 4096 en network doe je naar "no network device". Nu wordt er een VM voor je gemaakt. Als dit gelukt is moet je de NIC toevoegen. Vergeet niet om alle groepen aan de VM toe te voegen. In mijn geval zijn dit groepen 4:00 en 5:00. Als vergelijkingsmateriaal laat ik hieronder mijn VM.config zien. Deze is te vinden onder
/etc/pve/qemu-server/<vmid>.conf
bios: ovmf
bootdisk: scsi0
cores: 3
efidisk0: local-lvm:vm-101-disk-0,size=128K
hostpci0: 04:00
hostpci1: 05:00
ide2: local:iso/pfSense-CE-2.4.4-RELEASE-p3-amd64.iso,media=cdrom
machine: q35
memory: 4098
name: pfsense
numa: 0
onboot: 1
ostype: l26
scsi0: hdd1:101/vm-101-disk-0.qcow2,size=32G
scsihw: virtio-scsi-pci
smbios1: uuid=<my uuid>
sockets: 1
vmgenid: <my vmgenid>
Installatie van pfSense
Nu kun je de VM starten. Als alles soepel verloopt kom je nu in de installatie wizzard van pfSense terecht. Ook hierbij - zoals bij proxmox - ga ik ervan uit dat je hier makkelijk doorheen gaat. Hierbij kan bij bijna elke vraag "enter" worden geselecteerd (tenzij er nog andere aanpassingen moeten worden volbracht). Na het opnieuw opstarten van de VM moet worden gecontroleerd of alle NIC interfaces aanwezig zijn in de VM.
Hierna kan verder worden gegaan met de volgende stap. In mijn geval zet ik de ISP router naar bridge modus. Dit houdt in dat het public IP wordt doorverwezen naar de pfSense box. Dit kan worden gedaan door dit te vragen aan je eigen ISP. Onthoud wel dat wanneer je dit doet het internet er voor langere tijd uit ligt tot alles is geconfigureerd. Bij het instellen van de bridge modus zullen alle ethernet poorten van de ISP router worden uitgezet behalve de eerste. In de eerste port doen we de ethernet kabel. Zo hebben we een WAN interface op de pfSense box. Nu doen we een tweede ethernet kabel in een tweede wireless router. Deze kabel gaat dan in de LAN port van de wireless router en niet de WAN port. Als het goed is wordt een public IP adres via de DHCP servers van jou ISP toegewezen aan de pfSense box. Vergeet niet dat het LAN interface hetzelfde subnet moet hebben als de 2de wireless router. De 2de wireless router moet dus eerst worden geconfigureerd voordat deze kan worden aangesloten. Op de wireless router mag de DHCP server uitgezet worden, want er wordt gebruik gemaakt van de DHCP server op de pfSense box. Ervan uitgaande dat de pfSense box en de wireless router dezelfde LAN instellingen hebben, kun je nu een ethernet kabel van de wireless router naar je computer doen. Je moet nu handmatig de adapter instellingen laten overeenkomen met die van de pfSense box en de wireless router, zodat deze een verbinding met elkaar kunnen maken. Hierna kun je beginnen met de installatie wizzard van pfSense in de browser. Hierbij moet je het IP-adres opzoeken van pfSense in de browser.
De plaatjes rechts kunnen worden gebruikt als referentie. Het public IP is zwart gemaakt vanwege beveiligingsredenen.
Configuratie van pfsense
Als alle bovenstaande stappen zijn doorlopen kan worden genavigeerd naar https://<router ip> .Als het goed is wordt er een wizzard geopend. Pas hier zo nodig de instellingen aan. Pas de DNS server tijdelijk aan naar 1.1.1.1. Later kun je de dns server van windows gebruiken. Dubbelcheck of de DHCP server aanstaat en kijk of de wireless router IP adressen uitdeelt via de wifi verbinding. Als dit lukt kun je beginnen met een aantal applicaties te installeren op pFsense. De package manager is te vinden onder systeem-PackageManager-AvailablePackages.
De volgende applicaties raad ik ten zeerste aan om te installeren: TFTPD, suricata en pfBlockerNG-devel. Optioneel kunnen voor diagnose de volgende applicaties worden geïnstalleerd: arpwatch, nmap, iperf, zabbix-agent44, Status_Traffic_Totals en darkstat. Als eerste begin je met de configuratie van pfBlockerNG. Deze is te vinden onder firewall-pfBblockerNG. Hier wordt weer een wizzard geopend waar je zo nodig aanpassingen in kan maken. Als eerste raad ik aan om een MaxMind GeoIp key aan te vragen. Dit is namelijk gratis en kost 10 minuutjes werk voor extra beveiliging. Zo kun je zorgen dat alle netwerk traffic afkomstig uit Asia, Africa, China en andere landen die mogelijke beveiligingsrisico's opleveren, worden geblokkeerd. Dit is handig omdat er veel brute force attacks uit deze landen komen. Je kunt pfblocker gebruiken om games, malware, tracking en nog veel meer te blokkeren. Het is ook mogelijk om een custom error message te maken en deze te laten zien wanneer iemand bijvoorbeeld een spel wil spelen.
Rechts staat een plaatje van hoe een dergelijke error er uit ziet. TFTPD zal later moeten worden geconfigureerd nadat de windows server is geïnstalleerd. Iets wat wel belangrijk is om te configureren is suricata. Dit verbetert de beveiliging van het netwerk en is vooral handig om deze wiki server te beschermen. Alternatieven voor suricata kunnen ook worden gebruikt, zoals Snort. Het is daarom niet noodzakelijk om verder uit te leggen hoe pFsense blocker en suricata werken. Afhankelijk van wat de netwerk administrator wil bereiken moet dit anders worden geconfigureerd.