Quản trị mạng - Điểm quan trọng nhất của tiến trình bảo cơ bản mật cấp độ file trên hệ thống UNIX đó là hạn chế giấy phép truy cập file tới mức có thể mà không làm ảnh hưởng đến các tác vụ cần thiết của hệ thống, đồng thời không gây cản trở khi người dùng truy cập vào file theo phương pháp cần thiết.
Trong trường hợp tổng quát, các quản trị viên hệ thống UNIX và LINUX cần đảm bảo rằng chủ sở hữu của một file (Owner) sẽ có toàn quyền đối với file đó và mặc định sẽ không cấp phép truy cập cho bất kì người dùng nào khác. Làm như vậy sẽ giảm được các rắc rối gặp phải khi quản trị hệ thống mà không phải thực hiện thêm các tác vụ phức tạp để tự động hóa tiến trình cấp các giấy phép mặc định cho những file mới.
Cấu hình giấy phép mặc định của thư mục chủ
Trước tiên, những giấy phép cho thư mục chủ của một người dùng mới có thể được cấp khi người dùng đó được tạo bằng lệnh adduser. Ví dụ, trong FreeBSD, chúng ta có thể cấp các giấy phép ban đầu cho thư mục chủ của một người dùng mới bằng cách sử dụng tùy chọn –M với lệnh adduser. Do đó, nếu muốn tạo một tài khoản người dùng với quyền của thư mục chủ được cài đặt là 750 thì chúng ta cần chạy lệnh sau:
Khi cấp giấy phép mặc định cho thư mục chủ của một người dùng, thì thư mục chủ của người dùng đó sẽ là bất khả xâm phạm dù là duyệt tìm hay xem đối với tất cả các tài khoản không có đặc quyền gốc, ngoại trừ tài khoản sở hữu thư mục này và những tài khoản thuộc nhóm mặc định của tài khoản đó. Ngoài ra, giấy phép mặc định này sẽ không cho phép xóa thư mục chủ này, thậm chí là cả những tài khoản khác trong nhóm mặc định của tài khoản người dùng được cấp phép. Khi thư mục chủ đã được tạo thì chúng ta vẫn cần phải tự động hóa tiến trình cấp giấy phép mặc định cho những file bổ sung được tài khoản đó tạo ra.
Cấu hình mask mặc định của giấy phép file
File Creation Mask (FCM) có thể giúp tự động hóa chính sách bảo mật cấp độ file bằng cách sử dụng một nhóm giấy phép file mặc định giới hạn khi những file mới được tạo. Lệnh thường được sử dụng cho FCM trong hệ thống UNIX và kiểu UNIX là umask (được viết tắt từ user mask). Trong những môi trường hệ điều hành theo chuẩn POSIX, mọi tiến trình đều có một user mask để giới hạn các chế độ cho những file mà nó tạo ra. Lệnh umask sẽ chỉ định những giấy phép không được cho phép. Những hệ thống kiểu UNIX cũng sử dụng lệnh umask để cài đặt umask cho một trình tiện ích.
Lệnh này có thể được cải tiến để tác động tới mọi tiến trình vận hành trong bối cảnh của một trình tiện ích đăng nhập của người dùng. Chúng ta có thể áp dụng umask này với mọi tài khoản người dùng trên một hệ thống bằng cách chỉ định một umask mặc định trong một file cấu hình trình tiện ích mặc định của hệ thống. Ví dụ, trong hầu hết các bản phân phối Linux, bash là trình tiện ích mặc định, file cấu hình của bash sẽ là /etc/profile hoặc /etc/bashrc. Với những hệ thống BSD Unix, các trình tiện ích mặc định là một phần của nhóm trình tiện ích C, như csh và tcsh, và file cấu hình của những trình tiện ích này sẽ là /etc/login.conf.
Trong FreeBSD, mặc định, dòng tương ứng trong file cấu hình này sẽ là:
Một umask phù hợp hơn với mục đích bảo mật sẽ là umask giúp chặn những giấy nhóm giấy phép có giá trị lớn hơn 750, được cấu hình trong file etc/login.conf bằng cách thay đổi giá trị của umask thành:
Chính sách giấy phép mặc định
Chính sách giấy phép mặc định (Default Permission Policy) áp dụng cho mỗi hệ thống sẽ phụ thuộc vào nhu cầu của mỗi người dùng. Như đã nhắc đến trong bài viết Tìm hiểu giấy phép truy cập file cơ bản trong UNIX, có một quy luật đơn giản nhưng khá hiệu quả để tăng cường bảo mật giấy phép truy cập cấp độ file là:
Điểm quan trọng nhất của tiến trình bảo cơ bản mật cấp độ file trên hệ thống UNIX đó là hạn chế giấy phép truy cập file tới mức có thể mà không làm ảnh hưởng đến các tác vụ cần thiết của hệ thống, đồng thời không gây cản trở người truy cập vào file theo phương pháp cần thiết.
Trong trường hợp tổng quát, các quản trị viên hệ thống UNIX và LINUX cần đảm bảo rằng chủ sở hữu của một file (Owner) sẽ có toàn quyền đối với file đó và mặc định sẽ không cấp phép truy cập cho bất kì người dùng nào khác. Làm như vậy sẽ giảm được các rắc rối gặp phải khi quản trị hệ thống mà không phải thực hiện thêm các tác vụ phức tạp để tự động hóa tiến trình cấp các giấy phép mặc định cho những file mới.
Cấu hình giấy phép mặc định của thư mục chủ
Trước tiên, những giấy phép cho thư mục chủ của một người dùng mới có thể được cấp khi người dùng đó được tạo bằng lệnh adduser. Ví dụ, trong FreeBSD, chúng ta có thể cấp các giấy phép ban đầu cho thư mục chủ của một người dùng mới bằng cách sử dụng tùy chọn –M với lệnh adduser. Do đó, nếu muốn tạo một tài khoản người dùng với quyền của thư mục chủ được cài đặt là 750 thì chúng ta cần chạy lệnh sau:
adduser –M 750Trong Ubuntu Linux, để cấp giấy phép tương tự, chúng ta phải hiệu chỉnh dòng DIR_MODE trong file /etc/adduser.conf, khi đó dòng này sẽ được thay đổi thành:
DIR_MODE=0750File /etc/adduser.conf có thể được sử dụng để cấu hình giấy phép mặc định của thư mục chủ cho các tài khoản người dùng qua công cụ quản trị trên những hệ thống FreeBSD cũng như những hệ thống Ubuntu Linux, tuy nhiên tùy chọn –M của lệnh adduser sẽ cho phép giấy phép mặc định trong /etc/adduser.conf được ghi đè khi chạy lệnh adduser.
Khi cấp giấy phép mặc định cho thư mục chủ của một người dùng, thì thư mục chủ của người dùng đó sẽ là bất khả xâm phạm dù là duyệt tìm hay xem đối với tất cả các tài khoản không có đặc quyền gốc, ngoại trừ tài khoản sở hữu thư mục này và những tài khoản thuộc nhóm mặc định của tài khoản đó. Ngoài ra, giấy phép mặc định này sẽ không cho phép xóa thư mục chủ này, thậm chí là cả những tài khoản khác trong nhóm mặc định của tài khoản người dùng được cấp phép. Khi thư mục chủ đã được tạo thì chúng ta vẫn cần phải tự động hóa tiến trình cấp giấy phép mặc định cho những file bổ sung được tài khoản đó tạo ra.
Cấu hình mask mặc định của giấy phép file
File Creation Mask (FCM) có thể giúp tự động hóa chính sách bảo mật cấp độ file bằng cách sử dụng một nhóm giấy phép file mặc định giới hạn khi những file mới được tạo. Lệnh thường được sử dụng cho FCM trong hệ thống UNIX và kiểu UNIX là umask (được viết tắt từ user mask). Trong những môi trường hệ điều hành theo chuẩn POSIX, mọi tiến trình đều có một user mask để giới hạn các chế độ cho những file mà nó tạo ra. Lệnh umask sẽ chỉ định những giấy phép không được cho phép. Những hệ thống kiểu UNIX cũng sử dụng lệnh umask để cài đặt umask cho một trình tiện ích.
Lệnh này có thể được cải tiến để tác động tới mọi tiến trình vận hành trong bối cảnh của một trình tiện ích đăng nhập của người dùng. Chúng ta có thể áp dụng umask này với mọi tài khoản người dùng trên một hệ thống bằng cách chỉ định một umask mặc định trong một file cấu hình trình tiện ích mặc định của hệ thống. Ví dụ, trong hầu hết các bản phân phối Linux, bash là trình tiện ích mặc định, file cấu hình của bash sẽ là /etc/profile hoặc /etc/bashrc. Với những hệ thống BSD Unix, các trình tiện ích mặc định là một phần của nhóm trình tiện ích C, như csh và tcsh, và file cấu hình của những trình tiện ích này sẽ là /etc/login.conf.
Trong FreeBSD, mặc định, dòng tương ứng trong file cấu hình này sẽ là:
:umask=022:Bởi vì đây là một mask chặn một nhóm giấy phép cụ nên chúng ta cần coi chúng là những giấy phép được loại trừ từ những giấy phép mặc định mà một file có thể có. Ví dụ, khi một tiến trình với umask cố gắng tạo một file với giấy phếp 775, nó sẽ hoàn thành với nhóm giấy phép 755 vì giấy phép có giá trị là 2 (giấy phép Write – ghi) đã bị chặn với đối tượng Group như một giấy phép truy cập file mặc định. Do những file ngoài thư mục thường không phải là file thực thi, tuy nhiên, giấy phép 1 (Execute – thực thi) luôn bị bỏ qua bằng cách tạo một cài đặt umask 022 để gán giấy phép 644 cho những file ngoài thư mục khi được tạo, trong khi đó những file trong thư mục sẽ được tạo với nhóm giấy phép 755.
Một umask phù hợp hơn với mục đích bảo mật sẽ là umask giúp chặn những giấy nhóm giấy phép có giá trị lớn hơn 750, được cấu hình trong file etc/login.conf bằng cách thay đổi giá trị của umask thành:
:umask=027:Trong khi đó, trên hệ thống Ubuntu Linux, mặc định giá trị của umask trong etc/profile sẽ là:
umask 022Để tự động hóa những giấy phép tạo file để khống chế chúng không vượt quá 750 chúng ta cần thay đổi dòng này thành:
umask 027Ngoài ra người dùng có thể cài đặt một giá trị khác cho giấy phép file. Ví dụ, nếu một người dùng tạo một file, sau đó muốn cấp phép 777, thì có thể sử dụng lệnh chmod với cú pháp như sau:
chmod 777 [tên_file]Cấu hình umask mặc định của trình tiện ích này sẽ không chặn người dùng thực hiện thay đổi giấy phép, mà nó chỉ cài đặt giá trị mặc định cho những nhóm giấy phép cụ thể khi file được tạo.
Chính sách giấy phép mặc định
Chính sách giấy phép mặc định (Default Permission Policy) áp dụng cho mỗi hệ thống sẽ phụ thuộc vào nhu cầu của mỗi người dùng. Như đã nhắc đến trong bài viết Tìm hiểu giấy phép truy cập file cơ bản trong UNIX, có một quy luật đơn giản nhưng khá hiệu quả để tăng cường bảo mật giấy phép truy cập cấp độ file là:
Điểm quan trọng nhất của tiến trình bảo cơ bản mật cấp độ file trên hệ thống UNIX đó là hạn chế giấy phép truy cập file tới mức có thể mà không làm ảnh hưởng đến các tác vụ cần thiết của hệ thống, đồng thời không gây cản trở người truy cập vào file theo phương pháp cần thiết.