PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ip tables für http konfigurieren



realtec
26.01.05, 21:58
Hallo zusammen!
Wie kann ich erreichen, daß Rechner aus meinem lokalen Netz Datenverbindungen zu Rechnern im Internet aufbauen können und auch deren Antwort erhalten, aber der Aufbau von Verbindungen aus dem Internet ins
lokale Netz unterbunden wird?

klemens
26.01.05, 22:17
aber der Aufbau von Verbindungen aus dem Internet ins
lokale Netz unterbunden wird?

Wenn Du einen Router hast, ist das sowieso der Fall, dass keiner von draussen rein kann, außer Du konfigurierst das extra.

Müsste sich auf der SuSEfirewall2 einstellen lassen.

Ansonsten :

iptables -P FORWARD DROP
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --sport 53 -j ACCEPT

(kann mir irgendwer verraten, warum es keine Policy "REJECT" gibt?)

Matzetronic
26.01.05, 23:45
Hi,

etwas besser wäre es evtl. so:

iptables -P FORWARD DROP
iptables -A FORWARD -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTERNES_DEVICE -o $EXTERNES_DEVICE -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $INTERNES_DEVICE -o $EXTERNES_DEVICE -p tcp --dport 53 -m state --state NEW -j ACCEPT


Gruß,
Matze

PS.: Für vernünftige Filterung fehlt da aber noch so einiges....

klemens
26.01.05, 23:54
Hi,

etwas besser wäre es evtl. so:

iptables -P FORWARD DROP
iptables -A FORWARD -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTERNES_DEVICE -o $EXTERNES_DEVICE -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $INTERNES_DEVICE -o $EXTERNES_DEVICE -p tcp --dport 53 -m state --state NEW -j ACCEPT


Gruß,
Matze

PS.: Für vernünftige Filterung fehlt da aber noch so einiges....

Ich hab absolut nichts gegen -m state und die genauere Angabe der Interfaces und mein --sport 80 ist vielleicht auch nicht das Gelbe vom Ei:

Nur bei DNS behaupte ich einmal, dass es -p udp ist ..

Falls ich unrecht habe, bitte sagen.

cane
27.01.05, 09:05
Nur bei DNS behaupte ich einmal, dass es -p udp ist ..

Falls ich unrecht habe, bitte sagen.

Das stimmt in 99 % - man kann DNS aber auch prinzipiell über TCP betreiben...

Die Regeln:


iptables -I OUTPUT -o $ExterneNetzwerkkarte -p UDP --sport 1024:65535 --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -I INPUT -i $ExterneNetzwerkkarte -p UDP --sport 53 --dport 024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT

Hier findest Du noch zusätzliche Infos: http://www.linuxwall.de/german/doc/DNS.html

Scheinbar benötigen ältere Windowsversionen andere Ports. Kann da jemand mehr zu sagen?

Das wäre falls es stimmt dann interessant wenn dein Router DNS forwarded.

mfg
cane

Matzetronic
27.01.05, 23:28
hi,

sorry, mein fehler.
ja, normalerweise läuft eine dns-anfrage auf udp - zonentransfers auf tcp. allerdings glaube ich, dass man eine anfrage auch mit tcp machen kann (ungetestet).

gruß,
matze

klemens
27.01.05, 23:35
Mit iptraf oder sonst einem ähnlichem Programm wird man sicher schnell feststellen können, ob jetzt DNS -p tcp oder udp braucht.

Und wenn das mit -m state nicht geht, dann halt ausschreiben .. ist ja wirklich nicht viel Aufwand, das einfach auszuprobieren.

Eigentlich sollte es ja doch per -m state related gehen? Zumindest hab ich irgendwo im Hinterkopf, dass man bei einer iptables-Firewall ein connection-tracking eröffnet und dann nur noch mehr Ausgang regelt, hmm auch schon lange nicht mehr mit iptables auseinandergesetzt :confused:

__________________________________________________ ___
EDIT (hab das einmal so ausprobiert):


bash-2.05b# iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
bash-2.05b# iptables -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
bash-2.05b# iptables -P INPUT DROP
bash-2.05b# cd gleichweg/
bash-2.05b# wget linuxforen.de
--00:42:51-- http://linuxforen.de/
=> `index.html'
Resolving linuxforen.de... 213.30.246.173
Connecting to linuxforen.de[213.30.246.173]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11,631 [text/html]

100%[=====================================>] 11,631 --.--K/s

00:42:51 (80.40 KB/s) - `index.html' saved [11631/11631]

bash-2.05b# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT udp -- anywhere anywhere state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
bash-2.05b#

Also ich würde sagen, dass das auch mit udp geht ... oder hab ich jetzt einen Knopf im Hirn

cane
28.01.05, 06:14
Wie ich schon sagte wird in 99 % aller Fälle UDP verwendet...

mfg
cane

klemens
28.01.05, 12:36
Wie ich schon sagte wird in 99 % aller Fälle UDP verwendet...

mfg
cane

autsch - ich muss da einen Thread verwechselt haben. Da gings um eine ähnliche Frage und, ob man -p udp auch mit -m state verwenden kann - find ich jetzt leider nicht - sorry fürs "unpassende" Posting.

Harry
28.01.05, 14:19
Hi,

für DNS wird Client-seitig immer UDP verwendet, es sei denn, ein Zonentransfer wird durchgeführt (mit dig, nslookup etc.). Zudem verwenden DNS-Clients senderseitig Ports > 1023 (weil sie ja idR mit User-Privilegien laufen).

Kommunizieren dagegen zwei DNS-Server miteinander, so werden Records ebenfalls über UDP ausgetauscht, der Absenderport des anfragenden Servers ist in diesem Fall 53, ebenso wie der Port beim angefragten Server. Für Zonentransfers gelten dann die gleichen Regeln wie bei einer Client-Server-Kommunikation.

DNS und Connection-Tracking: Eines der Features von netfilter/iptables war ja gerade das Connection-Tracking und damit die Möglichkeit, nicht nur session-basierte Verbindungen (tcp) zu tracken, sondern auch näherungsweise "verbindungslose" Verbindungen (udp) zu tracken, was auch ganz passabel funktioniert.

Hoffe, ein bisschen zur Ver-/Entwirrung beigetragen haben zu können ;)

Harry

Matzetronic
28.01.05, 21:46
hi,

harry hat recht, iptables kann connection-tracking bei udp. das sieht man auch, wenn man einfach mal ein "cat /proc/net/ip_conntrack |grep udp" macht:


udp 17 67 src=127.0.0.1 dst=127.0.0.1 sport=32769 dport=53 src=127.0.0.1 dst=127.0.0.1 sport=53 dport=32769 [ASSURED] use=1
udp 17 166 src=192.168.11.2 dst=192.168.11.5 sport=3508 dport=53 src=192.168.11.5 dst=192.168.11.1 sport=53 dport=3508 [ASSURED] use=1


gruß,
matze