Làm cách nào tôi có thể thiết lập proxy SOCKS qua ssh bằng xác thực dựa trên mật khẩu trên CentOS?


10

Tôi biết cách thiết lập proxy đơn giản bằng cách sử dụng ssh -D, nhưng tôi muốn sử dụng xác thực dựa trên tên người dùng và mật khẩu cho trường hợp này. Không có cách nào khác ư?

Câu trả lời:


5

Chuyển tiếp cổng cấp ứng dụng động ( ssh -D) không hỗ trợ tính năng này. Thay vào đó hãy xem 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

Nhưng lưu ý rằng mật khẩu được truyền trong Cleartext .

Để định cấu hình xác thực dựa trên tên người dùng, hãy mở /etc/sockd.conftệp và thêm / thay đổi các mục sau:

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
}

Kiểm tra các ổ cắm nghe sau khi bắt đầu:

# 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        

Hãy xem tệp nhật ký ( /var/log/messageshoặc /var/log/dante.log) nếu bạn gặp lỗi.

PS: tệp mật khẩu hệ thống ( /etc/passwd) được sử dụng để xác minh kết hợp tên người dùng và mật khẩu.


4

ssh -Dkhông yêu cầu mật khẩu để truy cập và với việc triển khai hiện tại không thể thực hiện để yêu cầu mật khẩu. Nếu bạn muốn, bạn có thể thiết lập proxy nhiều giai đoạn bằng cách sử dụng máy chủ http thoát (ví dụ apache), sau đó sử dụng đường hầm ssh cho kết nối ra bên ngoài của nó.

Sau đó, một lần nữa, nếu bạn đi quá xa vào đám cỏ dại, thì có lẽ bạn đang đi sai đường và có lẽ cần phải suy nghĩ lại những gì bạn đang cố gắng thực hiện.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.