Điều gì có thể sai nếu chúng ta tắt selinux [đã đóng]


9

Chúng tôi thừa hưởng một loạt các máy chủ được sử dụng từ một nhóm khác. Một số trong số họ đã bật Selinux trên đó, một số thì không. Vì SELinux, chúng tôi gặp sự cố khi thiết lập ssh không mật khẩu, máy chủ web của chúng tôi, v.v. Chúng tôi đã tìm thấy một công việc xung quanh trang web stackexchange này để chạy:

restorecon -R -v ~/.ssh

Tuy nhiên, vì chúng tôi không cần SELinux chạy cho những gì chúng tôi làm, nên có thể tắt nó dễ dàng hơn so với chúng tôi nhớ rằng mọi người đều chạy cmd ở trên trên bất kỳ thư mục nào cần quyền.

Chúng tôi có thể tắt SELinux không với bất kỳ hậu quả nào trên đường không hay tốt hơn là chỉ chụp lại hình ảnh trên máy chủ? Một điều cần lưu ý; Nhóm CNTT của chúng tôi thực sự bận rộn nên việc tạo lại hình ảnh một máy chủ không nằm trong danh sách của họ trừ khi thực sự cần thiết (cần một trường hợp kinh doanh rất tốt) ... hoặc ai đó mua chuộc ông chủ của họ bằng một chai scotch hoặc whisky.

CẬP NHẬT: Cảm ơn lời khuyên và lời khuyên của mọi người. Các máy chủ này đều sẽ được sử dụng làm máy chủ dev nội bộ. Sẽ không có bất kỳ quyền truy cập bên ngoài nào vào các máy này vì vậy bảo mật không phải là mối quan tâm cao đối với chúng tôi. Các máy chủ hiện tại của chúng tôi mà chúng tôi đang sử dụng tất cả (theo hiểu biết tốt nhất của tôi) không được bật Selinux. Một số trong những người mà người quản lý của tôi vừa mua và đó là những người chúng tôi đang xem xét vô hiệu hóa để mọi thứ trong cụm của chúng tôi đều thống nhất.


1
Tôi đã trả lời một câu hỏi tương tự trên Android.se: Thực tế là nguy hiểm như thế nào khi Selinux ở chế độ Perm Permissive? Tôi nên cảnh giác với điều gì? . Sự khác biệt chính giữa chế độ "Cho phép" và vô hiệu hóa SELinux là bạn sẽ không nhận được thông báo nhật ký AVC nữa và SELinux sẽ không cập nhật nhãn tệp vì vậy bạn sẽ cần phải dán lại tệp của mình trước khi bật lại.
WhiteWinterWolf

"Cái gì có thể đi sai?"
scai

3
@scai Đó thực sự là một câu hỏi hay. Như Sato Katsura chỉ ra, SELinux khó sử dụng hiệu quả. Một cảm giác sai lầm về bảo mật có hại cho an ninh.
Rhymoid

Câu trả lời:


14

SELinux là một tính năng bảo mật của hệ điều hành. Nó được thiết kế để giúp bảo vệ một số phần của máy chủ khỏi các phần khác.

Ví dụ: nếu bạn chạy một máy chủ web và có một số mã "dễ bị tấn công" cho phép kẻ tấn công chạy các lệnh tùy ý thì SELinux có thể giúp giảm thiểu điều này, bằng cách ngăn máy chủ web của bạn truy cập vào các tệp mà nó không được phép xem.

Bây giờ bạn có thể vô hiệu hóa SELinux và nó không nên phá vỡ bất cứ điều gì. Máy chủ sẽ tiếp tục hoạt động như bình thường.

Nhưng bạn sẽ vô hiệu hóa một trong những tính năng bảo mật.


10
SELinux chỉ hoạt động tốt khi được cấu hình đúng. Tuy nhiên, SELinux phức tạp đến mức không ai có thời gian và / hoặc kiến ​​thức để cấu hình nó đúng cách, và do đó, nó sẽ bị vô hiệu hóa hoặc là một nỗi đau vĩnh viễn ở phía sau cho quản trị viên. Tuy nhiên, các bạn tiếp tục đầu tư niềm tin vào nó như là một tính năng bảo mật .
Satō Katsura

3
Tôi đồng ý rằng selinux là một PITA để quản trị, tuy nhiên vẫn công bằng và hoàn toàn chính xác khi gọi nó là một tính năng bảo mật. Đối với những người muốn hoặc cần đầu tư thời gian vào việc học và quản lý nó (không phải tôi), điều đó là vô giá - ví dụ: sysadins cho một trang web lớn, cấu hình cao hay còn gọi là mục tiêu hấp dẫn cho những đứa trẻ kịch bản trên toàn thế giới.
cas

2
@SatoKatsura Đơn giản vì khó cấu hình hoặc khó hiểu không biện minh cho việc vô hiệu hóa cơ chế bảo mật. Với điều kiện cơ chế bảo mật này thực sự cần thiết mà không phải lúc nào cũng dễ dàng quyết định.
scai

