Wie kann ich einen SOCKS-Proxy über ssh mit kennwortbasierter Authentifizierung unter CentOS einrichten?


10

Ich weiß, wie ein einfacher Proxy mit eingerichtet ssh -Dwird, möchte jedoch für diesen Fall die auf Benutzernamen und Kennwörtern basierende Authentifizierung verwenden. Gibt es irgendeinen Weg?

Antworten:


5

Die dynamische Portweiterleitung ( ssh -D) auf Anwendungsebene ( ) unterstützt diese Funktion nicht. Schauen Sie sich stattdessen den Dante an für:

[I] net-proxy/dante
     Available versions:  1.1.19-r4 (~)1.2.3 (~)1.3.0 (~)1.3.1 (~)1.3.1-r1 (~)1.3.2 {debug kerberos pam selinux static-libs tcpd}
     Installed versions:  1.3.2(04:14:03 PM 11/08/2011)(pam static-libs tcpd -debug -kerberos -selinux)
     Homepage:            http://www.inet.no/dante/
     Description:         A free socks4,5 and msproxy implementation

Beachten Sie jedoch, dass das Passwort im Klartext übertragen wird .

Öffnen Sie zum Konfigurieren der auf Benutzernamen basierenden Authentifizierung die /etc/sockd.confDatei und fügen Sie Folgendes hinzu / ändern Sie Folgendes:

logoutput: syslog /var/log/dante.log

# methods for socks-rules.
method: username #rfc931

# when doing something that can require privilege, 
# it will use the userid "sockd".
user.privileged: root

# when running as usual, 
# it will use the unprivileged userid of "sockd".
user.notprivileged: sockd

pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    protocol: tcp udp
    command: bind connect udpassociate
    log: error
    method: username
}

Überprüfen Sie nach dem Start die Hörbuchsen:

# netstat -nlp | grep sockd
tcp        0      0 127.0.0.1:1080          0.0.0.0:*               LISTEN      5463/sockd          
tcp        0      0 192.168.15.36:1080      0.0.0.0:*               LISTEN      5463/sockd        

Schauen Sie sich die Protokolldatei ( /var/log/messagesoder /var/log/dante.log) an, wenn Sie etwas falsch machen.

PS: Die Systemkennwortdatei ( /etc/passwd) wird verwendet, um eine Kombination aus Benutzername und Kennwort zu überprüfen.


4

ssh -DFür den Zugriff ist kein Kennwort erforderlich, und bei der aktuellen Implementierung kann kein Kennwort erforderlich sein. Wenn Sie möchten, können Sie einen mehrstufigen Proxy mithilfe eines vorhandenen http-Servers (z. B. Apache) einrichten, der dann den SSH-Tunnel für seine ausgehende Verbindung verwendet.

Andererseits, wenn Sie so weit ins Unkraut vordringen, gehen Sie wahrscheinlich den falschen Weg und müssen möglicherweise überdenken, was Sie erreichen wollen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.