Cách định cấu hình cho Máy chủ proxy xác thực


8

Máy chủ proxy công việc của tôi yêu cầu xác thực với thông tin xác thực người dùng miền Microsoft AD. Mọi người đều biết nó hoạt động như thế nào: Nếu bạn đăng nhập vào máy trạm Windows, các yêu cầu truy cập internet dựa trên trình duyệt "Internet Explorer" của bạn sẽ được xác thực tự động (và được xác định) bằng thông tin đăng nhập tên miền của bạn.

Tôi thấy rằng Firefox cũng có thể xác thực đối với các máy chủ proxy này và từ lâu cho rằng chúng "làm điều gì đó đặc biệt". Gần đây, một đồng nghiệp đã cài đặt Linux Mint trong máy ảo và thật ngạc nhiên là anh ta đang bận cập nhật từ internet. Khi tôi hỏi làm thế nào anh ta có được nó, anh ta nhún vai và nói "Nó chỉ hoạt động"

Điều này nhắc tôi xem lại các cài đặt proxy. Tôi chạy Kubfox (với sự kết hợp của các ứng dụng G * và K *, nhưng tôi chỉ sử dụng các ứng dụng GTK khi tôi tin rằng chúng tốt hơn bất kỳ thứ gì K *)

Tôi vẫn có một bản sao khách Windows đang chạy trong VirtualBox VM, chủ yếu để In và truy cập các trang web nội bộ / doanh nghiệp (Cả hai đều yêu cầu xác thực và nhận dạng qua thông tin xác thực tên miền MS) cũng như để thay đổi mật khẩu tên miền của tôi mỗi ngày .

Vì vậy, sẽ rất hữu ích nếu tôi có thể khiến [một số / hầu hết / tất cả] các ứng dụng Linux của mình hoạt động thông qua máy chủ proxy. Nhu cầu cấp thiết nhất của tôi là để Akregator và Muon có thể làm việc. Các ứng dụng khác có thể có lợi là một số ứng dụng tự động cập nhật (Ví dụ: Virtual Box Extentions) hoặc tự bao quanh trình duyệt (Nhận thêm chủ đề / Giấy tờ tường / vv xuất hiện và sử dụng wget thường xuyên)

Các máy khách SSH / SCP quản lý để hoạt động thông qua tường lửa mà không cần xác thực.

Cách đúng (công cụ và / hoặc thủ tục) để định cấu hình này là gì, lý tưởng ở một vị trí vì phải duy trì mật khẩu của tôi ở nhiều vị trí là một công thức để bị khóa khỏi tài khoản của tôi: - /

Ồ, và sẽ là một giấc mơ thành hiện thực nếu tôi có thể có tương đương với tiện ích vô hiệu hóa / bật proxy "Quick Proxy" của Firefox, ví dụ như một cú nhấp chuột để bật hoặc tắt việc sử dụng proxy, mà không cần phải đăng xuất và đăng nhập lại, tùy thuộc vào mạng tôi đang sử dụng. Trên thực tế nghĩ về nó, một tiện ích nên được đào tạo để xem địa chỉ IP của bạn và biết khi nào bạn cần sử dụng proxy! Nhưng tôi lạc đề.

Tôi tưởng tượng việc chạy một máy chủ proxy cục bộ có thể tự động thêm xác thực và chuyển tiếp đến một máy chủ proxy ngược dòng khi cần có thể là giải pháp thực sự duy nhất.


Đó là loại proxy nào? Dựa trên Linux hay dựa trên windows?
midnightsteel

Máy chủ Proxy dựa trên Windows.
Johan

Có vẻ như proxy đang vượt qua cấu hình và tường lửa của bạn cho phép lưu lượng truy cập web đi từ tất cả các máy chủ. Đây là cách đồng nghiệp của bạn có thể duyệt mà không cần xác thực. Là máy chủ proxy mà bạn đang sử dụng ISA hoặc TMG?
midnightsteel

Tường lửa không cho phép ra khỏi tất cả các máy chủ, nếu không tôi sẽ bỏ qua máy chủ proxy. "Pass by configure" nghĩa là gì? Hãy để tôi làm rõ: Từ máy trạm Linux của tôi, ứng dụng duy nhất có thể truy cập internet là a) Firefox (sử dụng cấu hình proxy và xác thực proxy được lưu trữ trong Firefox), cũng như các ứng dụng chạy trong Windows VM (Lưu ý - Windows VM là một thành viên tên miền và người dùng xác thực với tên miền khi đăng nhập)
Johan

Tôi không biết đó là ISA hay TMG. Nếu giải pháp là khác nhau tùy thuộc vào đó, tôi sẽ quan tâm đến cả hai giải pháp.
Johan

Câu trả lời:


