Commit Graph

142 Commits

Author SHA1 Message Date
Brian Cunnie
34318bbb43 Retire DNS server, ns-aws.sslip.io
The torrent of traffic I'm receiving has caused my AWS bill to spike
from $9 to $148, all of the increase due to bandwidth charges.

I'm still maintaining ns-aws; the VM still continue to run, and continue
to serve web traffic, and maintain its hostname and IP addresses;
however, it will no longer be in the list of NS records for sslip.io.

There are much less expensive hosting providers. OVH is my current
favorite.
2024-11-04 17:56:03 -08:00
Brian Cunnie
078a69f75e 3.2.2: Join the Public Suffix List 2024-10-08 18:53:08 -07:00
Brian Cunnie
d0c3927415 3.2.1: Return NS records in random order 2024-09-17 06:34:32 -07:00
Brian Cunnie
c4310ebb86 3.2.0: Introduce new nameserver, ns-ovh.sslip.io 2024-09-15 17:45:01 -07:00
Brian Cunnie
6855598f0f Introduce new name server, ns-ovh.sslip.io
- located in Warsaw, Poland
- IPv4: 51.75.53.19
- IPv6: 2001:41d0:602:2313::1

The crux of this is to take the load off ns-aws, which jumped from
$12.66 → $20.63 → $38.51 → $62.30 in the last four months due to
bandwidth charges exceeding 10 TB.

The real fix is to randomize the order in which the nameservers are
returned.
2024-09-15 17:21:16 -07:00
Brian Cunnie
afe851a867 Dismantle DNS-backed key-value store, k-v.io
I'm no longer engaged on setting up k-v.io; I thought it'd be cool to
have a DNS-backed etcd implementation, but now I don't care anymore.

There were technical challenges, too: Specifically, updating values did
not play well with DNS caching — you'd get the old value after updating.

If the service became popular, I'd quickly run out of disk space on my
tiny cloud VMs.

The service would most likely be used by people doing data exfiltration
via DNS. I already have enough problems with sslip.io scammers — the
last thing I want is to sign up for dealing with k-v.io scammers.

This commit removes the etcd configuration, certificates, and pipelines.
2024-09-15 07:30:57 -07:00
Brian Cunnie
1ec255123f A first-class page about blocked sites
We warn people that they're scammers.
2024-06-16 11:55:00 -07:00
Brian Cunnie
1a42b85926 Warn developers to not index their sites
The sslip.io service has been abused by scammers and phishers who create
sites that masquerade as legitimate sites. For example,
<https://nf-43-134-66-67.sslip.io/sg> masqueraded as Netflix.

To combat this, we've undertaken to block all sites that masquerade as a
legitimate sites, but this had the unfortunate consequence of ensnaring
a legitimate staging site (th-ab.de).

This commit assists developers by updating the documentation to warn
developers not to index their staging site.

