Nationaal Park De Hoge Veluwe

Het plan van vandaag is een bezoekje aan het Kröller-Müller museum te brengen. Aangezien het museum binnen de grenzen van Nationaal Park De Hoge Veluwe ligt, kan ik daar gelijk een stukje gaan wandelen. Op tijd het bed uit maar het ziet er nogal somber uit buiten. Nog even wikken en wegen en uiteindelijk toch maar de spullen bij elkaar gepakt en in de auto op weg naar het park.

Read More

Een rondje Amersfoort

Na het erg slechte weer van gisteren schijnt de zon volop en ga ik met de camera de deur uit om weer eens een rondje Amersfoort te doen. Langs het Valleikanaal en via de binnenstad weer terug. Heerlijk een frisse neus halen!

Read More

FreeBSD – Een eigen webserver

Een website is een goede manier om informatie beschikbaar te maken voor anderen, maar ook om informatie voor jezelf te archiveren. Nu doe ik dat al door op m’n eigen website deze artikelen te plaatsen, maar een lokale webserver kan ook gebruikt worden om bijvoorbeeld de resultaten van poudriere te bekijken, een lokale cloud te draaien met behulp van nextcloud, of een web interface aan te bieden voor de git repositories.

Apache of Nginx

Voor het draaien van een website zijn er een aantal mogelijkheden maar met name apache en nginx worden hier veelvuldig voor gebruikt. Elk heeft zo zijn voor- en nadelen maar zelf heb ik gekozen voor apache aangezien ik daar wat meer ervaring mee heb dan met nginx.

Installatie

Installatie van apache is vrij eenvoudig. Het begint met het bouwen van de juiste package en dan is het een kwestie van installeren. Bij de opties moeten de volgende features aangezet zijn: SSL, MPM_SHARED. Voor de overige opties zijn de defaults voldoende.

# echo www/apache24 >> /usr/local/etc/poudriere.d/12amd64.pkglist
# poudriere ports -u
# poudriere options -c www/apache24
# poudriere bulk -j 12amd64 -f /usr/local/etc/poudriere.d/12amd64.pkglist

Na het bouwen kan het package geïnstalleerd worden.

# pkg install www/apache24

Configuratie

Met het commando

# service apache24 onestart

kunnen we controleren of de software correct is geïnstalleerd. Open een browser en ga naar http://filevault.home.lan/ en dan moet de volgende tekst getoond worden.

It works!

We stoppen de apache server met service apache24 onestop en gaan verder met het installeren van onder andere PHP. Maar eerst voeren we nog even onderstaand commando uit om bij een herstart apache automatisch op te starten.

# sysrc apache24_enable="YES"

Installatie van PHP

PHP is een veelgebruikte scripttaal voor het schrijven van interactive webpagina’s. In dit geval installeren we een van de laatste versie van PHP, namelijk 7.2. Er is al wel een nieuwere versie maar deze wordt nog niet veel ondersteund door de diverse PHP applicaties.

Als eerste moeten we een aantal PHP packages toevoegen aan ons build systeem en deze bouwen. Tevens voegen we gelijk de apache module voor ondersteuning van PHP toe.

# echo lang/php72 >> /usr/local/etc/poudriere.d/12amd64.pkglist
# echo lang/php72-extensions >> /usr/local/etc/poudriere.d/12amd64.pkglist
# echo www/mod_php72 >> /usr/local/etc/poudriere.d/12amd64.pkglist
# poudriere options -c lang/php72 lang/php72-extensions www/mod_php72
# poudriere bulk -j 12amd64 -f /usr/local/etc/poudriere.d/12amd64.pkglist

Na het bouwen van de packages kunnen we deze vervolgens installeren.

# pkg update && pkg install php72 mod_php72

Daarnaast moeten we ook nog een aantal van de PHP extensies installeren.

# pkg install php72-mbstring php72-zlib php72-curl php72-gd php72-json

Voor het gebruik van PHP binnen apache moet we de geïnstalleerde module toevoegen aan de apache configuratie. Voeg aan het bestand /usr/local/etc/apache24/httpd.conf de volgende regel toe:

LoadModule php7_module        libexec/apache24/libphp7.so

Tevens moeten we ervoor zorgen dat .php bestanden als zodanig worden behandeld. Hiervoor creëren we het bestand /usr/local/etc/apache24/modules.d/080_mod_php.conf met de volgende inhoud:

<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>

<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>

Om een en ander te testen voeren we de volgende commando’s uit om apache opnieuw te starten en maken we een simpele testpagina.

# echo '<?php phpinfo(); ?>' | tee -a /usr/local/www/apache24/data/info.php
# service apache24 restart

Als we nu naar http://filevault.home.lan/info.php gaan, dan moet nu de status pagina voor de PHP ondersteuning binnen apache getoond worden.

In een volgend artikel ga ik verder met het toevoegen van SSL ondersteuning.

Superwolfbloedmaan

Een hele mond vol en het is niets anders dan de eerste volle maan van januari gecombineerd met een maansverduistering en het feit dat de aarde en maan relatief dicht bij elkaar staan.

De weersverwachtingen zijn erg gunstig: koud, weinig wind en zo goed als geen bewolking. Dus maar om half 4 ’s nachts m’n bed uit om dit eens op de foto te zetten. Het plan was om een mooie reeks van de maantransitie te schieten en deze te monteren zodat je de verschillende fases van de maan in 1 landschapsfoto ziet. Helaas ging dat niet helemaal zoals ik had voorzien.

