• 5 Posts
  • 35 Comments
Joined 5 months ago
cake
Cake day: April 20th, 2024

help-circle

  • Das stimmt bei richtiger Verwendung schlichtweg nicht und es nützt niemandem, wenn man falsche Informationen herausposaunt. Wie auch im Artikel zu lesen, fand die timing attack auf üblichem Wege, gerade fürs deutsche Rechtssystem aber äußerst kontrovers statt:

    Zur finalen Identifikation verpflichtete das Amtsgericht Frankfurt am Main schließlich den Provider Telefónica, unter allen o2-Kundinnen und -Kunden herauszufinden, wer von ihnen sich zu einem der identifizierten Tor-Knoten verband.

    Bei einer Timing Attack werden, wie der Name schon sagt, Zugriffszeiten und möglichst viele (Meta-)Daten zu bestimmten Paketen statistisch abgeglichen. So kann man auch ohne direkten Zugriff auf die Daten bei ausreichender Datenlage feststellen, wer mit wem kommuniziert.

    Hier wurde schlichtweg jeder o2 Kunde in Deutschland erstmal pauschal überwacht, ob er nicht mit einem bestimmten Server Kontakt aufnimmt. Um dem entgegenzuwirken, kann man natürlich erst einmal über einen (no log) VPN Provider gehen, um gar nicht erst zugeordnet werden zu können.




  • Emotet@slrpnk.nettoLinux Gaming@lemmy.worldGaming on Linux is great!
    link
    fedilink
    English
    arrow-up
    7
    arrow-down
    4
    ·
    2 months ago

    Ehhh.

    Yeah, compared to a few years ago, it’s very much improved and a lot of games, especially those on Steam, run pretty good and in rare cases even better than on their native platform, Windows.

    But the pretty much broken state of VR support combined with some annoying bugs that are very hard to troubleshoot even for advanced users, the decision by most AAA and even some smaller studios to actively block Linux clients in multiplayer games via anti-cheat measures and the usual Linux fuckery of HDR, VRR (which hopefully will get better now that Wayland is getting there) and some NVIDIA fuckery (which is also getting better) leads to the following conclusions for me:

    1. Linux Gaming is improving.
    2. If all you play are some indie titles and/or single-player titles, you may be good.
    3. If you want to play in VR, most popular multiplayer titles and rely on features such as HDR and VRR, you’ll still need to dual boot into Windows.

    I’m very much looking forward to the day when I can fully banish Windows, at least from my private machines. I’m very tolerant towards debugging and living on the bleeding edge, if that is needed. But I don’t see the need for Windows for PC gaming to go away anytime soon for most users and, frankly, writing love letters to Linux Gaming without mentioning even some hurdles can, has and will take new Linux users by surprise and turn them off. Communicating transparently, so the user can make their own informed decisions, is a better strategy.








  • Even skipping the point of travelling between star systems in the future, as that is highly doubtful at best, that’s not a principle I subscribe to.

    It’s usually way more economical to go for scale rather than individualism, let’s look at some examples.

    Travelling by bus or train is way cheaper and more efficient than travelling by car. Travelling by cruise ship/ferry is way cheaper and more efficient than getting your own boat. Travelling by passenger plane is way cheaper and more efficient than travelling by business jet which in turn is more efficient than getting your own little plane, which might not even be able to get you where you want to go.

    Generally, especially when involving long distances and the material needs associated with it, having a big enough vessel to share the costs and limit the need to restock (en route) to a minimum.

    Bar safety, logistical and cost concerns, we could already cram a nuclear reactor in a car or a bus. We don’t because it simply doesn’t make sense.

    I see no reason why that logic wouldn’t apply to some magical device that would enable interstellar travel, even if it would be able to instantly teleport you to your location without having enormous energy requirements.


  • If you share a WiFi connection with an attacker at a coffee shop, for example, there are certain attacks they can execute to see the unencrypted parts of your Internet communications (e.g., the domain names of the websites you visit) and interfere with your communications to carry out other advanced attacks against you. Typically, security experts recommend the use of a VPN to protect against attackers with whom you share a WiFi connection. Our research reveals that using a VPN opens you up to similar attacks from other VPN users with whom you share your VPN server. In the same way that the WiFi radio signal is a shared resource that makes users vulnerable to attacks, there is a shared resource on VPN servers called a port (each connection through the VPN server is assigned to a port). By carefully crafting packets from within the attacker’s own connection to the VPN server and from a remote Internet location controlled by the attacker, it is possible to carry out attacks on other VPN users who are using the same VPN server in a manner that is very similar to the attacks that could be carried out on shared WiFi. We call this attack primitive a port shadow because the attacker shadows their own information on a victim’s port as a shared resource, and this attack primitive can lead to snooping of unencrypted data, port scans, or connection hijacking.

    Diagram


  • Emotet@slrpnk.nettoSelfhosted@lemmy.worldServer build for Family
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    3 months ago

    While this is a great approach for any business hosting mission critical or user facing ressources, it is WAY overkill for a basic selfhosted setup involving family and friends.

    For this to make sense, you need to have access to 3 different physical locations with their own ISPs or rent 3 different VPS.

    Assuming one would use only 1 data drive + an equal parity drive, now we’re talking about 6 drives with the total usable capacity of one. If one decides to use fewer drives and link your nodes to one or two data drives (remotely), I/O and latency becomes an issue and you effectively introduced more points of failure than before.

    Not even talking about the massive increase in initial and running costs as well as administrive headaches, this isn’t worth it for basically anyone.



  • Emotet@slrpnk.nettoDeutschland@feddit.orgNeues von den Heuchlern
    link
    fedilink
    Deutsch
    arrow-up
    4
    arrow-down
    3
    ·
    3 months ago

    Bei deinem ersten Punkt bin ich ganz bei dir.

    Allerdings muss ich bei deinem zweiten Punkt widersprechen. Gesetzlich betrachtet sind E-Scooter Kraftfahrzeuge, unterliegen also den gleichen Vorschriften, welche auch auf Autos, Motorräder, etc. angewandt werden. Hier besonders relevant: Beim ersten mal be-/angetrunken mit >= 0,5 Promille werden 528,50 € fällig, man bekommt 2 Punkte und einen Monat Fahrverbot. Wird entsprechend härter, je öfter man erwischt wird oder wenn man >= 1,1 Promille im Blut hat.

    Zum Vergleich: Beim Fahrrad gilt erst das Führen des Fahrzeugs ab 1,6 Promille als Straftat, was selbst dann keinen Fahrverbot mit sich zieht, sondern “lediglich” eine MPU. Das gilt analog auch für Pedelecs, also E-Bikes mit Trittunterstützung bis 25 km/h.

    Ich persönlich sehe jetzt zwischen einem (E-)Bike und einem Roller keinen relevanten Unterschied, was das Gefahrenpotential bei betrunkenem Führen betrifft. Eher sehe ich Fahrräder noch als gefährlicher an, so muss man zwar treten statt einen Hebel zu betätigen, aber dafür fahren E-Scooter legal maximal 22 km/h (inklusive Toleranz) und bremsen bergab auch selbstständig weitmöglichst runter.

    Nun kann man aufgrund dieser Sichtweise in zwei Richtungen gehen: Entweder die sehr harten Grenzen der E-Scooter auch auf Fahrräder anwenden oder andersherum. Ich bin ganz klar für letzteres.


  • I’ve been tempted by Tailscale a few times before, but I don’t want to depend on their proprietary clients and control server. The latter could be solved by selfhosting Headscale, but at this point I figure that going for a basic Wireguard setup is probably easier to maintain.

    I’d like to have a look at your rules setup, I’m especially curious if/how you approached the event of the commercial VPN Wireguard tunnel(s) on your exit node(s) going down, which depending on the setup may send requests meant to go through the commercial VPN through your VPS exit node.

    Personally, I ended up with two Wireguard containers in the target LAN, a wireguard-server and a **wireguard-client **container.

    They both share a docker network with a specific subnet {DOCKER_SUBNET} and wireguard-client has a static IP {WG_CLIENT_IP} in that subnet.


    The wireguard-client has a slightly altered standard config to establish a tunnel to an external endpoint, a commercial VPN in this case:

    [Interface]
    PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Address = XXXXXXXXXXXXXXXXXXX
    
    PostUp = iptables -t nat -A POSTROUTING -o wg+ -j MASQUERADE
    PreDown = iptables -t nat -D POSTROUTING -o wg+ -j MASQUERADE
    
    PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT && ip6tables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
    
    PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT && ip6tables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
    
    [Peer]
    PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    AllowedIPs = 0.0.0.0/0,::0/0
    Endpoint = XXXXXXXXXXXXXXXXXXXX
    

    where

    PostUp = iptables -t nat -A POSTROUTING -o wg+ -j MASQUERADE
    PreDown = iptables -t nat -D POSTROUTING -o wg+ -j MASQUERADE
    

    are responsible for properly routing traffic coming in from outside the container and

    PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT && ip6tables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
    
    PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT && ip6tables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
    

    is your standard kill-switch meant to block traffic going out of any network interface except the tunnel interface in the event of the tunnel going down.


    The wireguard-server container has these PostUPs and -Downs:

    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    default rules that come with the template and allow for routing packets through the server tunnel

    PostUp = wg set wg0 fwmark 51820

    the traffic out of the tunnel interface get marked

    PostUp = ip -4 route add 0.0.0.0/0 via {WG_CLIENT_IP} table 51820

    add a rule to routing table 51820 for routing all packets through the wireguard-client container

    PostUp = ip -4 rule add not fwmark 51820 table 51820

    packets not marked should use routing table 51820

    PostUp = ip -4 rule add table main suppress_prefixlength 0

    respect manual rules added to main routing table

    PostUp = ip route add {LAN_SUBNET} via {DOCKER_SUBNET_GATEWAY_IP} dev eth0

    route packages with a destination in {LAN_SUBNET} to the actual {LAN_SUBNET} of the host

    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip route del {LAN_SUBNET} via {DOCKER_SUBNET_GATEWAY_IP} dev eth0

    delete those rules after the tunnel goes down

    PostUp = iptables -I OUTPUT ! -o %i -m mark ! --mark 0xca6c -m addrtype ! --dst-type LOCAL -j REJECT && ip6tables -I OUTPUT ! -o %i -m mark ! --mark 0xca6c -m addrtype ! --dst-type LOCAL -j REJECT
    PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark 0xca6c -m addrtype ! --dst-type LOCAL -j REJECT && ip6tables -D OUTPUT ! -o %i -m mark ! --mark 0xca6c -m addrtype ! --dst-type LOCAL -j REJECT
    

    Basically the same kill-switch as in wireguard-client, but with the mark manually substituted since the command it relied on didn’t work in my server container for some reason and AFAIK the mark actually doesn’t change.


    Now do I actually need the kill-switch in wireguard-server? Is the kill-switch in wireguard-client sufficient? I’m not even sure anymore.



  • Oh, neat! Never noticed that option in the Wireguard app before. That’s very helpful already. Regarding your opnsense setup:

    I’ve dabbled in some (simple) routing before, but I’m far from anything one could call competent in that regard and even if I’d read up properly before writing my own routes/rules, I’d probably still wouldn’t trust that I hadn’t forgotten something to e.g. prevent IP/DNS leaks.

    I’m mainly relying on a Docker and was hoping for pointers on how to configure a Wireguard host container to route only internet traffic through another Wireguard Client container.

    I found this example, which is pretty close to my ideal setup. I’ll read up on that.