Nhiều vương quốc và nhiều TGT trong MIT Kerberos cho Windows


10

Máy tính cục bộ của tôi sử dụng Windows 7 Pro và thuộc về lĩnh vực LR, được quản lý bởi các máy chủ AD. Tôi đăng nhập vào máy tính của mình trong khi gắn liền với mạng của vương quốc đó. Tôi có thể xem TGT với MIT Kerberos cho Windows ver. 4.0.1.

Tôi muốn truy cập tài nguyên trên một lĩnh vực nước ngoài, FR. Không có sự tin tưởng của Kerberos giữa LR và FR, nhưng chúng cho phép lưu lượng TCP giữa nhau. Tôi yêu cầu TGT cho FR với KDC (Red Hat IdM / FreeIPA) và nhập thành công mật khẩu của tôi khi bị thách thức. Một lần nữa, tôi có thể xem TGT với MIT Kerberos cho Windows ver. 4.0.1. Bây giờ tôi có thể truy cập tài nguyên trong FR qua SSH mà không cần yêu cầu mật khẩu, mặc dù có nguồn gốc từ LR.

Vấn đề là khi tôi nhận được TGT cho FR, TGT cho hiệu trưởng LR của tôi biến mất. Chỉ FR TGT được hiển thị trong MIT Kerberos. Nếu tôi khóa máy tính của mình và sau đó mở khóa bằng mật khẩu của mình, thì FR TGT đã biến mất, thay vào đó là một TGT mới.

Có vẻ như MIT Kerberos cho Windows chỉ có thể lưu trữ một TGT tại một thời điểm. Mỗi TGT hoàn toàn hoạt động cho lĩnh vực của nó cho tất cả các ý định và mục đích. Làm cách nào tôi có thể định cấu hình MIT Kerberos để cho tôi có hai TGT cùng một lúc, một cho mỗi vương quốc? Có thể "ngăn xếp" với nhiều phiên bản máy khách, mỗi trường hợp trỏ đến một KRB5_CONFIG và keytab khác nhau không? Nếu tôi không thể, có một triển khai Windows thay thế của Kerberos 5 phía máy khách sẽ, ngay cả khi không có sự tin tưởng giữa các lĩnh vực không?

Tái bút - Tôi không muốn tin tưởng. Không thể có được một sự tin tưởng.

CẬP NHẬT: Tôi đã bỏ qua một số chi tiết này trước đó vì tôi nghĩ nó có thể gây nhầm lẫn vấn đề. Nhưng dựa trên câu trả lời của Brad, nó có thể được bảo hành. Tôi hy vọng hầu hết các phần mềm cục bộ sẽ sử dụng triển khai Kerberos tích hợp trong Windows và luôn sử dụng keytab.

Tuy nhiên, những người dùng quyền lực như tôi sử dụng heimdal dưới Cygwin để SSH vào FR. Tôi hy vọng bất cứ điều gì thông qua DLL Cygwin đều sử dụng heimdal và không bao giờ thấy LR TGT (mà nó không, ít nhất là không theo mặc định). Tôi rõ ràng kinit và di chuyển trên.

Phần khó khăn dành cho những người dùng không có quyền lực mà tôi phải hỗ trợ những người không sử dụng Cygwin nhưng sử dụng PuTTY. PuTTY cho phép bạn chỉ định cả đường dẫn thư viện và DLL để triển khai GSSAPI. Chẳng hạn, tôi đang cấu hình các phiên SSH để sử dụng DLL MIT Kerberos thay vì các DLL Windows tích hợp. Tôi đã hy vọng có một DLL ngoài đó mà không bao giờ cố gắng tìm ra TGT LR (như heimdal) hoặc cho phép nhiều TGT từ nhiều cõi. Nó không phải có một cửa sổ GUI như MIT Kerberos, nhưng nó giúp.


Câu hỏi thú vị.
mfinni

Câu trả lời:


4

