SP-H ohne SIPPROXY

      Hi, hier mal wieder ein neuen Zwischenstand.Ich habe das Setup weiter verschlangt. Auf IPv4-Ebene bin ich mit dem aktuellen Setup sehr zufrieden. Mit dem aktuellen Setup habe ich alle Services hinter der nachgelagerten Fritzbox. Von aussen sind nur die Port offen, die wirklich benötigt werden, also VPN (udp
      500,4500), für VoIP habe ich jetzt die Telekom-Netze (über DSL), sowie SIPGATE über DSL/LTE) konfiguriert. ICMP ist nun auch freigegeben. Optional könnte man noch 443 zur Fritzbox freigeben, aber das brauch ich nicht, daher im Skript fw.sh.v1.0 auskommentiert, gleiches gilt für SIP von aussen. Es werden auch nur Ports weiter geleitet, die benötigt werden. Wenn alle Ports zur Fritz.box weitergeleitet werden sollen, kann man ebenfalls vornehmen, Dann müsste man noch alle Ports freischalten, wenn das von Intresse ist.

      ---
      Vorbereitend sollte man die folgenden Themen/Threads bearbeitet durchgehen:tools zum ent-/verschlüsseln der config
      1. tools zum ent-/verschlüsseln der config
      2. Telnet aktivieren
      3. Schreibzugriff auf rootfs
      4. SSH dropbear einrichten
      5. Bootstrap - Erweiterungen / Änderungen auf USB auslagern
      6. Spielplatz-Extrem -- oder BusyBox-MIPS in der Vollversion und offiziell
      und nun zumSP-H ohne SIPPROXY

      ----

      - Vom Setup setze ich auf "Minimale Änderung im Flash und Nutzung eine
      USB-Stick's mit bootstrap und mount -bind /opt/orig/bin /bin"

      Im so umgebogenen Verzeichnis /opt/orig/bin habe ich:
      mv siproxd siproxd.o,

      mv voiper voiper.o
      dadurch können die Prozesse nicht mehr starten.

      mv iptables ipt, dann können keine Prozesse mehr den Regelsatz für IPv4 ändern.

      Im Script bootstrap_init.sh starte ich das Firewall-Scipt fw.sh einmalig.

      Hier nun die 3 Teile zusammen gefasst:

      bootstrap_init.sh (nur die relevanten Teile)

      Shell-Script

      1. #!/bin/sh
      2. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin
      3. export PATH
      4. killall -9 voiper
      5. killall -9 siproxd
      6. #wait for dsl
      7. while [ $(date | cut -d ' ' -f 7) = 1970 ]; do sleep 1 ; done
      8. /opt/bin/fw.sh
      9. /opt/bin/route.sh


      Ausserdem empfehle ich Euch noch eine kleines Routing-Skript auszuführen und so das Routing für Telekom-VoIP auch im Routing immer über DSL zu leiten:

      route.sh

      Shell-Script

      1. #!/bin/sh
      2. route add -net 217.0.0.0 netmask 255.255.224.0 ppp256




      fw.sh.v1.0.txt

      Im Kopf müsst Ihr natürlich noch Eure Werte für SPHLAN (Client-Netzwerk des SPH), SPHIP (eigene IP im SPHLAN) und FritzboxIP (im SPHLAN) eintragen.

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „danXde“ ()

      Hallo danXde,

      kann es sein, dass der Link auf die fw.shv0.00.txt ins Leere führt? Jedenfalls kann ich dort keine Datei herunterladen.

      Im Übrigen mache ich gerade die ersten Gehversuche mit den von Euch erarbeiteten Möglichkeiten. Als Erstes wollte ich die RAM-Version von SP-H ohne SIPPROXY ausprobieren. Telnet hat geklappt. Root-Zugriff soweit auch. Allerdings ist mir unklar, wie ich die iptables editieren kann. Wo liegt die und lässt sie sich einfach mit vi editieren?

      Es wäre schön, wenn mir jemand einen Hinweis geben könnte.

      Dalmer27
      link nun korrigiert.

      Wenn Du sh und su aufgerufen hast, kannst Du mit iptables --list-rules, iptables -t nat --list-rules und iptables -t mangle --list-rules ie drei relevanten Tabellen aufrufen und anschauen. Editieren gibt's dann Schalter -I, -A, -N , -D ... oder wenn Du das alles erstmal nur im RAM machen möchtest, dann einfach das Skript runter laden und alle Zeilen

      ipt iptables -....
      durch
      iptables -....

      ersetzen und dann per C&P in die CLI kopieren.

      vorher aber noch um siproxd und voiper kümmern. ...im Script solltest Du auch noch schauen, welche Freigaben, Weilterleitungen aktiv sein sollen.

      Grüße

      danXde
      das mit dem blockweisen Kopieren hat gut geklappt. Ich habe jetzt zwei Varianten ausprobiert. In der einen hat das, was ich erreichen wollte geklappt. In der anderen nicht. Das muss ich jetzt noch einmal genauer untersuchen.

      Kann es sein, dass in der fw.sh.v0.99.txt im Bereich der nat-rules etwas durcheinander gekommen ist? Die VPN-Rules scheinen auf den ersten Blick nicht vollständig zu sein, tauchen aber in einer späteren Zeile wieder auf. Bei den Sip-rules ist es ähnlich.

      Grüße

      Dalmer27
      @eclp was meinst Du genau? In Version 1.0:

      Filter-Tabelle:

      Quellcode

      1. #
      2. #Wer HTTPS zur Fritzbox braucht
      3. #
      4. #ipt iptables -A FORWARD -d $FRITZBOXIP/32 -i gre+ -p tcp -m tcp --dport 443 -j ACCEPT
      5. #ipt iptables -A FORWARD -d $FRITZBOXIP/32 -i ppp256 -p tcp -m tcp --dport 443 -j ACCEPT


      NAT-Tabelle

      Quellcode

      1. # Wer HTTPS zur Fritzbox braucht
      2. #
      3. #ipt iptables -t nat -A PREROUTING -i gre+ -p tcp --dport 443 -j DNAT --to-destination $FRITZBOXIP
      4. #ipt iptables -t nat -A PREROUTING -i ppp256 -p tcp --dport 443 -j DNAT --to-destination $FRITZBOXIP


      zwei Tabellen...ergo nix mit Zusammenfassen.

      ;o)

      Grüße

      danXde
      hab mal alles eingerichtet
      aber nach eneustart hat scih dsl nicht mehr aufgebaut?

      hab die regeln auf das eingegrenzt was ich brauche
      war das zuviel gelöscht?

      Quellcode

      1. #/bin/sh
      2. # Default = 192.168.2.1
      3. SPHIP="192.168.x.x"
      4. #Default = 192.168.2.0
      5. SPHLAN="192.168.x.x"
      6. #Default = 192.168.2.2
      7. FRITZBOXIP="192.168.178.1"
      8. # ipt iptables --list-rules
      9. ipt iptables --flush
      10. ipt iptables --delete-chain
      11. ipt iptables -P INPUT DROP
      12. ipt iptables -P FORWARD ACCEPT
      13. ipt iptables -P OUTPUT ACCEPT
      14. ipt iptables -A INPUT -i lo -j ACCEPT
      15. #
      16. # ICMP generell erlauben
      17. #
      18. ipt iptables -A INPUT -p icmp -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
      19. #
      20. #
      21. #
      22. ipt iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
      23. ipt iptables -A INPUT ! -i in_0 -p udp -m udp --dport 69 -j DROP
      24. ipt iptables -A INPUT -d 172.10.10.10/32 -p udp -m udp --dport 69 -j ACCEPT
      25. ipt iptables -A INPUT -d 255.255.255.255/32 -p 47 -j DROP
      26. ipt iptables -A INPUT -s 169.254.0.0/16 ! -i br0 -j DROP
      27. ipt iptables -A INPUT -s 127.0.0.0/8 ! -i br0 -j DROP
      28. ipt iptables -A INPUT -s $SPHLAN/24 ! -i br0 -j DROP
      29. ipt iptables -A INPUT -i br0 -p udp -m udp --dport 67 -j ACCEPT
      30. ipt iptables -A INPUT -d $SPHIP/32 -i br0 -p icmp -j ACCEPT
      31. ipt iptables -A INPUT -d $SPHIP/32 -i br0 -p tcp -m tcp --dport 22 -j ACCEPT
      32. ipt iptables -A INPUT -d $SPHIP/32 -i br0 -p tcp -m tcp --dport 23 -j ACCEPT
      33. ipt iptables -A INPUT -d $SPHIP/32 -i br0 -p tcp -m tcp --dport 53 -j ACCEPT
      34. ipt iptables -A INPUT -d $SPHIP/32 -i br0 -p udp -m udp --dport 53 -j ACCEPT
      35. ipt iptables -A INPUT -d $SPHIP/32 -i br0 -p tcp -m tcp --dport 80 -j ACCEPT
      36. ipt iptables -A INPUT -d $SPHIP/32 -i br0 -p tcp -m tcp --dport 8080 -j ACCEPT
      37. ipt iptables -A INPUT -i br0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 10/sec --limit-burst 50 -j ACCEPT
      38. ipt iptables -A INPUT -i br0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
      39. ipt iptables -A INPUT ! -i br0 -j DROP
      40. ipt iptables -A OUTPUT -d 127.0.0.1/32 -o ppp256 -j DROP
      41. ipt iptables -A OUTPUT -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT
      42. ipt iptables -A FORWARD -d 172.10.10.1/32 -j ACCEPT
      43. ipt iptables -A FORWARD -m mark --mark 0x80000000/0x80000000 -j ACCEPT
      44. ipt iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
      45. ipt iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
      46. ipt iptables -A FORWARD -s $SPHLAN/24 ! -i br0 -j DROP
      47. ipt iptables -A FORWARD ! -s $SPHLAN/24 -i br0 -j DROP
      48. ipt iptables -A FORWARD -i br0 -o rmnet0 -j DROP
      49. ipt iptables -A FORWARD -s $SPHLAN/24 -i br0 -j ACCEPT
      50. ipt iptables -A FORWARD -d 192.168.0.0/16 -i br0 -o ppp256 -j DROP
      51. ipt iptables -A FORWARD -d 172.16.0.0/12 -i br0 -o ppp256 -j DROP
      52. ipt iptables -A FORWARD -d 10.0.0.0/8 -i br0 -o ppp256 -j DROP
      53. ipt iptables -A FORWARD -d 192.168.0.0/16 -i br0 -o gre+ -j DROP
      54. ipt iptables -A FORWARD -d 172.16.0.0/12 -i br0 -o gre+ -j DROP
      55. ipt iptables -A FORWARD -d 10.0.0.0/8 -i br0 -o gre+ -j DROP
      56. ipt iptables -A FORWARD -i nas+ -o ppp+ -j DROP
      57. ipt iptables -A FORWARD -i ppp+ -o nas+ -j DROP
      58. ipt iptables -A FORWARD -d 169.254.0.0/16 -i br0 -j DROP
      59. ipt iptables -A FORWARD -s 169.254.0.0/16 ! -i br0 -j DROP
      60. ipt iptables -A FORWARD -s 127.0.0.0/8 ! -i br0 -j DROP
      61. #
      62. # Telekom VoIP
      63. #
      64. ipt iptables -A FORWARD -s 217.0.16.0/20 -d $FRITZBOXIP/32 -i ppp256 -p udp -m udp --dport 5060 -j ACCEPT
      65. ipt iptables -A FORWARD -s 217.0.0.0/20 -d $FRITZBOXIP/32 -i ppp256 -p udp -m multiport --dport 7078:7109 -j ACCEPT
      66. #
      67. # Telekom VoIP
      68. #
      69. ipt iptables -t mangle -A FWD_FILTER_LIST -d 217.0.0.0/20 -p udp -m udp --dport 5060 -j MARK --set-xmark 0x10000000/0xf0000000
      70. ipt iptables -t mangle -A FWD_FILTER_LIST -d 217.0.0.0/20 -p udp -m udp --sport 5060 -j MARK --set-xmark 0x10000000/0xf0000000
      71. ipt iptables -t mangle -A FWD_FILTER_LIST -d 217.0.16.0/20 -p udp -m multiport --dport 7078:7109 -j MARK --set-xmark 0x20000000/0xf0000000
      72. ipt iptables -t mangle -A FWD_FILTER_LIST -d 217.0.16.0/20 -p udp -m multiport --sport 7078:7109 -j MARK --set-xmark 0x20000000/0xf0000000
      73. #
      74. #
      75. #
      76. ipt iptables -t mangle -A ROUTE_CTL_LIST -d 172.10.10.0/24 -j RETURN
      77. ipt iptables -t mangle -A ROUTE_CTL_LIST -d $SPHLAN/24 -j RETURN
      78. ipt iptables -t mangle -A ROUTE_CTL_LIST -m mark --mark 0x80000000/0x80000000 -j ACCEPT
      79. ipt iptables -t mangle -A ROUTE_CTL_LIST -j FWD_FILTER_LIST


      das ist meine bootstrap

      Shell-Script

      1. #!/bin/sh
      2. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin
      3. export PATH
      4. echo ' bootstrap_init.sh PATH: ${PATH}' >> /tmp/bslog
      5. mount -o bind /opt/orig/bin /bin
      6. echo ' bootstrap_init.sh remount /opt/orig/bin /bin...' >> /tmp/bslog
      7. mkdir -p /dev/pts
      8. mount devpts /dev/pts -t devpts
      9. echo ' bootstrap_init.sh mount /dev/pts ...' >> /tmp/bslog
      10. killall -9 dhcp6s
      11. killall -9 voiper
      12. killall -9 siproxd
      13. echo ' bootstrap_init.sh killall sipproxd,voiper, dhcp6s....' >> /tmp/bslog
      14. #wait for dsl
      15. while [ $(date | cut -d ' ' -f 7) = 1970 ]; do sleep 1 ; done
      16. /opt/bin/fw.sh
      17. echo ' bootstrap_init.sh fw.sh executed ...' >> /tmp/bslog
      18. /opt/bin/route.sh
      19. echo ' bootstrap_init.sh route.sh executed ...' >> /tmp/bslog
      20. /opt/bin/busybox-mips httpd -p 8080 -h /opt/http/www -c /opt/http/httpd.conf
      21. /opt/dropbear/sbin/dropbear -B


      ok ich sehs hab die ips nicht gesetzt daran wirds wohl liegen oder=

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „halloworld“ ()

      nein kam nicht mehr drauf :(

      alles wieder rückgängig
      hab die fritte im 178.XXX netz
      speedport im 2.XXX netz
      mach gerad mal wieder alles neu

      also verstehe ich das richtig
      bootstrap vorbereiten
      die sachen auf nackten ext3 usb kopieren

      das mv brauch ich nicht?
      also nur das paket auf einen nackten ext3 stick mit der 1.0 regel datei?
      @halloworld

      also den Teil vermisse ich..auf den ersten Blick. Empfehlung von mir, kommentiere im Skript einfach mit "#" Zeilen aus, dann kannst Du sie einfach wieder einkommentieren und das Skript noch mal laufen lassen.

      Quellcode

      1. # iptables -t nat --list-rules
      2. ipt iptables -t nat --flush
      3. ipt iptables -t nat --delete-chain
      4. ipt iptables -t nat -P PREROUTING ACCEPT
      5. ipt iptables -t nat -P INPUT ACCEPT
      6. ipt iptables -t nat -P OUTPUT ACCEPT
      7. ipt iptables -t nat -P POSTROUTING ACCEPT
      8. ipt iptables -t nat -A POSTROUTING -o gre2 -j MASQUERADE --mode fullcone
      9. ipt iptables -t nat -A POSTROUTING -o gre1 -j MASQUERADE --mode fullcone
      10. ipt iptables -t nat -A POSTROUTING -o ppp256 -j MASQUERADE --mode fullcone
      11. ipt iptables -t nat -A POSTROUTING -s $SPHLAN/24 -o in_0 -j MASQUERADE --mode fullcone
      12. ipt iptables -t nat -A POSTROUTING -m mark --mark 0x80000000/0x80000000 -j MASQUERADE
      13. ipt iptables -t nat -A POSTROUTING -o ppp256 -m mark --mark 0x40000000/0xf0000000 -j MASQUERADE
      14. ipt iptables -t nat -A POSTROUTING -o ppp256 -m mark --mark 0x20000000/0xf0000000 -j MASQUERADE
      15. ipt iptables -t nat -A POSTROUTING -o ppp256 -m mark --mark 0x10000000/0xf0000000 -j MASQUERADE
      16. #
      17. # Wer VPN zur Fritzbox braucht
      18. #
      19. #ipt iptables -t nat -A PREROUTING -i gre+ -p udp --dport 500 -j DNAT --to-destination $FRITZBOXIP
      20. #ipt iptables -t nat -A PREROUTING -i gre+ -p udp --dport 4500 -j DNAT --to-destination $FRITZBOXIP
      21. #
      22. # Wer HTTPS zur Fritzbox braucht
      23. #
      24. #ipt iptables -t nat -A PREROUTING -i gre+ -p tcp --dport 443 -j DNAT --to-destination $FRITZBOXIP
      25. #ipt iptables -t nat -A PREROUTING -i ppp256 -p tcp --dport 443 -j DNAT --to-destination $FRITZBOXIP
      26. #
      27. #
      28. #
      29. ipt iptables -t nat -A PREROUTING -i gre+ -p udp --dport 5060 -j DNAT --to-destination $FRITZBOXIP
      30. ipt iptables -t nat -A PREROUTING -i gre+ -p udp -m multiport --dport 7078:7109 -j DNAT --to-destination $FRITZBOXIP
      31. ipt iptables -t nat -A PREROUTING -i ppp256 -p udp --dport 5060 -j DNAT --to-destination $FRITZBOXIP
      32. ipt iptables -t nat -A PREROUTING -i ppp256 -p udp -m multiport --dport 7078:7109 -j DNAT --to-destination $FRITZBOXIP
      33. #


      Ansonsten ist das mit dropbear etwas tricky. ...da nach dem Mount /opt/orig/bin/ /bin ...der telnet-Zugriff nicht mehr geht, musst Du sicherstellen, das Du vorher per SSH Zugriff hast. Dazu must Du entweder dein Hostkey vom PC im SP-H hinterlegen, oder die passwd, shadow mit Username und Passwort versehen.


      clearText: YourPass verschlüsselt: $1$wculExvb$fUtlnmi2VJzAqbqQRg/H20

      unter linux: makepasswd --clearfrom=- --crypt-md5 <<< YourPass

      grüße

      danXde