Tôi có hai người dùng, giả sử người dùngA và người dùngB. người dùngA có thể sử dụng một keytab với aes nhưng không rc4 và người dùngB có thể sử dụng một keytab với rc4 nhưng không aes.
Đây là đoạn mã tạo keytab, kiểm tra và đặt nó vào vị trí:
#!/bin/sh
HIỆU TRƯỞNG="xxxxx"
# PHƯƠNG PHÁP="rc4-hmac"
# PHƯƠNG PHÁP="aes256-cts-hmac-sha1-96"
PHƯƠNG PHÁP="rc4-hmac-exp"
KEYTAB="/tmp/$PRINCIPAL.keytab.$METHOD"
MẬT KHẨU='xxxxx'
đặt -x
ô 0007
KEYTAB_TMP=$(mktemp "/tmp/$KEYTAB.XXXXXXXXXXXXXXX")
chức năng dọn dẹp {
rm -f "$KEYTAB_TMP"
}
dọn dẹp bẫy EXIT
mong đợi << EOF
đặt thời gian chờ 10
đẻ trứng/usr/bin/ktutil
chờ đợi {
"ktutil:" { gửi "addent -password -p $PRINCIPAL@FOO.COM -k 1 -e $METHOD\r" }
hết thời gian { đặt "Hết thời gian chờ dấu nhắc ktutil."; thoát 1; }
}
chờ đợi {
-re "Mật khẩu cho \S+: " { gửi "$PASSWORD\r" }
hết thời gian { đặt "Hết thời gian chờ nhắc mật khẩu."; thoát 1; }
}
chờ đợi {
"ktutil:" { gửi "wkt $KEYTAB_TMP\r" }
}
chờ đợi {
"ktutil:" { gửi "q\r" }
}
EOF
chown "$PRINCIPAL":root "$KEYTAB_TMP"
chmod ug=rw,o= "$KEYTAB_TMP"
nếu [ -s "$KEYTAB_TMP" ]
sau đó
nếu /usr/bin/klist -e -k -t -K "$KEYTAB_TMP"
sau đó
nếu su "$PRINCIPAL" -c "env KRB5_TRACE=/tmp/krb5_trace.$PRINCIPAL.$METHOD /usr/bin/kinit $PRINCIPAL@FOO.COM -V -k -t $KEYTAB_TMP"
các
mv -f "$KEYTAB_TMP" "$KEYTAB"
fi
fi
fi
Đây là dấu vết cho userB sử dụng aes:
[28458] 1625700358.740403: Nhận thông tin xác thực ban đầu cho userB@FOO.COM
[28458] 1625700358.740404: Tra cứu etypes trong keytab: aes256-cts
[28458] 1625700358.740406: Gửi yêu cầu chưa được xác thực
[28458] 1625700358.740407: Gửi yêu cầu (185 byte) tới FOO.COM
[28458] 1625700358.740408: Bắt đầu kết nối TCP với luồng 10.128.65.6:88
[28458] 1625700358.740409: Gửi yêu cầu TCP tới luồng 10.128.65.6:88
[28458] 1625700358.740410: Đã nhận câu trả lời (185 byte) từ luồng 10.128.65.6:88
[28458] 1625700358.740411: Chấm dứt kết nối TCP với luồng 10.128.65.6:88
[28458] 1625700358.740412: Phản hồi từ chủ KDC
[28458] 1625700358.740413: Đã nhận lỗi từ KDC: -1765328359/Yêu cầu xác thực trước bổ sung
[28458] 1625700358.740416: Xác thực trước bằng dữ liệu phương pháp KDC
[28458] 1625700358.740417: Xử lý các loại tiền xác thực: PA-PK-AS-REQ (16), PA-PK-AS-REP_OLD (15), PA-ETYPE-INFO2 (19), PA-ENC-DẤU THỜI GIAN (2)
[28458] 1625700358.740418: Thông tin etype đã chọn: etype rc4-hmac, salt "", params ""
[28458] 1625700358.740419: Truy xuất userB@FOO.COM từ FILE:/tmp/userB.keytab.aes256-cts-hmac-sha1-96.a148ff3d6c5ccc05f4644a2cdab2b23d (vno 0, mã hóa rc4-hmac) với kết quả: -1735/Không có bảng khóa mục được tìm thấy cho userB@FOO.COM
[28458] 1625700358.740420: Mô-đun tiền mã hóa (2) (thực) được trả về: -1765328203/Không tìm thấy mục nhập bảng khóa nào cho userB@FOO.COM
Ở đây nó đang sử dụng rc4:
[28706] 1625700362.799792: Nhận thông tin xác thực ban đầu cho userB@FOO.COM
[28706] 1625700362.799793: Tra cứu etypes trong keytab: rc4-hmac-exp
[28706] 1625700362.799795: Gửi yêu cầu chưa được xác thực
[28706] 1625700362.799796: Gửi yêu cầu (185 byte) tới FOO.COM
[28706] 1625700362.799797: Bắt đầu kết nối TCP với luồng 10.128.65.6:88
[28706] 1625700362.799798: Gửi yêu cầu TCP tới luồng 10.128.65.6:88
[28706] 1625700362.799799: Đã nhận câu trả lời (185 byte) từ luồng 10.128.65.6:88
[28706] 1625700362.799800: Chấm dứt kết nối TCP với luồng 10.128.65.6:88
[28706] 1625700362.799801: Phản hồi từ chủ KDC
[28706] 1625700362.799802: Đã nhận lỗi từ KDC: -1765328359/Yêu cầu xác thực trước bổ sung
[28706] 1625700362.799805: Xác thực trước bằng dữ liệu phương pháp KDC
[28706] 1625700362.799806: Xử lý các loại tiền xác thực: PA-PK-AS-REQ (16), PA-PK-AS-REP_OLD (15), PA-ETYPE-INFO2 (19), PA-ENC-DẤU THỜI GIAN (2)
[28706] 1625700362.799807: Thông tin etype đã chọn: etype rc4-hmac, salt "", params ""
[28706] 1625700362.799808: Truy xuất userB@FOO.COM từ FILE:/tmp/userB.keytab.rc4-hmac-exp.3ddbc476378a57f4a7f4dbb700af6316 (vno 0, mã hóa rc4-hmac) với kết quả: 0/Thành công
[28706] 1625700362.799809: Khóa AS thu được cho dấu thời gian được mã hóa: rc4-hmac/B9A0
[28706] 1625700362.799811: Encrypted timestamp (for 1625700362.799810): plain 301AA011180F32303231303730373233323630325AA10502030C3442, encrypted 88F8E7E775BC3B93D0F392D9967E061B36246899F942A33EC123103A531DB6D2FB580A3C96FA97E24A74A844A41B532506F54F4C
[28706] 1625700362.799812: Mô-đun Preauth được mã hóa_timestamp (2) (thực) được trả về: 0/Thành công
[28706] 1625700362.799813: Preauth được tạo cho yêu cầu tiếp theo: PA-ENC-TIMESTAMP (2)
[28706] 1625700362.799814: Đang gửi yêu cầu (260 byte) tới FOO.COM
[28706] 1625700362.799815: Bắt đầu kết nối TCP với luồng 10.128.65.6:88
[28706] 1625700362.799816: Gửi yêu cầu TCP tới luồng 10.128.65.6:88
[28706] 1625700362.799817: Đã nhận câu trả lời (1774 byte) từ luồng 10.128.65.6:88
[28706] 1625700362.799818: Chấm dứt kết nối TCP với luồng 10.128.65.6:88
[28706] 1625700362.799819: Phản hồi từ chủ KDC
[28706] 1625700362.799820: Muối có nguồn gốc từ tiền gốc: FOO.COMuserB
[28706] 1625700362.799821: Khóa AS được xác định bởi preauth: rc4-hmac/B9A0
[28706] 1625700362.799822: Trả lời AS đã giải mã; khóa phiên là: aes256-cts/F217
[28706] 1625700362.799823: đàm phán NHANH CHÓNG: không khả dụng
[28706] 1625700362.799824: Đang khởi tạo KEYRING:persistent:207:207 với người dùng chính mặc địnhB@FOO.COM
[28706] 1625700362.799825: Lưu trữ userB@FOO.COM -> krbtgt/FOO.COM@FOO.COM trong KEYRING:persistent:207:207
[28706] 1625700362.799826: Lưu cấu hình trong KEYRING:persistent:207:207 cho krbtgt/FOO.COM@FOO.COM: pa_type: 2
[28706] 1625700362.799827: Lưu trữ userB@FOO.COM -> krb5_ccache_conf_data/pa_type/krbtgt\/FOO.COM\@FOO.COM@X-CACHECONF: trong KEYRING:persistent:207:207
Đây là mẫu kết quả đầu ra của tập lệnh dành cho người dùng B:
+ mong đợi
đẻ trứng/usr/bin/ktutil
ktutil: addent -password -p userB@FOO.COM -k 1 -e aes256-cts-hmac-sha1-96
Mật khẩu cho userB@FOO.COM:
ktutil: wkt /tmp/userB.keytab.aes256-cts-hmac-sha1-96.873c0ce2947f8bd6caea07de0d1d02eb
ktutil: + chown userB:root /tmp/userB.keytab.aes256-cts-hmac-sha1-96.873c0ce2947f8bd6caea07de0d1d02eb
+ chmod ug=rw,o= /tmp/userB.keytab.aes256-cts-hmac-sha1-96.873c0ce2947f8bd6caea07de0d1d02eb
+ '[' -s /tmp/userB.keytab.aes256-cts-hmac-sha1-96.873c0ce2947f8bd6caea07de0d1d02eb ']'
+ /usr/bin/klist -e -k -t -K /tmp/userB.keytab.aes256-cts-hmac-sha1-96.873c0ce2947f8bd6caea07de0d1d02eb
Tên tab khóa: TẬP TIN:/tmp/userB.keytab.aes256-cts-hmac-sha1-96.873c0ce2947f8bd6caea07de0d1d02eb
Hiệu trưởng Dấu thời gian KNO
---- --------------------------------------------- ---------------------------
1 09/07/2021 10:24:05 userB@FOO.COM (aes256-cts-hmac-sha1-96) (0xdecff4a27a46a16267567a080311195e4e33d29caf3c4a2b782d2ed53b580c14)
+ su userB -c 'env KRB5_TRACE=/tmp/krb5_trace.userB.aes256-cts-hmac-sha1-96 /usr/bin/kinit userB@FOO.COM -V -k -t /tmp/userB.keytab.aes256 -cts-hmac-sha1-96.873c0ce2947f8bd6caea07de0d1d02eb'
Sử dụng bộ đệm hiện có: liên tục:207:207
Sử dụng tiền gốc: userB@FOO.COM
Sử dụng keytab: /tmp/userB.keytab.aes256-cts-hmac-sha1-96.873c0ce2947f8bd6caea07de0d1d02eb
kinit: Xác thực trước không thành công: Không tìm thấy mục nhập bảng chính nào cho userB@FOO.COM trong khi nhận thông tin xác thực ban đầu
+ mong đợi
đẻ trứng/usr/bin/ktutil
ktutil: addent -password -p userB@FOO.COM -k 1 -e rc4-hmac-exp
Mật khẩu cho userB@FOO.COM:
ktutil: wkt /tmp/userB.keytab.rc4-hmac-exp.0db811bfd7e10197146bcca944b942d9
ktutil: + chown userB:root /tmp/userB.keytab.rc4-hmac-exp.0db811bfd7e10197146bcca944b942d9
+ chmod ug=rw,o= /tmp/userB.keytab.rc4-hmac-exp.0db811bfd7e10197146bcca944b942d9
+ '[' -s /tmp/userB.keytab.rc4-hmac-exp.0db811bfd7e10197146bcca944b942d9 ']'
+ /usr/bin/klist -e -k -t -K /tmp/userB.keytab.rc4-hmac-exp.0db811bfd7e10197146bcca944b942d9
Tên tab khóa: TẬP TIN:/tmp/userB.keytab.rc4-hmac-exp.0db811bfd7e10197146bcca944b942d9
Hiệu trưởng Dấu thời gian KNO
---- --------------------------------------------- ---------------------------
1 09/07/2021 10:24:30 userB@FOO.COM (arcfour-hmac-exp) (0xd6ed7055f216ab755e1827f582b35e24)
+ su userB -c 'env KRB5_TRACE=/tmp/krb5_trace.userB.rc4-hmac-exp /usr/bin/kinit userB@FOO.COM -V -k -t /tmp/userB.keytab.rc4-hmac-exp .0db811bfd7e10197146bcca944b942d9'
Sử dụng bộ đệm hiện có: liên tục:207:207
Sử dụng tiền gốc: userB@FOO.COM
Sử dụng keytab: /tmp/userB.keytab.rc4-hmac-exp.0db811bfd7e10197146bcca944b942d9
Đã xác thực với Kerberos v5
Lưu ý cả hai dấu vết đều có ..
Thông tin etype đã chọn: etype rc4-hmac, salt "", params ""X
Nhưng userA cuối cùng lại có cả hai nhật ký, điều này không thành công theo cách KHÁC:
Thông tin etype đã chọn: etype aes256-cts ...
Tôi đang làm việc với quản trị viên kerberos -- đó là AD. Hai người dùng ở các OU khác nhau -- có thể có các chính sách khác nhau dựa trên OU không? Có điều gì tôi nên nhờ quản trị viên xem xét không?