• 0 Posts
  • 4 Comments
Joined 1 year ago
cake
Cake day: January 17th, 2024

help-circle

  • For me it’s not even about better or worse, but about different. For them it’s a nice iteration after many years, but for be it is one of the dozens of apps I use irregularly that suddenly behaves and works different and forces me to relearn things I don’t have any gain from. Since each of the different apps get that treatment every once in a while, I end up having to adjust all the damn time for something else.

    I would really like we could go back to functional applications being sold as is without forced updates. I do not need constant changes all the time. WinAmp hasn’t changed in 20 years and still does exactly what it is supposed to. I could probably spin up an old MS Word 2000 and it would work just like it did 20 years ago.

    Many modern apps however change constantly. No wonder they all lean towards subscriptions if they “have to” work on it all the time. But I, as a user, don’t even want that. I want to buy the thing that does what it’s supposed to and then I want it to stay that way.


  • Well, a big advantage of containers is, that you can isolate them pretty aggressively. So if you run a container that is supposed to serve content on a single HTTP port, expose only that port, mount no unnecessary volumes and run it on a network that blocks all outgoing traffic. Ideally the only thing left will be incoming traffic on the one port the service is supposed to serve.


  • Half off-topic, sorry: if you have some spare time on the weekend, you might want to take a look at nftables. AFAIK iptables is also just using nftables under the hood, so you are basically using a deprecated technology.

    nftables is so much nicer to work with. In the end I have my custom rules (which are much saner to define than in iptables) in /etc/nftables.conf, then I have a very simple systemd unit:

    [Unit]
    Description=Restore nftables firewall rules
    Before=network-pre.target
    
    [Service]
    Type=oneshot
    ExecStart=/usr/sbin/nft -f /etc/nftables.conf
    ExecStop=/usr/sbin/nft flush table inet filter
    RemainAfterExit=yes
    
    [Install]
    WantedBy=multi-user.target
    

    and finally if I push updates via ansible I simply replace the file and run nft -f /etc/nftables.conf (via ansible; on-change event).

    Edit: oh and as an example how the actual rules file looks like:

    #!/usr/bin/nft -f
    
    add table inet filter
    flush table inet filter
    
    table inet filter {
      chain input {
        type filter hook input priority 0;
    
        # allow established/related connections
        ct state {established, related} accept
    
        # early drop of invalid connections
        ct state invalid drop
    
        # allow from loopback
        iifname lo accept
    
        # allow icmp
        ip protocol icmp accept
        ip6 nexthdr icmpv6 accept
    
        # core services
        tcp dport {80, 443} accept comment "allow http(s)"
        udp dport 443 accept comment "allow http3"
    
        # everything else
        reject with icmpx type port-unreachable
      }
    
    }
    

    and with that I have my ipv4+6 firewall that allows pings and http