Risposte:
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.conf
file 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/messages
o /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.
ssh -D
non 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.