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

help-circle
  • 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







  • But that’s the neat thing: the system is well structured into different layers and subcomponents. They are not all involved to control lightbulbs; that’s mostly your local hue bridge. One component will make sure, Alexa can control your bulbs (if you want that). If that component fails, only Alexa stops working. Another component handles push notifications to your mobile devices. If that fails, the rest is unimpacted. And so on.

    That was, for a long time, the main reason I heavily recommended Hue: the bridge can be used completely offline and still offered a good local API and pairing system. Unfortunately last year that made online accounts a requirement. I assume besides the App you can still use many things even if your network connection is broken, though.