2

Từ máy trạm Linux của tôi, ứng dụng duy nhất có thể truy cập internet là a) Firefox (sử dụng cấu hình proxy và xác thực proxy được lưu trữ trong Firefox), cũng như các ứng dụng chạy trong Windows VM (Lưu ý - Windows VM là thành viên miền và người dùng xác thực với tên miền khi đăng nhập)

Tùy chọn giải pháp : Chạy proxy web trên Windows VM của bạn. Thiết lập hệ thống của bạn để sử dụng ví dụ đó làm proxy của bạn.

Vì Windows VM của bạn đã được xác thực và lưu lượng được cho phép thông qua nó, nên thiết lập proxy SOCKS trên phiên bản VM đó sẽ tập trung vào nhu cầu xác thực của bạn. Nếu nó chỉ dành cho bạn và hộp của bạn, điều này sẽ ổn và có lẽ khá đơn giản.

Cõng theo ý tưởng này là để có một trình nền SSHD chạy trên Windows VM để bạn có thể thực hiện những việc như đường hầm SSH SOCKS từ các hộp khác của mình thông qua VM:

ssh -D 1080 windows-user@windows-vm

Đối với những ứng dụng có thể có vấn đề hoặc nơi bạn không muốn cấu hình lại ứng dụng, bạn có thể sử dụng sshtunnel , nơi sẽ thiết lập quy tắc iptables để định tuyến lưu lượng. Hoạt động cho các hệ thống Linux và Mac.

Nếu bạn cần tránh cài đặt proxy trên chính máy ảo Windows, bạn có thể thiết lập hộp proxy Squid được định cấu hình để xác thực chính nó dựa trên windows AD. Hướng dẫn thực hiện điều đó nằm ở đây:

Tùy chọn giải pháp : Proxy mực được xác thực qua AD / NTLM

http://techmiso.com/1934/howto-install-squid-web-proxy-server-with-active-directory-authentication/( liên kết chết )

Một giải pháp proxy NTLM khác, mặc dù tôi nghĩ rằng giải pháp này thực sự chạy trên máy Windows:

Tùy chọn giải pháp : proxy NTLM http://cntlm.sourceforge.net/


Tôi đang điều tra cntlm rồi, nó cũng nằm trong kho ubfox tiêu chuẩn.
Johan

1
Giải pháp cntlm có vẻ đầy hứa hẹn. Cho đến nay nó cho phép wget và crom hoạt động. Wget hoạt động bằng cách có địa chỉ cntlm: port trong tệp .wgetrc. Chromium hoạt động được định cấu hình để sử dụng cái mà nó gọi là "cài đặt proxy hệ thống của máy tính", nơi tôi đã định cấu hình proxy trong cài đặt hệ thống KDE-> Proxy-> Cấu hình thủ công. Chromium sử dụng động này, tức là nếu tôi thay đổi cài đặt trong KDE, Chromium sẽ bị ảnh hưởng mà không phải khởi động lại crom. TBC
Johan

Cho đến nay điều này vẫn KHÔNG hoạt động cho Konqueror, Muon hoặc Akregator, không ai trong số đó tiếp xúc trực tiếp với cài đặt Proxy. Tôi tin rằng Muon sử dụng apt-get trong nền, có thể cấu hình theo cách tương tự như wget. Tôi không hiểu sự khác biệt giữa các tùy chọn cấu hình KDE "Proxy được chỉ định thủ công" và KDE "Proxy hệ thống", đây có thể là chìa khóa để làm cho nó hoạt động cho tất cả các ứng dụng. Tôi cũng nhận thấy rằng các cài đặt KDE không được đưa vào tập lệnh shell, ngay cả sau khi đăng xuất và đăng nhập lại, điều này gây thất vọng.
Johan

Giải pháp proxy-qua-MS-Windows không được tôi chấp nhận. Những người khác có thể cảm thấy khác nhau nhưng việc chạy toàn bộ phiên bản HĐH bổ sung chỉ để thêm xác thực cho các gói mạng bên ngoài là một chút quá nhiều tài nguyên và không loại bỏ sự phụ thuộc của tôi vào MS Windows.
Johan

