Habo Projekt? Router Script ...

Hi Leute,
ich habe gerade mal wieder alle funfe gerade sein lassen, als mir die idee kam, dass ich mir mal wieder einen router bastelln könnte. (diese idee hatten zwar schon viele aber okay *g*)

als ich dann bei der konfiguration von iptables angekommen bin habe ich festgestellt, das es doch eine sehr komplexe angelegenheit ist, wenn man iptables richtig konfigurieren möchte ...

da ich in letzer zeit öfters gefragt würde, ob es gute möglichkeiten gibt einen alten rechner zu einem router umzubauen, kamm mir die idee ein shell-script zu schreiben (was logischerweise distributions unabhängig sein soll) welches einen rechner mit 2 NIC's, wo eine mit dem WAN verbunden ist, anhand von iptables regeln zu einem router macht!

ja ich weis, das es eine vielzahl an distributionen gibt die sich ausschließlich damit befassen (z.b. Trustix FW, ipcop oder gibralta).

dennoch würde ich gern unter der flagge des habo's ein solches projekt ins leben rufen, wenn sich genug helfende helfer finden lassen die bereit wären sich aufopferungsvoll dafür bereit zu stellen *g* (z.b. um die iptables regeln zu entwerfen)

wer lust hat kann seinen beitrag gern hier leisten ...

vorstellung :

WAN ---- eth0 [ROUTER] eth1 ---- LAN

eht0 = WAN Schnittstelle = INPUT DROP ALL / OUTPUT ALL OKAY
eth1 = LAN = Erst einmal alles okay

also man soll aus dem LAN erst einmal alle dienste die "well known" ports nutzen, ansprechen können, alles was darüber liegt soll extra frei gegeben werden ...

soweit erst einmal von mir ... ich hoffe das sich genug leute finden die helfen ...

in diesem sinne ...
 
... WAN Schnittstelle = INPUT DROP ALL ...

So wirst du keine verbindung bekommen.

Du musst schon die Pakete die du angefordert hast duchlassen.

Wie alle Pakete von port 80 ausser syn duchlassen.
Sonst wird das Surfen nur auf den Wasser was. :D

mfg
 
Überflüssig... wenn du ein iptables-Howto (leichtverständlich & richtig) ins Wiki schreiben willst, ist das bestimmt ne gute Idee.
Für die Router-Lösung gibt es viel bessere fertige Lösungen, wie du ja auch schon geschrieben hast.
Für den einfachen Router, der eine Internetverbindung verteilt, würde ich das Howto von http://yolinux.com/TUTORIALS/LinuxTutorialIptablesNetworkGateway.html verwursten.
Ich sehe keinen Sinn in einem Script, wie du es vorschlägst.
 
Also,

hier mal meine Konfiguration:

Code:
root@badcat:~# iptables -v -L
Chain INPUT (policy DROP 310K packets, 37M bytes)
 pkts bytes target     prot opt in     out     source               destination
 308M  196G ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
13561  659K ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:https
3640K  175M ACCEPT     all  --  eth1   any     anywhere             anywhere
96777 5789K ACCEPT     all  --  lo     any     anywhere             anywhere
27039 1312K ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:http
  103  5376 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:smtp
1735K   87M ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:2808
33076 2574K ACCEPT     all  --  any    any     anywhere             anywhere            MAC 00:80:5A:32:F7:37
36899 2336K ACCEPT     all  --  any    any     anywhere             anywhere            MAC 00:12:F0:EA:3C:45
 4851  683K ACCEPT     all  --  vmnet1 any     anywhere             anywhere
   24  1708 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:6025

Chain FORWARD (policy ACCEPT 4534K packets, 1270M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 361M packets, 302G bytes)
 pkts bytes target     prot opt in     out     source               destination


root@badcat:~# iptables -t nat -v -L
Chain PREROUTING (policy ACCEPT 2138K packets, 127M bytes)
 pkts bytes target     prot opt in     out     source               destination
48441 2530K REDIRECT   tcp  --  eth1   any     anywhere             anywhere            tcp dpt:http redir ports 8080
33436 1636K REDIRECT   tcp  --  eth2   any     anywhere             anywhere            tcp dpt:http redir ports 8080

