Allg. Frage: Wozu Compiler auf einer Firewall ?

Started by bobbis, September 03, 2020, 08:09:49 PM

Previous topic - Next topic
Hallo,

System: OPNsense 20.7 Nano

mich würde Interessieren warum unter /usr/bin, eine Menge an Compilern herumliegen, Genauso wie der ganze LLVM "Restmüll" ... round a bout 1GB Speicherplatz Verschwendung.
Wäre doch eigentlich, von der Sicherheit eher sinnvoller, sowas nicht auf einer Firewall zu haben !?!

 

September 03, 2020, 09:22:21 PM #1 Last Edit: September 04, 2020, 08:38:55 PM by banym
Das hat vermutlich mit der Art und Weise zu tun wie FreeBSD/HBSD das ganze Userland handhabt.

FreeBSD ist Kernel + Userland. Aktuell gibt es Bestrebungen das Base-System auch in Pakete zu packen und Stückweise wählbar zu machen. Es wäre jetzt ziemlicher Aufwand das aus dem monolitischen Repository alles auszulösen wenn das vom Upstream-Projekt nicht schon so kommt.
Twitter: banym
Mastodon: banym@bsd.network
Blog: https://www.banym.de

Du brauchst LLVM (clang, clang++), wenn du Pakete aus dem ports tree installieren willst. Zudem brauchen manche Tools das, wenn du da selber was nachrüsten willst (zum Beispiel manche gems mit native extensions. Also ja, braucht man aber ob es in der Standardinstallation drin sein muss oder in einem installierbarem Paket ist eine andere  Frage. LLVM an sich stellt kein erhöhtes Risiko dar, weil am jederzeit auch ein kompilat ziehen könnte.

Das Thema taucht immer mal wieder auf.

In m0n0wall und pfSense gab es lange Zeit manuell geführte Dateilisten die bestimmten was installiert wird. Da hat man auch Compiler usw. weggelassen. Vielleicht auch aus Sicherheit, aber vor allem aus Platzgründen. Probleme haben diese Listen jedoch auch gemacht, weil dann immer mal Dateien fehlten die für den Betrieb doch gebraucht werden und dann musste ein Update raus...

Die Platzprobleme gibt es nicht mehr in dieser Form. Die manuelle Verwaltung von Dateilisten auch nicht. Hinzu kommt die von Fabian angesprochene Anforderung, dass viele die OPNsense anders nutzen wollen als vorinstalliert.

Und die Sicherheitsbedenken... nun, hat man den Compiler nicht drauf kann man einen per Paketmanager nachladen... die passenden Binaries gibt es ja im Internet. Müssen wir dann auch den Paketmanager deinstallieren?

Abgesehen vom Compiler gibt es noch viele andere Skriptsprachen die genau so gefährlich sind. Diese sind aber nicht aus der heutigen Software-Welt wegzudenken.

Der Hinweis auf FreeBSD pkg-base ist von banym ist auch korrekt. Damit wird es dann möglich sein Images zu kreieren die keinen Compiler haben. Und jeder der ihn brauch kann ihn dann (fast so wie heute auch) nachladen. ;)


Grüsse
Franco

Amen. Just to add:  monolytischen = monolithisch

;-)
kind regards
chemlud
____
"The price of reliability is the pursuit of the utmost simplicity."
C.A.R. Hoare

felix eichhorns premium katzenfutter mit der extraportion energie

A router is not a switch - A router is not a switch - A router is not a switch - A rou....

September 04, 2020, 08:38:37 PM #5 Last Edit: September 04, 2020, 10:08:36 PM by franco
Quote from: chemlud on September 04, 2020, 08:32:51 AM
Amen. Just to add:  monolytischen = monolithisch

;-)

fixed ;-)
Twitter: banym
Mastodon: banym@bsd.network
Blog: https://www.banym.de

September 16, 2020, 01:02:31 AM #6 Last Edit: September 16, 2020, 01:05:19 AM by bobbis
Quote from: fabian on September 03, 2020, 10:02:50 PM
Du brauchst LLVM (clang, clang++), wenn du Pakete aus dem ports tree installieren willst.
Mir reicht es wenn auf der Sense Unbound und DNSCrypt-Proxy laufen inkl. gut funktionieren Paketfileter

Quote from: fabian on September 03, 2020, 10:02:50 PMzum Beispiel manche gems mit native extensions.
bitte mal deutsch, ich versteh kein Wort. Was sind gems?

