Ответы:
Динамическая переадресация портов уровня приложения ( ssh -D
) не поддерживает эту функцию. Взгляните на Данте вместо:
[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
Но учтите, что пароль передается в открытом виде .
Чтобы настроить аутентификацию на основе имени пользователя, откройте /etc/sockd.conf
файл и добавьте / измените следующее:
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
}
Проверьте разъемы прослушивания после запуска:
# 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
Посмотрите на файл журнала ( /var/log/messages
или /var/log/dante.log
), если вы что-то не так.
PS: файл системного пароля ( /etc/passwd
) используется для проверки комбинации имени пользователя и пароля.
ssh -D
не требует запрашивать пароль для доступа, и с текущей реализацией нельзя заставить требовать пароль. Если вы хотите, вы можете настроить многоуровневый прокси-сервер, используя существующий http-сервер (например, apache), который затем использует туннель ssh для своего исходящего соединения.
Опять же, если вы заберетесь так далеко от сорняков, то, вероятно, вы идете по неверному пути и, возможно, вам придется переосмыслить то, что вы пытаетесь достичь.