Skip to content

Podman & nftables

Linux
1 1 154
  • 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 - Storage Backends testen

    OpenCloud opencloud linux docker
    2
    0 Stimmen
    2 Beiträge
    147 Aufrufe
    FrankMF
    So, mal weiter damit beschäftigen. Also, durch meine ganze Testerei war doch ein Haufen Müll angefallen. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ docker volume ls DRIVER VOLUME NAME local 0fcd6f237898477b251f3dacb6cd083996092b783f991f899b06d89befc41b1e local 1d8df3f5d41613ad93ed753ce2102a14738cf00e8e7d127ec79881660be291ab local 3b612ce20b207c226640d6b84c32c788cd0fad9f9157578c2310f4b3db63dd29 local 5dfdde733fefb9fdb805acec8338a860762e88cd0753f4bb4098a19fbcd4b6c3 local 6bd5659759fb99b0d0613175d2392ca268dbdb3bd0353b85ccdf9a6004e798c0 local 6f8881420aa0e7713ed5308e635fcb9382939b6570afbd1d776866a07f6d61f2 local 29f7d20edd9eda935041cea7af5aab0af748175d7df8f345288463753d2afa9a local 66ca6287706aac5013b458a109e7c143c4fb177670734fc7a0f68495b1c62fd4 local 74d304835ef51f91226cc22dbbd494d2ddc9a4d91badf88814cae24126efd04a local 0203eb654c1f28a60899ded4660fb101ea222a5f8c86a225d39f3e5da877f1c0 local 271c474feb2ed915afb8efa85e422461fcfdf8acd4097355841eadf33847b7ef local 569a8c34804afd5861299973bed023c0146f40c0dbda0d980b8651bbcadc7fc9 local 655b1f446b5db9749787d4be4445887dcb3d19906d4244d059a0f292a6cd5f01 local 843bb8d0d7845adab06e146c44b153b842d5a1a1d8eb3972bdee1d3cbcb7e815 local 987ee19b8639ad5fffabba276ceb1ca09af6ebc66efb007e561570589c9c53a8 local 1004f5b7b161a4fe37a07d7960740e5cd09b90d5744f1922fb3e41c1265f800a local 2043c77b57728106cbcca8b7e2d3ae2f07ddf4ca44ee21fca232526c95e07381 local 3685c81df1be0061352dfc5b0e6db8d8d9f9b0915a271f1ca53d2796a7876805 local 9581abcfb4fb42b2fabfabbc8139cc4659ca83d92a8b60041957565409293ef4 local 796650f1fa887ff0b153822b268a10aa3579f4f2ca3ce6855ff292e49b3bb6b8 local 426251107e3131a250b27b96e795355332127f19ccf1ec8252860aff5d0caec8 local bd43ceef38448db348cc34e7dc5c4fee9c834d8b6c5957b1e6cdb83cec7b0974 local d94e7ce6c0fb1f4f7b811f624b4526ea889f2f8b99d2aa1b21e79d00dfeb38d0 local e87a27c307a8be80839fae1c006273d57570bb99f60c78c95e86a1e9ea1a786c local f2b3e30406db730e2a341850243c115b6eb231f30f41f5353c7b2427de39af75 local opencloud_full_certs local opencloud_full_opencloud-apps local opencloud_full_opencloud-config local opencloud_full_opencloud-data Oje, das sieht ziemlich vermüllt aus. Dann mal ganz mutig alles löschen. Vorher alles gestoppt. docker compose down Volume löschen, nur ein Beispiel docker volume rm opencloud_full_opencloud-data Alles gelöscht. Dann mal ein Neustart docker compose up -d Jetzt sieht das schon viel besser aus. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ docker volume ls DRIVER VOLUME NAME local 3737a8eab68ffdc08d6e41493346feeb2e06ef350a210213ab450775318e49f8 local opencloud_full_opencloud-apps Da ich neugierig bin, schauen wir mal rein. root@opencloud:~ ls -lha /var/lib/docker/volumes/3737a8eab68ffdc08d6e41493346feeb2e06ef350a210213ab450775318e49f8/_data/web/assets/apps/ total 8.0K drwxr-x--x 2 dockeruser dockeruser 4.0K May 19 18:25 . drwxr-x--x 3 dockeruser dockeruser 4.0K May 31 10:21 .. Vermutlich ein Speicher, wo die Web Apps was ablegen können. Der andere zeigt es dann klarer. root@opencloud-4gb-fsn1-2:~# ls -lha /var/lib/docker/volumes/opencloud_full_opencloud-apps/_data total 28K drwxr-x--x 7 dockeruser dockeruser 4.0K May 31 10:22 . drwx-----x 3 root root 4.0K May 31 10:21 .. drwxr-xr-x 2 root root 4.0K May 31 10:22 draw-io drwxr-xr-x 2 root root 4.0K May 31 10:21 external-sites drwxr-xr-x 3 root root 4.0K May 31 10:22 json-viewer drwxr-xr-x 2 root root 4.0K May 31 10:22 progress-bars drwxr-xr-x 3 root root 4.0K May 31 10:22 unzip Ok, das sollte mir erst mal reichen. Meine Installation lagert die certs ja aus, das habe ich im docker compose geändert. dockeruser@opencloud:~/opencloud/deployments/examples/opencloud_full$ ls -lha certs/ total 44K drwxr-xr-x 2 dockeruser dockeruser 4.0K May 30 05:49 . drwxr-xr-x 6 dockeruser dockeruser 4.0K May 31 10:38 .. -rw------- 1 dockeruser dockeruser 33K May 29 11:00 acme.json Im docker-compose.yml volumes: - ./certs:/certs # bind-mount acme.json Der Grund dafür ist, das ich das docker-compose nicht als root laufen haben möchte. Die Hauptdaten sind nach lokal ausgelagert. OC_CONFIG_DIR=/home/dockeruser/oc_data/config OC_DATA_DIR=/home/dockeruser/oc_data/data Somit sollte jetzt alles so passen und ich muss mal langsam mit der Spielerei aufhören
  • Mastodon - Beiträge des NodeBB-Forums automatisiert posten

    Linux mastodon linux
    9
    1
    0 Stimmen
    9 Beiträge
    663 Aufrufe
    FrankMF
    Ergänzt um eine automatische Übernahme der Tags aus dem Forum. Man muss den Beiträgen in Mastodon ja auch Reichweite geben
  • Debian 12 Bookworm released

    Linux debian linux
    5
    0 Stimmen
    5 Beiträge
    472 Aufrufe
    FrankMF
    Mein persönliches Fazit, alles läuft rund mit Debian Bookworm 12 Alle meine Hetzner VMs sind jetzt auf Bookworm Ok, was schwer und zeitaufwendig war, war die Nextcloud Installation bzw. der ganze PHP-Server. Das ist echt jedes mal eine Herausforderung, aber auch dabei werde ich die letzten Jahre sicherer. Hier die Story zum Nextcloud Server https://linux-nerds.org/topic/1437/nextcloud-upgrade-auf-bookworm-12 Richtig rund lief das Upgrade des NodeBB-Servers, war einfach und direkt auf Node18 hochgezogen. https://linux-nerds.org/topic/1444/nodebb-upgrade-auf-debian-bookworm-12 Damit ist jetzt alles hier auf Debian Bookworm 12 Haupt-PC VMs bei Hetzner VMs in der Proxmox Oh, da fällt mir gerade ein, der Proxmox ist noch fällig. Aber, dazu habe ich mir was einfallen lassen, da ist noch ein neues Mainboard unterwegs und dann gibt es dazu einen etwas größeren Beitrag. Danke Debian-Team, Debian Bookworm 12 ist eine runde Sache! Spannend wird jetzt, wie lange ich auf meinem Haupt-PC (Bookworm, KDE, Wayland) bleibe. Ich habe da so eine unangenehme Eigenschaft, wenn es um veraltete Pakete geht. Diesmal werde ich dann wahrscheinlich auf den Debian Unstable Zweig (sid) wechseln. Aber das dürfte noch was dauern, da ja aktuell erst mal alles passt.
  • NanoPi R2S - OpenWRT

    Verschoben NanoPi R2S nanopir2s openwrt linux
    6
    6
    0 Stimmen
    6 Beiträge
    781 Aufrufe
    FrankMF
    @thrakath1980 Ich wollte noch auf ein Thema zurück kommen. Das Original OpenWRT auf dem R2S ist ja ein Snapshot. Den kann man ohne Probleme aktualisieren. Unten ist dann ein Haken mit "Keep settings...." Gerade probiert, ging einwandfrei. Netzwerkeinstellungen und Firewall Settings blieben erhalten.
  • Kopia - Kopia-Server mit Kopia-UI

    Kopia kopia linux
    1
    2
    0 Stimmen
    1 Beiträge
    459 Aufrufe
    Niemand hat geantwortet
  • Kopia - Mounten einer Sicherung

    Verschoben Kopia kopia linux
    1
    1
    0 Stimmen
    1 Beiträge
    245 Aufrufe
    Niemand hat geantwortet
  • Wireguard - Client installieren

    Wireguard linux wireguard
    3
    0 Stimmen
    3 Beiträge
    899 Aufrufe
    FrankMF
    Ich kann dir nicht ganz folgen. Mein Wireguard Server ist eine VM im Netz. Mein Smartphone baut zu diesem eine Verbindung auf und ich habe mal eben nachgeschaut, was da so geht. Mein Smartphone ist aktuell im meinem WLan angemeldet. [image: 1586458461693-6e0016dc-7e11-41e1-bba2-e52a3f1348df-image-resized.png] iperf3 -s -B 10.10.1.1 ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 10.10.1.10, port 44246 [ 5] local 10.10.1.1 port 5201 connected to 10.10.1.10 port 44248 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 4.98 MBytes 41.7 Mbits/sec [ 5] 1.00-2.00 sec 5.52 MBytes 46.3 Mbits/sec [ 5] 2.00-3.00 sec 4.80 MBytes 40.3 Mbits/sec [ 5] 3.00-4.00 sec 4.17 MBytes 35.0 Mbits/sec [ 5] 4.00-5.00 sec 5.04 MBytes 42.3 Mbits/sec [ 5] 5.00-6.00 sec 5.43 MBytes 45.6 Mbits/sec [ 5] 6.00-7.00 sec 5.75 MBytes 48.3 Mbits/sec [ 5] 7.00-8.00 sec 5.70 MBytes 47.8 Mbits/sec [ 5] 8.00-9.00 sec 5.73 MBytes 48.1 Mbits/sec [ 5] 9.00-10.00 sec 5.65 MBytes 47.4 Mbits/sec [ 5] 10.00-10.04 sec 206 KBytes 46.5 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.04 sec 53.0 MBytes 44.3 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 10.10.1.10, port 44250 [ 5] local 10.10.1.1 port 5201 connected to 10.10.1.10 port 44252 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 4.80 MBytes 40.2 Mbits/sec 0 253 KBytes [ 5] 1.00-2.00 sec 14.7 MBytes 123 Mbits/sec 181 379 KBytes [ 5] 2.00-3.00 sec 9.68 MBytes 81.2 Mbits/sec 58 294 KBytes [ 5] 3.00-4.00 sec 8.88 MBytes 74.5 Mbits/sec 1 227 KBytes [ 5] 4.00-5.00 sec 7.76 MBytes 65.1 Mbits/sec 0 245 KBytes [ 5] 5.00-6.00 sec 8.88 MBytes 74.5 Mbits/sec 0 266 KBytes [ 5] 6.00-7.00 sec 9.81 MBytes 82.3 Mbits/sec 0 289 KBytes [ 5] 7.00-8.00 sec 7.82 MBytes 65.6 Mbits/sec 35 235 KBytes [ 5] 8.00-9.00 sec 5.59 MBytes 46.9 Mbits/sec 4 186 KBytes [ 5] 9.00-10.00 sec 6.64 MBytes 55.7 Mbits/sec 0 207 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.04 sec 84.6 MBytes 70.6 Mbits/sec 279 sender ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- ^Ciperf3: interrupt - the server has terminated Im zweiten Teil ist der Wireguard Server der Sender. Bis jetzt hatte ich eigentlich nie Probleme, auch nicht unterwegs. Aber, ich gehe davon aus, das ich dich nicht 100% verstanden habe
  • ROCKPro64 - Kernel 5.6 und Wireguard 1.0

    ROCKPro64 linux rockpro64 wireguard
    1
    0 Stimmen
    1 Beiträge
    353 Aufrufe
    Niemand hat geantwortet