Một trong những cải tiến bảo mật cốt lõi khác được giới thiệu trong OneFS 9.5 là khả năng thực thi các chính sách bảo mật tài khoản người dùng nghiêm ngặt. Điều này là cần thiết để tuân thủ các yêu cầu bảo mật của cả khu vực tư nhân và công cộng. Ví dụ, các yêu cầu hạn chế chính sách tài khoản được nêu trong các yêu cầu STIG của quân đội Hoa Kỳ quy định:
Yêu cầu | Sự miêu tả |
---|---|
Trì hoãn | Hệ điều hành phải áp dụng độ trễ ít nhất 4 giây giữa các lần nhắc đăng nhập sau lần đăng nhập không thành công. |
Vô hiệu hóa | Hệ điều hành phải vô hiệu hóa các mã định danh tài khoản (cá nhân, nhóm, vai trò và thiết bị) sau 35 ngày không hoạt động. |
Giới hạn | Hệ điều hành phải giới hạn số lượng phiên đồng thời ở mức mười cho tất cả tài khoản và/hoặc loại tài khoản. |
Để giải quyết trực tiếp các sắc lệnh bảo mật này, OneFS 9.5 bổ sung các biện pháp kiểm soát hạn chế chính sách tài khoản sau:
Chức năng chính sách tài khoản | Chi tiết |
---|---|
Trì hoãn sau khi đăng nhập không thành công |
|
Vô hiệu hóa các tài khoản không hoạt động |
|
Giới hạn phiên đồng thời |
|
Ngành kiến trúc
OneFS cung cấp nhiều cơ chế truy cập khác nhau để quản lý cụm. Bao gồm SSH, bảng điều khiển nối tiếp, WebUI và API nền tảng, tất cả đều sử dụng các phương pháp truy cập cơ bản khác nhau. Bảng điều khiển nối tiếp và SSH là các ứng dụng của bên thứ ba FreeBSD chuẩn và được tính cho mỗi nút, trong khi WebUI và pAPI sử dụng các tiện ích mở rộng mô-đun HTTP để tạo điều kiện truy cập vào hệ thống và các dịch vụ và được tính cho toàn cụm. Trước OneFS 9.5, không có cơ chế chung nào để biểu diễn hoặc tính cho các phiên trên các ứng dụng khác biệt này.
Về cơ bản, khuôn khổ chính sách bảo mật tài khoản OneFS bao gồm kiến trúc cấp cao sau:
Với SSH, không có sự kiện “đăng xuất” rõ ràng hoặc đáng tin cậy nào được gửi đến OneFS, ngoài việc thực sự ngắt kết nối. Do đó, việc tính toán các phiên đang hoạt động có thể gây ra vấn đề và không đáng tin cậy, đặc biệt là khi kết nối hết thời gian chờ hoặc ngắt kết nối đột ngột. Tuy nhiên, OneFS có bao gồm cơ sở dữ liệu tính toán lưu trữ các bản ghi về hoạt động của hệ thống như đăng nhập và đăng xuất của người dùng, có thể được truy vấn để xác định các phiên SSH đang hoạt động. Mỗi kết nối SSH đang hoạt động có một quy trình isi_ssh_d thuộc sở hữu của tài khoản được liên kết với nó và thông tin này có thể được thu thập thông qua các cuộc gọi hệ thống chuẩn. OneFS liệt kê số lượng quy trình SSHD trên mỗi tài khoản để tính tổng số phiên đang hoạt động đã thiết lập. Sau đó, giá trị này được sử dụng làm một phần của tổng giới hạn phiên quản trị đồng thời. Vì SSH chỉ hỗ trợ quyền truy cập của người dùng thông qua vùng hệ thống nên không cần bất kỳ tính toán nhận biết vùng nào.
WebUI và API nền tảng sử dụng mã thông báo web JSON (JWT) cho các phiên đã xác thực. OneFS lưu trữ JWT trong kvstore trên toàn cụm và chính sách truy cập sử dụng mã thông báo phiên hợp lệ trong kvstore để tính đến các phiên đang hoạt động khi người dùng đăng nhập thông qua WebUI hoặc pAPI. Khi người dùng đăng xuất, mã thông báo liên quan sẽ bị xóa và một thông báo được gửi đến dịch vụ JWT với thông báo đăng xuất rõ ràng. Nếu phiên hết thời gian hoặc ngắt kết nối, dịch vụ JWT sẽ không nhận được sự kiện, nhưng các mã thông báo có tuổi thọ ngắn, giới hạn và bất kỳ mã thông báo nào đã hết hạn sẽ bị xóa khỏi danh sách theo lịch trình kết hợp với bộ hẹn giờ JWT. OneFS liệt kê các ID phiên duy nhất được liên kết với mã thông báo JWT của mỗi người dùng trong kvstore để có được số lượng phiên WebUI và pAPI đang hoạt động để sử dụng như một phần của kiểm tra giới hạn phiên của người dùng.
Đối với kế toán truy cập bảng điều khiển nối tiếp, bảng quy trình sẽ có thông tin khi kết nối STTY đang hoạt động và OneFS sẽ ngoại suy dữ liệu người dùng từ đó để xác định số lượng phiên, tương tự như ssh với syscall cho dữ liệu quy trình. Có một cơ sở dữ liệu kế toán lưu trữ các bản ghi về hoạt động của hệ thống như đăng nhập và đăng xuất của người dùng, cũng được truy vấn cho các phiên điều khiển đang hoạt động. Truy cập bảng điều khiển nối tiếp chỉ từ vùng hệ thống, do đó không cần kế toán nhận biết vùng.
Một lệnh gọi API sẽ lấy dữ liệu phiên người dùng từ bảng quy trình và kvstore để tính số phiên người dùng đang hoạt động. Do đó, việc kiểm tra và thực thi giới hạn phiên được thực hiện theo cách tương tự như xác minh quyền người dùng đối với SSH, bảng điều khiển nối tiếp hoặc quyền truy cập WebUI.
Trì hoãn việc kết nối lại đăng nhập không thành công
OneFS 9.5 cung cấp khả năng thực thi một khoảng thời gian trễ có thể cấu hình. Khoảng thời gian trễ này được chỉ định bằng giây, sau đó mỗi lần thử xác thực không thành công sẽ dẫn đến việc người dùng bị từ chối khả năng kết nối lại với cụm cho đến khi khoảng thời gian trễ được cấu hình đã trôi qua. Khoảng thời gian trễ đăng nhập được xác định bằng giây thông qua thuộc tính toàn cục FailedLoginDelayTime và theo mặc định, OneFS được cấu hình để không có độ trễ thông qua giá trị FailedLoginDelayTime là 0. Khi một cụm được đặt vào chế độ được tăng cường với chính sách STIG được ban hành, giá trị độ trễ sẽ tự động được đặt thành 4 giây. Lưu ý rằng độ trễ xảy ra trong máy khách lsass, do đó dịch vụ xác thực không bị ảnh hưởng.
Có thể xem giới hạn thời gian trì hoãn đăng nhập không thành công đã cấu hình bằng lệnh CLI sau:
# isi auth settings chế độ xem toàn cục Gửi NTLMv2: Không Thay thế khoảng cách: Nhóm làm việc: NHÓM LÀM VIỆC Tra cứu tên máy chủ của nhà cung cấp: đã tắt Số lần thử lại phân bổ: 5 Kích thước bộ nhớ đệm đối tượng người dùng: 47,68M Trên đĩa Identity: bản địa Thời gian khối RPC: Bây giờ Yêu cầu RPC tối đa: 64 Thời gian chờ RPC: 30 giây Mức kiểm tra thu hồi LDAP TLS mặc định: không có Ngưỡng GID hệ thống: 80 Ngưỡng UID hệ thống: 80 Min Mapped Rid: 2147483648 Nhóm UID: 4294967292 GID rỗng: 4294967293 UID rỗng: 4294967293 GID không xác định: 4294967294 UID không xác định: 4294967294 Thời gian trì hoãn đăng nhập không thành công: Bây giờ Giới hạn phiên đồng thời: 0
Tương tự như vậy, cú pháp sau sẽ cấu hình thời gian trì hoãn đăng nhập không thành công thành giá trị 4 giây:
# isi auth settings global modify --failed-login-delay-time 4 giây # isi auth settings chế độ xem toàn cục | grep -i delay Thời gian trì hoãn đăng nhập không thành công: 4 giây
Tuy nhiên, khi một cụm được đưa vào chế độ tăng cường STIG, “Giới hạn phiên đồng thời” sẽ tự động được đặt thành 10.
# isi auth settings chế độ xem toàn cục | grep -i delay Thời gian trì hoãn đăng nhập không thành công: 10 giây
Thời gian trễ sau khi đăng nhập không thành công cũng có thể được cấu hình từ WebUI trong mục Access > Settings > Global provider settings :
Phạm vi hợp lệ của thuộc tính toàn cục FailedLoginDelayTime là từ 0 đến 65535 và thời gian trễ bị giới hạn trong cùng một nút cụm.
Lưu ý rằng giới hạn phiên tối đa này chỉ áp dụng cho thông tin đăng nhập quản trị.
Vô hiệu hóa các tài khoản không hoạt động
Trong OneFS 9.5, bất kỳ tài khoản người dùng nào không hoạt động trong khoảng thời gian có thể cấu hình đều có thể tự động bị vô hiệu hóa. Cần có sự can thiệp của quản trị viên để kích hoạt lại tài khoản người dùng đã bị vô hiệu hóa. Thời gian hoạt động cuối cùng của người dùng được xác định bởi lần đăng nhập trước đó của họ và bộ đếm thời gian sẽ chạy vào mỗi nửa đêm trong thời gian đó tất cả các tài khoản “không hoạt động” đều bị vô hiệu hóa. Nếu bản ghi đăng nhập cuối cùng của người dùng không khả dụng hoặc đã cũ, thì dấu thời gian khi tài khoản được bật sẽ được coi là hoạt động cuối cùng của họ. Nếu theo dõi không hoạt động được bật sau thời gian đăng nhập cuối cùng (hoặc được bật) của người dùng, thì thời gian theo dõi không hoạt động sẽ được coi là thời gian không hoạt động.
Tính năng này bị vô hiệu hóa theo mặc định trong OneFS và tất cả người dùng đều được miễn theo dõi tình trạng không hoạt động cho đến khi được cấu hình khác. Tuy nhiên, các tài khoản riêng lẻ có thể được miễn khỏi hành vi này và có thể được cấu hình thông qua thuộc tính DisableWhenInactive dành riêng cho người dùng . Ví dụ:
# isi auth người dùng xem user1 | grep -i không hoạt động Tắt khi không hoạt động: Có # isi auth người dùng sửa đổi user1 --disable-when-inactive 0 # isi auth người dùng xem user1 | grep -i không hoạt động Tắt khi không hoạt động: Không
Nếu một cụm được đưa vào chế độ STIG được tăng cường, giá trị cho tham số MaxInactivityDays sẽ tự động được cấu hình lại thành 35 , nghĩa là người dùng sẽ bị vô hiệu hóa sau 35 ngày không hoạt động. Tất cả người dùng cục bộ sẽ bị xóa khỏi chế độ miễn trừ khi ở chế độ STIG được tăng cường.
Lưu ý rằng chức năng này chỉ giới hạn ở nhà cung cấp cục bộ và không áp dụng cho nhà cung cấp tệp.
Cấu hình vô hiệu hóa tài khoản không hoạt động có thể được xem từ CLI với cú pháp sau. Trong ví dụ này, thuộc tính MaxInactivityDays được cấu hình trong 35 ngày:
# isi auth hệ thống xem cục bộ Tên: Hệ thống Trạng thái: đang hoạt động Xác thực: Có Tạo thư mục Home: Có Mẫu thư mục trang chủ: /ifs/home/%U Thời gian khóa: Bây giờ Ngưỡng khóa: 0 Cửa sổ khóa: Bây giờ Shell đăng nhập: /bin/zsh Tên máy: Tuổi mật khẩu tối thiểu: Bây giờ Tuổi mật khẩu tối đa: 4W Độ dài mật khẩu tối thiểu: 15 Thời gian nhắc nhập mật khẩu: 2W Độ phức tạp của mật khẩu: - Độ dài lịch sử mật khẩu: 0 Mật khẩu đã thay đổi: 8 Mật khẩu Phần trăm đã thay đổi: 50 Kiểu băm mật khẩu: NTHash Ngày không hoạt động tối đa: 35
Việc vô hiệu hóa tài khoản không hoạt động cũng có thể được cấu hình từ WebUI trong mục Access > Nhà cung cấp xác thực > Nhà cung cấp cục bộ :
Phạm vi hợp lệ của tham số MaxInactivityDays là từ 0 đến UINT_MAX . Do đó, cú pháp CLI sau sẽ cấu hình số ngày tối đa mà một tài khoản người dùng có thể không hoạt động trước khi bị vô hiệu hóa thành 10 ngày:
# isi auth cục bộ sửa đổi hệ thống --max-inactivity-days 10 # isi auth hệ thống xem cục bộ | grep -i không hoạt động Ngày không hoạt động tối đa: 0tem –max-inactivity-days 10
Đặt giá trị này thành 0 ngày sẽ vô hiệu hóa tính năng:
# isi auth cục bộ sửa đổi hệ thống --max-inactivity-days 0 # isi auth hệ thống xem cục bộ | grep -i không hoạt động Số ngày không hoạt động tối đa: 0tem –max-inactivity-days 0
Việc vô hiệu hóa tài khoản không hoạt động cũng như việc hết hạn mật khẩu cũng có thể được cấu hình chi tiết, theo từng tài khoản người dùng. Ví dụ: user1 có cấu hình mặc định của ngưỡng Vô hiệu hóa khi không hoạt động được đặt thành Không .
# isi auth người dùng xem user1 Tên: user1 DN: CN=user1,CN=Người dùng,DC=GLADOS Tên miền DNS: - Tên miền: GLADOS Nhà cung cấp: lsa-local-provider:System Tên tài khoản Sam: user1 Mã số nhận dạng: 2000 Mã số thuế: S-1-5-21-1839173366-2940572996-2365153926-1000 Đã bật: Có Đã hết hạn: Không Ngày hết hạn: - Đã khóa: Không Thư điện tử: - GECO: - GID đã tạo: Không UID đã tạo: Không Đã tạo UPN: Có Nhóm chính Mã số: GID:1800 Tên: Người dùng Isilon Thư mục trang chủ: /ifs/home/user1 Tuổi mật khẩu tối đa: 4W Mật khẩu hết hạn: Không Ngày hết hạn mật khẩu: 2023-06-15T17:45:55 Mật khẩu được thiết lập lần cuối: 2023-05-18T17:45:55 Mật khẩu hết hạn: Không Đăng nhập lần cuối: - Vỏ: /bin/zsh UPN: user1@GLADOS Người dùng có thể thay đổi mật khẩu: Có Vô hiệu hóa khi không hoạt động: Không
Lệnh CLI sau sẽ kích hoạt cài đặt vô hiệu hóa tính năng không hoạt động của tài khoản và cho phép hết hạn mật khẩu cho tài khoản user1:
# isi auth users modify user1 --disable-when-inactive Có --password-expires Có
Việc vô hiệu hóa tài khoản không hoạt động cũng có thể được cấu hình từ WebUI trong mục Truy cập > Thành viên và vai trò > Người dùng > Nhà cung cấp :
Giới hạn các phiên đồng thời
OneFS 9.5 có thể giới hạn số phiên quản trị đang hoạt động trên một nút cụm OneFS và tất cả các phiên WebUI, SSH, pAPI và phiên điều khiển nối tiếp đều được tính đến khi tính toán giới hạn phiên. Số lượng phiên SSH và phiên điều khiển là cục bộ nút, trong khi các phiên WebUI và pAPI được theo dõi trên toàn cụm. Do đó, công thức được sử dụng để tính tổng số phiên đang hoạt động của một nút như sau:
Tổng số phiên người dùng đang hoạt động trên một nút = Tổng số phiên WebUI và pAPI trên toàn cụm + Tổng số phiên SSH và Console trên nút
Tính năng này tận dụng quản lý phiên toàn cụm thông qua JWT để tính tổng số phiên trên một nút của cụm. Theo mặc định, OneFS 9.5 không có giới hạn được cấu hình và tham số Giới hạn phiên đồng thời có giá trị là 0. Ví dụ:
# isi auth settings chế độ xem toàn cục Gửi NTLMv2: Không Thay thế khoảng cách: Nhóm làm việc: NHÓM LÀM VIỆC Tra cứu tên máy chủ của nhà cung cấp: đã tắt Số lần thử lại phân bổ: 5 Kích thước bộ nhớ đệm đối tượng người dùng: 47,68M Trên đĩa Identity: bản địa Thời gian khối RPC: Bây giờ Yêu cầu RPC tối đa: 64 Thời gian chờ RPC: 30 giây Mức kiểm tra thu hồi LDAP TLS mặc định: không có Ngưỡng GID hệ thống: 80 Ngưỡng UID hệ thống: 80 Min Mapped Rid: 2147483648 Nhóm UID: 4294967292 GID rỗng: 4294967293 UID rỗng: 4294967293 GID không xác định: 4294967294 UID không xác định: 4294967294 Thời gian trì hoãn đăng nhập không thành công: Bây giờ Giới hạn phiên đồng thời: 0
Cú pháp CLI sau đây sẽ cấu hình Giới hạn phiên đồng thời thành giá trị 5 :
# isi auth cài đặt toàn cục sửa đổi –-concurrent-session-limit 5 # isi auth settings chế độ xem toàn cục | grep -i concur Giới hạn phiên đồng thời: 5
Khi vượt quá giới hạn phiên, mọi nỗ lực kết nối, trong trường hợp này là với tư cách root thông qua SSH, sẽ nhận được thông báo lỗi Truy cập bị từ chối như sau:
đăng nhập với tư cách: root Lời nhắc xác thực tương tác bằng bàn phím từ máy chủ: | Mật khẩu: Kết thúc lời nhắc tương tác bàn phím từ máy chủ Truy cập bị từ chối mật khẩu:
Giới hạn phiên đồng thời cũng có thể được cấu hình từ WebUI trong mục Access > Cài đặt > Cài đặt nhà cung cấp toàn cầu :
Tuy nhiên, khi một cụm được đưa vào chế độ củng cố STIG, giới hạn phiên đồng thời sẽ tự động được đặt ở mức tối đa là 10 phiên.
Lưu ý rằng giới hạn phiên tối đa này chỉ áp dụng cho thông tin đăng nhập quản trị.
Hiệu suất
Việc vô hiệu hóa một tài khoản sau một thời gian không hoạt động trong OneFS yêu cầu phải cập nhật cơ sở dữ liệu SQLite mỗi khi người dùng đăng nhập thành công vào cụm OneFS. Sau khi đăng nhập thành công, thời gian đăng nhập được ghi lại trong cơ sở dữ liệu, sau đó được sử dụng để tính toán thời gian không hoạt động.
Theo mặc định, tính năng theo dõi tình trạng không hoạt động bị vô hiệu hóa trong OneFS 9.5, nhưng có thể dễ dàng bật bằng cách cấu hình thuộc tính MaxInactivityDays thành giá trị khác không. Trong trường hợp bật tính năng theo dõi tình trạng không hoạt động và nhiều người dùng không được miễn theo dõi tình trạng không hoạt động, một số lượng lớn lượt đăng nhập trong thời gian ngắn có thể tạo ra các yêu cầu cơ sở dữ liệu SQLite đáng kể. Tuy nhiên, OneFS hợp nhất nhiều bản cập nhật cơ sở dữ liệu trong quá trình người dùng đăng nhập vào một lần xác nhận duy nhất để giảm thiểu tải tổng thể.
Xử lý sự cố
Khi nói đến việc khắc phục sự cố cấu hình chính sách bảo mật tài khoản OneFS, có những tệp nhật ký chính sau đây cần kiểm tra:
- /var/log/lsassd.log
- /var/log/tin nhắn
- /var/log/isi_papi_d.log
Để biết thêm chi tiết về báo cáo, có thể bật ghi nhật ký cấp độ gỡ lỗi trên tệp lsassd.log bằng lệnh CLI sau:
# /usr/likewise/bin/lwsm set-log-level lsass – gỡ lỗi
Khi hoàn tất, việc ghi nhật ký có thể được trả về mức lỗi thông thường :
# /us/likewise/bin/lwsm set-log-level lsass - lỗi
Tác giả : Nick Trimbee
Bài viết mới cập nhật
Cải tiến hiệu suất OneFS 9.5 cho chỉnh sửa video
Trong số nhiều thay đổi trong OneFS 9.5, điều thú vị ...
Cấu hình và triển khai OneFS WebUI Single Sign-on
Trong bài viết đầu tiên trong loạt bài này , chúng ta đã ...
Đăng nhập một lần OneFS WebUI
Ngôn ngữ đánh dấu khẳng định bảo mật (SAML) là một ...
Chính sách bảo mật tài khoản OneFS
Một trong những cải tiến bảo mật cốt lõi khác được ...