Назад | Перейти на главную страницу

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

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

Динамическое перенаправление портов на уровне приложения (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 для своего исходящего соединения.

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