PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ipchains - wenn Filter aktiv, hängt sendmail !



Tkpunish
05.11.02, 09:40
Ich verwende einen Linuxserver (RedHat 6.4),
mit Ethernetkarte und ISDN für den INET-Zugang.
es läuft Squid und Sendmail.
Es wird nicht geroutet (Proxy + Mailserver)

Sobald ich etwas Sicherheit per ipchains einrichten will,
dauert es nicht lange und der Proxy/Mailserver ist nicht mehr ansprechbar.

(status <defunct> per "ps -A")

Sobald ich die Filterregen entferne (ipchains -F) laufen die Daemons
wieder, und man kann wieder Mails versenden etc.

Ich möchte lediglich den Verbindungsaufbau zu den Ports des Proxy,
Mail- und FTP-Servers von aussen verhindern,
das funktioniert auch hervorragend, aber mein Server ist dann nicht
mehr zu verwenden.


Hier meine Regeln:

ipchains -A input -i eth0 -j ACCEPT
ipchains -A input -p TCP -s 0.0.0.0/0 -y -j DENY


Wo liegt der Fehler, bzw. was muss ich noch erlauben,
damit meine Dämonen ihren Dienst tun ?

Belkira
05.11.02, 09:49
Die Daemons müssen Verbindungen aufbauen dürfen, und zwar AUTH, DNS und SMTP zu anderen Servern.

keiner_1
05.11.02, 09:50
so verbietest du alles das per TCP Protokoll von irgendwo kommen kann!

>ipchains -A input -p TCP -s 0.0.0.0/0 -y -j DENY

greetz
adme

Tkpunish
05.11.02, 14:15
@adme

"ipchains -A input -p TCP -s 0.0.0.0/0 -y -j DENY"

Ich verbiete nur Verbindungsaufbauversuche (-y) nicht Alle TCP-Pakete!, eingehende "Antworten" werden nicht verworfen.

Verbindungsaufbauversuche werden nur von aussen gefiltert,
da ich ja vorher jeden Traffic vom LAN her erlaube.



@Belkira

Die Daemons dürfen uneingeschränkt Verbindungen nach aussen aufbauen,
ich bearbeite ja nur die INPUT-Chain.

Die Frage ist aber, müssen Daemons sich "zu sich selbst" verbinden können.
So ein Verbindungsaufbauversuch würde ja gefiltert (INPUT).


achso, alle Policies der 3 Chains stehen natürlich auf ACCEPT.

Jasper
05.11.02, 14:53
Original geschrieben von Tkpunish
@adme

"ipchains -A input -p TCP -s 0.0.0.0/0 -y -j DENY"

Ich verbiete nur Verbindungsaufbauversuche (-y) nicht Alle TCP-Pakete!, eingehende "Antworten" werden nicht verworfen.

Verbindungsaufbauversuche werden nur von aussen gefiltert,
da ich ja vorher jeden Traffic vom LAN her erlaube.


mit deinen regeln würgst du aber alle interfaces != eth0 ab, also auch loopback.

besser wäre es zu sagen:
ipchains -A input -i <externes interface> -p tcp -y -j REJECT

damit blockst du alle tcp-pakete mit gesetztem syn-bit, die von aussen kommen. in deinen regeln hast du übrigens udp komplett durchgelassen. an deiner stelle würde ich aber auf netfilter wechseln, ist sicherer durch connection_tracking. achja, deny ist böse, reject ist besser :)
vermeidet unnötigen traffic.

-j

Belkira
05.11.02, 15:11
Ich verwende einen Linuxserver (RedHat 6.4),

Ach übrigens, 6.4 gibt es nicht. Allenfalls 6.2. Die erste .3 war die 7.3.


Die Daemons dürfen uneingeschränkt Verbindungen nach aussen aufbauen,
ich bearbeite ja nur die INPUT-Chain.

Du, das ist mir klar, auch wenn ich iptables User erster Stunde bin. Aber auf localhost geht TCP-mäßig bei Dir nichts mehr (das hat Jasper ja bereits kommentiert). Du kannst gerne mal die zweite Regel ums -l (loggen) erweitern.

Tkpunish
05.11.02, 21:54
@ Belkira
Hast Recht, die Version ist 6.1



@ Jasper

mit deinen regeln würgst du aber alle interfaces != eth0 ab, also auch loopback.

Ich denke, das ist die Lösung, ich probiere es mal mit den ipppX Interfaces...



achja, deny ist böse, reject ist besser
Reject erzeugt eine "Paket abgewiesen"-Nachricht,
und der Rechner soll ja möglichst stealth sein,
also besser einfach wegschmeissen :) ...oder?

Danke für die Tipps, ich werde Morgen mal testen....

Jasper
06.11.02, 09:13
Original geschrieben von Tkpunish

Reject erzeugt eine "Paket abgewiesen"-Nachricht,
und der Rechner soll ja möglichst stealth sein,
also besser einfach wegschmeissen :) ...oder?


auch 'keine antwort' ist eine antwort :)
generell sollten nur illegale pakete wie x-mas, null, private_networks, etc. gedroppt werden. ansonsten reject. mit drop veranlasst du die gegenseite zum wiederholten senden, d.h. statt 2 paketen gehen 5 pakete oder mehr über die leitung, muss nicht sein. und wenn man icmp komplett blockt, schiesst man sich selbst ins knie.

-j

Tkpunish
08.11.02, 13:28
So, Danke für Eure Hilfe,

Ich filtere nun nur die externen Interfaces,
ICMP wird nicht komplett geblockt, sondern nur Pinganfragen,
mein Server antwortet auf keinen Ping mehr,
die Ports der Netzwerkdienste FTP, Mail etc.
sind dicht, UDP sollte ich nicht offen haben.
hier die funktionierende Filterliste:

ipchains -A input -i eth0 -j ACCEPT
ipchains -A input -s 192.168.0.0/16 -j ACCEPT
ipchains -A input -s 127.0.0.1/32 -j ACCEPT
ipchains -A input -p TCP -i ippp0 -s 0.0.0.0/0 -y -j DENY
ipchains -A input -p TCP -i ippp1 -s 0.0.0.0/0 -y -j DENY
ipchains -A input -i ippp0 -p icmp --icmp-type echo-request -j DENY
ipchains -A input -i ippp1 -p icmp --icmp-type echo-request -j DENY