Ik gebruik proxmox in mijn homelab om VM’s te draaien maar standaard moet je elke VM installeren vanaf een iso. Gelukkig kan je templates maken en ze met cloud init opzetten. In deze post toon ik hoe ik mijn images maak.
Tag archieven: linux
UFW basics
Op een server is een firewall onmisbaar. Op Debian & Ubuntu is UFW de eenvoudigste manier om een firewall in te stellen. UFW staat voor “The Uncomplicated Firewall” en is dan ook zeer eenvoudig in gebruik. In deze post leg ik de basis uit van UFW.
Nat instellen in proxmox
Binnen proxmox word standaard gebruik gemaakt van briding. Dit is echter niet altijd handig (we hebben bijvoorbeeld maar 1 IP adres tot onze beschikking. Gelukkig kunnen we met iptables aan maquerading doen.
Voeg het volgende toe aan /etc/network/interfaces:
auto vmbr1
iface vmbr1 inet static
address 10.0.0.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o enp35s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o enp35s0 -j MASQUERADE
## do do a port-forward to the VM with "lan" ip 10.0.0.3 from the host port 8080 the VM port 80
## you can use a line like this.
# post-up iptables -t nat -A PREROUTING -i enp35s0 -p tcp --dport 8080 -j DNAT --to 10.10.10.3:80
vervolgens kunnen we het netwerk herladen met
ifreload -a
ProFTPd installeren in Debian 12
Ik heb een geupdate handleiding gemaakt die SFTP gebruikt in plaats van SFTP
ProFTPd is een FTP server die zeer praktisch is. Het laat toe om virtuele gebruikers aan te maken en meer. In deze post ga ik toelichten hoe ik ProFTPd configureer met Virtual user support en TLS.
Linux processen beperken in CPU gebruik
Nice
Met nice kan een process een prioriteit toegekend worden. Prioriteiten zijn een manier om de scheduler te vertellen welke processen voorang krijgen op minder belangerijke processen. Dit kan met renice ook op een process dat al draait. Nice waarden gaan van -20 (hoogste) tot 19 (laagste). Standaard is deze waarde 0.
Het gebruik van nice is zeer eenvoudig, je plaatst nice -n <prioriteit> voor het commando dat je wenst uit te voeren, bijvoorbeeld nice -n 19 tar -zcf /var/backups/home.tgz /home/.
De scheduler zal processen met een hoge nice waarde (dus lage prioriteit) minder cpu tijd geven dan processen met een hogere prioriteit. Heel handig voor bijvoorbeeld zware backup processen.

Default nice voor een linux gebruiker
De standaard nice waarde voor een linux gebruiker is 0. Dit kan echter aangepast worden in /etc/security/limits.conf door de priority parameter in te stellen voor een bepaalde gebruiker/groep. Bijvoorbeeld:
gebruiker hard priority 10
Cpulimit
cpulimit is een programma dat met behulp van SIGSTOP en SIGCONT signalen het gemiddelde cpu-percentage van een process beperkt tot een gegeven percentage. Dit commando werkt net zoals nice door het te plaatsen vlak voor het commando dat je wilt uitvoeren:
cpulimit -l 50 tar -zcf /var/backups/home.tgz /home/
Het voorbeeld hierboven zou de backup van de /home/ directory beperken tot 50% cpu snelheid.
Indien een process subprocessen spawned, is het belangerijk om aan cpulimit ook de -m parameter mee te geven.
Alma Linux Beta (RHEL) Installeren
Eind vorig jaar kondigde Centos aan dat ze de focus gingen leggen naar CentOS Steam, een Rolling release die gebruikt word als development branch voor de RedHat Distributie. Hierbij werd ook de ondersteuning voor CentOS 8 verkort, en zal eind dit jaar geen support meer krijgen. Er zijn een aantal alternatieven gekomen, waaronder Alma Linux. Alma Linux word gemaakt door de makers van CloudLinux, en is volledig Open Source. In deze Tutorial leg ik uit hoe je AlmaLinux installeert
Linux LAMP server tutorial
In deze tutorial leg ik je uit hoe je van jouw linux computer of server een webserver maakt met behulp van LAMP.
LAMP staat voor Linux Apache Mysql Php, dat zijn de onderdelen waar de meeste webservers gebruik van maken. Ik ga in deze tutorial gebruik maken van Ubuntu 18.04, maar deze stappen zijn voor de meeste ubuntu- en debian versies gelijk.
Apache installeren
Apache is de webserver. Deze is de meest gebruikte webserver en is dan ook zeer gemakkelijk en uitgebreid te configureren. Installeren doe je met het volgende commando:
sudo apt install apache2 -y
Als je nu naar het ip-adres van jouw server surft, dan zul je een pagina zoals hieronder te zien krijgen:

je kan deze pagina aanpassen door de inhoud in /var/www/html/ aan te passen.
PHP
Php zorgt ervoor dat je dynamishe inhoud kan gebruiken op jouw webserver. De installatie is zeer eenvoudig en doe je met onderstaand commando:
sudo apt install php libapache2-mod-php -y
Als je nu naar de /var/www/html/ map gaat en het index.html bestand verwijderd, en er een index.php bestand in de plaats zet met volgende inhoud:
<?php phpinfo(); ?>
En dan opnieuw naar het ip van jouw server gaat, dan zul je een pagina vol info over php zien, wat tevens ook wilt zeggen dat php goed is ingesteld.

MySQL
MySQL zorg ervoor dat je databases kan gebruiken. de Installatie is eenvoudig met de volgende commando’s:
sudo apt-get install mysql-server php-mysql -y
sudo service apache2 restart
Hierna moet je mysql nog instellen, en dat doe je als volgt:
sudo mysql_secure_installation
Je zult volgende vragen te zien krijgen:
- “Enter current password for root (enter for none):” – druk hier op enter
- “Set root password?” – typ hier y, typ dan het wachtwoord voor de root user.
- “Remove anonymous users” – typ hier weer y
- “Remove test database and access to it?” – Typ hier weer y
- “Reload privilege tables now?” – je raad het al, typ y
Nu zou je mysql moeten kunnen gebruiken.
Zo, nu heb je successvol een LAMP stack geinstalleerd!
Edit 2020-04-11: Het commando om php te installeren was fout. Dit is nu aangepast.
Aan de slag met Docker
Docker is een manier om een server of computer op de telen in kleine stukjes, containers genaamd. Het Idee van docker is om een programma te maken dat overal op draait, ongeacht de onderligende omgeving (doordat alles in een container verwerkt zit). Docker is ook zeer schaalbaar, omdat je bv bepaalde software over meerdere servers of nodes kan laten draaiten.
Als docker is geïnstalleerd dan kan je beginnen met het aanmaken van containers. Ik gebruik docker zelf vooral om een soort van “virtuele machine” te kunnen draaien op zwakke hosts zoals mijn raspberrypi’s. als je in een terminal het commando docker info uitvoert dan zie je hoeveel containers en images je hebt.
Images zijn de basissystemen. Je hebt er van besturingssystemen (zoals Debian of Ubuntu), maar ook van software (denk aan apache, mysql, php). Hierdoor kan je een applicatie maken die gebruik maakt van meerdere containers (voor elke service een andere container). Hierdoor is docker zeer veilig. Images kan je downloaden met docker pull <imagename>, om bv ubuntu te downloaden gebruik je docker pull ubuntu.
Om een docker container te maken gebruik je docker run <image> <parameters>. Ik maak mijn containers meestal met ubuntu, en ik geef er de mogelijkheid aan toe om een console te openen (-it), en ik open enkele poorten. Dit doe ik met -p <hostpoort>:<containerpoort>. Deze kan je herhalen om meerdere poorten open te zetten.
Docker heeft ook volumes. Met volumes kan je bv met meerdere containers aan dezelfde data. Hiermee kan je ook aan de data van buitenaf de container. Dit doe je met -v <hostpad>:<containerpad>.
Met deze informatie kan je hoogstwaarschijnlijk al aan de slag met docker. Docker is zeer interessant en het is dus zeer handig om er meer over te weten.
SSH Server Beveiligen
SSH is de eenvoudigste methode om met een linux server te verbinden, maar een login mogenlijkheid openstellen maakt jouw systeem ook vatbaar voor verschillende aanvallen.
Verander de SSH poort
Het eenvoudigste is om de SSH poort aan te passen. Dit is geen waterdichte oplossing, maar is eerder “security by obscurity”. Deze kan je dan veranderen naar een vrije poort op jouw systeem (vb: 2022 or 4422). Hiervoor kan je het ssh-configuratie bestand aanpassen:
sudo nano /etc/ssh/sshd_config
Dan zoek je naar de volgende regel
#Port 22
Un⁻comment deze regel, en verander 22 naar de poort die je wenst te gebruiken, herstart dan SSH
sudo service ssh restart
SSH-keys gebruiken
Om de mogelijkheid van zwakke paswoorden te verwijderen, kan je SSH-sleutels verplichten.
Op een linux client, typ volgend commando:
ssh-keygen
Dit zal een paar vragen stellen, en daarna moet je jouw sleutel naar de server verplaatsen. vervang met het pad naar jouw sleutel (meestal ~/.ssh/id_rsa.pub)
ssh-copy-id -i <PATH_TO_YOUR_KEY> user@server.domain.tld
Nu moet je dit nog aanzetten in de SSH-server, dit kan je doen door in de configuratie van ssh (zie hiervoor hoe je deze kan aanpassen) volgende regels op te zoeken, en te un-commenten.
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
Je kan ook passwoord-logins uitzetten door het volgende op “no” te zetten maar test wel eerst of jouw keys werken!
# PasswordAuthentication yes
Nu kan je jouw ssh-server herstarten (zie hervoor).
Zo, nu kan je jouw ssh-server op het internet openzetten, zonder risico’s.
Verbind met je raspberrypi vanaf een webbrowser (webmin tutorial)
Je kan je raspberrypi op verschillende manieren beheren. Met VNC en SSH zijn de meest gebruikte, maar deze vereisen dat er een programma is geïnstalleerd op de computer die je gebruikt om met je raspberrypi verbinding te maken. In deze tutorial leg ik uit hoe je webmin instelt om verbinding te maken via een web controle paneel.
Lees verder
