Как я могу настроить прокси SOCKS через ssh с аутентификацией на основе пароля на CentOS?

10

Я знаю, как настроить простой прокси с использованием ssh -D, но я хочу использовать аутентификацию на основе имени пользователя и пароля для этого случая. Там в любом случае?

davyzhang
источник

Ответы:

5

Динамическая переадресация портов уровня приложения ( 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) используется для проверки комбинации имени пользователя и пароля.

кванты
источник
4

ssh -Dне требует запрашивать пароль для доступа, и с текущей реализацией нельзя заставить требовать пароль. Если вы хотите, вы можете настроить многоуровневый прокси-сервер, используя существующий http-сервер (например, apache), который затем использует туннель ssh для своего исходящего соединения.

Опять же, если вы заберетесь так далеко от сорняков, то, вероятно, вы идете по неверному пути и, возможно, вам придется переосмыслить то, что вы пытаетесь достичь.

tylerl
источник