[Problem] iptables nat | Transparenter Proxy: Geht das noch irgendwie?

Reise-Holger

Neuer User
Mitglied seit
27 Jan 2016
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Hallo liebes Forum! :D
Ich bin Anfänger was Freetz angeht, habe aber in den letzten Tagen schon einiges alleine hinbekommen. Jetzt bin ich leider an einem Punkt, wo ich partout nicht weiterkomme. Könnt ihr helfen?

Ziel: Privoxy als transparenter Proxy auf 7270_v2
Status: Freetz und Privoxy laufen (FW 54.06.06., aktuelles Freetzt trunk), Filter-Regeln in Privoxy funktionieren und können editiert werden

Was jetzt fehlt ist die Transparenz. Ich will an den Clients keinen Proxy einstellen, sämtlicher Traffic soll via iptables durch privoxy gedrückt werden.
Ich habe im make menuconfig so ziemlich alles angewählt, was mit iptables zu tun hat. Auch replacekernel habe ich versucht. Wenn ich jetzt aber versuche die NAT-Regel zu erstellen (siehe hier) bekomme ich immer folgende Meldung:

Code:
root@fritz:/var/mod/root# iptables -t nat -A PREROUTING -p tcp -i lan --dport 80
 -j REDIRECT --to 8118
iptables v1.4.11.1: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
root@fritz:/var/mod/root#

Offenbar fehlen mir da Module. Welche brauche ich für mein Vorhaben und wie bekomme ich die noch rein?

Zwischenzeitlich habe ich schon selbst mit gesundem Halbwissen versucht, ip_nat irgendwie rein zu bekommen. Dafür habe ich in trunk/make/iptables/Config.in einfach mal an dieser Stelle die Kernel-Version so abgeändert, dass die Einschränkung nicht greift (FREETZ_KERNEL_VERSION_2_6_19_MIN), weil mein Kernel hat ja die 2.6.32.60.

