Come posso configurare un proxy SOCKS su ssh con autenticazione basata su password su CentOS?


10

So come configurare un proxy semplice utilizzando ssh -D, ma per questo caso desidero utilizzare l'autenticazione basata su nome utente e password. C'è un modo?

Risposte:


5

Il port forwarding dinamico a livello di applicazione ( ssh -D) non supporta questa funzione. Dai un'occhiata al Dante per invece:

[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

Si noti che la password viene trasmessa in chiaro .

Per configurare l'autenticazione basata su nome utente, aprire il /etc/sockd.conffile e aggiungere / modificare quanto segue:

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
}

Controllare le prese di ascolto dopo l'avvio:

# 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        

Dai un'occhiata al file di registro ( /var/log/messageso /var/log/dante.log) se sbagli qualcosa.

PS: il file delle password di sistema ( /etc/passwd) viene utilizzato per verificare una combinazione di nome utente e password.


4

ssh -Dnon richiede una password per l'accesso e con l'implementazione corrente non è possibile richiedere una password. Se lo si desidera, è possibile impostare un proxy multi-stage utilizzando un server http esistente (ad es. Apache) che quindi utilizza il tunnel ssh per la sua connessione in uscita.

Poi di nuovo, se arrivi così lontano tra le erbacce, probabilmente stai percorrendo la strada sbagliata e forse potrebbe essere necessario ripensare ciò che stai cercando di realizzare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.