Skip to content

Instantly share code, notes, and snippets.

View Tugzrida's full-sized avatar

Cameron Steel Tugzrida

View GitHub Profile
@Tugzrida
Tugzrida / PrefixDelegs.go
Last active November 10, 2024 03:59
go function to generate all the reverse DNS delegations needed to cover a netip.Prefix
package main
import (
"fmt"
"net/netip"
"strconv"
"strings"
)
func PrefixDelegs(p netip.Prefix) []string {
@Tugzrida
Tugzrida / udp_rebind_proxy.py
Created August 4, 2024 02:20
Basic UDP NAT rebinding simulator to test QUIC
#!/usr/bin/env python3
import socket, threading
# Basic UDP NAT rebinding simulator to test QUIC
# Won't work with more than one client
local_port = 443 # Local UDP port to listen on
local_src_port = 65123 # Initial source port
# Destination host to forward traffic to
@Tugzrida
Tugzrida / HA_backup_dropbox.py
Last active April 7, 2024 10:55
Backup Home Assistant to Dropbox
#!/usr/bin/python3
from urllib.request import urlopen, Request
from functools import cached_property
from datetime import timedelta, datetime, UTC
import dataclasses as dc
import glob, os, time, dropbox, tarfile, json, sys
######
HA_TOKEN = "XXX"
HA_BACKUP_DIR = "/home/pi/docker/homeassistant/config/backups/"
@Tugzrida
Tugzrida / HA_Ausgrid_EA025.yaml
Created February 18, 2024 04:16
Ausgrid tariff definitions for Home Assistant
template:
- sensor:
- name: "Current power tariff"
unique_id: sensor.current_power_tariff
state: >
{% if now().weekday() not in (5, 6) and (
(now().month in (11, 12, 1, 2, 3) and 14 <= now().hour <= 19)
or
(now().month in (6, 7, 8) and 17 <= now().hour <= 20)
)-%}
@Tugzrida
Tugzrida / authorized_keys_jumpbox
Created October 16, 2022 00:55
Persistent SSH connection for remote access
command="echo 'Dialout only'",restrict,port-forwarding,permitlisten="localhost:jumpbox_port",permitopen="[100::]:1" ssh_key
@Tugzrida
Tugzrida / mta-sts.js
Last active May 31, 2024 06:56
MTA-STS Cloudflare worker
// This worker is designed to be able to neatly handle MTA-STS policies for multiple domains.
// Make a new worker with this script and add your domains to the stsPolicies dict like the example.
// Add a DNS AAAA record for mta-sts.yourdomain.com pointing to 100:: and set to proxied,
// then add a workers route for mta-sts.yourdomain.com/* pointing to this worker.
// You should probably also create a Cloudflare configuration rule disabling Browser Integrity Check for the mta-sts subdomain
// to ensure MTAs aren't blocked from retrieving your policy.
// You'll still need to manually add the appropriate _mta-sts.yourdomain.com TXT record to enable the policy,
@Tugzrida
Tugzrida / drop-unknown-hosts.conf
Last active June 28, 2021 07:30
Drop connections to nginx which don't match any server block
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
## For nginx >= 1.19.4:
## If also using openssl >= 1.1.1j, the certificate directives can be removed.
## Even if present, the cert is never sent, it's just a workaround for an openssl bug.
@Tugzrida
Tugzrida / uCollapse.css
Last active April 20, 2020 11:41
A tiny independent JS library for easily making collapsible sections.
/* uCollapse v0.2 Created by Tugzrida(https://gist.github.com/Tugzrida) */
.ucollapsible {
overflow: hidden;
transition: height 0.3s ease-in-out;
}
.ucollapsible.ucollapsed {
height: 0px;
}
@Tugzrida
Tugzrida / mta-sts
Last active September 2, 2024 07:05
MTA-STS vhost for Nginx
# A simple Nginx vhost to direct all requests to mta-sts.example.com to the mta-sts file.
# Just substitute your domain and certificate paths(MTA-STS *must* be available over HTTPS)
# Then do mkdir -p /var/www/mta-sts/.well-known and add your policy to
# /var/www/mta-sts/.well-known/mta-sts.txt
server {
listen 80;
listen [::]:80;
server_name mta-sts.example.com;
@Tugzrida
Tugzrida / certbot-cloudflare-hook.py
Last active June 3, 2024 17:11
Certbot Cloudflare DNS challenge hook script
#!/usr/bin/env python3
# v0.4 Created by Tugzrida(https://gist.github.com/Tugzrida)
# Hook script for obtaining certificates through Certbot via Cloudflare DNS-01 challenge.
# Offers more flexibility for Cloudflare authentication than the certbot-dns-cloudflare plugin.
# Note that this script is not actively maintained or guaranteed to work consistently.
# Use in prod at your own risk and with adequate monitoring!
# Begin by listing the Cloudflare zones(domains) you with to obtain certificates for in the `zones` dict below,
# along with Cloudflare API tokens authorised to edit DNS on those zones. Also see the example dict for the CNAME setup option.