Code:
config FREETZ_MODULE_ip_nat
    bool "ip_nat.ko"
    depends on FREETZ_KERNEL_VERSION_2_6_19 && FREETZ_REPLACE_KERNEL
    select FREETZ_MODULE_ip_conntrack
    default n
    help
        The Full NAT option allows masquerading, port forwarding and other
        forms of full Network Address Port Translation. It is controlled by
        the `nat' table in iptables: see the man page for iptables(8).

Danach war ip_nat auch tatsächlich auf der Freetz Infoseite unter den Modulen aufgelistet. Das änderte aber leider überhaupt nichts an meinem Problem, daher habe ich das erstmal wieder rückgängig gemacht.

Ich habe schon extrem viel über Probleme mit iptables gelesen. Geht es mit der aktuellen Firmware etwa garnicht mehr? Falls dem so ist: Mit welcher FW funktioniert es denn noch?

Könnt ihr helfen? LG, Holger
 
Zuletzt bearbeitet:
Update:
Ein bisschen komme ich voran. Ich habe mich nochmal in der trunk/make/iptables/Config.in ausgetobt und einige Abhängigkeiten auskommentiert. Dann das Image neu erstellt mit replacekernel, und siehe da: Wenn ich jetzt auf der Infoseite von Freetz schaue, sehe ich (mutmaßlich) alle benötigten Mods (siehe Screenshot).

2016-01-28_00h36_12.jpg

ABER: Trotzdem bekomme ich im Putty beim modprobe immernoch die Meldung, dass das alles fehlt. :mad:

Code:
root@fritz:/var/mod/root# modprobe ip_tables
root@fritz:/var/mod/root# modprobe iptable_filter
root@fritz:/var/mod/root# modprobe x_tables
root@fritz:/var/mod/root# modprobe xt_tcpudp
root@fritz:/var/mod/root# modprobe ipt_REDIRECT
modprobe: module ipt_REDIRECT not found in modules.dep
root@fritz:/var/mod/root# modprobe ip_nat
modprobe: module ip_nat not found in modules.dep
root@fritz:/var/mod/root# modprobe iptable_nat
modprobe: module iptable_nat not found in modules.dep
root@fritz:/var/mod/root#

So richtig weiter bringt mich das also doch noch nicht. Help!

Warum sehe ich die Module auf der Konfigurationsseite? Wie kann ich prüfen ob sie wirklich da sind? In diesem Ticket habe ich was von "insmod" anstatt "modprobe" gelesen. Wie benutze ich das?
 
Zuletzt bearbeitet:
Moins


Bleib lieber bei modprobe, es hat zwar kein Argument für die Hilfe, aber wenn du es versuchst...
Code:
modprobe -h
modprobe: invalid option -- h
BusyBox v1.20.2 (2014-09-26 13:25:19 CEST) multi-call binary.

Usage: modprobe [-alrqvsD] MODULE [symbol=value]...

        -a      Load multiple MODULEs
        -l      List (MODULE is a pattern)
        -r      Remove MODULE (stacks) or do autoclean
        -q      Quiet
        -v      Verbose
        -s      Log to syslog
        -D      Show dependencies
Aha, es kennt also den -l Parameter und sogar -D :D
Code:
modprobe -D vfat
insmod /lib/modules/2.6.32.61/kernel/fs/fat/fat.ko
insmod /lib/modules/2.6.32.61/kernel/fs/fat/vfat.ko
Löst also auch die Abhängigkeiten auf.
...und es schaut in modules.dep und modules.aliases nach, so gelingt auch ein...
Code:
modprobe vfat
...fürs laden, und...
Code:
modprobe -r vfat
...zum Entladen.

Die Preisfrage lautet also: Wo befinden sich deine Module und warum stehen die nicht in modules.dep und modules.aliases :?:
 
Zuletzt bearbeitet:
Ah, das ist ja schon mal ein Ansatz. :)
Also, laut modprobe -l fehlen die besagten Module (z. B. ipt_REDIRECT) wohl tatsächlich.

Code:
root@fritz:/var/mod/root# modprobe -l
kernel/net/netfilter/xt_limit.ko
kernel/net/netfilter/xt_pkttype.ko
kernel/drivers/net/wireless/ath_hal.ko
kernel/lib/lzo/lzo_decompress.ko
kernel/fs/fat/vfat.ko
kernel/net/sched/sch_htb.ko
kernel/net/netfilter/xt_length.ko
kernel/drivers/net/wireless/wlan_acl.ko
kernel/net/ipv4/netfilter/ip_tables.ko
kernel/drivers/block/compcache/ramzswap.ko
kernel/drivers/net/wireless/avm_ath_extensions.ko
kernel/drivers/net/nlaudio/ulpcmlink.ko
kernel/net/netfilter/xt_multiport.ko
kernel/drivers/char/dect_io/dect_io.ko
kernel/net/sched/sch_llq.ko
kernel/drivers/isdn/capi_codec/capi_codec.ko
kernel/drivers/scsi/scsi_wait_scan.ko
kernel/drivers/userman/userman_mod.ko
kernel/net/sched/sch_atm.ko
kernel/fs/fat/fat.ko
kernel/net/kspeedtest/kspeedtest.ko
kernel/drivers/dsld/kdsldmod.ko
kernel/drivers/net/wireless/wlan_wep.ko
kernel/drivers/net/wireless/wlan_ccmp.ko
kernel/net/ipv4/netfilter/ipt_REJECT.ko
kernel/drivers/rtc/rtc-core.ko
kernel/drivers/net/wireless/ath_dfs.ko
kernel/drivers/net/wireless/ath_pci.ko
kernel/fs/jffs2/jffs2.ko
kernel/drivers/net/nlaudio/nlaudio.ko
kernel/net/sched/cls_basic.ko
kernel/net/sched/sch_hfsc.ko
kernel/net/netfilter/xt_iprange.ko
kernel/drivers/char/Piglet_noemif/Piglet_noemif.ko
kernel/drivers/isdn/isdn_fon5/zzz/isdn_fbox_fon5.ko
kernel/drivers/rtc/rtc-avm.ko
kernel/drivers/char/flash_update/flash_update.ko
kernel/net/sched/sch_sfq.ko
kernel/drivers/usb/class/cdc-acm.ko
kernel/fs/fuse/fuse.ko
kernel/lib/lzo/lzo_compress.ko
kernel/drivers/usb/serial/option.ko
kernel/drivers/char/ubik2/pcmlink.ko
kernel/net/sched/cls_u32.ko
kernel/net/netfilter/xt_mark.ko
kernel/drivers/net/wireless/ath_rate_atheros.ko
kernel/net/sched/cls_tcindex.ko
kernel/net/netfilter/xt_tcpudp.ko
kernel/drivers/net/wireless/wlan_tkip.ko
kernel/drivers/net/wireless/ath_spectral.ko
kernel/net/netfilter/xt_mac.ko
kernel/drivers/isdn/avm_dect/avm_dect.ko
kernel/net/sched/sch_cbq.ko
kernel/net/ipv4/netfilter/iptable_filter.ko
kernel/drivers/net/wireless/wlan.ko
kernel/drivers/block/loop.ko
kernel/drivers/net/wireless/wlan_xauth.ko
kernel/drivers/net/wireless/wlan_scan_sta.ko
kernel/net/ipv4/netfilter/iptable_raw.ko
kernel/drivers/usb/class/usblp.ko
kernel/drivers/usb/serial/usbserial.ko
kernel/net/ipv4/netfilter/ipt_LOG.ko
kernel/net/sched/sch_red.ko
kernel/drivers/block/nbd.ko
kernel/net/netfilter/xt_MARK.ko
kernel/drivers/char/led_module.ko
kernel/fs/fat/msdos.ko
kernel/net/netfilter/x_tables.ko
kernel/drivers/dsl/dsl_ur8.ko
kernel/drivers/net/wireless/wlan_scan_ap.ko
kernel/net/sched/sch_tbf.ko
kernel/net/sched/sch_prio.ko
kernel/drivers/usb/serial/ftdi_sio.ko

Aber, warum ist ipt_REDIRECT denn dann unter fritz.box:81/cgi-bin/status/mod/info sichtbar (Screenshot oben)?

Der Parameter -D hilt mir ja nicht, weil er ja nur auf Module antwortet, die bereits vorhanden sind, oder?

Code:
root@fritz:/var/mod/root# modprobe ipt_REDIRECT -D
modprobe: module ipt_REDIRECT not found in modules.dep

Tja, die Preisfrage ist kniffelig. Mir fehlt irgendwie der Lösungsweg. Wie und wo müssten die Module denn sein?
Andere Moduldateien (also diese *.ko) finde ich im freetz-linux in diesem Pfad:
\\freetz-linux\freetz\trunk\kernel\modules-ur8-7270_06.05\net\ipv4\netfilter

Dort liegt auch "ip_tables.ko", was ja ein erfolgreich geladenes Modul wäre. Eine Datei namens "ipt_REDIRECT" finde ich hingegen nicht. Müsste die dort sein? Wenn ja: Einfach vor dem "make" dort hinein kopieren? Und wo bekomme ich die her?

Ich hoffe ich stell mich nicht zu dusselig an. Nicht weggehen, koyaanisqatsi! :-D
 
Für Module die nicht in die modules.dep und modules.aliases können, weil die readonly ist, musst du dann tatsächlich zu insmod greifen.
Dem insmod wird ja, wie bei Ausgabe mit modprobe -D auf ein in modules.dep eingetragenes Module, inklusive Abhängigkeiten, zu sehen ist, der volle Pfad zum Module angegeben.
Dafür braucht insmod die Definitionen (modules.dep, modules.aliases) nicht.

Aber du brauchst die Module und die richtige Ladereihenfolge dafür.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.