How to pre-configure Raspberry PI for remote SSH and Wifi

Many Raspberry PI projects are used headless (with no display device attached or if a display device exists, it’s not connected to the default HDMI or analog outputs).
In these instances it’s time consuming to connect the PI to a monitor and keyboard just to configure remote SSH access and wireless connection details (and in rare occasions it may even not be possible).

Luckily, the good folk developing Raspbian implemented shortcuts and workarounds that allow things to be pre-configured even before booting the PI.

How to adjust TLER value on hard disk (for data recovery)

In case the hard disk itself is taking too long to respond, some operations will fail and can cause the controller (software or hardware) to drop the disk out of the RAID.
Even when no RAID is used, the hard disk itself can still spend too much time retrying a (failing) read, causing unwanted delays and possible further damage.

To alleviate this, you can try to use a feature called TLER (Time Limited Error Recovery) or CCTL (Command Completion Time Limit).

Keeping SSH connections alive

By default SSHd will terminate an ongoing connection if there was no traffic (incoming or outgoing) for a while.

If you usually leave remote sessions running for long amounts of time and hate the unexpected disconnects, this can be changed by enabling the keep-alive feature on the server directly so it applies to all remote sessions regardless of client used.

How to install OPNSense on PCEngines’ APU2

I have been looking for a good alternative which could handle my gigabit internet connection and I believe I made a good choice going with PCEngine’s APU2 embedded system.

I tried following various tutorials dedicated for installing both pfSense and OPNsense on this device, however they didn’t quite work on the APU (or in my case), so I tried a personal method which proved successful.

Configuring static IP address and virtual interfaces in Webmin

When assigning multiple IP addresses to a single server by using virtual interfaces on the same single main interface it is necessary to switch to a static IP configuration.

Doing network configuration remotely is a bit risky but with the correct sequence of steps it is possible to switch from DHCP to static IP without any downtime.

Disable BIND recursion while keeping local queries resolvable

For security and efficiency reasons, a hosting system DNS server should not answer recursive queries (solve DNS requests for domains it is not authoritative for).
However, the DNS server needs to accept recursive queries for the services hosted on the same system for these services to work correctly and be able to resolve forward and reverse hosts/IPs.