SSL/TLS Explained: How HTTPS Encryption and Certificates Work
How TLS works in plain terms: the handshake, certificates and chains of trust, CAs, DV vs OV vs EV, SNI, TLS versions, and what HTTPS does not protect.
Blog
Hardening servers and websites: SSH, firewalls, VPNs and encryption.
How TLS works in plain terms: the handshake, certificates and chains of trust, CAs, DV vs OV vs EV, SNI, TLS versions, and what HTTPS does not protect.
Run Suricata as a network IDS: choose the interface, load Emerging Threats rules with suricata-update, read eve.json alerts, tune, and consider IPS mode.
Manage firewalld with firewall-cmd: zones, services and ports, runtime vs permanent rules, rich rules for IP limits, port forwarding and IP sets.
Run a private CA with step-ca: root and intermediate setup, issuing certificates, automatic renewal via ACME, mutual TLS between services, trusting the root.
Keep Linux servers patched: how CVEs and severity scores work, which updates matter, automatic security updates, restarting services, app dependencies.
Practical OpenSSL commands: keys and CSRs, self-signed certificates, inspect and verify certificates, test TLS servers and convert formats.
Install AIDE, build the baseline database, run daily checks, read the change report, update after legitimate changes, and protect the database.
Choose a team password manager: Bitwarden, Vaultwarden, 1Password, Passbolt and KeePassXC compared, self-hosting on a VPS, sharing, SSO and backups.
Learn iptables: tables, chains and targets, a safe default-deny ruleset, allowing services, rate limits, NAT, port forwarding and saving rules.
Harden SSH on Debian: key-only login, no root, allowed users, modern algorithms, Fail2ban, optional port change and 2FA — without lockouts.
Run Docker safely: non-root containers, minimal images, image scanning, no exposed daemon, the UFW port bypass, read-only filesystems, secrets, updates.
A practical Linux server hardening checklist: updates, SSH, users, firewall, services, file permissions, logging, backups, monitoring and app-level security.
Where sudo logs on Ubuntu, Debian and RHEL, a dedicated sudo log file, full session recording with log_input and sudoreplay, and central logging.
Cloudflare custom WAF rules on the free plan: challenge countries, protect wp-login and xmlrpc, stop bad bots, rate limit, allow your IPs, lock the origin.
Change the SSH port safely on Ubuntu, Debian, AlmaLinux and Rocky: sshd_config, systemd socket activation, firewall rules, SELinux and testing first.
Defend a VPS against password guessing and credential stuffing: key-only SSH, Fail2Ban and CrowdSec, web login limits and CAPTCHA, MFA, mail auth.
Add a WAF to Nginx with ModSecurity v3 and the OWASP CRS: install the connector, run in detection mode, tune false positives, then switch to blocking.
VPN vs proxy: what each encrypts and routes, HTTP vs SOCKS5, WireGuard and OpenVPN, privacy limits, performance, and self-hosting either on a VPS.
Configure UFW on Ubuntu and Debian: safe defaults, allow SSH first, open ports, restrict by IP, rate limit, delete rules and the Docker caveat.
Set up auditd: watch files like /etc/passwd and sshd_config, log commands run as root, search with ausearch, report with aureport, and persist rules.
Zero trust beyond the buzzword for small teams: identity-based access, no public admin ports, mesh VPNs, access proxies and short-lived credentials.
Encrypt a data disk with LUKS2 and cryptsetup: format, open and mount, unlock at boot with a key file or passphrase, back up keys, and know what it protects.
Fix SSH Permission denied (publickey): debug with ssh -v, check key files, authorized_keys permissions, users, sshd settings, SELinux and key algorithms.
What port knocking is, setting up knockd with UFW or iptables to open SSH after a secret knock sequence, client usage, limitations, better alternatives.