[Linux] Halted Firewall - Hinweis und Frage

#0
28.11.2003, 10:31
Member
Avatar Emba

Beiträge: 907
#1 tagchen

hab vor einer kleinen weile nen bericht über "halted firewalls" [1,2] gelesen

kurz: Linux Firewall im init 0 zustand, wobei network nicht gekillt wird
vorteile: kein userspace, alle devices unmounted, keine prozesse (ausser kerneleigene AFAIK)

habt ihr damit schon erfahrungen gemacht, bzw. wisst ihr, ob das auch noch mit dem 2.4er kernel funzt?

evtl. teste ich es mal aus, wenn der thread hier zu einem vernünftigen ergebnis führt

greez


[1]
http://www.samag.com/documents/s=18...0201d/0201d.htm

[2]
netfilter mailinglist
Seitenanfang Seitenende
28.11.2003, 15:31
Member
Avatar Xeper

Beiträge: 5291
#2 Das wird mit jedem Linux kernel funktionieren da der netfilter integraler bestandteil ist. Es heißt immer noch GNU/Linux. Ansonsten nur Linux netfilter. Und init 0 wäre ein fataler Fehler du meinst sicherlich init 1. Wobei dies global als single-user mode bezeichnet wird da die Zahlen ja gar nicht maßgeblich sind aber trozdem sollte das Grundlegende Konzept ja nicht einfach über den Haufen geworfen werden.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
30.11.2003, 21:32
Member

Themenstarter
Avatar Emba

Beiträge: 907
#3 nope xeper...wrong

lies dir mal die quellen durch ;)
init 0 ist der sinn dieser FW-Art !
nur einige scripte werden nicht ausgefürt beim init 0 - wechsel, dann filtert der kernel (mit netfilter incl.) nämlich munter weiter (userspace logischweise "tot")

aja: der konformität halber in zukunft GNU/Linux genannt....(ich dachte, sowas juckt hier net weiter)

thx trotzdem, bist ja der einzigste, der hier drauf eingeht

greez
Seitenanfang Seitenende
30.11.2003, 22:17
Member
Avatar Xeper

Beiträge: 5291
#4 @Emba

Es ist völlig uninteressant wenn wieder irgendein paar idioten wie IPcop nen alleingang versuchen lass uns doch bitte bei der SyS-V konformität bleiben wo sich über 200 hundert UNIX systeme dran halten und auch weiter dran halten werden.

Runlevels 0, 1, and 6 are reserved. Runlevel 0 is used to halt the sys-
tem, runlevel 6 is used to reboot the system, and runlevel 1 is used to
get the system down into single user mode. Runlevel S is not really
meant to be used directly, but more for the scripts that are executed
when entering runlevel 1. For more information on this, see the man-
pages for shutdown(8) and inittab(5).

Dies ist direkt aus der GNU manpage 'init' genommen worden. Bitte lass uns nich über bereits exakt definierte Vorgänge diskutieren die es schon seid den ersten UNIX manuals gibt.
Es ist ganz klar definiert das bei allen Sys-V konformen Systemen (BSD benutzt das SyS-V runlevel system nicht) die runlevel 0 - 1 und 6 reserviert sind. Also ist der single-user mode der runlevel 1.

Es wird immer ein paar Leute geben die gerne aus der Reihe tanzen dies wird aber wenig zur konformität und zur Kompatibilität beitragen.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Dieser Beitrag wurde am 30.11.2003 um 22:20 Uhr von Xeper editiert.
Seitenanfang Seitenende
01.12.2003, 09:17
Member

Themenstarter
Avatar Emba

Beiträge: 907
#5 jetzt lass doch mal die konformität außen vor und denk nicht so begrenzt...

natürlich ist es gut, wenn es standards gibt
und ein großer nachteil dieser FW-Art ist ihre "schwierige" administration, da ja der RL0 nicht für soetwas vorgesehen ist...

aber es sprechen eine menge vorteile für solch eine lösung (ich wage zu bezweifeln, dass ein großes unternehmen diese lösung für "ernst" nimmt) gerade im privaten bereich

und überleg mal, was der RL0 macht
im prinzip widerspricht die "Halted Firewall"-Theorie und Praxis nicht einmal dem RL0

und IPCop und Co nehm ich eh nicht weiter ernst... ;)

greez
Seitenanfang Seitenende
01.12.2003, 18:26
Member
Avatar Xeper

Beiträge: 5291
#6 @Emba

