PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IPCHAINS Beispiel



Temp
20.09.02, 16:55
Moin Leute,

wollt mit IPCHAINS ne FW aufsetzen, die Howtos recht schön, nur geht mir das ganze etwas zu tief. :)

Naja, wollt mal fragen wer ne IPCHAINS FW schon am rennen hat? Könnt mal einer sein FW Script posten dann check ich da glaub leichter durch.

Wär voll nett
Thx

Gruß Temp

Windoofsklicker
20.09.02, 17:25
#! /bin/sh
#script zum starten des ipforwarding und definition der firewall regeln

#ip forwarding enablen
echo 1 > /proc/sys/net/ipv4/ip_forward

#alle bestehenden regeln "flushen"
ipchains -F output
ipchains -F input
ipchains -F forward

#alles forwarden und maskieren
ipchains -A forward -i ppp0 -p all -j MASQ

#ports 0 bis 1024 fuer tcp und udp sperren
ipchains -A input -i ppp0 -p tcp --destination-port 0:1024 -l -j DENY
ipchains -A input -i ppp0 -p udp --destination-port 0:1024 -l -j DENY

#bekannte ports fuer tcp und udp sperren
ipchains -A input -i ppp0 -p tcp --destination-port 1080 -l -j DENY
ipchains -A input -i ppp0 -p tcp --destination-port 5000 -l -j DENY
ipchains -A input -i ppp0 -p tcp --destination-port 8080 -l -j DENY
ipchains -A input -i ppp0 -p tcp --destination-port 1243 -l -j DENY
ipchains -A input -i ppp0 -p tcp --destination-port 1999 -l -j DENY
ipchains -A input -i ppp0 -p tcp --destination-port 6776 -l -j DENY
ipchains -A input -i ppp0 -p tcp --destination-port 7789 -l -j DENY
ipchains -A input -i ppp0 -p tcp --destination-port 12345 -l -j DENY
ipchains -A input -i ppp0 -p tcp --destination-port 31337 -l -j DENY
ipchains -A input -i ppp0 -p tcp --destination-port 54320 -l -j DENY
ipchains -A input -i ppp0 -p tcp --destination-port 54321 -l -j DENY
ipchains -A input -i ppp0 -p udp --destination-port 1080 -l -j DENY
ipchains -A input -i ppp0 -p udp --destination-port 5000 -l -j DENY
ipchains -A input -i ppp0 -p udp --destination-port 8080 -l -j DENY
ipchains -A input -i ppp0 -p udp --destination-port 1243 -l -j DENY
ipchains -A input -i ppp0 -p udp --destination-port 1999 -l -j DENY
ipchains -A input -i ppp0 -p udp --destination-port 6776 -l -j DENY
ipchains -A input -i ppp0 -p udp --destination-port 7789 -l -j DENY
ipchains -A input -i ppp0 -p udp --destination-port 12345 -l -j DENY
ipchains -A input -i ppp0 -p udp --destination-port 31337 -l -j DENY
ipchains -A input -i ppp0 -p udp --destination-port 54320 -l -j DENY
ipchains -A input -i ppp0 -p udp --destination-port 54321 -l -j DENY

#ping und traceroute "abschalten"
ipchains -A input -i ppp0 -p icmp -l -j DENY
ipchains -A output -i ppp0 -p icmp -l -j DENY

Windoofsklicker
22.09.02, 09:59
...und läufts?

Temp
23.09.02, 13:40
Moin,

sorry bin no net dazugekommen - seit 3 tagen schlag ich mich mit nem Server rum der meint das er total spacken muss :)

Ich meld mich dann wenn ichs probiert habe - muss mi ja auch einlesen -> will scho wissen was i da mach ;)


Gruß Temp

ReSeT
23.09.02, 13:55
Ich würde von dieser Variante absehen, denn es kann sich sehr ungünstig auswirken, die Ports, die gesperrt sein sollen, einzeln zu schließen.

ich würde es vielleicht so lösen:




echo 1 > /proc/sys/net/ipv4/ip_forward

ipchains -F output
ipchains -F input
ipchains -F forward

ipchains -A forward -i ppp0 -p all -j MASQ

# z.B für HTTP,FTP und SSH Zugriff erlauben

