nftable - simple Eintragung für Homeserver - chatgpt

freakazo!d

Enthusiast
Thread Starter
Mitglied seit
09.05.2004
Beiträge
220
Sers!

Ich benötige einen simplen Eintrag für die nftables.conf für einen Homeserver. Alles was ungefragt reinkommen will, soll gesperrt werden; alles was rausgeht, darf rausgehn. Und dann noch eine Freigabe für Samba im Heimnetz (Port 445) für einen einzigen Rechner, sowie Pings. Das einzig Spezielle ist, dass ich mit zwei Netzwerkbrücken (br0 und br1) arbeite, die sich gegenseitig nicht behelligen sollen. Das hab ich chatgpt vorgegeben und nach längerem Hin und Her, hat es mir das hier ausgespuckt, was nach einem Test sich als funktional gezeigt hat - nur weiss ich absolut garnichts von nftables, habe bisher einfach nur ufw genutzt und möchte daher hier fragen, ob mal jemand kurz drüberschauen kann - taugt dieser Eintrag was?

#!/usr/sbin/nft -f

table inet filter {

####################
# INPUT chain - Host-Zugriffe
####################
chain input {
type filter hook input priority 0;
policy drop;

# Alles bestehende/related erlauben
ct state established,related accept

# Host loopback
iif lo accept

# Samba nur für Heimnetz erlauben
ip saddr 192.168.178.22 tcp dport 445 accept

# Optional: ICMP Ping aus Heimnetz erlauben
#ip saddr 192.168.178.0/24 icmp type echo-request accept
}

####################
# FORWARD chain - VM Traffic unangetastet lassen
####################
chain forward {
type filter hook forward priority 0;

# Blockiere Verkehr Heim- und Gastnetz (br0 und br1)
iif "br0" oif "br1" drop
iif "br1" oif "br0" drop

# Standard: alles andere durchlassen
policy accept

# Alle Forward-Pakete passieren ungehindert
# VMs verwalten ihre eigene Firewall intern
}

####################
# OUTPUT chain - Host ausgehend
####################
chain output {
type filter hook output priority 0;
policy accept
}
}
Ich werde gerne weitere Infos liefern, falls benötigt.

Gruß und Danke schonmal!
 
Sieht gar nicht so schlecht aus. Könnte funktionieren.

Wenn um es um das Thema Sicherheit geht, solltest Du Dir eine Firewall aber nicht von einer KI generieren lassen. Arbeite Dich in das Thema ein. Die obige Konfiguration kannst Du als Startbasis nehmen.
 
Lustigerweise ist mein Plan aber genau das: Ich möchte diesen Eintrag vornehmen und nie wieder anfassen müssen :d
Ich wollte etwas in nftables, was im Prinzip meiner bisherigen Firewallregel per UFW entspricht und das ist quasi das hier: ufw allow from 192.168.178.xx proto tcp to any port 445
Nur weiss ich eben nur, dass ich von nftables garnix weiss und deswegen dacht ich, frag ich lieber mal jemand anders.
Natürlich wird darauf aufgebaut, falls irgendwann doch noch der Fall eintritt, dass ich andere Verbindungen etc aufbauen will.
Aber wie gesagt, dass wäre erstmal eine Regel sie alle zu knechten.

Danke für dein Meinung!
 
Mit iptables war das alles irgendwie einfacher zu verstehen.
Aber da das nur Layer 3 und 4 kann und manch einer gerne auch Layer 2 nutzte über ebtables...
--> Schaut her nftables kann alles. Und je länger man drauf starrt, desto mehr meint man zu erahnen.

Aktuell bespiele ich nftables fast ausschließlich über iptables-translate, auch wenn es dem Fragesteller wahrscheinlich weniger hilft.

Ich habe recht lange mit einem Wechsel von iptables zu nft gewartet. Vor Kurzem habe ich es aber doch gemacht.

nft hat schon seine Vorzüge: man wird etliche Config-Optionen im Linux-Kernel los. Es unterstützt IPv4, IPv6 und beides zusammen. Man kann mit Listen arbeiten. Wenn man 2 IP-Adress-Bereiche mit jeweils 2 Ports freischalten will, kann man das mit einem Befehl erreichen:
Code:
# Devuan / Debian Update zu debian.map.fastly.net
ip daddr { 146.75.118.0/24, 146.75.122.0/24 } tcp dport { 80, 443 } counter accept
Mit iptables ist das anstrengender...

Letztendlich habe ich den Umstieg folgendermaßen gemacht:
  1. Ich hatte ein Script, das Kernel-Parameter setzt und die Firewall mit iptables-Befehlen aufbaut
  2. Ich habe mir mit "nft list ruleset" die Regeln in nft-Notation ausgeben lassen
  3. Ich habe die iptables-Befehle in meinem Script ersetzt durch
    Code:
    /sbin/nft -f - <<EOF
    flush ruleset
    <ausgegebener ruleset>
    EOF
  4. Ich habe geprüft, dass mit diesem Script die gleiche Firewall herauskommt
  5. Ich habe angefangen, die nft Befehle zu optimieren und alles mehr nft-ish zu machen. Die Kommentare habe ich aus meinem alten iptables-Script rüberkopiert.
Es war weniger Arbeit als erwartet.
 
Zuletzt bearbeitet:
Ich habe aktuell ein System für Testzwecke only auf nft und es läuft gut.
Der Großteil meiner Server und Systeme läuft "dual" damit ich immer checken kann was passiert.
Und ein kleiner raspberry der noch in einer Gartenhütte 100km von hier rumdöngelt, der ist auf iptables bis ich die Hardware komplett ersetze.

Praktischerweise ist ja bspw. auch DD-WRT seit einiger Zeit auf dem Dual Betrieb unterwegs, da kann man dann wirklich live am offenen Herzen schauen wann es "BUMM" macht.
Mann muss ja probieren :d
was Ipv4 und v6 zusammen zu handlen angeht: Mag ein Vorteil sein, ich persönlich bin da aber skeptisch. Mit ip6tables und iptables konnte man das schön voneinander trennen. Die Protokolle haben ja doch ihre Eigenarten.
 
Ich hab mich überzeugen lassen, das nftables auf lange Sicht die bessere Variante ist im Bezug auf Serverangelegenheiten - was nicht heissen soll, dass ich Ambitionen habe mehr zu machen als nötig :d
Ich werde nicht nftables studieren oder meinen Homeserver irgendwann gegen ein Rack mit allem drum und dran ersetzen, aber ich habe Lust das Bisschen was ich aufbaue möglichst optimal aufzusetzen - soweit es mir möglich ist natürlich. Ich weiss was ich kann und noch viel wichtiger, ich weiss auch was ich nicht kann ^^
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh