Iptables

Hallo,

ich habe mir einen Root Server bei Schlund und Partner geholt. Auf diesem Server sind grundlegend keine Ports gesperrt. Man muss alle Ports selbst absichern. Von Schlund und Partner wird dafür die bei Red Hat 7.2 mitgelieferte iptables Funktion empfohlen.

Soweit so gut. Ich habe bereits mehrer Ports gesperrt. Allerdings gibt es hier und dort immer noch Probleme. Es soll eine Log Funktion geben, in denen alle Zugriffe auf Ports mitgeloggt werden.
Ich könnte dann zum Beispiel alle Ports des Servers, außer die SSH Verbindung sperren, mir die Logs ansehen und dann die Ports die von Programmen die ich benutze verursacht wurden wieder öffnen.
Ich halte das für die einfachste Möglichkeit die vielen Ports zu finden die geöffnet sein müssen, damit der Server auch als solches benutzt werden kann.

Weiß jemand wo ich diese Log Datei einsehen kann? Wenn es eine bessere und einfachere Lösung zum anlegen der iptables Filter gibt, wäre ich natürlich sehr interessiert.

Also laßt mal hören…

Gruß Björn

Hallo,

Bitte lese dir auf alle Fälle die Howtos zu Netfilter http://www.netfilter.de durch. Siehe dazu auch die Postings weiter unten.

Soweit so gut. Ich habe bereits mehrer Ports gesperrt.
Allerdings gibt es hier und dort immer noch Probleme. Es soll
eine Log Funktion geben, in denen alle Zugriffe auf Ports
mitgeloggt werden.

Ja diese gibt es und aus der Doku geht hervor wie Sie funktioniert. :wink:

Nebentehma -> syslog

Ich könnte dann zum Beispiel alle Ports des Servers, außer die
SSH Verbindung sperren, mir die Logs ansehen und dann die
Ports die von Programmen die ich benutze verursacht wurden
wieder öffnen.
Ich halte das für die einfachste Möglichkeit die vielen Ports
zu finden die geöffnet sein müssen, damit der Server auch als
solches benutzt werden kann.

Solltest du nicht wirklich machen.

Zum einen müssen nur die Ports offen sein von den Diensten die du anbieten möchtest. Bsp. Webserver.

Du kannst dir mittels des commandos netstat (-> man netstat) anzeigen welche Ports auf deinem Rechner offen sind und somit dienste anbieten. Sei jedoch gewarnt, du solltest nicht jeden dienst der offen ist auch im packetfilter aufmachen, dann könntest du dir den packetfilter nämlich schenken.

BTW
Wenn du auf deinem Server nur Dienste anbietest die jeder nutzen darf, dann brauchts du keinen packetfilter.

Wenn du nun weißt welche Dienste du anbietest, musst du natürlich noch wissen welche Protokolle dort benutz werden. Für viele Protokolle wirst du im Internet dokus finden wie die Firewall eingestellt werden muss damit es funktioniert.

Im einfachsten fall reicht eine Regel die erlaubt das von aussen auf den Port des Dienstes zugeriffen wird. (Bsp. ssh)

Für die Protokolle die du nicht findest…

Du kannst mit hilfe des Programmes tcpdump -> man tcpdump den Netzwerkverkehr mitscheinden und so ermitteln was offen sein muss und was nicht.

Alternativ kannst du dann auch den von dir vorgeschlagenen Weg nehmen und mit iptables einfach alles loggen was du nicht erlaubt hast.

Weiß jemand wo ich diese Log Datei einsehen kann?

z.B. /var/log/*

Wenn es eine
bessere und einfachere Lösung zum anlegen der iptables Filter
gibt, wäre ich natürlich sehr interessiert.

Ich habe mal tools gesehen die automatisch den Netzwerktraffic analysieren und danach die regel generieren. Ich habe sie jedoch nie benötig und von daher kann ich keine Aussage über die Qulität der Proggys treffen.

Meine Meinung:
Ich würde es lieber selber machen, anstat es durch automatismen machen zu lassen.

Zum Schluss noch ein Bsp. einer Quick and Dirty Firewall.

Services: HTTP and SSH on localhost

Chain INPUT (policy DROP 0 packets, 0 bytes)
target prot opt in out source destination
ACCEPT all – lo * 0.0.0.0/0 0.0.0.0/0
ACCEPT all – * * 0.0.0.0/0 0.0.0.0/0 state ESTABLISHED
ACCEPT all – * * 0.0.0.0/0 0.0.0.0/0 state RELATED
ssh-in tcp – * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
http-in tcp – * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
drop-log all – * * 0.0.0.0/0 0.0.0.0/0

chain OUTPUT (policy DROP 0 packets, 0 bytes)
target prot opt in out source destination
ACCEPT all – * lo 0.0.0.0/0 0.0.0.0/0
ACCEPT all – * * 0.0.0.0/0 0.0.0.0/0 state ESTABLISHED
ACCEPT all – * * 0.0.0.0/0 0.0.0.0/0 state NEW
ACCEPT all – * * 0.0.0.0/0 0.0.0.0/0 state RELATED
drop-log all – * * 0.0.0.0/0 0.0.0.0/0

Chain http-in (1 references)
target prot opt in out source destination
ACCEPT all – * * 10.3.4.0/24 0.0.0.0/0

Chain ssh-in (1 references)
target prot opt in out source destination
ACCEPT all – * * 10.3.4.5 0.0.0.0/0

Chain drop-log (3 references)
target prot opt in out source destination
LOG all – * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4
DROP all – * * 0.0.0.0/0 0.0.0.0/0

cu

polarix

Hallo!

Was ist eine Quick and Dirty Firewall? Reichen diese Einstellungen um das System sicher vor angriffen zu machen?

Auf dem Server läuft noch ENSIM. Habe die Ports die dieses Programm verwendet nicht gefunden. Weißt du vielleicht, welche Ports ich für das Programm öffnen muss?

Gruß Björn

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo!

Was ist eine Quick and Dirty Firewall?

Ohne gross darüber nachzudenken hin geschrieben. Schnell un dreckig eben:smile:

Reichen diese
Einstellungen um das System sicher vor angriffen zu machen?

Da ich nach dem Verfahren gegangen bin alles ist Verboten was nicht expliziet erlaubt ist. Ist der Packetfilter schon restriktiv. Aber ein restriktiver Packetfilter macht ein System nicht zwangsläufig sicher.

Auf dem Server läuft noch ENSIM. Habe die Ports die dieses

ensim sagt mir persönlich gar nichts.

Was macht den diesen Programm ?

cu

polarheutkeinezeit

Sorry das ich mich das letzte Mal so „schnell und dreckig“ geäußert habe. War mir nicht bewußt.

Also wie du sieht bin ich noch immer damit beschäftig den Server in gang zu bekommen.

Ensim ist das Verwaltungsprogramm für den Server. Man kann damit Domain und Webspacepakete anlegen und verwalten. E-Mail Adressen und Dienste konfigurieren.

Mir würde es auch besser gefallen wenn ich das ganze über Telnet oder so selbst in die Hand nehmen könnte. Irgendwie funzt dadd mit dem Ensim nicht.
Bei unserem FreeBSD Server geht das mit vadduser. Wie geht es bei Red Hat?
Welche Verwaltungsprogramm benutzt du?

Gruß Björn
P.S.: Danke für die Mühe?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]