Ads can be really annoying on some websites, and while there are browser extensions like Adblock to block them, those solutions are only local to your browser, and not always very effective. A better way to block ads is to use a Pi-Hole on your local network. Pi-Hole is a software for the Raspberry Pi, that acts as your DNS server to block queries for known advertiser domains. Let’s see how to install Pi-Hole on a Raspberry Pi, and how to configure your network to use it!
A quick solution to SD card corruption is to create a backup image of your SD card, so that if you face a SD card corruption again, you can simply burn that image to the card, put it in your Raspberry, and be back exactly where you were before the corruption. In this article we’ll learn how to create an image of the Raspberry Pi’s SD card (or any SD card really) on Mac OS X.
One of the key aspects to security on Linux systems is the regular updates the community makes to the distribution and packages. A lot of those updates are meant to improve security and fix potential vulnerabilities. For this reason, it’s important to keep your system up to date, especially on a publicly available server. But doing it manually would be a time consuming process, it would involve regularly login into your server and running updates. Instead, it’s much easier to configure a tool that will do it automatically for you. In this article we’ll learn how to enable automatic security updates on Ubuntu, using unattended-upgrades.
The main tool to set up the firewall on Ubuntu is iptables. It is powerful, but very complicated to learn. Fortunately, there is an alternative called UFW (for Uncomplicated FireWall), that is described by Ubuntu as “a frontend for iptables”. Basically, UFW lets you set rules for your firewall in a much easier way that iptables does. Let’s learn how to set some basic rules using UFW!
In this series of tutorials we’ll take a look at basic server security, and in this first article we’ll learn how to improve SSH security. Any machine connected to the Internet immediately becomes a potential target to any kind of attack (hackers, automatic bots, …). Security is somewhat less of a concern for regular Web hosting (shared hosting or managed hosting for example), as most of it is managed by your hosting provider. Servers that you fully manage, however, come with absolutely no security out of the box. This is the case for most dedicated servers, VPS (Virtual Private Servers) and Cloud platforms (AWS, Google Cloud, …).
We’ve already seen how to create a simple socket server in Python, but sometimes we need to handle multiple incoming requests simultaneously, that require processor-heavy computation from the server. That’s what a threaded socket server can achieve.
In this tutorial we’ll learn how to install Mosquitto on a Raspberry Pi. The goal is to use the Raspberry Pi as a MQTT broker in an IoT application. We’ll install Mosquitto, configure it and test it to make sure everything was correctly set up.
Sockets are one of the most commonly used communication tools on computers, but they can be hard to understand at first. If you break it down however, it’s easy to understand how to use them. In this tutorial we’re going to learn how to implement a simple socket server in Python, that will accept a single client connection.
In this tutorial we will focus on logging keyboard events using the Pynput library in Python. I have a Raspberry Pi that I use without a keyboard or mouse, and that is plugged in to my TV. As I mentioned in this tutorial on xdotool, my end goal is to play old games with RetroPie. The only problem is that it’s impossible to control the games over SSH. One possible solution that I found, is to use my laptop to send keyboard events to the Rasperry Pi’s OS.
In some situations, it can be useful to simulate user events on a keyboard or mouse, without an actual keyboard or mouse. The original idea that made me look into this subject, was that I wanted to run RetroPie on my Raspberry Pi with different ways to control the system. Instead of a keyboard, I wanted to use GPIO inputs (buttons or joysticks), or even a web interface that I could access from my phone. We’ll use a program called xdotool to do this.