wgs
41
428
wgs

@lemmy.sdf.org

wgs 59 points 3 years ago

ELI5

So it's saturday afternoon, a very hot one, so you ask your daddy for an ice cream (hosted service). The shop you go in is very bizarre though, as there is one vendor (TCP port) for each flavor (docker service/virtualhost). But it's tricky because they're all roaming in the shop, and you don't know who's responsible for each flavor. Your dad is also not very comfortable paying these vendors directly because they only accept cash and do not provide any receipt (self-signed certificate/no TLS).

Hopefully, there is the manager (reverseproxy) ! This girl is right where you expect her: behind the counter (port 80/443), accept credit cards and has a receipt machine (Domain name + associated certificate). She also knows everyone on her team, and who's responsible for each flavor !

So you and your dad come to see the nice lady, ask for a strawberry + chocolate ice cream, and pay her directly. Once done, she forwards your request directly to the vendors responsible for each flavor, and give you back your ice cream + receipt. Life is good, and tasty !

path: 0 1166096, hotness: undefined, score: 59, children: 6
wgs 58 points 3 years ago

Weight your words my friend! GNU's a behemoth !

GCC alone is almost as big as Linux. Add core/binutils, the Hurd, ... And you easily outclass the kernel itself !

~ $ du -sh linux-6.4.12/ gcc-13.2.0/                    1.5G    linux-6.4.12/                                   1.1G    gcc-13.2.0/

Oh, and Emacs.

path: 0 2794597 2797376 2801812, hotness: undefined, score: 58, children: 7
wgs 42 points 3 years ago

Because other people might have restricted environment which might not suit their preference is not a good reason to level it down IMO.

Also, I think 9 is the best size for indent (matter of preference), do you think I should switch to space so everyone can enjoy this wonderful view I have ?

path: 0 3128379 3129029, hotness: undefined, score: 42, children: 11
wgs 31 points 3 years ago

Tabs for indent, spaces for alignment. This is the way, I can't believe people are still fighting that ?

path: 0 3129040, hotness: undefined, score: 31, children: 29
wgs 28 points 3 years ago

I tried but got an error:

:& : Command not found

Is it expected ? Did I type something wrong ? I'm confused...

path: 0 7703629, hotness: undefined, score: 28, children: 27
wgs 26 points 3 years ago

IPv4 and IPv6 are two different network stacks. Your IPv4 stack is hidden behind wireguard, but not the IPv6 one.

The correct way to fix your issue is to setup a second witeguard tunnel for IPv6, and route IPv6 traffic through it.

Edit: many comments advise to block outbound IPv6 traffic. Don't do that! It will add latency to all your requests as you will have to wait for them to timeout.

path: 0 2763873, hotness: undefined, score: 26, children: 4
wgs 25 points 3 years ago

endlessh was pretty cool and a more modern version is even better ! I'll give it a shot !

On a side note, I found a way to trap HTTP connections too while working on my cyb.farm project. The go implementation is ridiculously simple: tarpit.go. It works by providing an endless stream of custom headers to the client, which it is supposed to ingest before getting to the content itself.

path: 0 8905739, hotness: undefined, score: 25, children: 0
wgs 25 points 3 years ago

I get what you say, and you're definitely not wrong to do it. But as I see it, you only saved ~80Kib of ingress and a few lines of logs in the end. From my monitoring I get ~5000 failed auth per day, which account for less than 1Mbps average bandwidth for the day.

It's not like it's consuming my 1Gbps bandwidth or threatening me as I enforce ssh key login. I like to keep things simple, and ssh on port 22 over internet makes it easy to access my boxes from anywhere.

path: 0 2413384, hotness: undefined, score: 25, children: 8
wgs 25 points 2 years ago

Did you seriously bring a gun to a sword fight !?

path: 0 13596539, hotness: undefined, score: 25, children: 0
wgs 25 points 3 years ago

Congratulations! A mail server is quite demanding in terms of initial setup, but it's also very rewarding !

