merwex
Anmeldungsdatum: 23. Juni 2017
Beiträge: 50
|
Hallo, ich habe ein Problem mit meiner Firewall. Habe einen Lynis scan durchgeführt. Bei Warnings steht immer: iptables module(s) loaded, but no rules active [FIRE-4512]
https://cisofy.com/controls/FIRE-4512/ Wenn ich sudo iptables -L eingebe, habe ich folgende Ausgabe: Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
LOG all -- anywhere anywhere limit: avg 100/sec burst 5 LOG level warning prefix "iptables log: "
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere Ich habe das folgende Skript für iptables unter /etc/network/if-up.d gespeichert und mit sudo chmod +x /etc/network/if-up.d/090firewall_mit_max_100log_pro_sek ausführbar gemacht. Das Skript ist dieses hier: https://www.privacy-handbuch.de/handbuch_92.htm Ich habe es mit einer Regel ergänzt: /sbin/iptables -A INPUT -m limit --limit 100/second -j LOG --log-prefix "iptables log: " Das gesamte Skript sieht dann so aus: #!/bin/sh
set -e
# Nichts tun, wenn loopback aktiviert wird
[ "$IFACE" != "lo" ] || exit 0
# alte Konfiguration löschen
/sbin/iptables -t mangle -F
/sbin/iptables -t mangle -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -F
/sbin/iptables -X
# forwarding deaktivieren
echo 0 > /proc/sys/net/ipv4/ip_forward
# Default-Policies setzen
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT
# loopback freischalten
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
# Antworten auf bestehende Verbindungen erlauben
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Log Datei anlegen, max 100 Log in Sek
/sbin/iptables -A INPUT -m limit --limit 100/second -j LOG --log-prefix "iptables log: " Hat jemand vielleicht eine Ahnung, warum anscheinend keine Regeln geladen sind?
Bin ein Anfänger auf Linux ☺
|
sebix
Moderator, Webteam
Anmeldungsdatum: 14. April 2009
Beiträge: 5331
|
merwex schrieb: iptables module(s) loaded, but no rules active [FIRE-4512]
https://cisofy.com/controls/FIRE-4512/
Auf der verlinkten Seite steht: Usually this control shows up when the iptables module is loaded, while there no firewall rules loaded. Consider turning off the firewall software completely, or preferably populate it with an appropriate firewall policy.
Also wenn deine iptables-Regeln so passen, ist das i.O. Es weist nur darauf hin, dass etwas fehlen koennte.
|
merwex
(Themenstarter)
Anmeldungsdatum: 23. Juni 2017
Beiträge: 50
|
Danke für die schnelle Antwort! Zwei Fragen hätte ich dann noch: 1. Ich habe einen Zenmap Test (-sS -Pn -p- -T4 -vv) durchgeführt. Einmal mit den iptables und einmal ohne iptables. Das Ergebnis war immer das gleiche, obwohl beim Test ohne iptables Chain input, Forward und Output auf "accept" eingestellt war. Demnach macht meine Firewall ja keinen Sinn bzw. sollte sich schon etwas verändern, da ja mit den Iptables der Chain input, Forward auf "drop" gesetzt ist, oder? 2. Funktioniert die STARTTLS Verschlüsselung mit meinen Iptable Einstellungen noch beim Abrufen von E-Mails, oder muss ich einen Port dafür freischalten? LG. Merwex
|
sebix
Moderator, Webteam
Anmeldungsdatum: 14. April 2009
Beiträge: 5331
|
Deine einzige effektive Iptables-Regel ist das Aufzeichnen des Logs. Einen anderen Unterschied zum Default gibts nicht. Daher kann man das Setup nicht eine Firewall nennen. merwex schrieb: 1. Ich habe einen Zenmap Test (-sS -Pn -p- -T4 -vv) durchgeführt. Einmal mit den iptables und einmal ohne iptables. Das Ergebnis war immer das gleiche, obwohl beim Test ohne iptables Chain input, Forward und Output auf "accept" eingestellt war. Demnach macht meine Firewall ja keinen Sinn bzw. sollte sich schon etwas verändern, da ja mit den Iptables der Chain input, Forward auf "drop" gesetzt ist, oder?
Was du machen kannst ist, alle Ports zu sperren und dann selektiv zu oeffnen, was gebraucht wird. Ausgehend kann man das auch machen. 2. Funktioniert die STARTTLS Verschlüsselung mit meinen Iptable Einstellungen noch beim Abrufen von E-Mails, oder muss ich einen Port dafür freischalten?
iptables weiss von STARTTLS nix, das ist eine andere Netzwerkebene. Nicht so bei TLS, weil da immer ein anderer Port genutzt wird.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13927
|
merwex schrieb: ... bzw. sollte sich schon etwas verändern, da ja mit den Iptables der Chain input, Forward auf "drop" gesetzt ist, oder?
Ja, da hat sich schon was geändert. Poste mal die Ausgabe von:
sudo iptables -nvx -L BTW: Was genau willst Du aber mit iptables-Regeln ändern?
|
merwex
(Themenstarter)
Anmeldungsdatum: 23. Juni 2017
Beiträge: 50
|
Ok, danke! Gibt es irgend ein gutes Firewall Skript, dass man mir empfehlen könnte? Selbst eines zu schreiben bin ich leider nicht in der Lage.
|
merwex
(Themenstarter)
Anmeldungsdatum: 23. Juni 2017
Beiträge: 50
|
Hier die Terminalausgabe von sudo iptables -nvx -L Chain INPUT (policy DROP 92 packets, 5956 bytes)
pkts bytes target prot opt in out source destination
4 384 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
4483 2555325 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
92 5956 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 100/sec burst 5 LOG flags 0 level 4 prefix "iptables log: "
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 5572 packets, 1061606 bytes)
pkts bytes target prot opt in out source destination
4 384 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0 - Ich hätte gerne, dass sich niemand Zugang zu meinem System verschaffen kann und alles geblockt wird. Es sei denn, wenn ich mit der Internetseite, dem E-Mail Server etc. in Kontakt trete, dann hätte ich gerne den "Informationsaustausch" - Es sollte auch aufgezeichnet werden, wenn jemand massiv versucht auf mein System zu greifen. - Verschlüsselung sollte weiterhin möglich sein. - Beim Ausgang sollte ich das "anwählen" können, was ich aktiv initiiere und nur die Programme und das System sich updaten können, die ich installiert habe. (Weiß nicht, ob sowas machbar ist).
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13927
|
merwex schrieb: Chain INPUT (policy DROP 92 packets, 5956 bytes)
pkts bytes target prot opt in out source destination
4 384 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
4483 2555325 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
92 5956 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 100/sec burst 5 LOG flags 0 level 4 prefix "iptables log: "
Die default policy der INPUT chain ist auf DROP und der Zugang über das input-Interface (d. h. aus dem Internet/(W)LAN ) ist nur für RELATED,ESTABLISHED-Verbindungen erlaubt.
|
sebix
Moderator, Webteam
Anmeldungsdatum: 14. April 2009
Beiträge: 5331
|
Zuallererst: Hast du das Sicherheits-Einmaleins gelesen? merwex schrieb: - Ich hätte gerne, dass sich niemand Zugang zu meinem System verschaffen kann
Und wie soll dir dabei iptables behilflich sein? und alles geblockt wird.
Was alles? Eingehend, ausgehend etc? Es sei denn, wenn ich mit der Internetseite, dem E-Mail Server etc. in Kontakt trete, dann hätte ich gerne den "Informationsaustausch"
Also die TCP Ports eingehend 22, 80, 443, 25, 465, 587, 110, 143, 993, 995 auf. - Es sollte auch aufgezeichnet werden, wenn jemand massiv versucht auf mein System zu greifen.
Von welchen Angriffen sprechen wir hier? - Verschlüsselung sollte weiterhin möglich sein.
Transportverschluesselung? Siehe oben.
- Beim Ausgang sollte ich das "anwählen" können, was ich aktiv initiiere und nur die Programme und das System sich updaten können, die ich installiert habe. (Weiß nicht, ob sowas machbar ist).
Also ausgehend Ports 80, 443, 25 und 465 auf. Weiters kannst du anhand des Users filtern und in den systemd-Service files kannst du selektiv Programmen das Netzwerk wegnehmen.
|
merwex
(Themenstarter)
Anmeldungsdatum: 23. Juni 2017
Beiträge: 50
|
Danke für die Antworten! Ja, habe das Sicherheits- Einmaleins gelesen. Das ist aber zu generell für iptables usw. Eingehend: Alles soll geblockt werden, wenn ich es zuvor nicht selbst aufgerufen habe und keine Verbindung hergestellt habe. Hier müsste ich also das erste Accept all (mit den 384bytes) raulöschen oder bzw. in den iptables ändern? Chain INPUT (policy DROP 92 packets, 5956 bytes)
pkts bytes target prot opt in out source destination
4 384 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
4483 2555325 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
92 5956 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 100/sec burst 5 LOG flags 0 level 4 prefix "iptables log: " Beim Input müsste ich vielleicht auch noch regeln, welche Ports die Webseiten verwenden dürfen, die ich aufrufe. Zurzeit ist es ja so, dass ich einfach alles über die Firewall zu mir lasse, was ich vorher aufgerufen habe, oder? Forward: Alles blocken Das wäre das hier oder:
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination Output müsste ich vielleicht besser regeln (Habe aber wenig Ahnung) Fest steht schon mal, dass mein E-Mail Betreiber die Ports 587 und 143 für STARTTLS benötigt. Was den Rest betrifft, muss ich mich noch besser einlesen.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13927
|
merwex schrieb: Eingehend: Alles soll geblockt werden, wenn ich es zuvor nicht selbst aufgerufen habe und keine Verbindung hergestellt habe.
Das ist ja z. Zt. so.
Hier müsste ich also das erste Accept all (mit den 384bytes) raulöschen oder bzw. in den iptables ändern?
Nein nicht ändern, denn diese Regel betr. das lo-Interface. Zurzeit ist es ja so, dass ich einfach alles über die Firewall zu mir lasse, was ich vorher aufgerufen habe, oder?
Ja.
Forward: Alles blocken
Warum? ... denn dein Gerät/PC ist doch kein Router, oder? Der counter der FORWARD chain zeigt auch richtigerweise 0/0 an.
|
sebix
Moderator, Webteam
Anmeldungsdatum: 14. April 2009
Beiträge: 5331
|
merwex schrieb: Fest steht schon mal, dass mein E-Mail Betreiber die Ports 587 und 143 für STARTTLS benötigt.
Wie sieht dein Mailserver-Setup aus? iptables2 gelesen? Dort steht am Ende wie man eine Firewall f. eingehende Verbindungen konfiguriert.
|
merwex
(Themenstarter)
Anmeldungsdatum: 23. Juni 2017
Beiträge: 50
|
Hallo, ich habe einen Scan mit Lynis durchgeführt. Jedes Mal bekomme ich die Antwort: iptables module(s) loaded, but no rules active [FIRE-4512]
https://cisofy.com/controls/FIRE-4512/ Ich weiß nicht, woran das liegen könnte. Wenn ich sudo iptables -L im Terminal eingebe bekomme ich folgende Antwort: Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
LOG all -- anywhere anywhere limit: avg 100/sec burst 5 LOG level warning prefix "iptables log: "
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere Ich habe das Skript mit den iptables unter /etc/network/if-up.d gespeichert und mit sudo chmod +x /etc/network/if-up.d/DATEINAME ausführbar gemacht. Hat jemand eine Idee? Bin Ubuntu- Neuling und kenne mich noch nicht allzu gut aus. LG. Merwex Moderiert von sebix: An bestehenden Thread angehängt. Bitte erstelle keine Doppelpostings.
|
merwex
(Themenstarter)
Anmeldungsdatum: 23. Juni 2017
Beiträge: 50
|
Eingang: passt für mich weitestgehend. Möchte aber den aufgerufenen Webseiten nicht alles erlauben. Da wäre es wenn ich es richtig verstanden habe, dann am besten nur die bestimmten Ports zu öffnen. Wie würde dann eine Regel aussehen? Forward: Passt dann auch. Habe einen Desktop PC. Ausgang: Da wäre es dann auch vielleicht am besten nur bestimmte Ports zu öffnen, oder? Mein Mailserver Setup: Eingang: STARTTLS Port 587
Ausgang: STARTTLS Port 143 Muss mir das zu den iptables2 noch durchlesen.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13927
|
merwex schrieb: Möchte aber den aufgerufenen Webseiten nicht alles erlauben. Da wäre es wenn ich es richtig verstanden habe, dann am besten nur die bestimmten Ports zu öffnen.
Besser, Du rufst diese Webseiten dann gar nicht auf. Ports musst Du auf deinem PC nicht öffnen bzw. nicht lauschen lassen.
Ausgang: Da wäre es dann auch vielleicht am besten nur bestimmte Ports zu öffnen, oder?
Du meinst, Verbindungen nur zu bestimmte destination-Ports, in der OUTPUT chain zu erlauben?
|