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?

davyzhang
quelle

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.

Quanten
quelle
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.

tylerl
quelle