Grundsatzfrage... Netzwerk in EINEM bash Script komplett (!) einrichten?

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
MrScoville
Beiträge: 93
Registriert: 09.09.2016 17:20:59
Lizenz eigener Beiträge: MIT Lizenz

Grundsatzfrage... Netzwerk in EINEM bash Script komplett (!) einrichten?

Beitrag von MrScoville » 28.12.2017 16:44:16

Hallo,

es geht um einen Raspberry PI 3, der möglichst einfach hochgefahren werden möchte. Darum möchte ich es irgendwie so deichseln, dass Interfaces, Routen, firewall in EINER EINZIGEN Datei! konfiguriert werden. Dass die resolv.conf da schon nicht mitspielen mag, weil diverse Daemons über Systemd da rein funken, habe ich schon mitbekommen.

Wichtig wäre mir aus Sicherheitsgründen, dass erstens die gesamte Konfiguration aus genau einer einzigen Datei angesteuert wird (erst von dort aus dürfen dann auch aus Geschwindigkeitsgründen weitere Scripte parallel aufgerufen werden), und zweitens erst dann, wenn alles erledigt ist, die Interfaces in einer klaren Reihenfolge enabled werden.

Es ist albern, eine Firewall online zu bringen, bei der erst die Interfaces hochfahren, dann für alle Welt erreichbar sind, und erst dann greifen die Tables und Rules. Klar könnte ich das mit Regeln in Systemd Scripts deichseln, aber bis ich die alle nicht nur implementiert, sondern auch mit Test-Scripten überzogen habe, bin ich an Silvester noch nicht fertig. Silvester 2018 eher.
Man mag gar nicht glauben, wie sehr ein 4096-bittiger RSA-Schlüssel einem den Tag vermiesen kann...^^

Der so genannte "Teufel im Detail" hat einen Namen: Tight coupling :evil:

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Grundsatzfrage... Netzwerk in EINEM bash Script komplett (!) einrichten?

Beitrag von scientific » 28.12.2017 17:15:51

In den paar Millisekunden zwischen Aktivieren des Interfaces und der iptables befürchtst du jetzt den Angriff, und deswegen möchtest du die vorgesehene Diensteinitialisierung umgehen.

Ich behaupte mal, dass die Latenz des Netzwerkes höher ist als die Zeitspanne zwischen den beiden Diensteaktivierungen.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: Grundsatzfrage... Netzwerk in EINEM bash Script komplett (!) einrichten?

Beitrag von mat6937 » 28.12.2017 17:17:31

MrScoville hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 16:44:16
Es ist albern, eine Firewall online zu bringen, bei der erst die Interfaces hochfahren, dann für alle Welt erreichbar sind, und erst dann greifen die Tables und Rules. Klar könnte ich das mit Regeln in Systemd Scripts deichseln, ...
Deichseln musst Du nicht, denn dafür gibt es z. B. netfilter-persistent und iptables-persistent:

Code: Alles auswählen

Description: boot-time loader for netfilter configuration

Description: boot-time loader for netfilter rules, iptables plugin
 netfilter-persistent is a loader for netfilter configuration using a
 plugin-based architecture.
Da wird dein Script, m. E. nicht schneller sein.

DeletedUserReAsG

Re: Grundsatzfrage... Netzwerk in EINEM bash Script komplett (!) einrichten?

Beitrag von DeletedUserReAsG » 28.12.2017 17:42:29

Starte doch einfach die fehlkonfigurierten Dienste (die also ’nen Port aufmachen, aber eigentlich nicht erreichbar sein, und daher von deiner „Firewall“ geblockt werden sollen) erst nach dem Setzen der Regeln.

BenutzerGa4gooPh

Re: Grundsatzfrage... Netzwerk in EINEM bash Script komplett (!) einrichten?

Beitrag von BenutzerGa4gooPh » 28.12.2017 18:33:17

