<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on Servicios Rogeliowar</title><link>https://blog.serviciosrogeliowar.com/en/tags/linux/</link><description>Recent content in Linux on Servicios Rogeliowar</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 Rogelio Guerra Riverón</copyright><lastBuildDate>Mon, 11 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.serviciosrogeliowar.com/en/tags/linux/index.xml" rel="self" type="application/rss+xml"/><item><title>Restic: encrypted backups with deduplication for your Linux server</title><link>https://blog.serviciosrogeliowar.com/en/posts/restic-backups-cifrados-deduplicacion/</link><pubDate>Mon, 11 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/en/posts/restic-backups-cifrados-deduplicacion/</guid><description>&lt;p&gt;I already had &lt;a href="https://blog.serviciosrogeliowar.com/en/posts/backups-automaticos-con-rsync-y-cron-para-docker-domestico/" &gt;backups with rsync and cron&lt;/a&gt;, but rsync copies files, not snapshots. If you accidentally delete a file and the backup syncs before you notice, you lose it. &lt;a href="https://restic.net/" target="_blank" rel="noreferrer"&gt;Restic&lt;/a&gt; solves that and adds something rsync will never provide: &lt;strong&gt;AES-256 encryption, deduplication, and snapshots with navigable history&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 class="relative group"&gt;What makes Restic different
 &lt;div id="what-makes-restic-different" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-makes-restic-different" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Feature&lt;/th&gt;
					&lt;th&gt;rsync&lt;/th&gt;
					&lt;th&gt;Restic&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;AES-256 encryption&lt;/td&gt;
					&lt;td&gt;No&lt;/td&gt;
					&lt;td&gt;Yes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Deduplication&lt;/td&gt;
					&lt;td&gt;No&lt;/td&gt;
					&lt;td&gt;Yes (block-level)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Navigable snapshots&lt;/td&gt;
					&lt;td&gt;No&lt;/td&gt;
					&lt;td&gt;Yes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Multiple backends&lt;/td&gt;
					&lt;td&gt;No&lt;/td&gt;
					&lt;td&gt;SFTP, S3, Backblaze, rclone…&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Integrity checking&lt;/td&gt;
					&lt;td&gt;No&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;restic check&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Retention policy&lt;/td&gt;
					&lt;td&gt;Manual&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;restic forget --prune&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Deduplication is especially useful for database backups and configuration directories that change little: a Restic repository with 6 months of daily backups usually takes up much less space than 180 full copies.&lt;/p&gt;</description></item><item><title>Incremental synchronization from SMB with smbprotocol on Linux: NTLM authentication and log control</title><link>https://blog.serviciosrogeliowar.com/en/posts/sincronizacion-incremental-desde-smb-con-smbprotocol-en-linux-autenticacion-ntlm-y-control-de-logs/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/en/posts/sincronizacion-incremental-desde-smb-con-smbprotocol-en-linux-autenticacion-ntlm-y-control-de-logs/</guid><description>&lt;h2 class="relative group"&gt;The Problem
 &lt;div id="the-problem" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-problem" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Recently I needed to sync an SMB share from a NAS with my Linux server. The obvious solution would be &lt;code&gt;smbclient&lt;/code&gt; or &lt;code&gt;mount -t cifs&lt;/code&gt;, but I wanted:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Incremental&lt;/strong&gt; synchronization (only new or modified files)&lt;/li&gt;
&lt;li&gt;Detect files &lt;strong&gt;deleted&lt;/strong&gt; from the share&lt;/li&gt;
&lt;li&gt;Control &lt;strong&gt;NTLM&lt;/strong&gt; authentication directly from code&lt;/li&gt;
&lt;li&gt;Silence the obscene amount of logs that &lt;code&gt;smbprotocol&lt;/code&gt; spits out&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The Python &lt;code&gt;smbprotocol&lt;/code&gt; library solved all of this, but there&amp;rsquo;s no documentation on how to do it properly. Here&amp;rsquo;s my solution.&lt;/p&gt;</description></item><item><title>Systemd timers: the modern cron alternative you needed</title><link>https://blog.serviciosrogeliowar.com/en/posts/systemd-timers-la-alternativa-moderna-a-cron-que-necesitabas/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/en/posts/systemd-timers-la-alternativa-moderna-a-cron-que-necesitabas/</guid><description>&lt;h2 class="relative group"&gt;Why I Left Cron
 &lt;div id="why-i-left-cron" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-i-left-cron" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been using cron on my servers for years. It&amp;rsquo;s simple, reliable, and it works. But recently I discovered systemd timers and I&amp;rsquo;m not going back. The main reason: &lt;strong&gt;integrated logs in journald&lt;/strong&gt;, no &lt;code&gt;.log&lt;/code&gt; files scattered around the system, and better control over what happens when the server starts or reboots.&lt;/p&gt;
&lt;p&gt;In my specific case, I had a backup that wouldn&amp;rsquo;t run if the server was off at the scheduled time. With cron, it simply got lost. With systemd timers and &lt;code&gt;Persistent=true&lt;/code&gt;, the task runs as soon as the server boots up.&lt;/p&gt;</description></item><item><title>Hardening Linux servers: practical guide</title><link>https://blog.serviciosrogeliowar.com/en/posts/hardening-servidores-linux/</link><pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/en/posts/hardening-servidores-linux/</guid><description>&lt;h1 class="relative group"&gt;Server Security Hardening: Essential Steps
 &lt;div id="server-security-hardening-essential-steps" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#server-security-hardening-essential-steps" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;Having a server exposed to the Internet without minimal security configuration is leaving the door wide open. In this article, I&amp;rsquo;ve compiled the steps I apply on my own servers to reduce the attack surface without complicating day-to-day management.&lt;/p&gt;

&lt;h2 class="relative group"&gt;SSH: the first line of defense
 &lt;div id="ssh-the-first-line-of-defense" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#ssh-the-first-line-of-defense" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;The SSH service is the most attacked entry point on any Linux server. These are the most important settings in &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>WireGuard VPN: Access your home server from anywhere</title><link>https://blog.serviciosrogeliowar.com/en/posts/wireguard-vpn-servidor-dom%C3%A9stico/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://blog.serviciosrogeliowar.com/en/posts/wireguard-vpn-servidor-dom%C3%A9stico/</guid><description>&lt;p&gt;One of the classic problems with having a server at home is secure remote access. Opening SSH ports directly to the world is a bad idea — you see it in the auth logs: hundreds of attempts per day. The elegant solution is a VPN, and &lt;a href="https://www.wireguard.com/" target="_blank" rel="noreferrer"&gt;WireGuard&lt;/a&gt; is today&amp;rsquo;s best available option.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Why WireGuard?
 &lt;div id="why-wireguard" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-wireguard" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Compared to &lt;a href="https://openvpn.net/" target="_blank" rel="noreferrer"&gt;OpenVPN&lt;/a&gt; or IPSec:&lt;/p&gt;</description></item></channel></rss>