Ich sage ja nichts gegen diese Idee - trozdem ist runlevel 0 der 'halted' runlevel. Ist das System angehalten so ist auch der kernel angehalten. Deswegen kann dies nur im runlevel 1 oder auch single-user mode geschehen - dort sind grundsätzlich keine Daemons aktiv. Alles andere führt zu nichts außer das irgendjemand wieder irgendetwas im Alleingang versucht und letztendlich kein Erfolg haben wird - es ist nämlich nicht weiter interessant. Die konformität muss unter allen Umständen eingehalten worden damit UNIX - UNIX sein kann. Solltest du dich also mit GNU/Linux auskennen so wirst du bei Irix auch keine großen schwerigkeiten haben - und genau das ist das tolle daran. Selbst die closed-source Systeme halten sich an dieses Prinzip.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
01.12.2003, 19:06
Member

Themenstarter
Avatar Emba

Beiträge: 907
#7 nunja, aus dem artikel selbst geht hervor, dass der kernel selbst im RL0 noch im speicher residiert

"Explanation

The design of Linux is as a monolithic kernel. When the machine is halted, the kernel still resides in memory, even when the machine runs through the shutdown process. The usual method to prevent this from being evident is to kill all possible access to the kernel during the shutdown process, which is accomplished by killing all running processes, shutting down all of the machine?s network interfaces, and unmounting the filesystems. This prevents the kernel from performing any intentional tasks while the machine is ?halted?. However, the kernel is still running as a scheduler and memory manager at that point.

Because the kernel is still running, any kernel-based tasks that we can run in normal use can be run while halted. Of course, most tasks require some form of input and output, either through the shell (user input), the file system, or the network (as in this case). Thus, we must force the machine to allow that interface to continue to exist even while the machine is halted. This is the effect of removing the K90network script. It no longer forces the Ethernet cards to be stopped.

Additionally, any kernel-based services that are required (e.g., ipchains) must be kept running. The default behavior of the system is to flush all ipchains rules when the machine is halted. If that happens, the firewall won?t be working at this point, so the machine must be forced to leave the ipchains ruleset in place by removing the script that would flush all the rules."

da das board meinen link oben zerstört hat und ich nicht mehr editieren kann, hier nochmals der link, aber unterbrochen (einfach zusammenfügen)

http://www.samag.com/documents/
s=1824/sam0201d/0201d.htm

nun würde mich eine exakte definition des RL0 interessieren, die beschreibt, was mit dem kernel geschieht - hast nen ordentlichen link, xeper?

greez
Seitenanfang Seitenende
01.12.2003, 19:35
Member
Avatar Xeper

Beiträge: 5291
#8 okay das ist interessant nun es trifft auf gar keinen Fall auf alle UNIX Systeme zu - die meisten haben doch eher einen microkernel (soweit ich weiß). Linux und *BSD benutzen die monolith architecture - *BSD besitzt aber keine Runlevels. Also monolith heißt ja nicht-modular - deswegen kann der kernel auch ohne FS überleben alle lebenswichtigen routinen sind ja sowieso im kernel integriert. Allerdings dachte ich bis jetzt immer das der kernel sich selbst anhält wenn auch das System angehalten wird. Wenn das demnach nicht so ist - würde auch runlevel 0 einen sinn ergeben. Dann müßte man den PC aber immer noch daran hintern auzugehen (dies ist ja bei ATX der Fall) - das lässt sich durch ACPI aber leicht bewerkstelligen - hab ich hier au scho geschafft. Aber nun ist es auch für mich plausibel :p

<Xeper> uhm guys - #gentoo guys ;) a question to all who might knows:
<Xeper> what happend with the Linux monolith kernel if the System is going halted (eg. runlevel 0)?
<Xeper> It will residence in the memory until the machine is powered off - but what happends will the kernel run continue or will it halt itself?
<lindi-> nothing special
<lindi-> it will continue to run, and for example packet filter still does NAT
<Xeper> lindi-: okay thx
<Xeper> lindi-: some link (website - definition) for this?
<lindi-> alt+sysrq+i will kill every process ;)
<Xeper> lindi-: ;)
<lindi-> dunno i read about it somewhere, people used it as a way to make it more difficult to attack the box

Vielleicht ist das ja interessant.
Demnach gibt es keine Routine die den kernel anhält.
Einen link hab ich leider nicht. Aber ich werde hier noch was rein posten wenn ich nochwas höre.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
01.12.2003, 20:02
Member

