[fli4l] Frage zur Firewall (Input-Chain)

Christoph Schulz fli4l at kristov.de
So Aug 16 14:56:50 CEST 2015


Hallo!

K.  Dreier schrieb:

> Dann schlicht auf dem fli4l direkt, also mittels plink einen SOCKS
> geöffnet (Bsp-Prot 1234), womit der SOCKS ja auf 127.0.0.1 liefe. Auch
> hier habe ich versucht, mittels PREROUTING die
> NET_2-http-(Internet-)Anfragen und einem REDIRECT:1234 das auf den
> localhost-SOCKS-Port umzubiegen. Geht auch nicht. In dieser Variante
> meine ich, daß ich doch zumindest sämtliche FORWARD-Regeln umgehen
> müsste, oder?!

Ich verstehe dein Setup nicht ganz.

Ein REDIRECT leitet _nicht_ auf localhost o.ä. um. Ein REDIRECT ersetzt die 
Ziel-Adresse durch die (primären) Adresse der Schnittstelle, auf der das 
Paket hereinkam. Will heißen: Wenn deine Anfrage von außen via eth1 
hereinkommt, und eth1 hat bei dir die Adresse 192.168.1.1, dann ist das neue 
Ziel nach dem REDIRECT die 192.168.1.1, _nicht_ 127.0.0.1. Wenn dein lokaler 
SOCKS-Proxy also auf 127.0.0.1 horcht, wird er vom REDIRECT _nicht_ 
erreicht. Wenn du die Adresse komplett umschreiben musst (also z.B. auf 
localhost), dann musst du ein ganz normales DNAT nehmen, also:

PF_PREROUTING_x='if:IP_NET_2_DEV:any any any:1234 DNAT:127.0.0.1'

Aber ich habe von SOCKS wenig Ahnung, deshalb habe ich vielleicht auch nicht 
verstanden, was du eigentlich erreichen willst. Ist dein Ziel eine Art 
transparenter SOCKS-Proxy? Also die Clients nutzen z.B. HTTP oder was auch 
immer, und der fli4l leitet diese über den SOCKS-Proxy, der von plink oder 
ss5 bereitgestellt wird, um? Wie Stefan in seinem Beitrag schrieb, solltest 
du zuerst versuchen, den Zugriff auf SOCKS-Proxy "an sich" zum Laufen zu 
bringen, bevor du Firewall-Regeln für transparente Port- und 
Adressumsetzungen u.ä. entwickelst. Letztere sind nämlich gelegentlich etwas 
"tricky"...


Viele Grüße,
-- 
Christoph Schulz
[fli4l-Team]



Mehr Informationen über die Mailingliste Fli4L