Skip to content

Podman & nftables

Linux
1 1 70
  • Ich habe ja hier berichtet, wie man einen Forgejo Server aufsetzen kann.

    Da ich da sehr lange dran rum gewerkelt habe, habe ich am Anfang mal die Firewall in der Hetzner Cloud Software aktiviert mit den Standard Ports, die man so braucht.

    • 22
    • 80
    • 443

    Eine Kontrolle mit nmap ergibt dann auch nur folgende Ports.

    PORT    STATE SERVICE
    22/tcp  open  ssh
    80/tcp  open  http
    443/tcp open  https
    

    Ich hatte am Anfang ziemlich viele Probleme mit meinen Podman Containern, bis ich gelernt hatte, das mit nftables sich vieles von alleine erledigt. Warum? Es gibt auf einer Debian Trixie Installation folgendes Paket.

    root@forgejo:/etc/containers/systemd# apt search netavark
    aardvark-dns/testing 1.14.0-3 amd64
      Container-focused DNS server
    
    netavark/testing,now 1.14.0-2 amd64 [installed,automatic]
      Rust based network stack for containers
    
    podman/testing,now 5.4.2+ds1-1+b3 amd64 [installed]
      tool to manage containers and pods
    
    podman-docker/testing 5.4.2+ds1-1+b3 amd64
      tool to manage containers and pods (Docker CLI)
    
    podman-remote/testing 5.4.2+ds1-1+b3 amd64
      tool to manage containers and pods (remote CLI)
    

    Ich spreche von netavark. Dieses Paket ist auf Debian Trixie 13 eine Abhängigkeit von Podman, wird also mitinstalliert.

    Netavark is a rust based network stack for containers. It is being designed to work with Podman but is also applicable for other OCI container management applications.

    Und dieses Tool trägt dann in Zusammenhang alle Regeln die man braucht, in nftables ein. Vollautomatisch! ♥

    Ein Beispiel ist DNAT

    chain NETAVARK-HOSTPORT-DNAT {
                    tcp dport 80 jump nv_1126fa6c_10_89_0_0_nm16_dnat
                    tcp dport 222 jump nv_1126fa6c_10_89_0_0_nm16_dnat
                    tcp dport 443 jump nv_1126fa6c_10_89_0_0_nm16_dnat
                    tcp dport 3000 jump nv_1126fa6c_10_89_0_0_nm16_dnat
            }
    

    Nachdem ich das alles wusste, war es auch relativ simpel, die Container dazu bewegen sinnvolles zu machen 😉

    Für die Installation von nftables macht man wie gewohnt

    apt install nftables
    

    systemd Kontrolle

    systemd enable nftables # Erst einschalten, wenn ihr wisst das ihr noch auf die Kiste kommt!
    systemctl start nftables
    systemctl status nftables
    

    Wann man was standardmäßig in die Konfiguration eintragen möchte, geht das mit

    nano /etc/nftables.conf
    

    Konfiguration testen

    nft -f /etc/nftables.conf
    

    Die Liste, der Regeln, kann man sich so anschauen

    nft list ruleset
    

    Ausgabe (gekürzt)

    table inet filter {
            chain input {
                    type filter hook input priority filter; policy accept;
            }
    
            chain forward {
                    type filter hook forward priority filter; policy accept;
            }
    
            chain output {
                    type filter hook output priority filter; policy accept;
            }
    }
    table inet netavark {
            chain INPUT {
                    type filter hook input priority filter; policy accept;
                    ip saddr 10.92.0.0/16 meta l4proto { tcp, udp } th dport 53 accept
            }
    

    Das schöne ist, das man nun auch fail2ban dazu bewegen kann seine Bans vollautomatisch in diese Liste einzutragen, dazu gibt es einen eigene Beitrag.

    table inet f2b-table {
            set addr-set-sshd {
                    type ipv4_addr
                    elements = { 13.67.94.200, 14.22.88.255,
                                 14.103.119.118, 14.103.123.75,
                                 14.103.236.35, 36.133.184.250,
                                 36.134.2.209, 41.58.186.132,
                                 46.101.8.63, 64.226.119.233,
                                 64.227.110.144, 94.182.227.191,
                                 101.126.135.80, 103.56.114.54,
                                 117.149.247.143, 119.45.128.125,
                                 125.124.106.113, 125.164.14.241,
                                 128.199.33.46, 142.93.204.139,
                                 157.245.71.30, 157.245.144.151,
                                 161.132.43.198, 180.76.105.165,
                                 185.93.89.118, 185.213.165.36,
                                 193.32.162.146, 193.168.173.177,
                                 199.188.103.179, 202.179.66.26,
                                 220.80.197.180 }
            }
    

    Man, da sind aber schon wieder viele Script Kiddies unterwegs 🙂

  • OpenCloud - Desktop Client

    OpenCloud opencloud linux
    1
    5
    0 Stimmen
    1 Beiträge
    76 Aufrufe
    Niemand hat geantwortet
  • Proxmox - Video Tipp

    Proxmox proxmox linux acme
    1
    0 Stimmen
    1 Beiträge
    191 Aufrufe
    Niemand hat geantwortet
  • Raspberry Pi5 - First Boot

    RaspberryPi raspberrypi linux debian
    1
    2
    0 Stimmen
    1 Beiträge
    286 Aufrufe
    Niemand hat geantwortet
  • Debian 13 - Trixie

    Linux linux debian
    1
    0 Stimmen
    1 Beiträge
    190 Aufrufe
    Niemand hat geantwortet
  • Vaultwarden - SystemD

    Linux vaultwarden linux
    1
    0 Stimmen
    1 Beiträge
    261 Aufrufe
    Niemand hat geantwortet
  • Ubiquiti ER-X - iperf

    Verschoben OpenWRT & Ubiquiti ER-X openwrt linux er-x
    2
    1
    0 Stimmen
    2 Beiträge
    349 Aufrufe
    FrankMF
    Hier noch ein Test von DMZ / LAN und andersrum. frank@frank-MS-7C37:~$ iperf3 -c 192.168.5.15 Connecting to host 192.168.5.15, port 5201 [ 5] local 192.168.3.213 port 44052 connected to 192.168.5.15 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 114 MBytes 952 Mbits/sec 314 153 KBytes [ 5] 1.00-2.00 sec 112 MBytes 937 Mbits/sec 259 205 KBytes [ 5] 2.00-3.00 sec 111 MBytes 929 Mbits/sec 210 212 KBytes [ 5] 3.00-4.00 sec 111 MBytes 934 Mbits/sec 235 202 KBytes [ 5] 4.00-5.00 sec 112 MBytes 936 Mbits/sec 263 153 KBytes [ 5] 5.00-6.00 sec 111 MBytes 935 Mbits/sec 255 209 KBytes [ 5] 6.00-7.00 sec 112 MBytes 937 Mbits/sec 313 129 KBytes [ 5] 7.00-8.00 sec 111 MBytes 932 Mbits/sec 296 209 KBytes [ 5] 8.00-9.00 sec 111 MBytes 934 Mbits/sec 258 208 KBytes [ 5] 9.00-10.00 sec 111 MBytes 934 Mbits/sec 292 201 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 1.09 GBytes 936 Mbits/sec 2695 sender [ 5] 0.00-10.00 sec 1.09 GBytes 935 Mbits/sec receiver iperf Done. frank@frank-MS-7C37:~$ iperf3 -R -c 192.168.5.15 Connecting to host 192.168.5.15, port 5201 Reverse mode, remote host 192.168.5.15 is sending [ 5] local 192.168.3.213 port 44058 connected to 192.168.5.15 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 109 MBytes 911 Mbits/sec [ 5] 1.00-2.00 sec 109 MBytes 912 Mbits/sec [ 5] 2.00-3.00 sec 109 MBytes 912 Mbits/sec [ 5] 3.00-4.00 sec 109 MBytes 912 Mbits/sec [ 5] 4.00-5.00 sec 109 MBytes 912 Mbits/sec [ 5] 5.00-6.00 sec 108 MBytes 903 Mbits/sec [ 5] 6.00-7.00 sec 109 MBytes 912 Mbits/sec [ 5] 7.00-8.00 sec 109 MBytes 912 Mbits/sec [ 5] 8.00-9.00 sec 109 MBytes 912 Mbits/sec [ 5] 9.00-10.00 sec 109 MBytes 912 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 1.06 GBytes 913 Mbits/sec 114 sender [ 5] 0.00-10.00 sec 1.06 GBytes 911 Mbits/sec receiver iperf Done.
  • IPv6 und Subnetze

    Linux linux ipv6
    1
    0 Stimmen
    1 Beiträge
    253 Aufrufe
    Niemand hat geantwortet
  • Restic - Einen ROCKPro64 als Datengrab benutzen

    Verschoben Restic linux restic
    2
    1
    0 Stimmen
    2 Beiträge
    918 Aufrufe
    FrankMF
    So, dann mal das Ganze testen wenn man seinen Haupt-PC neu installiert hat und ein paar Daten braucht. [image: 1534692579149-img_20180819_090116_ergebnis-resized.jpg] Also, mal Restic installiert. sudo apt-get install restic Nach erfolgter Installation ein Test frank@frank-MS-7A34:~/restic$ restic version restic 0.8.3 compiled with go1.10 on linux/amd64 Geht so weit. Snapshots auflisten. restic -r sftp:rock64@IP:/home/rock64/backup snapshots Sieht dann so aus. frank@frank-MS-7A34:~$ sudo restic -r sftp:rock64@192.168.3.207:/home/rock64/backup snapshots [sudo] Passwort für frank: rock64@192.168.3.207's password: enter password for repository: password is correct ID Date Host Tags Directory ---------------------------------------------------------------------- 7e2eddcb 2018-08-18 10:10:40 frank-MS-7A34 /home/frank/Bilder 073b7cb4 2018-08-18 14:21:17 frank-MS-7A34 /home/frank 6bc9b21b 2018-08-18 16:11:19 frank-MS-7A34 /home/frank ---------------------------------------------------------------------- 3 snapshots Snapshot wiederherstellen sudo restic -r sftp:rock64@IP:/home/rock64/backup restore latest --target /tmp/backup Hiermit stellen wir das Backup im temporären Ordner /tmp/backup wieder her. Hat ewig gedauert, aber ging !?!?!?