technische_naslag:sid:roer
Verschillen
Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.
| Volgende revisie | Vorige revisie | ||
| technische_naslag:sid:roer [2025/02/28 17:32] – aangemaakt michelle | technische_naslag:sid:roer [2026/06/04 20:33] (huidige) – Layout verbeteringen michelle | ||
|---|---|---|---|
| Regel 1: | Regel 1: | ||
| - | ===== Introductie ===== | + | ====== Introductie |
| Al jaren draai ik thuis een servertje, vroeger was dat nogal uitgebreid met diverse netwerk-segmenten waarvoor 't ding router was en had ik mijn eigen mailserver en wat niet meer draaien. Tegenwoordig is het vooral een veredelde NAS, maar wel op een echte server die energiezuinig is met z'n SSD's en een echte distributie erop: | Al jaren draai ik thuis een servertje, vroeger was dat nogal uitgebreid met diverse netwerk-segmenten waarvoor 't ding router was en had ik mijn eigen mailserver en wat niet meer draaien. Tegenwoordig is het vooral een veredelde NAS, maar wel op een echte server die energiezuinig is met z'n SSD's en een echte distributie erop: | ||
| Regel 5: | Regel 5: | ||
| * Hardware: HP Proliant Microserver Gen10+ | * Hardware: HP Proliant Microserver Gen10+ | ||
| * Storage: 2x Western Digital Red 2TB SSD | * Storage: 2x Western Digital Red 2TB SSD | ||
| - | * OS: Debian GNU/ | + | * OS: Debian GNU/ |
| - | ==== Installatie en Configuratie ==== | + | ====== Installatie en Configuratie |
| - | In ieder geval een webserver. | + | ===== Webserver: Apache2 ===== |
| + | |||
| + | Met Let's Encrypt certificaat: | ||
| * [[https:// | * [[https:// | ||
| + | |||
| + | ===== OpenVPN ===== | ||
| + | |||
| + | ==== Installeer OpenVPN server ==== | ||
| + | |||
| + | Hiervoor gebruik ik een handig scrippie: [[https:// | ||
| + | Download het geval en maak het executable: | ||
| + | |||
| + | <code bash> | ||
| + | curl -O https:// | ||
| + | chmod +x openvpn-install.sh | ||
| + | </ | ||
| + | |||
| + | Voer het uit en gebruik het meest de defaults: | ||
| + | |||
| + | <code bash> | ||
| + | michelle@roer: | ||
| + | [INFO] === OpenVPN Non-Interactive Install === | ||
| + | [INFO] Running in non-interactive mode with the following settings: | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] | ||
| + | [INFO] Setting up official OpenVPN repository... | ||
| + | > apt-get update | ||
| + | > apt-get install -y ca-certificates curl | ||
| + | > mkdir -p / | ||
| + | > curl -fsSL https:// | ||
| + | [INFO] Updating package lists with new repository... | ||
| + | > apt-get update | ||
| + | [INFO] OpenVPN official repository configured | ||
| + | [INFO] Installing OpenVPN and dependencies... | ||
| + | > apt-get install -y openvpn iptables openssl curl ca-certificates tar dnsutils socat | ||
| + | [INFO] Data Channel Offload (DCO) is not available (requires OpenVPN 2.6+ and kernel support) | ||
| + | > mkdir -p / | ||
| + | > curl -fL --retry 5 -o / | ||
| + | [INFO] Verifying Easy-RSA checksum... | ||
| + | > mkdir -p / | ||
| + | > tar xzf / | ||
| + | > rm -f / | ||
| + | [INFO] Initializing PKI... | ||
| + | > ./easyrsa init-pki | ||
| + | [INFO] Building CA... | ||
| + | > ./easyrsa --batch --req-cn=cn_jPf4c13rKvpdCoX7 build-ca nopass | ||
| + | [INFO] Building server certificate... | ||
| + | > ./easyrsa --batch build-server-full server_JtWaiX0iDcYANtAt nopass | ||
| + | > ./easyrsa gen-crl | ||
| + | [INFO] Generating TLS key... | ||
| + | > openvpn --genkey tls-crypt-v2-server / | ||
| + | [INFO] Copying certificates... | ||
| + | > cp pki/ca.crt pki/ | ||
| + | > chmod 644 / | ||
| + | [INFO] Generating server configuration... | ||
| + | > mkdir -p / | ||
| + | > mkdir -p / | ||
| + | [INFO] Enabling IP forwarding... | ||
| + | > mkdir -p / | ||
| + | > sysctl --system | ||
| + | [INFO] Configuring OpenVPN service... | ||
| + | > cp / | ||
| + | > sed -i s|LimitNPROC|# | ||
| + | > sed -i / | ||
| + | > systemctl daemon-reload | ||
| + | > systemctl enable openvpn-server@server | ||
| + | > systemctl restart openvpn-server@server | ||
| + | [INFO] Configuring firewall rules... | ||
| + | > mkdir -p / | ||
| + | > chmod +x / | ||
| + | > chmod +x / | ||
| + | > systemctl daemon-reload | ||
| + | > systemctl enable iptables-openvpn | ||
| + | > systemctl start iptables-openvpn | ||
| + | [INFO] Creating client template... | ||
| + | [INFO] Generating first client certificate... | ||
| + | [INFO] Generating client certificate... | ||
| + | > ./easyrsa --batch build-client-full client nopass | ||
| + | [OK] Client client added and is valid for 3650 days. | ||
| + | > cp / | ||
| + | [OK] The configuration file has been written to / | ||
| + | [INFO] Download the .ovpn file and import it in your OpenVPN client. | ||
| + | [OK] If you want to add more clients, you simply need to run this script another time! | ||
| + | </ | ||
| + | |||
| + | ==== Open poort op Fritz!Box firewall ==== | ||
| + | |||
| + | Vervolgens moet ik op mijn **Fritz!Box** wel deze **poort openen** natuurlijk! | ||
| + | |||
| + | * Poortnummer: | ||
| + | * Protocol: UDP | ||
| + | |||
| + | ==== Configureer OpenVPN server ==== | ||
| + | |||
| + | Daarna nog wat eigen aanpassingen gedaan aan de server config: | ||
| + | |||
| + | <code bash> | ||
| + | michelle@roer: | ||
| + | ##server 10.8.0.0 255.255.255.0 | ||
| + | server 192.168.3.0 255.255.255.0 | ||
| + | push " | ||
| + | push "route 192.168.1.0 255.255.255.0" | ||
| + | ##push " | ||
| + | </ | ||
| + | |||
| + | ==== Maak OpenVPN client config ==== | ||
| + | |||
| + | <code bash> | ||
| + | michelle@roer: | ||
| + | |||
| + | === New Client Setup === | ||
| + | |||
| + | [INFO] Generating client certificate... | ||
| + | > ./easyrsa --batch build-client-full MichelleJanse nopass | ||
| + | [OK] Client MichelleJanse added and is valid for 3650 days. | ||
| + | > cp / | ||
| + | |||
| + | [OK] The configuration file has been written to / | ||
| + | [INFO] Download the .ovpn file and import it in your OpenVPN client. | ||
| + | </ | ||
| + | |||
| + | En klaar is Kees. Oh nee: **klaar is de oudste dochter van Kees!!** | ||
| + | |||
| + | ====== Hardening ====== | ||
| + | |||
| + | Nadat de functionaliteit erin zit mag er ook nog wel aan de veiligheid gedaan worden. Want Debian GNU/Linux is out-of-the-box wel aardig in elkaar gestoken maar het kan nog altijd beter! | ||
| + | |||
| + | ===== Lynis ===== | ||
| + | |||
| + | Een tooltje om de hardening van het systeem te scannen en met adviezen te komen. Geen daemon maar een check van mijn systeem: kan er qua veiligheid nog wat verbeterd worden? De versie in Debian GNU/Linux loopt achter dus een aparte repo toegevoegd, zoals beschreven op [[https:// | ||
| + | |||
| + | <code bash> | ||
| + | root@roer: | ||
| + | root@roer: | ||
| + | deb [arch=amd64, | ||
| + | </ | ||
| + | |||
| + | Daarna een scan draaien: | ||
| + | |||
| + | <code bash> | ||
| + | root@roer: | ||
| + | </ | ||
| + | |||
| + | Een malware scanner had ik nog niet, dus..... | ||
| + | |||
| + | ==== Extra packages ==== | ||
| + | |||
| + | <code bash> | ||
| + | root@roer: | ||
| + | </ | ||
| + | |||
| + | ==== Permissies ==== | ||
| + | |||
| + | <code bash> | ||
| + | sudo chmod o-rwx /home/* | ||
| + | </ | ||
| + | |||
| + | en in <code bash>/ | ||
| + | |||
| + | ==== Blacklist rare modules ==== | ||
| + | |||
| + | <code bash> | ||
| + | michelle@lummel: | ||
| + | install dccp /bin/true | ||
| + | install sctp /bin/true | ||
| + | install rds /bin/true | ||
| + | install tipc /bin/true | ||
| + | </ | ||
| + | |||
| + | ==== Purge restanten van packages ==== | ||
| + | |||
| + | Er slingeren soms nog configuratie-bestanden en andere cruft rond van packages die allang niet meer op het systeem staan. Die herken je in de output van `dpkg -l` doordat ze beginnen met rc. Mik deze weg: | ||
| + | |||
| + | <code bash> | ||
| + | michelle@roer: | ||
| + | libpython3.10-minimal: | ||
| + | </ | ||
| + | |||
| + | ===== AppArmor ===== | ||
| + | |||
| + | ** ToDo ** | ||
technische_naslag/sid/roer.1740763979.txt.gz · Laatst gewijzigd: 2025/02/28 17:32 door michelle