Read More

FreeBSD – Lokaal mail versturen

Diverse processen die draaien op de server kunnen via e-mail status berichten en logs versturen. Deze blijven echter op het systeem staan zodat het lastig is om deze berichten te lezen. Door gebruik te maken van mail/postfix wordt het mogelijk om deze e-mails via Gmail door te sturen.

Installatie

We starten met het bouwen van het installatie package via poudriere door dit aan de lijst van packages toe te voegen, de instellingen aan te passen en dan alles te bouwen. Bij de opties moet SASL aangezet zijn, voor de andere opties kunnen de defaults gebruikt worden.

# echo mail/postfix >> /usr/local/etc/poudriere.d/12amd64.pkglist
# poudriere ports -u
# poudriere options -j 12amd64 -c mail/postfix
# poudriere bulk -j 12amd64 -f /usr/local/etc/poudriere.d/12amd64.pkglist

Als het installatie package gebouwd is kan het geïnstalleerd worden.

# pkg install mail/postfix

Bevestig de vraag of postfix geactiveerd moet worden met een y. Dit zorgt ervoor dat we in plaats van sendmail nu postfix gaan gebruiken. Om sendmail helemaal uit te schakelen zijn nog een aantal acties nodig. Deze acties worden beschreven bij de installatie van het postfix package.

In het bestand /etc/rc.conf zorgen we ervoor dat sendmail niet meer wordt opgestart en dat we in plaats hiervan postfix opstarten.

# - disable sendmail
sendmail_enable="NONE"

# - enable postfix
postfix_enable="YES"

Voeg onderstaande regels toe aan het bestand /etc/periodic.conf om deze sendmail specifieke zaken uit te zetten.

# disable sendmail tasks
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

Gmail authenticatie

Om mail door te kunnen sturen naar Gmail is het nodig om de juiste account gegevens vast te leggen. Dit doen we in het bestand /usr/local/etc/postfix/sasl_passwd.

[smtp.gmail.com]:587    username@gmail.com:password

Vul hierbij het juiste e-mail adres en Gmail wachtwoord in. Verder moeten we ervoor zorgen dat alleen root het bestand kan lezen.

chmod 600 /usr/local/etc/postfix/sasl_passwd

Postfix configuratie

De configuratie van postfix is redelijk simpel. Vervang de inhoud van /usr/local/etc/postfix/main.cf met de volgende regels.

# General options
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
unknown_local_recipient_reject_code = 550
debug_peer_level = 2

# Alias maps
alias_maps = hash:/etc/aliases
virtual_alias_maps = hash:/usr/local/etc/postfix/virtual

# Address rewriting
recipient_canonical_maps = hash:/usr/local/etc/postfix/canonical

# My hostname, domain, origin, networks
myhostname = filevault.home.lan
mydomain = home.lan
myorigin = home.lan
inet_interfaces = 172.16.123.11
inet_protocols = ipv4
mynetworks = 127.0.0.0/8, 172.16.123.0/24

# SASL options
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

# TLS options
smtp_use_tls = yes
smtp_tls_security_level = encrypt
tls_random_source = dev:/dev/urandom

# Relay host
relayhost = [smtp.gmail.com]:587

# Disable compatibility mode
compatibility_level = 2

Belangrijk hierbij is dat de gegevens van het lokale netwerk correct zijn zoals host naam en IP adres van de server, lokale domein naam en op welk IP netwerk de server zit. De SASL, TLS en relayhost configuratie zijn nodig voor het doorsturen van mail naar Gmail.

De virtual_alias_maps zorgt ervoor dat alle gebruikers herschreven worden naar mijn Gmail e-mail adres. Zet hiervoor de volgende regel in het /usr/local/etc/postfix/virtual bestand.

.*    username@gmail.com

In het bestand /etc/aliases moet alleen de alias voor root aangepast worden.

root: username@gmail.com

Run nu het commando newaliases om de alias database aan te maken.

# newaliases

Het bestand /usr/local/etc/postfix/canonical wordt gebruikt om de lokaal gebruikte domein namen om te zetten.

@poudriere.home.lan    username@gmail.com
@git.home.lan username@gmail.com
@home.lan username@gmail.com

De databases voor de verschillende configuratie bestanden moeten nu nog aangemaakt worden. Voor de aliases is dit al gedaan via newaliases, de overige moeten gemaakt worden met behulp van postmap.

# postmap /usr/local/etc/postfix/sasl_passwd
# postmap /usr/local/etc/postfix/canonical
# postmap /usr/local/etc/postfix/virtual

We kunnen nu postfix opstarten.

# service postfix start

Veiligheidniveau bij Gmail aanpassen

Normaal gesproken kunnen we geen mail via Gmail doorsturen. Hiervoor moet de instelling Allow less secure apps aangezet worden. Meer hierover kun je lezen op de support pagina Allowing less secure apps to access your account van Google.

Test e-mail versturen

Het versturen van een test e-mail is erg eenvoudig.

# echo "Test" | mail -s "Test" test@domain.com

In de verzonden items bij Gmail moet je nu dit bericht zien. Onafhankelijk vanaf welk gebruikersaccount dit is verstuurd, de afzender moet gelijk zijn aan het e-mail adres zoals ingevuld in /usr/local/etc/postfix/virtual.

Referenties