Themenstarter
Avatar Emba

Beiträge: 907
#9 jo xeper

schön, dass wir einer meinung sind ;)

logo muss der kernel monolithisch sein, wie sonst sollen die module in den treiber ohne userspace kommen?

bin davon ausgegangen, dass du wusstest, dass ich kein APM/ACPI System in meine beschreibung eingeschlossen habe

resume: interessant, oder?
ich versuchs ma unter gentoo oder debian, is ja egal
du könntest es ja mal unter nem UNIX versuchen?

thx&greez
Seitenanfang Seitenende
01.12.2003, 20:05
Member
Avatar Xeper

Beiträge: 5291
#10 Hab Irix hier - ich glaube nicht das es damit funktionieren wird ich bin mir ziemlich sicher das der kernel nen microkernel ist - aber ich bin mir auch nich genau sicher wie er konstruiert ist da es ja closed-source ist. Naja nach dem switchen nach init 0 kannst du jedenfalls den kernel nur noch durch SYSRQ beeinflussen.

Edit: APM/ACPI brauchst du dafür damit dein ATX Gerät nicht herunterfährt - aber evntl. gibts ja eine extra swtich im init dafür - hab noch nie nachgeschaut.

Edit2: ah btw.: *BSD hat zwar kein SyS-V somit au keine runlevels aber 'halt' gibt es ja trozdem - weiß aber nich genau wie sich das da auswirkt.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Dieser Beitrag wurde am 01.12.2003 um 20:11 Uhr von Xeper editiert.
Seitenanfang Seitenende
01.12.2003, 20:48
Member

Themenstarter
Avatar Emba

Beiträge: 907
#11

Zitat

APM/ACPI brauchst du dafür damit dein ATX Gerät nicht herunterfährt


häh?
wo hastn das gelesen?
das ist ja grad der sinn (zumindest einer) beider standards

greez
Seitenanfang Seitenende
02.12.2003, 17:08
Member
Avatar Xeper

Beiträge: 5291
#12 Nirgendwo ich hab Ahnung davon - scho vergessen ;)

Du musst ja den power shutdown unterbinden an sonsten wird dir runlevel 0 nicht viel auf einem ATX gerät nützen. Oder liege ich da falsch?
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
03.12.2003, 09:08
Member

Themenstarter
Avatar Emba

Beiträge: 907
#13

Zitat

Nirgendwo ich hab Ahnung davon - scho vergessen

muss ich wohl, sorry ;)

APM,ACPI sind Adv. Powermanagementfunktionen
erst diese ermöglichen es einem PC (bei aktivierem ACPI/APM) selbständig sich auszuschalten

vorher zu AT-Zeiten bzw. ohne aktiviertes APM/ACPI war dies nicht möglich

demnach sollte dein posting eher so aussehen

"APM/ACPI brauchst du dafür damit dein ATX Gerät *automatisch* herunterfährt"

dies ist aber nur eine funktion von APM/ACPI
natürlich ist es auch möglich bei aktiviertem APM/ACPI, dass der PC dennoch nicht automatisch herunterfährt, wenn er in RL0 geht

da ich dies aber nie für nötig gehalten habe, habe ich es auch nicht ausprobiert und weiß somit auch nicht sofort aus dem stehgreif, wo du es einstellst

greez
Seitenanfang Seitenende
03.12.2003, 23:13
Member
Avatar Xeper

Beiträge: 5291
#14 @Emba

nö ich weiß was ich gesagt hab.
Les dir doch einfach mal die Dokumentation im kernel durch und die verschiedenen Funktionen dann weißt du scho was ich meine.
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
04.12.2003, 09:24
Member

Themenstarter
Avatar Emba

Beiträge: 907
#15 ich glaub ich hab verstanden, was du meinst:

bei aktiviertem ACPI/APM kannst du selbst steuern, wie sich der rechner verhalten soll, wenn er ausgeschaltet wird

aber:

a) hab ich im letzten posting geschrieben, dass dies geht
b) bei deaktiviertem APM/ACPI du auch diese "funktionalität" hast

wenn du also

Zitat

APM/ACPI brauchst du dafür damit dein ATX Gerät nicht herunterfährt


einfach so im raum stehen lässt, ist das falsch
das wird dir jeder so bestätigen

habe auch gerade noch mal in den kernel doc's geschaut, aber nichts, was deine aussage bekräftigen könnte, gefunden

hilf mir mal auf die sprünge ;)

greez
Seitenanfang Seitenende