MrScoville hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 16:44:16
es geht um einen Raspberry PI 3 ...
MrScoville hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 16:44:16
Es ist albern, eine Firewall online zu bringen, bei der erst die Interfaces hochfahren, dann für alle Welt erreichbar sind, und erst dann greifen die Tables und Rules.
Würde da mal über was Dediziertes ("Professionelles") nachdenken. Die werden zumindest nur auessert selten gebootet. Bei jedem Router einschließlich Raspi sollte ein Booten ohne Internetzugang möglich sein (WAN-Interface vorher administrativ down). Remote booten ist zu überlegen - Script für WAN-IF up nach definierter Zeit?!
MrScoville hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 16:44:16
Wichtig wäre mir aus Sicherheitsgründen, dass erstens die gesamte Konfiguration aus genau einer einzigen Datei angesteuert wird
PFSense (XML-Datei), Cisco-IOS (Textdatei), die "anderen Verdächtigen" kenne ich nicht persönlich.

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Grundsatzfrage... Netzwerk in EINEM bash Script komplett (!) einrichten?

Beitrag von hec_tech » 28.12.2017 21:47:32

Ich mache Firewallupdates eigentlich immer remote. Anders wäre das auch nicht möglich - ich würde wohl mehr zeit im Auto als sonst wo verbringen.

Gerade eine Firewall muss regelmäßig mit Updates versorgt werden. Man muss sich nur anschauen wie oft Releases bei pfSense rauskommen. Eine Cisco ASA muss auch regelmäßig mit Updates versorgt werden.

Ich müsste echt mal beim nächsten Reboot darauf achten was zuerst und in welcher Reihenfolge gestartet wird.

TomL

Re: Grundsatzfrage... Netzwerk in EINEM bash Script komplett (!) einrichten?

Beitrag von TomL » 28.12.2017 23:22:43

MrScoville hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 16:44:16
es geht um einen Raspberry PI 3, der möglichst einfach hochgefahren werden möchte. Darum möchte ich es irgendwie so deichseln, dass Interfaces, Routen, firewall in EINER EINZIGEN Datei! konfiguriert werden.
:::
Es ist albern, eine Firewall online zu bringen, bei der erst die Interfaces hochfahren, dann für alle Welt erreichbar sind, und erst dann greifen die Tables und Rules.
Ja, das geht... Du kannst das ganze Netzwerk mit einer einzigen Service-Unit unter Verwendung von iproute2-Befehlen starten, ohne irgendwelche anderen Dienste wie networkmanager, dhcpd usw. zu nutzen. Und selbstverständlich kannst Du ein Bash-Script mit iptables-Anweisungen auch vor dem Netzwerk starten... ebenfalls über eine Service-Unit. Diese zweite Unit wird einfach via requires-Statement in die erste eingebunden und damit ist der Paketfilter immer vor dem Netz gestartet.

Also... schaut Dir die iproute2-Befehle an, wie "ip link" und "ip addr"... und dazu den Umgang mit Service-Units. Beides zusammen löst das Problem.

BenutzerGa4gooPh

Re: Grundsatzfrage... Netzwerk in EINEM bash Script komplett (!) einrichten?

Beitrag von BenutzerGa4gooPh » 29.12.2017 14:37:57

hec_tech hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 21:47:32
Ich mache Firewallupdates eigentlich immer remote. Anders wäre das auch nicht möglich - ich würde wohl mehr zeit im Auto als sonst wo verbringen.
Verständlich bei mehreren Filialen. Ob das beim (unprofessionellem) Raspi des TO der gleiche Fall sein muss, wage ich zu bezweifeln.
hec_tech hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 21:47:32
Eine Cisco ASA muss auch regelmäßig mit Updates versorgt werden.
Bei meiner IOS-Firewall kommen diese etwa halbjährlich.
hec_tech hat geschrieben: ↑ zum Beitrag ↑
28.12.2017 21:47:32
Ich müsste echt mal beim nächsten Reboot darauf achten was zuerst und in welcher Reihenfolge gestartet wird.
Laut Boot-Log (Bootvorgang dauert etwa 4 min mit entpacken und prüfen des Boot-Files) meiner IOS-Routers wird das WAN-IF mit DHCP-Client fast zu zuletzt aktiv. Die Inbetriebsetzung der Zone Based Firewall und der Paketfilter sehe ich nicht. Habe das Loglevel auf Defaults belassen.

Antworten