1
Tôi đã giải quyết vấn đề bằng cách sử dụng cntlm theo đề xuất ở trên và rất khuyến khích điều đó. Vấn đề tôi gặp phải với hầu hết các ứng dụng KDE không sử dụng cài đặt toàn cầu KDE là do định dạng không chính xác được sử dụng trong việc chỉ định máy chủ proxy trong cài đặt proxy KDE. Ngẫu nhiên Chromium dường như không nhạy cảm với điều này (Tôi đã bỏ qua http://khi định cấu hình proxy)
Johan

8

cntlm cung cấp một giải pháp, cùng với một số cấu hình.

Các bước cơ bản để làm theo là:

  1. Cài đặt cntlm.
  2. Chỉnh sửa tập tin cấu hình của nó tại /etc/cntlm.conf, các ý kiến ​​bao gồm làm cho nó đủ dễ dàng.
  3. Thêm một máy chủ proxy (hoặc hai).
  4. Chỉ định tên người dùng và tên miền NT của bạn ở những nơi thích hợp và xóa mục nhập mật khẩu.
  5. Bắt đầu dịch vụ cntlm, ví dụ thông qua

    $ sudo /etc/init.d/cntlm start
    
  6. cntlm cung cấp một cách để kiểm tra proxy và tạo hàm băm từ mật khẩu của bạn - ví dụ: bằng lệnh (với quyền root)

    $ cntlm -I -M http://www.test.com
    
  7. cntlm sẽ nhắc mật khẩu tên miền của bạn. Sau đó, nó sẽ kiểm tra các cơ chế xác thực khác nhau đối với máy chủ proxy được cấu hình. Khi một phương thức làm việc được tìm thấy, nó sẽ in hai dòng cần đi vào tập tin cấu hình của nó.

  8. Dừng máy chủ cntlm và thêm các dòng thu được ở bước 6 ở trên vào /etc/cntlm.conf.
  9. Khởi động lại cntlm

Bây giờ cntlmđang chạy và sẵn sàng để được sử dụng. Một số địa điểm có thể được sử dụng để cấu hình các chương trình khác nhau để sử dụng nó. cntlmsau đó sẽ thêm mã thông báo xác thực miền NT vào các gói gửi đi và chuyển tiếp chúng đến máy chủ proxy được định cấu hình.

Sử dụng Qt / KDE

Đối với các ứng dụng gốc Qt / KDE, chỉ định "Sử dụng máy chủ proxy được cấu hình thủ công" trong Cài đặt hệ thống KDE -> Cài đặt mạng -> Cài đặt proxy . Proxy được chỉ định như http://localhostvới cổng 3128 (Mặc định cntlmtrừ khi bạn thay đổi nó). Các ứng dụng này được cập nhật động với các cài đặt mới và không cần khởi động lại hoặc đăng xuất / đăng nhập để cập nhật cài đặt.

Dropbox và khách hàng của Google

Nhiều ứng dụng có thể sử dụng các biến môi trường shell. Đáng chú ý ở đây là các ứng dụng khách Dropbox và Google Earth. Đối với các ứng dụng này, sử dụng các biến môi trường shell như sau:

no_proxy=localhost,127.0.0.0/8,*.local
NO_PROXY=localhost,127.0.0.0/8,*.local
all_proxy=socks://localhost:3128/
ALL_PROXY=socks://localhost:3128
http_proxy=http://localhost:3128
HTTP_PROXY=http://localhost:3128
ftp_proxy=http://localhost:3128
FTP_PROXY=http://localhost:3128
https_proxy=http://localhost:3128
HTTPS_PROXY=http://localhost:3128

s3cmd, cuộn tròn, và wget

Lưu ý: Một số ứng dụng sẽ chỉ sử dụng tên viết thường, một số khác chỉ sử dụng tên viết hoa, một số ứng dụng trước tiên sẽ thử tên này, sau đó là tên khác.

s3cmd(Ứng dụng khách Amazon S3) curlwgetcó thể được định cấu hình thông qua các tệp cấu hình của riêng họ nếu muốn. Điều này rất hữu ích vì họ đọc các tệp cấu hình của riêng họ trên mỗi lệnh gọi. Vì các chương trình này thường có thời gian tồn tại ngắn (Một lệnh gọi duy nhất tồn tại sau khi hoàn thành tải xuống) rất hữu ích.

Định dạng cho s3cmdtrong ~/.s3cfglà:

proxy_host = localhost
proxy_port = 3128

Định dạng cho wget in ~/.wgetrclà:

https_proxy = http://localhost:3128
http_proxy = http://localhost:3128
ftp_proxy = http://localhost:3128

Định dạng cho curltrong ~/.curlrclà:

proxy = localhost:3128

Mặt khác, hồ sơ shell chỉnh sửa hoặc các tệp cấu hình môi trường khác thường yêu cầu khởi động lại, đăng xuất và đăng nhập lại hoặc tương tự. Đó là giá trị điều tra /etc/environment, ~/.pam_environment, ~/.kde/env/proxy.shvv vì đây là những nơi tiêu chuẩn để thiết lập cài đặt proxy cấu hình thông qua biến môi trường vỏ, đặc biệt là ảnh hưởng đến tất cả người dùng và các dịch vụ trên hệ thống.

Tôi cũng hiểu rằng có thể thay đổi cài đặt môi trường trên cơ sở mỗi ứng dụng bằng cách sử dụng các .desktoptệp tương ứng của họ nhưng chưa thử (thành công).

VirtualBox

VirtualBox có thể được cấu hình để sử dụng proxy (ví dụ: để kiểm tra và tải xuống các bản cập nhật phần mềm) bằng GUI của nó hoặc sử dụng lệnh:

$ VBoxManage setextradata global GUI/ProxySettings \
    "proxyEnabled,localhost,3128,authDisabled,,"

Để hoàn thiện hơn, để vô hiệu hóa nó, hãy sử dụng:

$ VBoxManage setextradata global GUI/ProxySettings \    
    "proxyDisabled,,,authDisabled,,"

Firefox

Đối với Firefox tôi sử dụng addon QuickProxy. Bản thân Firefox nếu được cấu hình thủ công để sử dụng máy chủ proxy trên máy cục bộ, do đó QuickProxy chỉ bật / tắt cài đặt.

ĐÚNG CÁCH

APT (được sử dụng trong nền bởi synaptic, muon và bạn bè) sử dụng tệp cấu hình trong /etc/apt/apt.conf.d/, ví dụ: 00proxy Kích hoạt proxy cho APT được thực hiện bằng các dòng như:

Acquire::http::Proxy "http://localhost:3128";
#Acquire::ftp::proxy "ftp://localhost:3128/";
#Acquire::https::proxy "https://localhost:3128/";

Lưu ý: add-apt-repository sử dụng cấu hình gốc hoặc bạn có thể định cấu hình sudo để cho phép tất cả các cài đặt http * _proxy vượt qua.

Một kịch bản để cai trị tất cả

FWIW Tôi hiện đang trong quá trình viết một kịch bản mô-đun để bật / tắt proxy cho nhiều chương trình. Tôi đã viết các mô-đun sau:

$ ls -lF proxymanager/modules/
total 60
-rwxr-xr-x 1 root root  919 Oct  8 17:27 apt*
-rwxr-xr-x 1 root root 1037 Oct  8 13:10 bashrc*
-rwxr-xr-x 1 root root  391 Oct  8 12:18 cntlm*
-rwxr-xr-x 1 root root  684 Oct  8 12:58 curl*
-rwxr-xr-x 1 root root  609 Oct  8 13:02 dropbox*
-rwxr-xr-x 1 root root  672 Oct  8 12:18 gnome*
-rwxr-xr-x 1 root root  691 Oct  8 12:18 kde*
-rwxr-xr-x 1 root root  689 Oct  8 13:03 root_bashrc*
-rwxr-xr-x 1 root root  691 Oct  8 13:03 root_curl*
-rwxr-xr-x 1 root root  827 Oct  8 13:03 s3cmd*
-rwxr-xr-x 1 root root  454 Oct  8 13:03 survive_reboot*
-rwxr-xr-x 1 root root  860 Oct  8 13:06 suse-sysproxy*
-rwxr-xr-x 1 root root  653 Oct  8 12:46 sysenvironment*
-rwxr-xr-x 1 root root  465 Oct  8 13:04 virtualbox*
-rwxr-xr-x 1 root root  573 Oct  8 13:04 wgetrc*

Cũng như một ứng dụng điều khiển. Chúng hy vọng sẽ sớm được chuyển vào một github hoặc nhà trực tuyến khác.


Điều này đã được chuyển sang GitHub, thu được nhiều mô-đun hơn và chậm nhưng chắc chắn tiếp cận hình thức có thể sử dụng. Các kiểu mạo hiểm và mạo hiểm có thể thấy điều này hữu ích: github.com/Tahaan/proxymanager
Johan

Điều mới để tìm hiểu. Cảm ơn. Làm thế nào tôi có thể chuyển mật khẩu cho cntlm trong dòng lệnh ... Tôi không muốn bất kỳ lời nhắc nào yêu cầu nhập mật khẩu?
Vì vậy,

0

Xác thực proxy với ntlm được giải thích tốt trong các liên kết dưới đây.

Nhưng vấn đề với ntlm là bạn phải cập nhật cntlmtệp cấu hình nhiều lần trong ngày. Hãy xem xét một tình huống trong đó những người dùng khác nhau chia sẻ một máy chung và họ phải cập nhật mật khẩu AD của họ trong cntlmtệp cấu hình mỗi lần họ đăng nhập vào hệ thống. Có lẽ có một phương pháp có sẵn để tự động cập nhật cntlmtệp cấu hình bất cứ khi nào người dùng đăng nhập.


Tôi chỉ cập nhật tệp cấu hình cntlm khi mật khẩu proxy NTLM (Mật khẩu tên miền) thay đổi.
Johan
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.