" /> Linux - Libretech Journal
Libretech Journal

Linux

All posts tagged Linux by Libretech Journal
  • Posted on

    WireGuard is a new, fast, and simple VPN protocol now integrated into the Linux kernel (version 5.4 and later).

    Installation on Ubuntu is straightforward using the apt package manager:
    sudo apt install wireguard

    Configuration involves generating private and public keys using wg genkey and wg pubkey.

    The server and client configurations are managed through text files (e.g., wg0.conf), specifying private keys, IP addresses, listening ports, and peer public keys.

    To route all client traffic through the VPN, use AllowedIPs = 0.0.0.0/0 in the client configuration. The server needs IP forwarding enabled (/proc/sys/net/ipv4/ip_forward = 1).

    A persistent keep-alive setting (e.g., PersistentKeepalive = 30) is recommended to prevent connection drops caused by firewalls or NAT devices.

    The server needs to explicitly allow the client by adding the client's public key and allowed IPs to the server's configuration using wg set.

    WireGuard uses UDP, which is stateless, so the keep-alive setting is crucial for maintaining the connection.

    Flexible configuration options allow for routing only specific traffic through the VPN, rather than all traffic.

    00:00 Introduction
    01:50 Installation on server & client
    02:50 Create private and public server keys
    04:24 Configure server interface
    07:00 Create private and public client keys
    07:34 Configure client interface
    10:55 Add Client peer to the server configuration
    12:03 Configure persistent keep-alive
    13:58 Test the connection via ping
    14:30 Configure the server to forward network packets
    16:05 How to change clients traffic routing
    17:10 Summary


    đź’ˇ Support the creator: Patreon - Christian Lempa

  • Posted on

    David Mackenzie recounts his experiences as a software developer with the GNU Project and BSD Unix during the 1980s and 1990s, offering vivid illustrations of what computing was like during that era and reflecting on the lasting legacy of that work.

    This story demonstrates how a life of open-source contribution can be a profoundly rewarding endeavor—even today—while also offering a realistic view of the challenges involved.


    Early Programming Experiences

    David began programming in middle and high school on Ohio Scientific computers, learning 6502 Assembly Language and even contributing to a primitive disk operating system.

    These early experiments fostered a deep interest in operating systems and set the stage for his future work.


    BSD Unix at St. Olaf College

    At St. Olaf College, David gained extensive experience with BSD Unix running on DEC PDP and VAX systems.

    • He had early (and unauthorized!) exposure to the su command.
    • Later, he legitimately became a student systems programmer, learning C and beginning his contributions to the GNU Project.

    Contributions to the GNU Project

    David went on to contribute significantly to the GNU Project, completing and writing many Unix-like utilities, including:

    • Coreutils and other essential tools
    • Always adhering to GNU coding standards, which emphasize readability and maintainability

    His work often aimed to surpass the limitations of existing Unix commands, setting higher standards for open-source utilities.


    Creation of Autoconf

    One of David's most impactful achievements was the creation of Autoconf, a tool that automates the configuration of software for a wide variety of Unix-like systems.

    • Why it mattered: At the time, open-source developers faced major challenges ensuring their software would build and run across many different Unix variants.
    • Influence: David’s prior experience working with numerous Unix systems directly influenced his decision to create Autoconf, which went on to become a cornerstone of open-source development workflows.

    The Legacy

    David Mackenzie’s journey highlights how dedication to open-source software can have an impact far beyond one’s immediate projects. His work continues to influence modern systems, servers, and supercomputers, proving that open-source contributions remain a rewarding and lasting legacy.

"> ');