Socks-Plug-Gateway
Unfertig
Die Aufgabe war, eine Applikation, die nicht Socks-fähig gemacht werden konnte, auf einen per Socks-Proxy erreichbaren Host zugreifen zu lassen. In diesem Fall war das der Mailexchanger der Domain example.com.
Dies sollte über eine Art Plug-Gateway umgesetzt werden, das den Port der Gegenstelle lokal anbietet.
Für die Implementierung dieses Plug-Gateway gibt es zwei Alternativen:
- Mit xinetd, GNU netcat und tsocks (z.B. auf Debian)
- Mit xinetd und Hobbit netcat (z.B. auf CentOS, MacOS oder OpenBSD)
GNU Netcat
In /etc/tsocks.conf wird festgelegt, welche Netze lokal erreichbar sind und welcher Socks-Server benutzt werden soll, wenn per tsocks ein Netz angesprochen werden soll, das nicht lokal ist. Wichtig dabei ist, daß der Eintrag zu server in den mit local definierten Netzen enthalten ist.
local = 192.168.1.0/255.255.255.0 server = 192.168.1.2 server_type = 4 server_port = 1080
In /etc/xinetd.d/plug-via-socks.conf wird die Umsetzung des Port 2525 auf localhost vorgenommen:
service plug-via-socks { disable = no type = UNLISTED bind = 127.0.0.1 port = 2525 id = plug-via-socks socket_type = stream protocol = tcp user = nobody wait = no server = /usr/bin/tsocks server_args = /bin/nc -w 10 208.77.188.166 25 }
Hobbit Netcat
Das ursprüngliche Hobbit-Netcat unterstützt bereits Verbindungen per Socks, so daß der Umweg über den tsocks-Wrapper nicht erforderlich ist. Hier kann der nc-Forwarder direkt aus der xinetd.conf den Socks-Server ansprechen:
service plug-via-socks { disable = no type = UNLISTED bind = 127.0.0.1 port = 2525 id = plug-via-socks socket_type = stream protocol = tcp user = nobody wait = no server = /usr/bin/nc server_args = -X 4 -x 192.168.1.2:1080 -w 10 208.77.188.166 25 }