[#53]
2024-05-29 08:27:28 -07:00
Brian Cunnie
bce9e3971b 🐞 Fix broken paths caused by moving code
When we promoted the Golang code to the root of the repo, we neglected
to update the paths in the documentation, helper scripts, and pipelines.

This commit addresses that oversight by updating the paths.
2024-05-11 10:54:54 -07:00
Brian Cunnie
27d7f4bcd6 3.1.0: Shorten TTL for publicly-accessible A & AAAA records 2024-03-09 07:20:50 -08:00
Brian Cunnie
1ed944f1e5 sslip.io is hosted on GCP, not GKE
I don't need this k8s configuration for sslip.io (DNS, NTP) because I'm
no longer hosting on GKE now that it has an ephemeral IP instead of a
reserved IP because otherwise I'd have to pay $360 extra per year for a
premium-tier load balancer.
2024-01-10 11:27:50 -08:00
Brian Cunnie
9e8a2985b8 Don't use GKE cluster as an sslip.io example
The GKE's cluster's IP address is now an ephemeral IP because otherwise
I'd have to pay $360 extra per year from a premium-tier load balancer.

I don't want my website to point to an ephemeral address that quickly
becomes stale, so I'm pointing from what previously was the GKE
cluster's address to the AWS's NS server's address.
2024-01-10 10:36:16 -08:00
Brian Cunnie
aacd566ab4 3.0.0: enable TCP binding in addition to UDP 2023-10-04 08:07:03 -07:00
Brian Cunnie
85991a0793 Document the "TCP/UDP" metrics
Also, the README points out that we now bind to both UDP & TCP;
previously it said that we only bound to UDP.
2023-10-04 07:52:52 -07:00
Brian Cunnie
2356dbb451 Remove key-value from sslip.io home page
We've removed the key-value feature, so there's no need to describe them
on the home page. I also updated the examples.
2023-03-15 13:58:35 -07:00
Brian Cunnie
1cf277c706 🐞 Tweak
Fixes, `fly trigger-job ...`:
```
error: resource not found
```
Fixes, `kubectl logs ...`:
```
flag provided but not defined: -etcdHost
Usage of /usr/sbin/sslip.io-dns-server:
```
2023-03-13 19:56:56 -04:00
Brian Cunnie
451ad0ef5f 2.7.0: remove key-value store 2023-03-13 16:46:20 -04:00
Brian Cunnie
a62a797fe5 Disable DNS-backed key-value store
I'm disabling the key-value store because no one was using it.

There are other reasons, too:

- The removal of the `etcd` library dropped the executable size by over
  half from 17MB to 7MB
- I didn't want users who've deployed it internally to be "surprised" by
  unexpected key-value features
- Key-value-over-DNS has a seamy side to it: "data exfiltration". I know
  there are legitimate uses for it, but I've come to believe that a
  Key-value-over-HTTP solution is preferable because it's not only more
  legitimate but also because it eliminates the DNS caching problem.
2023-03-13 16:44:30 -04:00
Brian Cunnie
e858c69248 Google Analytics: switch from UA to GA4
From
<https://support.google.com/analytics/answer/10759417>:

> Google Analytics 4 is replacing Universal Analytics. On July 1, 2023
all standard Universal Analytics properties will stop processing new
hits.

I wonder if Google Analytics is worth the trouble.
2023-02-05 17:52:56 -08:00
Brian Cunnie
94e0bb7abd 🐞 k8s deployment: flag is -quiet not quiet
This one cost me, in Google Cloud, $21.63. Sigh.
2023-01-02 13:58:08 -08:00
Stefan Sundin
29a8ba0777 Fix broken links. 2022-12-07 06:34:46 -08:00
Brian Cunnie
2422c73a1b 🐞 k8s: DNS server args are args, not command
Fixes, when `kubectl describe pod sslip.io-xxx-yy`:

> Warning  Failed     72s (x4 over 113s)  kubelet            Error:
failed to create containerd task: failed to create shim task: OCI
runtime create failed: runc create failed: unable to start container
process: exec: "-etcdHost": executable file not found in $PATH: unknown
2022-11-27 06:53:39 -08:00
Brian Cunnie
37e4ab7537 🐞 GKE deployment saves $$ by not logging so much
Also, it uses the new ENTRYPOINT instead of the old CMD.
2022-11-26 18:42:16 -08:00
Brian Cunnie
8052a84428 🐞 Docker build fails when curl fails
Our CI sometimes builds "broken" docker images because it fails
downloading the proper executable (because I haven't populated the
GitHub release yet).

I'd like it to fail rather than publish broken images.

Fixes, during `docker run -it --rm cunnie/sslip.io-dns-server`:
```
exec /usr/sbin/sslip.io-dns-server: exec format error
```
2022-11-26 18:39:30 -08:00
Brian Cunnie
776fe532ce 2.6.2: -quiet suppresses logs for each query 2022-11-26 13:55:38 -08:00
Brian Cunnie
c3335aae28 DNS server Dockerfile: CMD → ENTRYPOINT
`ENTRYPOINT` [is more appropriate](https://codewithyury.com/docker-run-vs-cmd-vs-entrypoint/):

> ENTRYPOINT configures a container that will run as an executable

Which is exactly how I think the container should work for new people.
Yes, I'm screwing over the existing users. Sorry.
2022-11-26 11:38:56 -08:00
Brian Cunnie
cfb83cb301 README tweaks
- Move "Directory Structure" lower down--it's not terribly useful,
  certainly less useful than the "DNS Server" section.
- Remove the "tidy" turd at the bottom of the page. It adds no value,
  and I'm not sure how it got there in the first place.
- A specific sections for flags such as `-nameservers`
- Add a section about running official Docker containers.
- get rid of the old, deprecated "faq" and "about" pages

[#21]
2022-11-12 17:51:19 -08:00
Brian Cunnie
c14d08c2fd 🐞 Dockerfile: download DNS server properly
I had neglected to account for the 302 redirect.

Fixes, during `docker run -it --rm cunnie/sslip.io-dns-server`:
```
exec /usr/sbin/sslip.io-dns-server: exec format error
```

Drive-by: removed a Dockerfile left over from testing the creation of
multi-platform (x86_64, ARM64) Docker images.
2022-11-11 14:27:53 -08:00
Brian Cunnie
262a1e0ea1 2.6.1: -addresses flag enables custom addresses 2022-11-11 10:48:37 -08:00
Brian Cunnie
6b6549b70a Build sslip.io Dockerfiles for both ARM64 & AMD64
...because, hey, I have a Mac, and native is about 10x faster than amd64
emulation. Also because it's cool.

I had to compile my own version of Concourse's
[`registry-image`](https://github.com/concourse/registry-image-resource)
container image because the one shipped with Concourse 7.8.3 is old and
doesn't have the multi-platform feature:

```
docker build --build-arg base_image=ubuntu -t cunnie/registry-image -f dockerfiles/ubuntu/Dockerfile
```

Switch Alpine → Fedora to address weird connection issue:

```
 > [linux/arm64 3/3] RUN wget https://github.com/cunnie/sslip.io/releases/download/2.6.0/sslip.io-dns-server-linux-arm64     -O /usr/sbin/sslip.io-dns-server;   chmod 755 /usr/sbin/sslip.io-dns-server:
Connecting to github.com (192.30.255.113:443)
wget: error getting response: Connection reset by peer
```

[#21]
2022-11-08 06:07:40 -08:00
Brian Cunnie
3e83a104cd Warning: our nameservers don't replace 8.8.8.8
Some people may think that these are public recursive name servers;
they're not. We warn them.

Drive-by: "nameserver" → "name server"
2022-07-17 18:51:53 -07:00
Brian Cunnie
22613bac91 Updated README's description of metrics 2022-07-15 21:46:43 -07:00
Brian Cunnie
f598bb52c7 Version 2.6.0: PTR records for IPv4 & IPv6 2022-07-14 18:34:40 -07:00
Brian Cunnie
50d843a16a Version 2.5.4: .acme_challenge.k-v.io isn't settable 2022-04-30 16:42:35 -07:00
Brian Cunnie
6dadfd6b5b k-v.io: update the website's HTML 2022-04-23 12:01:29 -07:00
Brian Cunnie
48d6514e82 k-v.io website: delete lingering copy-paste artifact 2022-04-22 20:58:10 -07:00
Brian Cunnie
14df91e967 k-v.io website has useful information
It's a beginning, but I really wanted to get this done. I can polish it
later.
2022-04-22 20:46:19 -07:00
Brian Cunnie
9c99b954be Update release docs to 2.5.3
And revert the gratuitous change I made earlier to trigger a build.
2022-04-22 16:36:06 -07:00
Brian Cunnie
4d339cd861 Version 2.5.3: k-v.io is operational 2022-04-22 14:33:47 -07:00
Brian Cunnie
cb08c5a9c3 k-v.io: has HTML assets, nginx Dockerfile to serve
We now have a Dockerfile to serve the upcoming https://k-v.io.

The dockerfile is patterned after the sslip.io nginx Dockerfile.

Note: the content isn't ready; the HTML needs fleshing out.
2022-04-22 12:25:29 -07:00
Brian Cunnie
d76e592500 🐞 Build sslip.io's nginx Dockerfile correctly
Also includes a gratuitous change to the HTML in order to trigger a
build.

Fixes <https://ci.nono.io/teams/main/pipelines/dockerfiles/jobs/build-and-push-sslip.io-nginx/builds/33>:
```
error: failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c dnf install -y     bind-utils     iproute     less     lsof     neovim     net-tools     nginx     nmap-ncat     procps-ng RUN mv /usr/share/nginx/html /usr/share/nginx/html-orig]: exit code: 1
```
2022-04-22 09:04:41 -07:00
Brian Cunnie
81b0d4d739 Dockerfile nginx name explicitly states service
In this case, we rename the nginx Dockerfile to
`Dockerfile-sslip.io-nginx` to make room for the upcoming
`Dockerfile-k-v.io-nginx`
2022-04-22 08:39:31 -07:00
Brian Cunnie
1fc970a87e Dockerfiles: Replace deprecated "maintainer" label
Also, do the `dnf install` in one step, not in three.
2022-04-22 08:11:21 -07:00
Brian Cunnie
8d55c534fc Make way for k-v.io HTML website
To make room for the k-v.io HTML website, we rename the `document_root`
of the sslip.io website to the more explicit `document_root_sslip.io`.
2022-04-22 07:59:10 -07:00
Brian Cunnie
28ae9b4348 k8s: use the etcd cluster IP for queries
Note: this didn't work. So sad.
2022-04-17 20:17:24 -07:00
Brian Cunnie
294f54a79a Version 2.5.2: DELETE on k-v.io returns no TXT records
The original behavior was to return the deleted record, which
inadvertently prolonged the lifetime (in DNS cache) of the record which
was meant to expire as soon as possible.

- Removed the instructions to create a BOSH release. We are no longer
  creating a BOSH release because we needed to colocate an etcd release
  alongside the BOSH release, and we couldn't find an etcd BOSH release.
- Updated the instructions to run a quick test against the sslip.io DNS
  server locally (sanity check) instead of deploying a VM with the BOSH
  release & testing against that.
- Updated the instructions for updating ns-azure's DNS server. ns-azure
  is no longer a BOSH-deployed VM.
2022-04-13 12:55:34 -07:00
Brian Cunnie
cd2b14b924 BOSH release: 2.5.1: block phishers with CIDRs 2022-02-26 16:41:05 -08:00
Brian Cunnie
ae6883dd6c Include IPv6 CIDR in blocklist for testing
- updated comments in `blocklist.txt` to include references to CIDRs &
  how they're handled
- updated webpage to include description of the upcoming metrics for the
  blocklist
2022-02-26 15:57:11 -08:00
Brian Cunnie
01d68dcd8b Use more precise terminology in metrics
"Successful" is a nebulous term. "Answered" is more precise (at least
one record returned in the answer section of the DNS response).
2022-02-08 11:17:28 -08:00
Brian Cunnie
51ed47317e BOSH release: 2.5.0: block phishers 2022-02-06 19:51:06 -08:00