Dante sockd kann den Datenverkehr nicht über mehrere virtuelle IPs weiterleiten

Dante sockd kann den Datenverkehr nicht über mehrere virtuelle IPs weiterleiten

Ich habe Dante sockd so konfiguriert, dass der Datenverkehr über mehrere IP-Schnittstellen weitergeleitet wird. Die Konfiguration sieht im Wesentlichen so aus:

logoutput: /var/log/sockd.log
debug: 1
socksmethod: username none

internal: eth0 port = 60000
external: eth0
internal: eth0:0 port = 60000
external: eth0:0
internal: eth0:1 port = 60000
external: eth0:1
internal: eth0:2 port = 60000
external: eth0:2
...

external.rotation: same-same

client pass {

  from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0

  socksmethod: username

}

socks pass {

from: 0.0.0.0/0 to: 0.0.0.0/0

socksmethod: username

protocol: tcp udp

}

Wenn „external.rotation = same.same“ deaktiviert ist, wird der Datenverkehr über den Server geleitet, geht aber nur von einer Adresse aus. Wenn es aktiviert ist, erhalte ich bei Verwendung von curl den folgenden Fehler:

curl: (7) Can't complete SOCKS5 connection to x.x.x.x:80. (3)

und dieser Fehler in den Protokollen:

May 15 07:38:38 (1431689918.007569) sockd[4887]: info: block(1): tcp/accept ]: x.x.x.x.56066 y.y.y.y.60000: request was not performed due to error: could not get address to use on external side: using external.rotation = same-same, local address x.x.x.x was selected for forwarding from our local client x.x.x.x.56066 to target z.z.z.z.80, but that local address is not set on our external interface(s).  Configuration error in /etc/sockd.conf?

xxxx ist meine IP-Adresse, yyyy ist die serverseitige Adresse und zzzz ist die Zieladresse.

Das lässt mich darauf schließen, dass der Server erwartet, sich als meine Adresse auszugeben, dies jedoch nicht konfiguriert ist. Was korrekt ist, da ich möchte, dass der Datenverkehr so ​​angezeigt wird, als käme er von der Adresse yyyy, obwohl über hundert davon zur Auswahl stehen.

Ich kann in der Dokumentation nichts finden, das zu dem angezeigten Fehler passt, und ich vermute, dass eine Art Round-Robin-Konfiguration erforderlich ist, aber die kann ich auch nicht finden. Hat das schon mal jemand auf diese Weise zum Laufen gebracht?

Antwort1

Folgendes hat bei mir mit Dante 1.4.2 auf CentOS 6.x 64bit funktioniert, obwohl ich keine Authentifizierung verwende, da ich über SSH-Tunnel auf Dante zugreife (die IPs meines Servers sind 1.1.1.1, 2.2.2.2 und 3.3.3.3):

logoutput: syslog stdout stderr /var/log/sockd.log
internal: eth0:0 port = 1080
internal: eth0:1 port = 1080
internal: eth0:2 port = 1080
external: eth0:0
external: eth0:1
external: eth0:2
external.rotation: same-same
user.privileged: root
user.unprivileged: sockd
#user.libwrap: sockd
clientmethod: none
socksmethod: none
client pass {
    from: 1.1.1.1/32 to: 0.0.0.0/0
    log: error # connect disconnect
}
client pass {
    from: 2.2.2.2/32 to: 0.0.0.0/0
    log: error # connect disconnect
}
client pass {
    from: 3.3.3.3/32 to: 0.0.0.0/0
    log: error # connect disconnect
}
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    command: bind connect udpassociate
    log: error # connect disconnect iooperation
}
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    command: bindreply udpreply
    log: error # connect disconnect iooperation
}

Anschließend habe ich von meinem Client-Rechner aus drei lokale Tunnel erstellt:

ssh -L 10801:1.1.1.1:1080 -L 10802:2.2.2.2:1080 -L 10803:3.3.3.3:1080 [email protected]

Ich glaube, die meisten Probleme, die ich mit den Einstellungen hatte, waren auf Berechtigungsprobleme (Client-Pass und Socks-Pass) zurückzuführen.

Wenn weiterhin Probleme auftreten, können Sie eine Alternative zu Dante ausprobieren: 3Proxy.

Sie würden 3proxy folgendermaßen konfigurieren:

nserver 8.8.8.8
auth none
daemon
socks -p1080 -i1.1.1.1 -e1.1.1.1
socks -p1080 -i2.2.2.2 -e2.2.2.2
socks -p1080 -i3.3.3.3 -e3.3.3.3
pidfile /var/run/3proxy.pid
log /dev/null

Hoffe das hilft.

Antwort2

Haben Sie versucht, die IP-Weiterleitung für Ihr Betriebssystem zu aktivieren?

sysctl -w net.ipv4.ip_forward=1

oder

echo 1 > /proc/sys/net/ipv4/ip_forward

Mehr Informationen @http://linuxconfig.org/how-to-turn-on-off-ip-forwarding-in-linux

verwandte Informationen