ipchains -a input -i ppp0 -p tcp --destination-port 80 -j ACCEPT
ipchains -a input -i ppp0 -p udp --destination-port 80 -j ACCEPT
ipchains -a input -i ppp0 -p tcp --destination-port 21 -j ACCEPT
ipchains -a input -i ppp0 -p udp --destination-port 21 -j ACCEPT
ipchains -a input -i ppp0 -p tcp --destination-port 22 -j ACCEPT
ipchains -a input -i ppp0 -p udp --destination-port 22 -j ACCEPT

# jetzt die default policy

ipchains -P input -i ppp0 REJECT



ICMP und traceroute verbieten ist meiner Auffassung nach, wie sich selbst ins Knie schiessen ;)

GreetZ

ReSeT

Harry
23.09.02, 16:28
Hallo,

die Variante von ReSeT ist schon der wesentlich günstigere Ansatz für einen IP-Paketfilter.
Jedoch die Zeilen mit "... -p udp" sind auch hier zuviel des Guten - also raus damit.

Desweiteren benötigst Du für FTP auch die Freigabe des Datenkanals; wenn Du davon ausgehen kannst, dass Benutzer von außen den FTP-Server nur per Browser abfragen, dann findet ausschließlich passives-FTP Anwendung. Auf dem FTP-Server sollte die Port-Range für die Datenports ebenfalls in der Konfiguration eingeschränkt werden (beim ProFTPD beispielsweise über die Option "PassivePorts 60200 60300"). Insofern mußt Du auch diese Port-Range auf dem IP-Paketfilter freigeben.



# Anti-Spoofing für alle Interfaces aktivieren
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $i; done

# Forwarding aktivieren
echo 1 > /proc/sys/net/ipv4/ip_forward

# Default-Chains flushen
ipchains -F output
ipchains -F input
ipchains -F forward

# Default-Policy für die forward-Chain und Masquerading
ipchains -P forward DENY
ipchains -A forward -i ppp0 -j MASQ

# z.B für HTTP,FTP und SSH Zugriff erlauben
ipchains -a input -i ppp0 -p tcp --destination-port 80 -j ACCEPT
ipchains -a input -i ppp0 -p tcp --destination-port 21 -j ACCEPT
ipchains -a input -i ppp0 -p tcp --destination-port 22 -j ACCEPT

# Ports für passiven FTP-Datenkanal
ipchains -a input -i ppp0 -p tcp --destination-port 60200:60300 -j ACCEPT

# jetzt die default policy für die input-Chain
ipchains -P input -i ppp0 REJECT




ICMP und traceroute verbieten ist meiner Auffassung nach, wie sich selbst ins Knie schiessen ;)

Jo - zumindestens für ICMP stimmt das (traceroute setzt ja zum Teil ebenfalls auf ICMP auf; tracert, die Win-Variante, sogar vollständig).

Mal sehen, welche Verbesserungen hier noch gepostet werden :)

Harry

Windoofsklicker
27.09.02, 16:50
also... ich habe keinerlei beeinträchtigungen feststellen können.
was ist denn sooo schlecht 'dran icmp abzuschalten?
mir ist schon klar, dass ping und traceroute nicht mehr funktionieren, allerdings benötige ich das auch nicht.. und wenn, kann man ja die chain just löschen.

Harry
27.09.02, 19:25
Original geschrieben von Windoofsklicker
was ist denn sooo schlecht 'dran icmp abzuschalten?


ICMP wird nun mal nicht nur für ping und traceroute verwendet. ICMP hat seinen Namen von "Internet Message Control Protocol" und diese Bezeichnung deutet auf die Funkionalität hin: Es ist ein "Telegrammdienst", der für die Fehlerübermittlung in IP-basierten Netzen Anwendung findet.

Typische Nachrichten, die über ICMP übermittelt werden sind beispielsweise "Destination Unreachable" (Port, Host, Network), "Redirect", "Source Quench" oder "Fragmentation needed". ICMP-Meldungen werden typischerweise durch Fehler in der gleichen oder übergeordneten Protokollschicht (IP, TCP, UDP etc.) ausgelöst.

Wenn diese Meldungen aufgrund eines Filters nicht empfangen oder versendet werden können, dann hat der potentielle Empfänger keinerlei Möglichkeiten auf eine eventuelle Störung in der Datenkommunikation zu reagieren und die Verbindung stirbt in der Regel.

Harry