Bagaimana saya bisa mengatur proxy SOCKS melalui ssh dengan otentikasi berbasis kata sandi pada CentOS?

10

Saya tahu cara menyiapkan proxy sederhana menggunakan ssh -D, tetapi saya ingin menggunakan otentikasi berbasis nama pengguna dan kata sandi untuk kasus ini. Apakah ada cara?

davyzhang
sumber

Jawaban:

5

Penerusan port tingkat aplikasi dinamis ( ssh -D) tidak mendukung fitur ini. Lihatlah Dante untuk:

[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

Tetapi perhatikan bahwa kata sandi dikirimkan dalam bentuk teks .

Untuk mengkonfigurasi otentikasi berdasarkan nama pengguna, buka /etc/sockd.conffile dan tambahkan / ubah yang berikut:

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
}

Periksa soket pendengaran setelah memulai:

# 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        

Lihatlah file log ( /var/log/messagesatau /var/log/dante.log) jika Anda menemukan kesalahan.

PS: file kata sandi sistem ( /etc/passwd) digunakan untuk memverifikasi kombinasi nama pengguna dan kata sandi.

kuanta
sumber
4

ssh -Dtidak memerlukan memerlukan kata sandi untuk akses, dan dengan implementasi saat ini tidak dapat dibuat untuk memerlukan kata sandi. Jika Anda mau, Anda bisa mengatur proxy multi-tahap menggunakan server http yang ada (mis. Apache) yang kemudian menggunakan ssh tunnel untuk koneksi keluarnya.

Kemudian lagi, jika Anda sampai sejauh itu ke rumput liar, maka Anda mungkin akan salah jalan dan mungkin perlu memikirkan kembali apa yang ingin Anda capai.

tylerl
sumber