Update website for new infrastructure
This commit is contained in:
parent
b3a37ea2ea
commit
4f87652312
7 changed files with 41 additions and 43 deletions
|
@ -38,11 +38,8 @@ logo_text = "Avery Winters"
|
||||||
main_menu = [
|
main_menu = [
|
||||||
{ name = "about", url = "/about/" },
|
{ name = "about", url = "/about/" },
|
||||||
{ name = "mastodon", url = "https://mastodon.averywinters.org/@avery", external = true },
|
{ name = "mastodon", url = "https://mastodon.averywinters.org/@avery", external = true },
|
||||||
{ name = "matrix", url = "https://matrix.to/#/@avery:averywinters.org", external = true },
|
|
||||||
{ name = "git forge", url = "https://git.averywinters.org/", external = true },
|
|
||||||
{ name = "codeberg", url = "https://codeberg.org/averywinters", external = true },
|
{ name = "codeberg", url = "https://codeberg.org/averywinters", external = true },
|
||||||
{ name = "github", url = "https://github.com/averywinters", external = true },
|
{ name = "github", url = "https://github.com/averywinters", external = true },
|
||||||
{ name = "pgp", url = "/pgp/" },
|
|
||||||
]
|
]
|
||||||
menu_more = "show more"
|
menu_more = "show more"
|
||||||
read_more = "read more"
|
read_more = "read more"
|
||||||
|
|
|
@ -5,13 +5,13 @@ An overview of all the infrastructure and services I host, and the security \
|
||||||
mindset behind it. \
|
mindset behind it. \
|
||||||
"""
|
"""
|
||||||
date = 2023-09-14
|
date = 2023-09-14
|
||||||
updated = 2023-10-04
|
updated = 2024-01-25
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = [ "selfhosting", "nix", "privacy", "security", "networks" ]
|
tags = [ "selfhosting", "nix", "privacy", "security", "networks" ]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
**Note**: This post was updated to reflect a change in the number of servers
|
**Note: This post is out of date, but I am leaving it here for its
|
||||||
I use to host everything.
|
historical value.**
|
||||||
|
|
||||||
Everything on this domain is [self-hosted][0], from DNS to email and all web
|
Everything on this domain is [self-hosted][0], from DNS to email and all web
|
||||||
services. I currently manage two servers:
|
services. I currently manage two servers:
|
||||||
|
@ -56,7 +56,7 @@ being encrypted and authenticated isn't actually important for my purposes. This
|
||||||
could just as easily use another tunneling protocol like [GRE][12], but I find
|
could just as easily use another tunneling protocol like [GRE][12], but I find
|
||||||
WireGuard trivial to setup even if it adds some keys to manage.
|
WireGuard trivial to setup even if it adds some keys to manage.
|
||||||
|
|
||||||
[0]: https://git.averywinters.org/avery/home
|
[0]: https://codeberg.org/averywinters/home
|
||||||
[1]: https://en.wikipedia.org/wiki/TSIG
|
[1]: https://en.wikipedia.org/wiki/TSIG
|
||||||
[2]: https://letsencrypt.org/docs/challenge-types/#dns-01-challenge
|
[2]: https://letsencrypt.org/docs/challenge-types/#dns-01-challenge
|
||||||
[3]: https://letsencrypt.org
|
[3]: https://letsencrypt.org
|
||||||
|
|
|
@ -4,10 +4,14 @@ description = """\
|
||||||
A technique to assign static public IP addresses to a remote machine using WireGuard. \
|
A technique to assign static public IP addresses to a remote machine using WireGuard. \
|
||||||
"""
|
"""
|
||||||
date = 2023-10-04
|
date = 2023-10-04
|
||||||
|
updated = 2024-01-15
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = [ "selfhosting", "nix", "privacy", "security", "networks" ]
|
tags = [ "selfhosting", "nix", "privacy", "security", "networks" ]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
**NOTE: My setup has drifted from this post, but I still find historical value in this
|
||||||
|
description so I am leaving the post up.**
|
||||||
|
|
||||||
# Motivation
|
# Motivation
|
||||||
Let's say you have a server somewhere, it has access to the internet, but maybe it:
|
Let's say you have a server somewhere, it has access to the internet, but maybe it:
|
||||||
1. is behind a [NAT][0] (or even a [CGNAT][1]); or
|
1. is behind a [NAT][0] (or even a [CGNAT][1]); or
|
||||||
|
@ -164,4 +168,4 @@ new IP addresses as well! The code for my full server configs can be found [here
|
||||||
[4]: https://en.wikipedia.org/wiki/Proxy_ARP
|
[4]: https://en.wikipedia.org/wiki/Proxy_ARP
|
||||||
[5]: https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol
|
[5]: https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol
|
||||||
[6]: https://nixos.org
|
[6]: https://nixos.org
|
||||||
[7]: https://git.averywinters.org/avery/home
|
[7]: https://codeberg.org/averywinters/home
|
31
content/2024-01-15-tls-mitm-protection.md
Normal file
31
content/2024-01-15-tls-mitm-protection.md
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
+++
|
||||||
|
title = "Protecting TLS services from MITM attacks"
|
||||||
|
description = """\
|
||||||
|
A public service announcement about how to use CAA records to protect services
|
||||||
|
you host against MITM attacks. \
|
||||||
|
"""
|
||||||
|
date = 2024-01-15
|
||||||
|
[taxonomies]
|
||||||
|
tags = [ "selfhosting", "privacy", "security", "networks" ]
|
||||||
|
+++
|
||||||
|
|
||||||
|
A few months ago, a Russian XMPP server had their TLS connections with users
|
||||||
|
successfully [attacked via a man-in-the-middle][0] (in particular, their ISP and
|
||||||
|
government appeared to have coluded to attack their routing and issue new
|
||||||
|
certificates to a server in the middle). These kinds of attacks can be
|
||||||
|
prevented even if your ISP or government are misbehaving by leveraging DNSSEC
|
||||||
|
and CAA records (as well as vigilantly monitoring certificate transparency logs
|
||||||
|
for your domain).
|
||||||
|
|
||||||
|
If you have a domain you host TLS services on, you should setup restrictive CAA
|
||||||
|
records (if you use Let’s Encrypt, that means tied to an `accountid` and/or
|
||||||
|
`dns01` validation method), and you should setup DNSSEC. Without these, anyone
|
||||||
|
who controls the routing of your IP address (your ISP, hosting provider,
|
||||||
|
misbehaving BGP operators, etc.) can be compelled to obtain a certificate for
|
||||||
|
your domain.
|
||||||
|
|
||||||
|
There are also upcoming technologies like DANE (TLSA records) that allow pinning
|
||||||
|
of expected public keys for a domain in DNS, so that browsers can cross-check
|
||||||
|
the expected certificates with what they received in the chain from the server.
|
||||||
|
|
||||||
|
[0]: https://notes.valdikss.org.ru/jabber.ru-mitm/
|
|
@ -1,21 +0,0 @@
|
||||||
+++
|
|
||||||
title = "PGP"
|
|
||||||
path = "pgp"
|
|
||||||
date = 2023-11-28
|
|
||||||
+++
|
|
||||||
|
|
||||||
If you need to reach me privately, please use [Matrix][0]. Matrix
|
|
||||||
has a much saner security model than PGP email and uses proven,
|
|
||||||
modern cryptographic constructions.
|
|
||||||
|
|
||||||
If you must use PGP email, please use [my public key][2]. This
|
|
||||||
key is also available from [keys.openpgp.org][1] under key ID
|
|
||||||
`E0BFC34F1AC77FB5` or from an OPENPGPKEY record published under
|
|
||||||
this domain.
|
|
||||||
|
|
||||||
My email address/identity is my first name at this domain. The
|
|
||||||
fingerprint for this key is `F080B1252C1F6A92F4B7FA11E0BFC34F1AC77FB5`.
|
|
||||||
|
|
||||||
[0]: https://matrix.to/#/@avery:averywinters.org
|
|
||||||
[1]: https://keys.openpgp.org/vks/v1/by-fingerprint/F080B1252C1F6A92F4B7FA11E0BFC34F1AC77FB5
|
|
||||||
[2]: /pgp.asc
|
|
|
@ -1,13 +0,0 @@
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
xjMEZWU5lhYJKwYBBAHaRw8BAQdAb40BZm9A0bMPNGUNZnUv4FTRyoRZM+V74Pku
|
|
||||||
YO5+i3nNJkF2ZXJ5IFdpbnRlcnMgPGF2ZXJ5QGF2ZXJ5d2ludGVycy5vcmc+wokE
|
|
||||||
ExYIADEWIQTwgLElLB9qkvS3+hHgv8NPGsd/tQUCZWU5lgIbAwQLCQgHBRUICQoL
|
|
||||||
BRYCAwEAAAoJEOC/w08ax3+158YA/0gB9sIfk4EBMlR1sHbtFIbLWDTCTt64o4tQ
|
|
||||||
l1El0NvVAP4pQjxDwYqrlQWVIdopcyhNd5zwwqTxgQsvOsWOdnBECs44BGVlOZcS
|
|
||||||
CisGAQQBl1UBBQEBB0Aks5ukEghksSEtadJm3U1aK7oA6n5rOVP9HERJ1dvoNwMB
|
|
||||||
CAfCeAQYFggAIBYhBPCAsSUsH2qS9Lf6EeC/w08ax3+1BQJlZTmXAhsMAAoJEOC/
|
|
||||||
w08ax3+1oJUBALiFzLegzv2EPbfvpIk7ttnJBkAz8FZ/+csBNDAQK/ErAPoC1k03
|
|
||||||
8h/+sci+8PNgaEpl8rkNYg3wKBgwC338QRG6Bg==
|
|
||||||
=K0eb
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
|
@ -1,5 +1,5 @@
|
||||||
{% extends "zerm/templates/index.html" %}
|
{% extends "zerm/templates/index.html" %}
|
||||||
{%- block general_meta -%}
|
{%- block general_meta -%}
|
||||||
{{ head::general_meta() }}
|
{{ head::general_meta() }}
|
||||||
<link href="https://mastodon.averywinters.org/@avery" rel="me">
|
<link href="https://floss.social/@averywinters" rel="me">
|
||||||
{%- endblock general_meta -%}
|
{%- endblock general_meta -%}
|
||||||
|
|
Loading…
Reference in a new issue