@scai Tôi không nói nó nên (hoặc không nên) bị vô hiệu hóa. Điều tôi đang nói là, mô hình cơ bản của SELinux là thiếu sót. Một số người cho rằng tất cả các cơ chế bảo mật có thể bị vô hiệu hóa là thiếu sót.
Satō Katsura

@SatoKatsura có, đó là lý do tại sao có mật khẩu hoàn toàn và hoàn toàn vô nghĩa vì chúng có thể bị vô hiệu hóa (ví dụ như với pam hoặc nss hoặc chỉ bằng cách có mật khẩu trống). BTW, tôi không bao giờ tuyên bố rằng bạn nói selinux nên bị vô hiệu hóa. tôi chỉ tranh luận với bạn rằng đó không phải là một tính năng bảo mật thực sự.
cas

8

Có nhiều quan điểm khác nhau về SELinux. Trong nhiều trường hợp, một số ứng dụng không chơi tốt với SELinux do đó quyết định này là tranh luận (Oracle là một ví dụ).
Nói chung, SELinux là một cơ chế bảo vệ để đặt một trở ngại khác theo cách của kẻ xấu muốn lật đổ hệ thống của bạn.

Trong các vai trò trước đây của tôi là Quản trị viên Hệ thống tại các công ty lớn ... Tôi thường đã vô hiệu hóa SELinux. Tôi không có thời gian để theo dõi tất cả các lỗi SELinux trên tất cả các hệ thống đang được người dùng, nhà phát triển và người quản lý sử dụng.

Trước khi vô hiệu hóa mọi thứ, bạn có thể muốn bắt đầu bằng cách dán lại các tệp trên hệ thống trở lại những gì chúng cần. Phương pháp đơn giản nhất mà tôi đã tìm thấy là nhập lệnh:

 # /sbin/fixfiles onboot

HOẶC LÀ

 # touch /.autorelabel

Sau đó, khởi động lại và chờ đợi vì sẽ mất khoảng thời gian tương tự để hệ thống xác minh và đặt lại các nhãn SELinux bị xóa trong hệ thống. Sau đó, bạn có thể ổn vì nó sửa và sửa các nhãn SELinux không tuân thủ có thể đã được sửa đổi trước khi bạn cố gắng quản trị máy chủ.

Tuy nhiên, nếu không, hệ thống sẽ không bị tổn hại do KHÔNG có SELinux trong chế độ thực thi. Nó chỉ là một lớp bảo vệ bổ sung.


3
moot, không câm. Nhưng hoàn toàn chính xác; không phải tất cả các hệ thống đều cần selinux.
phyrfox

+1 để khuyên bạn nên cố gắng gắn lại các tệp trên toàn cầu trước khi vô hiệu hóa Selinux làm dự phòng. SELinux có nghĩa là để ngăn chặn hành vi của người dùng và phần mềm không mong muốn. Trên các hệ thống không có hành vi dự kiến ​​được xác định rõ, Selinux thực sự có thể gây hại nhiều hơn lợi (các chính sách do hệ điều hành cung cấp cố gắng càng chung chung càng tốt, nhưng đôi khi điều này là không đủ).
WhiteWinterWolf

Cảm ơn bạn! /sbin/fixfiles onbootlàm việc cho tôi trên CentOS, không phải như vậy với touch /.autorelabel. Đang chạy sealert -a /var/log/audit/audit.logcho thấy 0 cảnh báo ngay bây giờ. @mdpc Sự khác biệt giữa hai lệnh này là gì?
Joseph K.

5

Nói một cách đơn giản, vô hiệu hóa các cơ chế kiểm soát truy cập bắt buộc (MAC) như SELinux không phải là ý kiến ​​hay và có thể khiến bạn gặp bất lợi về bảo mật nếu kẻ xấu phá vỡ thành công các điều khiển truy cập dựa trên tên, được thực hiện bởi Kiểm soát truy cập tùy ý (DAC).

Là tôi, tôi sẽ làm một cái gì đó như

semanage fcontext -a -t ssh_home_t ~/.ssh # Adding the policy
restorecon -R -v ~/.ssh # Applying the policy

để chắc chắn hơn về nhãn loại được gán đệ quy từ~/.ssh


1
Đó là cách điệu "SELinux". Linux không phải là từ viết tắt và phần "SE" là từ viết tắt.
Rhymoid

@Rhymoid: Đó thực sự là một ghi chú tốt .. Thực tế những gì tôi viết là tình cờ.
sjsam

2

Nói chung, bạn không nên vô hiệu hóa SELinux. Có những công cụ có thể giúp bạn hiểu những gì đã sai. Yêu thích của tôi là sử dụng ví dụ sealert:

sealert -a /var/log/audit/audit.log

OFC bạn luôn có thể đặt SELinux ở chế độ cho phép để gỡ lỗi, nhưng việc giữ cho Selinux bị vô hiệu hóa hoặc cho phép được Red Hat dạy là lỗ hổng bảo mật nghiêm trọng.

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.