Chà, tôi sẽ không nói rằng nó không thể được thực hiện với Windows, nhưng tôi sẽ nói rằng giới hạn này là dựa trên phiên. Vấn đề sau đó, là cho mỗi phiên Windows lưu trữ một vé. Khi bạn khóa máy tính của mình sau đó mở khóa, một phiên khác sẽ được bắt đầu và một khóa mới được yêu cầu từ KDC. Điều tương tự xảy ra khi bạn đăng xuất sau đó vào máy tính của bạn một lần nữa. Phương pháp này thực sự là cách xác định quyền của người dùng cho các phiên máy chủ, có nghĩa là khóa / vé có thể được lưu trong bộ nhớ cache để mọi tài nguyên máy chủ hoặc phiên bạn khởi tạo không phải hỏi bạn mật khẩu, nhưng tôi chưa bao giờ nghe / đọc / nghiên cứu về nó để có thể lưu trữ nhiều hơn một.

Bây giờ, có lẽ bạn đã biết rằng đã cung cấp kiến ​​thức mà bạn đã hiển thị trong câu hỏi của mình, vì vậy tôi sẽ nói rằng dựa trên thực tế rằng Windows lưu trữ khóa bạn nhận được khi TGT được phát hành và dựa trên phiên, tôi không nghĩ rằng nó có thể với CHỈ Windows. MIT Kerberos cho Windows có thể có một cách để bắt đầu hai phiên dưới một người dùng, nhưng ngay cả khi đó, tôi không chắc tài nguyên bạn đang truy cập sẽ biết sử dụng cặp vé / khóa nào. Điều đó có ý nghĩa?

Vui lòng xem phần này để biết mô tả về cách Windows lưu trữ các cặp TGT / khóa.

Bằng cách này, câu hỏi rất hay.


Tôi đã cập nhật câu hỏi ban đầu của mình, hy vọng giải thích cách tài nguyên biết sử dụng cặp vé / khóa nào.
Toddius Zho

Một lần nữa, câu hỏi tuyệt vời, nhưng thật không may, tôi chỉ có thể trả lời (như tôi đã có) về khía cạnh bản địa của Windows khi bạn hỏi về câu hỏi ban đầu của bạn; ngoài các phần mềm / phần mềm của bên thứ 3, tôi không biết cách nào để thực hiện nó, có hoặc không có GUI. Ước gì tôi có thể được giúp đỡ nhiều hơn.
Brad Bouchard

4

OK, tôi đã đưa ra một giải pháp làm việc cần thêm một chút đánh bóng, vì vậy có thể không hoạt động trong mọi môi trường.

Điều này hoạt động với:

  1. MIT Kerberos cho Windows 4.0.1 với các công cụ hỗ trợ Windows (KSETUP.EXE, KTPASS.EXE)
  2. PuTTY 0,63
  3. Windows 7 SP1

Tôi đã tìm kiếm nguồn MIT Kerberos và tìm thấy README cho Windows . Quan tâm đặc biệt là các giá trị khác nhau cho Cache Thông tin xác thực . Nó tán thành một giá trị mặc định của API: nhưng tôi ngạc nhiên thấy đăng ký của mình sử dụng MSLSA: thay vào đó.

Tôi đã chơi xung quanh với các giá trị khác nhau của ccname dưới HKEY_CURRENT_USER\Software\MIT\Kerberos5. Tôi đã thử NHỚ: lúc đầu, dẫn đến một số hành vi thú vị. Khi mở phiên PuTTY, cửa sổ MIT Kerberos Ticket Manager của tôi sẽ khôi phục và đến nền trước, yêu cầu tôi nhập thông tin đăng nhập. Ồ Điều đó chưa từng xảy ra trước đây, nhưng than ôi, PuTTY sẽ từ chối nó. Giá trị đã làm cho tôi là FILE:C:\Some\Full\File\Path. Tôi không chắc chắn chính xác làm thế nào để bảo mật quyền truy cập vào tệp được chỉ định, vì vậy tôi sẽ để nó như một bài tập cho người đọc. Tôi đã có cùng một hành vi từ cửa sổ đến tiền cảnh, chỉ có PuTTY thích nó lần này. Cửa sổ Ticket Manager cuối cùng cũng hiển thị cả vé LR và FR. Các vé đã được chứng minh là có thể chuyển tiếp và sẽ tồn tại nhiều Windows Lock / Unlocks. GHI CHÚ:hãy chắc chắn Thoát hoàn toàn và khởi động lại Trình quản lý vé giữa các lần chỉnh sửa sổ đăng ký. Tôi chưa thử một tên miền của API: chưa.

