CentOS에서 비밀번호 기반 인증으로 ssh를 통해 SOCKS 프록시를 설정하려면 어떻게해야합니까? 프록시를 설정하는 방법을

을 사용하여 간단한 프록시를 설정하는 방법을 알고 ssh -D있지만이 경우 사용자 이름과 비밀번호 기반 인증을 사용하고 싶습니다. 방법이 있습니까?



답변

동적 응용 프로그램 수준 포트 전달 ( ssh -D)은이 기능을 지원하지 않습니다. 대신 Dante 를 살펴보십시오 .

[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 터널을 사용합니다.

그런 다음 다시 잡초로 들어가면 잘못된 길로 가고 아마도 달성하려는 것을 다시 생각해야 할 수도 있습니다.