Відповіді:
Динамічне переадресація портів на рівні програми ( 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-сервер (наприклад, апаш), який потім використовує тунель ssh для вихідного з'єднання.
Знову ж таки, якщо ви потрапите так далеко в бур’ян, то, ймовірно, ви йдете по неправильній дорозі і, можливо, вам доведеться переосмислити те, що ви намагаєтеся досягти.