Chain POSTROUTING (policy ACCEPT 322 packets, 20508 bytes)
 pkts bytes target     prot opt in     out     source               destination
1053K 2363M MASQUERADE  all  --  any    any     anywhere             anywhere

Chain OUTPUT (policy ACCEPT 976K packets, 2355M bytes)
 pkts bytes target     prot opt in     out     source               destination


root@badcat:~# iptables -t mangle -v -L
Chain PREROUTING (policy ACCEPT 318M packets, 197G bytes)
 pkts bytes target     prot opt in     out     source               destination
2787K  244M MARK       all  --  any    any     myded.wlan.1.vg      anywhere            MARK set 0x1
    0     0 MARK       all  --  any    any     anywhere             myded.wlan.1.vg     MARK set 0x2

Chain INPUT (policy ACCEPT 314M packets, 196G bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 4534K packets, 1270M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 361M packets, 302G bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 366M packets, 303G bytes)
 pkts bytes target     prot opt in     out     source               destination

root@badcat:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:04:76:19:58:2D
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:24365986 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24448492 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2189009396 (2087.6 Mb)  TX bytes:1563000794 (1490.5 Mb)
          Interrupt:16 Base address:0xe400

eth1      Link encap:Ethernet  HWaddr 00:13:D4:B9:93:2A
          inet addr:10.254.13.1  Bcast:10.254.13.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:49730232 errors:0 dropped:0 overruns:0 frame:0
          TX packets:71193722 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1696793821 (1618.1 Mb)  TX bytes:1989664001 (1897.4 Mb)
          Interrupt:17

eth2      Link encap:Ethernet  HWaddr 00:08:A1:57:E1:89
          inet addr:10.254.14.1  Bcast:10.254.14.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:687686 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1331357 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:57055128 (54.4 Mb)  TX bytes:1777518172 (1695.1 Mb)
          Interrupt:18 Base address:0xe800

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:49362400 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49362400 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:368498699 (351.4 Mb)  TX bytes:368498699 (351.4 Mb)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:XXX.XXX.XXX.XXX  P-t-P:XXX.XXX.XXX.XXX  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:559209 errors:0 dropped:0 overruns:0 frame:0
          TX packets:520291 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:449140366 (428.3 Mb)  TX bytes:158999695 (151.6 Mb)

vmnet1    Link encap:Ethernet  HWaddr 00:50:56:C0:00:01
          inet addr:10.178.13.1  Bcast:10.178.13.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14180 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32336 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

eth0 ist an DSL-Modem
eth1 ist lokales LAN
eth2 ist WLAN AP
vmnet1 ist VMware Server

bevor jedoch Routing aktiv wird im Kernel muss man dieses aktivieren:

Code:
root@badcat:~# echo 1 > /proc/sys/net/ipv4/ip_forward
root@badcat:~# echo 1 > /proc/sys/net/ipv4/ip_dynaddr

Das MASQUERADE sollte man noch weiter eingrenzen.
Naja. Bisher hat sich keiner damit in mein Netzwerk geschlichen. ^^

So, viel Spaß beim tüfteln.

EDIT:

Sollte noch interesse an meiner Traffic Shaping config bestehen, dann kann ich die auch anhängen.
 
Über Sinn und Unsinn möchte ich an dieser stelle nichr debattieren, da es ein philosophisches thema ist und deine diskusion nichts bringen würde ...

@P21YALPHA

Ich danke dir für deine anteilnahme ... ich werde mich schnellst möglich mit deinen einstellungen auseinader setzen und dann eine rückmeldung geben ...

@Voodoo

auch dir danke ich für den hilfreichen link, aber wie gesagt, auch wenn es schon fertige scripts gibt, würde ich dies gerne weiter verfolgen.
 
Freut mich. ;)

Ich habe mal ein Pseudoprojekt in meiner Firma in dem Bereich durchgeführt.
Wenn du die Unterlagen brauchst, dann meld dich bei mir.
 
Zurück
Oben