PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DAU-Frage: SuSe 9.0 und (inetd)-daemon(s)



bin4ry
22.03.04, 17:04
hey zusammen,

jetzt kommt mal wieder eine dau-frage:

War gerade dabei meine suse 9.0 distro etwas nach außen abzusichern. Wollte unbenutzte daemons deaktivieren (für immer). Darum dachte ich mir, ich kommentier die jeweilige zeile aus /etc/inetd.conf aus. Problem: bei mir gibts keine inetd.conf in /etc.

Eine möglichkeit wäre ja noch die start- & kill-scripts in /etc/rc.d/rc5.d umzubenennen. Meinetwegen mit

mv /etc/rc.d/rc5.d/S15postfix /etc/rc.d/rc5.d/s15postfix
mv /etc/rc.d/rc5.d/K15postfix /etc/rc.d/rc5.d/k15postfix

Ich hab mal geschaut, ob überhaupt ein inetd-daemon vorhanden ist:

ll /etc/init.d | grep inetd

brachte als resultat

xinetd

Der status davon war unused.

Jetzt bin ich etwas verwirrt. Kann mir jemand erklären warum inetd bei mir nicht am laufen ist? Warum es auch ohne inetd geht und welche der beiden möglichkeiten unbenutze daemons zu deaktivieren besser wäre?

thnz in advance

--bin4ry

Bubble
22.03.04, 18:42
Das was früher der inetd gemacht hat (also das Starten anderer Daemonen nach Bedarf, bspw. telnet) macht jetzt eben der xinetd. Keine Ahnung ob beide gleichzeitig laufen können, vielleicht kann man ja via YaST den einen installieren und den anderen deinstallieren oder so ... die Konfigurationsdatei /etc/inetd.conf galt für den inetd, xinetd hat scheinbar ein eigenes Verzeichnis unterhalb von /etc/xinetd.d/, jedenfalls hab ich das aus anderen Posts schon so aufgeschnappt (ich selbst habe xinetd nie benutzt).

Am Sichersten ist immer das Deaktivieren der Daemonen, das ist richtig. Das Umbenennen der Init-Skript-Links ist eine nette Idee, aber warum löscht du sie nicht einfach? Sind doch eh nur symbolische Links ...

Und wenn du noch mehr Sicherheit willst, beschäftige dich mit dem Packetfilter iptables. Wobei immer gilt: Wenn keine Dienste auf dem System laufen, braucht man auch keinen Packetfilter, um sich abzusichern. Soll heißen, deaktiviere die nicht benötigten Dienste. Damit fährst du immer am Besten.

Und noch ein kleiner Tipp am Rande: Wenn du mal einen eigenen Server betreibst für lokale Zwecke (bspw. Apache), dann kannst du den immer so konfigurieren, dass er nur Anfragen von lokalen Adressen entgegennimmt. Das erhöht die Sicherheit nochmal.
Bubble

bin4ry
22.03.04, 21:57
Hey bubble,

also muss erstmal dazu sagen, dass ich mich schlecht informiert hab. Also weiß jetzt beshceid (auch dank dir) über xinetd. Yo, man kann inetd und xinetd parallel laufen lassen. Beispiel: xinetd verträgt sich nicht gut mir rpc-programmen, sodass man halt inetd die rpc attempts handlen lassen kann, während xinetd tcp und udp attempts abhandled.

Noch eine prinzipielle frage:

Wie du mir empfohlen hast, wollte ich einige daemons nur vom localhost aus erreichbar machen.

War erst in der annahme, dass ich inetd am laufen hab und dazu tcpserver von http://cr.yp.to/ installieren hätte müssen, jedoch verfügt xinetd über auch so eine funktion? In dem ich in der /etc/xinetd.conf bei den defaults only_from = localhost setze, oder?

--bin4ry

bin4ry
23.03.04, 15:32
Hey zusmamen,

komme nicht weiter: Wollte, dass xinetd meinen apache2 'bedient', da ich ihn nur für 127.0.0.1 zugänglich machen will und nicht für das ganze internet, falls ich mal online bin.

Hab also in /etc/xinetd.d/ eine datei namens apache2 mit folgendem inhalt angelegt:

service http
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/httpd2
}

Wenn ich nun mit meinem browser localhost 'anwähle' bekomme ich folgende ausschrift:

(98)Address already in use: make_sock: could not bind to address [::]:80
no listening sockets available, shutting down
Unable to open logs

Warum kann er den service nicht an port 80 binden? Er schreibt, dass 127.0.0.1:80 bereits benutzt würde, aber ich hab vor apache2 (welcher durch xinetd gestartet wird) keinen service auf der adresse laufen.

Ein nmap localhost zeigt mir auch nichts an auf port 80, bevor ich nicht xinetd starte?!

Hab vorher apache aus /etc/init.d gelöscht und die start- & kill-scripts in /etc/init.d/rc5.d umbenannt (jeweils s bzw. k kleingeschrieben, siehe oben).

Noch eine frage: xinetd wird wohl nicht automatisch (bei mir) durch init gestartet. Müsste ich noch die entsprechenden start- & kill-scripts in /etc/init.d/rc5.d adden?

--bin4ry

drcux
23.03.04, 17:51
Boah, machst du dir das Leben schwer... schau dir mal "YaST --> System --> Runleveleditor" an...

bin4ry
23.03.04, 22:01
Ich seh schon, dass ich ziemlich umständlich gedacht hab.

Auch was den apache2 angeht: den brauch ich garnicht über xinetd starten zu lassen, da er von haus aus nur an bestimmten ips/ports lauschen kann.

Hab also in der /etc/httpd/httpd.conf folgendes eingetragen, damit er nur (und nur) an 127.0.0.1:80 attempts entgegen nimmt:

BindAdress 127.0.0.1

Listen 127.0.0.1:80

Apache2 funktioniert wunderbar. Bin probehalber ins internet gegangen und hab nen portscan auf meine ip gemacht (nicht die loobback) und http-port war offen :/. Frage ist nun warum? Ich hab doch explizit angegeben, dass er nicht auf allen ips lauschen soll sondern nur auf localhost?

Kennt jemand das problem?

--bin4ry

LKH
23.03.04, 22:25
Hi,

klar ist der Port offen, aber wenn du es richtig gemacht hast antwortet der Apache nicht. Um den Port von ausen unerreichbar zu machen brauchst du eine Firewall.

bin4ry
24.03.04, 13:35
Hey lkh,

der port dürfte nicht offen sein, da der server nur an die loopback-adresse gebunden wird.

Von firewalls halte ich nicht viel. Man kann apache2 doch auf eine ip binden (wie untern beschrieben): entweder indem man die bindadress option von apache2 benutzt oder man setzt den apache2 in verbindung mit xinetd ein.

Bei der ersten methode funktioniert zwar der apache2 perfekt, jedoch ist er über meine jede ip erreichbar.

Bei der zweiten methode kommt der unten aufgeführte fehler.

--bin4ry