Khám Phá DOAS trên OpenBSD: Giải Pháp Thay Thế Sudo An Toàn và Hiệu Quả

Khám Phá DOAS trên OpenBSD

Bối cảnh

Trên openbsd, công cụ thay thế cho sudo là doas, mặc dù nó hoạt động không hoàn toàn giống sudo và đòi hỏi một số cấu hình nhất định. Tên gọi “doas” là viết tắt của “dedicated openbsd application subexecutor”. Openbsd 5.8, phát hành vào năm 2015, là phiên bản đầu tiên tích hợp doas. Công cụ này được Ted Unangst tạo ra khi ông cảm thấy sự phức tạp của sudo không phù hợp và gặp phải nhiều vấn đề với cấu hình sudo mặc định.

Bạn đang tìm hiểu về DOAS trên OpenBSD để tăng cường bảo mật hệ thống? Để triển khai hiệu quả, hãy cân nhắc mua VPS chất lượng cao với cấu hình mạnh mẽ, đảm bảo vận hành ổn định và bảo mật tối ưu cho các dự án của bạn. Khám phá ngay các gói VPS phù hợp!

Lệnh doas được thiết kế với mục tiêu đơn giản hóa quá trình nâng cao quyền hạn, không tích hợp các tính năng phức tạp dành cho các hệ thống quản trị quy mô lớn. Đối với hầu hết người dùng, doas đã đáp ứng đủ nhu cầu. Nếu bạn muốn sử dụng sudo thay vì doas, hãy tham khảo tài liệu “Cách sử dụng Sudo trên DataOnline Cloud Server”.

Cài đặt

Từ openbsd phiên bản 5.8 trở đi, doas đã được cài đặt sẵn trên hệ thống.

Cấu hình

Để cho phép người dùng trong nhóm wheel sử dụng doas, bạn cần thêm dòng sau vào tệp cấu hình /etc/doas.conf. Việc này yêu cầu quyền root để chỉnh sửa tệp.

permit :wheel

Dòng lệnh trên cho phép tất cả người dùng thuộc nhóm wheel có quyền thực thi các lệnh với tư cách bất kỳ người dùng nào.

Nếu bạn muốn người dùng chỉ cần nhập mật khẩu một lần và không phải nhập lại trong một khoảng thời gian, hãy sử dụng tùy chọn persist. Ví dụ, cấu hình chỉ dành cho nhóm wheel sẽ như sau:

permit persist :wheel

Ngoài ra, nếu bạn muốn người dùng không bao giờ phải nhập mật khẩu khi sử dụng doas, hãy dùng tùy chọn nopass:

permit nopass :wheel

Nếu bạn muốn cấp quyền admin cho người dùng “mynewuser”, bạn có thể thêm người dùng đó vào nhóm wheel bằng cách chạy lệnh sau với quyền root: usermod -G wheel mynewuser

Hoặc, bạn có thể thêm dòng sau vào tệp /etc/doas.conf:

permit nopass :wheel
permit nopass mynewuser

Ví dụ trên giả định rằng bạn không yêu cầu người dùng nhập mật khẩu khi sử dụng doas. Nếu bạn muốn giới hạn “mynewuser” chỉ có thể thực thi lệnh với tư cách người dùng www, cấu hình sẽ là:

permit nopass :wheel
permit nopass mynewuser as www

Nếu bạn muốn “mynewuser” chỉ được phép sử dụng lệnh “vim” với doas, hãy sử dụng cấu hình:

permit nopass :wheel
permit nopass mynewuser as www cmd vim

Đây chỉ là một số tùy chọn cấu hình phổ biến. Nếu bạn muốn tìm hiểu thêm các tùy chọn khác, hãy chạy lệnh man doas.conf để đọc trang hướng dẫn doas.conf(5).

Kiểm tra tệp cấu hình

Để kiểm tra tệp cấu hình của doas, sử dụng lệnh sau:

doas -C /etc/doas.conf

Nếu bạn cung cấp thêm một lệnh sau đó, ví dụ:

doas -C /etc/doas.conf vim

lệnh này sẽ báo cho bạn biết liệu bạn có quyền thực thi lệnh đó hay không mà không thực sự chạy lệnh.

Cách sử dụng

Một người dùng có thể chạy lệnh sau để in ra dòng chữ “test” với quyền root:

doas echo "test"

Nếu một người dùng có quyền sử dụng doas để chuyển sang người dùng “www”, họ có thể chạy lệnh:

doas -u www vim /var/www/http/index.html

Lệnh này rất hữu ích cho những ai quản lý webserver nhưng không cần quyền quản trị viên đầy đủ.

Thực hành tốt nhất

Chúng tôi khuyến khích bạn sử dụng lệnh permit thay vì deny khi có thể. Nếu bạn cấm người dùng thực thi một lệnh cụ thể, họ có thể tìm cách sử dụng tên hoặc đường dẫn khác của lệnh đó (nếu có) để vượt qua hạn chế. Họ cũng có thể sao chép tệp thực thi của lệnh vào thư mục cá nhân và chạy từ đó, qua đó làm mất hiệu lực các thiết lập quyền hạn mà bạn đã đặt.

Nhìn chung, việc sử dụng doas tốt hơn so với su vì không cần phải chia sẻ mật khẩu root. Điều này giúp tránh rủi ro khi mật khẩu bị thay đổi, quên hoặc bị khóa, vì mỗi người dùng sẽ có mật khẩu riêng để truy cập quyền root.

Nhật ký (logs) của doas được lưu tại /var/log/secure.

Mẹo và thủ thuật

Bạn có thể giữ lại tất cả các biến môi trường của mình với tùy chọn keepenv, rất hữu ích nếu bạn đã thiết lập trình soạn thảo hoặc các biến môi trường quan trọng khác và không muốn chúng bị thay đổi khi chuyển sang người dùng khác. Ví dụ cho “mynewuser”:

permit nopass keepenv mynewuser

Đôi khi, việc truyền toàn bộ các biến môi trường có thể gây lỗi, nhưng với tùy chọn setenv, bạn có thể chọn lọc chỉ chuyển các biến cần thiết. Ví dụ, nếu bạn muốn giữ nguyên trình soạn thảo cho các tác vụ như làm việc với git, bạn có thể cấu hình:

permit nopass setenv { VISUAL EDITOR } mynewuser

Bạn cũng có thể sử dụng setenv để xóa các biến môi trường (bằng cách thêm dấu gạch ngang trước tên biến muốn xóa) hoặc thiết lập chúng thành giá trị cụ thể với dấu bằng. Ví dụ, nếu bạn muốn xóa biến môi trường VISUAL và đặt EDITOR thành vim, cấu hình sẽ như sau:

permit nopass setenv { -VISUAL EDITOR=vim } mynewuser

Nếu doas đã nhớ mật khẩu của bạn, bạn có thể sử dụng lệnh sau để làm cho nó quên mật khẩu:

doas -L

DOAS giúp đơn giản hóa việc quản lý quyền trên OpenBSD, nhưng để trải nghiệm tốt hơn, bạn có thể thuê VPS giá rẻ với chi phí tối ưu. Các gói VPS giá rẻ vẫn đảm bảo hiệu suất cao, hỗ trợ bạn triển khai hệ thống an toàn và tiết kiệm.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *