@ after some fighting with this janky software (that i still love despite the jank) we now have stupid tux as our logo. slayyy
changing my video site’s logo to this silly no thoughts head empty tux clip art. because i can. https://openclipart.org/detail/103855/tux-the-penguin
@prologic@twtxt.net What are we looking at here? Are those requests per second? 🤔
@lyse@lyse.isobeef.org @kat Thanks. 😅 Fingers crossed.
@movq@www.uninformativ.de oh no good luck!!!
On DDoS, wouldn’t sshguard and/or fail2ban work?
So I need to figure out how to block ASN(s)…
Additionally, I’ thinking of; How to detect DDoS attachs?
Here’s one way I’ve come up that’s quite simple:
Detecting DDoS attacks by tracking requests across multiple IPs in a sliding window. If total requests exceed a threshold in a given time, flag as potential DDoS.
@lyse@lyse.isobeef.org Cool 👌
Hmmm so I’ve sustained two DDoS attacks on my Gitea server today. A few hours apar. Still analyzing the traffic…
@movq@www.uninformativ.de Oh dear. All the best of luck with that noise! And the disks.
@movq@www.uninformativ.de I don’t use them either.
In the process of temporarily removing and securing all my hard disks. They’ll be turning this building into a construction site for the next weeks/months. Lots of heavy drilling and hammering. Not sure what this means for spinning disks and I’d rather be on the safe side. 🫤
base(2)
or base(16)
in calc to do that. That’s exhausting after a while.
@movq@www.uninformativ.de Thanks! I already found it and patched it to run in my ancient Python version (no match
keyword and exec(…)
only allows globals
and locals
as positional arguments). :-) https://lyse.isobeef.org/tmp/mcalc-patched.py.txt
base(2)
or base(16)
in calc to do that. That’s exhausting after a while.
@lyse@lyse.isobeef.org That’s the script, if you’re interested: https://www.uninformativ.de/git/bin-pub/file/mcalc.html
@lyse@lyse.isobeef.org Right, there is some hope left for Python docs because of the type hints. 😃 (I still don’t use them, because, ugh. 🤦)
@prologic@twtxt.net Excellent, working fine now. Thank you!
To quote GLaDOS: Yesterday I saw a deer!
@movq@www.uninformativ.de Truly classic. :-D
base(2)
or base(16)
in calc to do that. That’s exhausting after a while.
@movq@www.uninformativ.de That sounds super useful! I always used bc
and ibase=2
/obase=2
for conversions. But your digit grouping is what I always lacked. I gotta switch.
@movq@www.uninformativ.de Yeah, the Python docs are more like a book. They absolutely shine if you have no idea and read them from top to bottom. The tutorial is baked right in. But they don’t work all that perfect as cheat sheets. I also remember looking for the return types way too long in the past.
I would have thought that this could be easily improved when type hints are in place. And it sure does: https://www.tornadoweb.org/en/stable/httpclient.html#tornado.httpclient.HTTPClient.fetch
@movq@www.uninformativ.de It’s crazy! I thought about it the other day on my hike. There are so many shady areas in winter that are fully blasted by the sun in summer.
@movq@www.uninformativ.de Heck yeah, they’re both very lovely! I like how you can still see the full disk through the clouds in the first one.
@kat@yarn.girlonthemoon.xyz Oh cool, I wish I had a similar subject in school. :-)
"twtxtfeevalidator/0.0.1"
UA about? I thought I could ask before throwing a 1000GB file at it 🪤 could it be the same 'xt' thing @lyse was talking about the other day?
I cobbled that together yesterday, @aelaraji@aelaraji.com. Since I was too lazy to write some tests, I simply hit your feed as I knew it contains two invalid lines right now. Sorry mate! :-( Next thing is to actually write some proper tests, improve the messages, etc.
Here’s the code: https://git.mills.io/yarnsocial/validator
Looking forward to that, @prologic@twtxt.net. :-)
For the time being… I’ve just blocked all of OpenAI(s) Bots. They (thankfully) publish a JSON endpoint that you can use to block all OpenAI crawlers from reaching your server (in my case, blocking it at the edge). Example:
proxy-1:~# curl -qs https://openai.com/gptbot.json | jq -r '.prefixes[].ipv4Prefix' | xargs -I{} ./block-ip.sh {}
Where block-ip.sh
is simply:
#!/bin/sh
ufw insert 1 deny from "$1" to any
"twtxtfeevalidator/0.0.1"
UA about? I thought I could ask before throwing a 1000GB file at it 🪤 could it be the same 'xt' thing @lyse was talking about the other day?
@aelaraji@aelaraji.com Yes! 👏 This is exactly what it is! 🤣 I will of course soon™ be hosting this service, likely at validator.twtxt.net
😅😅
Any idea What’s this "twtxtfeevalidator/0.0.1"
UA about? I thought I could ask before throwing a 1000GB file at it 🪤 could it be the same ‘xt’ thing @lyse@lyse.isobeef.org was talking about the other day?
@kat Haha 🤣 If someone figures this out, please let me know 🙏🙏 – In the meantime, I’m going to very soon™ write a daemon that will watch the audit log for repeated violations and add to the network firewall.
This is better:
proxy-1:~# ./audit-log-by-ip.sh 4.227.36.76 | coraza-log-formatter -m -
2025/01/04 23:17:04 4.227.36.76 58982 GET /external?aff-HY0BLO=&f=mediaonly&f=noreplies&nick=g1n&uri=https%3A%2F%2Fthe-president-codes.linegames.org null 0 On OWASP_CRS/4.7.0
Actionset: OWASP_CRS/4.7.0
Message: Bad User Agent
Severity: 0
Raw: SecRule REQUEST_HEADERS:User-Agent "@pmFromFile /etc/caddy/waf/bad_user_agents.txt" "id:2000,log,phase:1,deny,msg:'Bad User Agent'"
Nice! I wrote another useful tool 👌
proxy-1:~# ./audit-log-by-ip.sh 4.227.36.76 | coraza-log-formatter -m -
Actionset: OWASP_CRS/4.7.0
Message: Bad User Agent
Severity: 0
Raw: SecRule REQUEST_HEADERS:User-Agent "@pmFromFile /etc/caddy/waf/bad_user_agents.txt" "id:2000,log,phase:1,deny,msg:'Bad User Agent'"
@prologic@twtxt.net we live in hell
went out with my family today, brought my camcorder, resulted in a little vlog :) https://memoria.sayitditto.net/view?m=SjbDq15bL
How in da fuq do you actually make these fucking useless AI bots go way?
proxy-1:~# jq '. | select(.request.remote_ip=="4.227.36.76")' /var/log/caddy/access/mills.io.log | jq -s '. | last' | caddy-log-formatter -
4.227.36.76 - [2025-01-05 04:05:43.971 +0000] "GET /external?aff-QNAXWV=&f=mediaonly&f=noreplies&nick=g1n&uri=https%3A%2F%2Fmy-hero-ultra-impact-codes.linegames.org HTTP/2.0" 0 0
proxy-1:~# date
Sun Jan 5 04:05:49 UTC 2025
😱
Done.
@lyse@lyse.isobeef.org Oh good! It works haha 🤣 I’ll bump it up a bit 👌
@prologic@twtxt.net Looks like I’m hitting this now when reloading my subscriptions:
$ grep twtxt.net .config/twtxt/config | wc -l
26
And now I’ve applied rate limits on every site to reasonable values 👌
@bender@twtxt.net Isn’t that why um yarning my progress 🤣
… aaaaaaand I had the first bug in my toy OS that was caused by caching. 😂 Bloody caching. (It only triggered in error conditions, but still.)
@prologic@twtxt.net you are documenting everything, right? I am very interested in a HOWTO! ☺️
@kat Yeah, Java itself is somewhat “controversial”, I guess. 😅 But I’ve always found their documentation to be very pleasent to work with, at least that of the standard library.
@movq@www.uninformativ.de woah it’s like a cheatsheet with explanations! java is kind of arcane magic sorcery to me so i’m having trouble understanding it but i have that with most programming languages. this is like so much easier to actually look at and read instead of my eyes glazing over lol
@kat Okay, horrible cookie popup aside, would you say this is easier to read? https://docs.oracle.com/javase/8/docs/api/java/util/List.html#method.summary 🤔
@prologic@twtxt.net YEAH it’s so cool!!! i was thinking about trying it as sorta practice for golang lol
@kat I’ve actually moved most of my stuff of of Cloudflare now 🤣 I’m actually very happy with my edge proxy setup that reverse proxies, caches and acts as a web application firewall 🥳
@kat Have you seen the SSG that I built and use on all my static sites? zs 🤔
Oh gawd. I can’t enable caching on my edge proxy everywhere 😱 Some shit™ doesn’t deal with a caching reverse proxy in front of it very well for some reason I don’t have time to dig into right now 🤔
the windows CSS frameworks are sooo epic like you mean i can click a win aero button in my browser?!?! WITCHCRAFT!