Here are a few pointers I can give you:

  • Using a good domain is important, some provider block entire TLDs for cheap domains (eg. .tk or .pw). I learnt it the hard way...
  • Set your MX records to A records, not CNAME
  • Ensure your PTR records match your A records for the mail server
  • Learn about SPF and DKIM
  • Set them up, and verify with mxtoolbox
  • Use the ip4: and/or ip6: selectors for SPF
  • Setup a spamfilter (I like spamassassin)
  • Leave it all running for a few weeks/months
  • Publish a DMARC policy on your DNS, and verify with mxtoolbox

This should limit a lot your likeliness to end up in spam folders (which is usually the hardest part about running your mail server)

path: 0 1896970, hotness: undefined, score: 25, children: 2
wgs 23 points 3 years ago

I'm reading all the comments and I'm shocked... In France, with uncapped access and 1Gbps down/600Mbps up (theorical) I pay 40€/mo (30€ every six month when I call to complain that it's too expensive). And it's definitely not the cheapest provider.

That's insane !

path: 0 2589106, hotness: undefined, score: 23, children: 4
wgs 22 points 3 years ago

Don't even bother with a SWAP partition. Create an empty file on your / partition so you can grow/shrink it as needed.

did if=/dev/zero of=/SWAP bs=1024m count=4
mkswap /SWAP
swapon /SWAP
path: 0 954324, hotness: undefined, score: 22, children: 3
wgs 19 points 3 years ago

Nevermind I figured it out, you gotta use sudo for it to work properly !

path: 0 7703629 7724893 7724894 7724981 7725229, hotness: undefined, score: 19, children: 14
wgs 17 points 3 years ago

I mean, it's not a big deal to have crawlers and bots poking at our webserver if all you do is serving static pages (which is common for a blog).

Now if you run code on server side (eg using PHP or python), you'll want to retrieve multiple known lists of bad actors to block them by default, and setup fail2ban to block those that went through. The most important thing however is to keep your server up to date at all times.

path: 0 976484, hotness: undefined, score: 17, children: 0
wgs 16 points 3 years ago
struct Ident arr = [
{
.id
= 0,
.name
= "Bob",
.pubkey
= "",
.privkey
= ""
},
{
.id
= 1,
.name
= "Alice",
.pubkey
= "",
.privkey
= ""
}
];
path: 0 3129040 3129195 3132770, hotness: undefined, score: 16, children: 11
wgs 15 points 2 months ago

There is arcan which is its own thing. I'm not aware of any mature application using it for the desktop though.

Otherwise if you assume that every wayland compositor basically endorse the role of a display server, there are plenty of them.

path: 0 25200013, hotness: undefined, score: 15, children: 1
wgs 15 points 3 years ago

It's not about GNU being wrong or not, it's about having the choice.

path: 0 1391683 1393890, hotness: undefined, score: 15, children: 6
wgs 14 points 3 years ago

Bonne année à la France décentralisée ! 🎉

path: 0 6330798, hotness: undefined, score: 14, children: 1
wgs 13 points 3 years ago

I've been a crux user for over 10 years now. I switched to it from Archlinux because it uses a port tree system for packages (think of it as the AUR but for everything) and because the package "recipes" are very simple and easy to write.

At the time I was packaging a lot of stuff on Arch and the PKGBUILD format felt too bulky, complex and constraining for my needs. I switch to crux and found one of the simplest distro out there, and sticked to it. It's also the Linux distro that feels the most like OpenBSD, which is neat as well.

Also the mascot.

path: 0 4567644, hotness: undefined, score: 13, children: 3
wgs 13 points 3 years ago

The point here is that anyone can just spin up their own instance, federate with others, and see these information by inspecting their database.

Having a clear understanding of what is public, what's local to your instance and what's private is very important in this context.

path: 0 842033 846998, hotness: undefined, score: 13, children: 2

thanks for using Leebra!

go to feed...