Quote from: fabian on September 03, 2020, 10:02:50 PM
Also ja, braucht man aber ob es in der Standardinstallation drin sein muss oder in einem installierbarem Paket ist eine andere  Frage. LLVM an sich stellt kein erhöhtes Risiko dar, weil am jederzeit auch ein kompilat ziehen könnte.
Weniger ist mehr ist mein Trumpf = KISS Prinzip! Davon mal abgesehen, dass man FLASH Speicher, mit limitieren Schreibzyklen schonen würde, unabhängig ob SLC/MLC , billig ..bla..ect.!

Quote from: bobbis on September 16, 2020, 01:02:31 AMin kompilat ziehen könnte.
Weniger ist mehr ist mein Trumpf = KISS Prinzip! Davon mal abgesehen, dass man FLASH Speicher, mit limitieren Schreibzyklen schonen würde, unabhängig ob SLC/MLC , billig ..bla..ect.!
hmmm, hat man heute nicht standard mässig eine ssd am laufen, ich habe jetzt seit ca. 2015 pfSense/OPNsense am laufen und das immer auf Hardware mit SSD. Was anderes würde ich heute auch NICHT mehr empfehlen und wer heute noch eine magnetplatte oder USB Stick oder ähnlich in einer Firewall einsetzt hat selber schuld.
Internet: Willy.tel Down: 1Gbit/s, UP: 250Mbit/s Glasfaser  |
Router/Firewall: pfSense+ 23.09  |
Hardware: Netgate 6100

Weniger ist leider auch mehr Arbeit für die Anderen. Ergo wird das so nichts mit der Argumentation.


Grüsse
Franco

Quote from: micneu on September 16, 2020, 07:11:46 AM
hmmm, hat man heute nicht standard mässig eine ssd am laufen, ich habe jetzt seit ca. 2015 pfSense/OPNsense am laufen und das immer auf Hardware mit SSD. Was anderes würde ich heute auch NICHT mehr empfehlen und wer heute noch eine magnetplatte oder USB Stick oder ähnlich in einer Firewall einsetzt hat selber schuld.
Bisschen harsch formuliert vielleicht, aber prinzipiell richtig. Zumal die z.B. von PCengines & Co. verwendeten Transcend SSDs eine TBW jenseits von Gut und Böse haben. Ich erwarte auch, dass die "ewig" halten.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)



Quote from: bobbis on September 16, 2020, 01:02:31 AM
Quote from: fabian on September 03, 2020, 10:02:50 PM
Du brauchst LLVM (clang, clang++), wenn du Pakete aus dem ports tree installieren willst.
Mir reicht es wenn auf der Sense Unbound und DNSCrypt-Proxy laufen inkl. gut funktionieren Paketfileter
Andere Leute haben höhere oder andere Anforderungen. Ich brauch zum Beispiel auch kein OpenDNS aber es kommt halt mit. Es stört mich nicht wenn es da ist.

Quote from: bobbis on September 16, 2020, 01:02:31 AM
Quote from: fabian on September 03, 2020, 10:02:50 PMzum Beispiel manche gems mit native extensions.
bitte mal deutsch, ich versteh kein Wort. Was sind gems?
Das ist das Paketierungsystem von Ruby (https://www.ruby-lang.org/de/), bei dem die Dateien in ein Archiv gepackt werden und da gibt es die Möglichkeit, C-Quelldateien mitzuliefern und am Zielsystem zu kompilieren. Dadurch sparst du dir als Programmierer, den Code für jede Plattform zu bauen und ein Binary mitzuliefern. Nokogiri ist zum Beispiel so ein Gem: https://rubygems.org/gems/nokogiri

Ähnlich ist es mit Node.js mit dessen Paketemanagern npm und yarn und bei anderen Skriptsprachen wird es auch nicht anders aussehen.

Quote from: bobbis on September 16, 2020, 01:02:31 AM
Quote from: fabian on September 03, 2020, 10:02:50 PM
Also ja, braucht man aber ob es in der Standardinstallation drin sein muss oder in einem installierbarem Paket ist eine andere  Frage. LLVM an sich stellt kein erhöhtes Risiko dar, weil am jederzeit auch ein kompilat ziehen könnte.
Weniger ist mehr ist mein Trumpf = KISS Prinzip! Davon mal abgesehen, dass man FLASH Speicher, mit limitieren Schreibzyklen schonen würde, unabhängig ob SLC/MLC , billig ..bla..ect.!

KISS ist mehr auf die Komponenten bezogen. Zum Beispiel dass LLVM direkt in vim gelinkt wird, wäre eine Verletzung des Prinzips.