Tôi không biết điều này có làm nên sự khác biệt hay không, nhưng tôi cũng đã chơi xung quanh với KSETUP trước khi nó bắt đầu hoạt động. Lúc đầu, một KSETUP không tham số sẽ chỉ cho tôi biết thông tin về LR. Tôi đã thêm một số thông tin về FR trên máy trạm cục bộ của tôi.

ksetup /AddKdc FOREIGN.REALM KDC.FOREIGN.REALM
ksetup /AddRealmFlags FOREIGN.REALM TcpSupported Delegate NcSupported

2

Đối với tôi, có vẻ như có một lỗi thực sự trong Kerberos cho Windows.

Tôi tìm thấy như sau:

Nếu tôi sử dụng tùy chọn "lấy vé" trong cửa sổ KfW 4.0.1, thì nó chỉ hoạt động (TM); Tôi có thể nhấn nút "Nhận vé" và nhận thêm vé vào vé ban đầu mà tôi nhận được khi đăng nhập.

Nếu tôi nhấn tùy chọn "tạo mặc định" trong cửa sổ KfW, thì từ thời điểm đó, mỗi lần tôi nhấn "lấy vé", vé mới sẽ thay thế bất kỳ vé nào là mặc định, thay vì thêm một mục khác vào danh sách vé đã biết . Kiểm tra sổ đăng ký tại thời điểm đó sẽ cho thấy rằng một ccnamemục (như trong câu trả lời của Toddius) đã được thêm vào. Loại bỏ mục nhập đó, đáng ngạc nhiên, sẽ khôi phục hành vi trước đó cho phép nhiều vé.


Tôi có thể xác nhận hành vi này. Tôi tự hỏi bạn đã nâng nó như một lỗi với MIT?
Paul Hedderly

2

Theo câu trả lời của Toddius, tôi có một đồng nghiệp trong tình huống tương tự (Windows 7 Enterprise 64-bit, đã tham gia vào miền AD, cũng chạy MIT Kerberos cho Windows 4.0.1): Bản sao Trình quản lý vé Kerberos của anh ta sẽ chỉ cho phép anh ta có một hiệu trưởng / một TGT. Bất cứ khi nào anh ta sử dụng nút "Nhận vé" để nhận TGT cho một hiệu trưởng khác, hiệu trưởng trước đó sẽ biến mất.

Tôi đã xem xét README , và hầu hết các khóa registry đã được thiết lập như mong đợi, ngoại trừ cho ccname chủ chốt ở con đường HKEY_CURRENT_USER\Software\MIT\Kerberos5. Khóa đó đã được đặt thành giá trị MSLSA:. Khắc phục của chúng tôi là thay đổi điều đó thành API:. Cụ thể hơn, các bước là:

  1. Thoát khỏi Trình quản lý vé Kerberos, cùng với tất cả các ứng dụng khác (vì bạn sẽ khởi động lại).
  2. Tại đường dẫn Registry HKEY_CURRENT_USER\Software\MIT\Kerberos5, thay đổi khóa ccname thành API:(API, rồi dấu hai chấm).
  3. Thoát regedit và khởi động lại.
  4. Sau khi đăng nhập lại, hãy chạy Trình quản lý vé Kerberos và sử dụng nút Nhận vé để nhận TGT của hiệu trưởng không phải là AD của bạn.

Với các bước trên, mọi thứ đã hoạt động và đồng nghiệp của tôi giờ đây có thể thấy nhiều hiệu trưởng / TGT cùng một lúc.

Nhân tiện, MIT Kerberos cho Windows mang đến một bộ chương trình dòng lệnh riêng (như klist) và các chương trình đó hỗ trợ nhiều bộ đệm thông tin xác thực. Trên hệ thống 64 bit của tôi, khi tôi chạy "C:\Program Files\MIT\Kerberos\bin\klist.exe" -A"sau khi nhận được nhiều TGT, tôi thấy hiệu trưởng Active Directory của mình trong bộ đệm MSLSA và sau đó tôi có một bộ đệm API cho mỗi hiệu trưởng bổ sung.

Tái bút: Đây là mục đầu tiên của tôi trên trang web này, vì vậy tôi không thể thêm nó dưới dạng nhận xét cho câu trả lời của Toddius. Xin lỗi!

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.