Tạo băm mật khẩu samba theo chương trình


0

Tôi đã tự hỏi nếu có một lệnh Linux / Ubuntu tiêu chuẩn để tạo băm mật khẩu SMB stdout. Đối với người tò mò, tôi muốn quản lý một nhóm tên người dùng và mật khẩu trên nhiều máy (sử dụng Puppet) bao gồm cả quyền truy cập qua Samba (hiện tại, không sử dụng cái gì chung chung hơn như LDAP). Cụ thể hơn, một lệnh tương đương với lệnh này mà tôi sử dụng để tạo các mục nhập mật khẩu Linux nhưng cho SMB / Samba:

openssl passwd -1

Sẽ không tốt hơn nếu thêm tài khoản bằng cách sử dụng smbpasswd? Lộn xộn với lưu trữ dữ liệu Samba nội bộ không thực sự được khuyến khích.
grawity

Tôi có thể làm điều đó thông qua smbpasswd, nhưng sau đó chúng ta sẽ cần phải có mật khẩu trong văn bản gốc trong repo rối. Đó là một phần không mong muốn.
Alex Wilson

Afaik, Samba lưu trữ băm MD4 giống như Windows. Hàm băm này tương đương với mật khẩu , biết nó cho phép xác thực giống như cách biết mật khẩu. Điều đó và các lỗ hổng của MD4, khiến ý tưởng của bạn về việc băm trong repo cũng tệ như vậy.
grawity

Mmm.I biết băm mật khẩu samba là yếu. Không biết nó khá tệ. Tuy nhiên, tôi nghĩ rằng tốt hơn hết là chúng ta nên có các bảng băm hơn là bản rõ.
Alex Wilson

Câu trả lời:


6

Trong nội bộ, Samba lưu trữ các băm LM và NT giống như Windows và được sử dụng để xác thực NTLM.

  • Hàm băm NT sử dụng thuật toán MD4, được áp dụng cho mật khẩu trong mã hóa UTF-16 Little Endian. Bạn có thể sử dụng các công cụ thông thường để tính toán, ví dụ:

    #!/usr/bin/env perl
    use Digest::MD4 qw(md4_hex);
    use Encode qw(encode);
    chomp(my $pw = <STDIN>);
    print md4_hex(encode("UTF-16LE", $pw)), "\n";
    

    hoặc OpenSSL:

    printf '%s' "$pw" | iconv -t utf16le | openssl md4
    
  • Băm LM có thể bị bẻ khóa trong vài giây. Không ai sử dụng nó nữa. Đừng sử dụng nó. Các phiên bản Windows hiện đại, cũng như (hy vọng) Samba, chỉ lưu trữ hàm băm LM của mật khẩu 'trống', bất kể đầu vào.

Tuy nhiên, bao gồm cả băm như một phần của tập lệnh của bạn là một ý tưởng rất tồi, không tốt hơn nhiều so với việc giữ mật khẩu. Hàm băm MD4 không được mã hóa rất dễ bị bẻ khóa nếu người ta muốn lấy mật khẩu ban đầu và ngay cả khi không có, hàm băm này tương đương với mật khẩu - bất kỳ ai có hàm băm đều có thể thực hiện xác thực NTLM mà không cần mật khẩu. (Windows không cho phép bất kỳ ai, kể cả quản trị viên truy cập trực tiếp vào SAM, do đó, muối ban đầu được cho là không cần thiết.)


Một trả lời tốt và kỹ lưỡng. Cảm ơn. Do sự cảnh báo của bạn, tôi nghĩ rằng chúng tôi có thể xem lại ldap / kerberos như một hệ thống xác thực / ủy quyền an toàn hơn.
Alex Wilson

@Alex: LDAP / Kerberos là lựa chọn thông thường cho các mạng Unix. Nhưng nếu hầu hết các máy khách đang sử dụng Windows, Active Directory (sử dụng Samba 4 làm bộ điều khiển miền) có thể dễ dàng hơn rất nhiều so với OpenLDAP + krb5 cũ, đặc biệt là khi xác thực cổ phiếu SMB.
grawity
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.