Lý do để vô hiệu hóa / kích hoạt SELinux


36

Trong dòng câu hỏi này trên StackOverflow và đám đông hoàn toàn khác nhau mà chúng tôi có ở đây, tôi tự hỏi: lý do nào để bạn vô hiệu hóa SELinux (giả sử hầu hết mọi người vẫn làm)? Bạn có muốn giữ cho nó được kích hoạt? Bạn đã trải qua những bất thường gì khi rời khỏi SELinux? Ngoài Oracle, những nhà cung cấp nào khác gặp sự cố khi hỗ trợ các hệ thống có bật Selinux?

Câu hỏi về phần thưởng: Bất kỳ ai cũng có thể quản lý để Oracle chạy trên RHEL5 với SELinux trong việc thực thi chế độ nhắm mục tiêu? Ý tôi là, nghiêm ngặt sẽ là tuyệt vời, nhưng tôi chưa thể làm được điều đó từ xa, vì vậy hãy ở lại với mục tiêu trước ;-)

Câu trả lời:


25

RedHat bật SELinux theo mặc định vì an toàn hơn. Gần như mọi nhà cung cấp sử dụng các sản phẩm có nguồn gốc Redhat đều tắt Selinux vì họ không muốn phải đặt thời gian (và do đó là tiền) để tìm hiểu lý do tại sao thứ đó không hoạt động. Người Redhat / Fedora đã bỏ ra rất nhiều thời gian và công sức để biến Selinux trở thành một lựa chọn khả thi trong Doanh nghiệp, nhưng không có nhiều tổ chức khác thực sự quan tâm đến bảo mật của bạn . (Họ quan tâm đến bảo mật của họ và danh tiếng bảo mật của sản phẩm, đó là một điều hoàn toàn khác.)

Nếu bạn có thể làm cho nó hoạt động, sau đó đi cho nó. Nếu bạn không thể, thì đừng mong đợi nhiều sự trợ giúp từ các nhà cung cấp ngoài kia. Bạn có thể có thể nhận được sự giúp đỡ từ những người Redhat / Fedora, từ danh sách gửi thư selinux và kênh #selinux trên freenode. Nhưng từ các công ty như Oracle - tốt, SELinux không thực sự là nhân tố trong kế hoạch kinh doanh của họ.


8
Một nhà cung cấp phần mềm "doanh nghiệp" được thuê để cài đặt sản phẩm của họ đã xử lý vấn đề về quyền bằng cách thực hiện chmod -R 777 * trên cây thư mục lớn. Họ thực sự không quan tâm đến an ninh của bạn.
kmarsh

21

Thông thường, bạn nên chạy SELinux trong Permissive thay vì vô hiệu hóa hoàn toàn. Sau đó, bạn có thể kiểm tra (qua audit2why) sau một thời gian để xem loại vi phạm nào sẽ bị từ chối trong quá trình sử dụng thường xuyên của bạn và xây dựng chính sách tùy chỉnh thông qua audit2allownếu những 'vi phạm' đó là sai cho thiết lập của bạn.

Tôi đã thấy hành vi của Selinux trên các hệ thống không có nguồn gốc từ Fedora sẽ cảm ứng hơn đáng kể so với những gì bạn nhận được với một hệ thống Fedora / RHEL điển hình theo mặc định.

Nếu bạn chưa thấy nó, bạn có thể thấy Hướng dẫn sử dụng Fedora SELinux mang tính giáo dục.


16

Lý do:

  • Mức độ bảo mật cao hơn thông qua kiểm soát truy cập bắt buộc
  • Bạn cần một lý do vượt quá mức bảo mật cao hơn? :-)

Lý do chống lại:

  • Khó để hiểu
  • Khó quản lý
  • Khó khắc phục sự cố

Điều đó nói rằng nếu bạn đang xem xét SELinux, tôi khuyên bạn nên sử dụng cuốn sách SELinux theo ví dụ .

Tôi đã làm việc cho một công ty đã kích hoạt SELinux, ở chế độ thực thi, trên mọi hệ thống. Chìa khóa cho chúng tôi là sự hiểu biết và sử dụng chương trình aud2allow có thể được sử dụng để tạo các quy tắc ngữ cảnh mới.

Đầu tiên, chúng tôi sẽ tạo một mẫu với aud2allow, sau đó sử dụng tập lệnh để xây dựng nó, như thế này:

export NAME="my_serviced"
sudo audit2allow -m "${NAME}" -i /var/log/audit/audit.log > ${NAME}.te
sudo setup_semodule ${NAME}

Kịch bản setup_semodule:

#!/bin/sh

# Where to store selinux related files
SOURCE=/etc/selinux/local
BUILD=/etc/selinux/local
NAME=$1

/usr/bin/checkmodule -M -m -o ${BUILD}/${NAME}.mod ${SOURCE}/${NAME}.te
/usr/bin/semodule_package -o ${BUILD}/${NAME}.pp -m ${BUILD}/${NAME}.mod
/usr/sbin/semodule -i ${BUILD}/${NAME}.pp

/bin/rm ${BUILD}/${NAME}.mod ${BUILD}/${NAME}.pp

Điều này xây dựng mô-đun từ mẫu (tệp .te), tạo gói và sau đó tải mô-đun.

Chúng tôi đã sử dụng Puppet cho hệ thống quản lý cấu hình của mình và chúng tôi đã viết cấu hình cho Puppet để quản lý tất cả điều này.

Mô đun con rối Selinux:


2
+1, thông tin rất hữu ích.
DCookie

10

Lý do để tắt nó là bởi vì nó có thể là một nỗi đau để gỡ lỗi.

Tuy nhiên chúng tôi không tắt nó ngay bây giờ. Chúng tôi gần như luôn giữ cho nó chạy. Thỉnh thoảng tôi tắt nó đi để nhanh chóng xác minh xem SElinux có vấn đề hay không.

Việc gỡ lỗi bây giờ dễ dàng hơn nhiều, đặc biệt là nếu bạn biến mình thành familir với aud2allow. Bạn thực sự không cần phải hiểu nó với aud2allow, nhưng đôi khi bạn có thể sẽ mở rộng hơn so với bạn nghĩ với aud2allow. Đã nói rằng một số SELinux là tốt hơn so với không.

Tôi không có nghĩa là một chuyên gia của Selinux và chỉ mới sử dụng nó trong một vài năm. Tôi vẫn chưa thực sự hiểu những điều cơ bản, nhưng tôi biết đủ để các ứng dụng chạy, nhưng những ứng dụng được bao gồm trong bản phân phối và nội dung ngẫu nhiên được biên dịch trên mạng.

Những điều chính tôi đã phải sử dụng là ls -lZ(chương selinux ngữ cảnh), audit2allow, chcon, semodule, getenforce, setenforcevà các phép toán luận. Với những công cụ tôi đã quản lý để có được mọi ứng dụng tôi cần để chạy trong SELinux.

Tôi tìm thấy một trong những vấn đề lớn của anh ấy với việc gỡ lỗi các vấn đề của Selinux ,, chỉ đơn giản là ghi nhớ để kiểm tra các vấn đề của Selinux khi tôi gặp các vấn đề khôn ngoan không thể giải thích khác. Tôi thường mất một chút thời gian để đi "h! Kiểm tra SELinux !!".

Theo trang man ràng buộc, Selinux an toàn hơn nhiều so với việc chạy liên kết trong nhà tù chroot. Rất nhiều người khác có nhiều đầu mối hơn tôi cũng khuyên bạn nên bây giờ tôi chạy nó một cách mù quáng. Và nghi ngờ mặc dù vấn đề không thường xuyên, nó có lẽ là đáng làm.


2
+1 để chỉ ra rằng bạn thường được phục vụ tốt hơn để chạy Selinux và chỉ tắt nó để xác minh xem đó có phải là nguồn gốc của vấn đề hay không.
Ophidian

2

Tôi đã vô hiệu hóa SELinux cho AppArmor , tôi thấy nó thân thiện và dễ bảo trì hơn nhiều so với SELinux.


Hấp dẫn. Bạn đang ở đâu? Tôi chưa bao giờ sử dụng AppArmor, nhưng tôi tò mò không biết distro có cấu hình gì ngoài hộp và đặc điểm là gì. Sẽ xem xét điều này. Cá nhân, tôi không gặp rắc rối với SELinux, btw, nhưng nó cần một số quen thuộc.
wzzrd

AppArmor ban đầu được Novell phát triển và được bao gồm theo mặc định trong tất cả các bản phân phối openSUSE và SUSE Linux Enterprise của họ. Nó được bật theo mặc định trên các bản phân phối doanh nghiệp và dễ dàng bật trong các bản phân phối của người tiêu dùng. Ubuntu đã có nó từ 7.04, nhưng nó không tự động thực thi mọi ứng dụng theo mặc định.
andrewd18

Tôi nghĩ rằng tôi nhớ một số cuộc nói chuyện về Novell sa thải hầu hết nhóm AppArmor. Không phải Ubuntu đã thả nó từ bản phân phối sao? Hay tôi lại nghe thấy những giọng nói trong đầu? ;-)
wzzrd

Novell đã làm - nhưng tác giả vẫn làm việc trên nó không được trả tiền. Nó vẫn được hỗ trợ trên Ubuntu, và những thứ như cốc và mysqld đang được thi hành theo mặc định.
LiraNuna

Không phải luôn luôn nhưng chúng ta thường giao dịch dễ sử dụng để bảo mật và ngược lại. Đó là một hành động cân bằng và câu trả lời không tầm thường chủ yếu là do xác định rủi ro và mục tiêu bảo mật là một nhiệm vụ rất khó khăn.
rev

1

Không có lý do để tắt nó khi bạn có thể chạy nó trong chế độ Cho phép. Nó sẽ không can thiệp vào ứng dụng đang chạy và nó vẫn sẽ cung cấp ghi nhật ký bảo mật hữu ích. Ngoại lệ duy nhất là về bối cảnh người dùng: nếu bạn đang thay đổi giữa những người dùng khác nhau sống trong một phiên bản linux khác đang chạy trong một chroot, bạn có thể gặp vấn đề.


Trên thực tế, có những trường hợp SELinux có thể can thiệp vào các ứng dụng ở chế độ Cho phép. Một: tại một số thời điểm, một số quy tắc được thi hành, mặc dù hệ thống được đặt thành cho phép. Không chắc chắn nếu đây vẫn là trường hợp. Hai: thời gian xử lý các quy tắc có thể đủ để làm hỏng IPC. Tôi đã thấy điều này với các cụm Oracle. Một lần nữa trong quá khứ và không chắc tình trạng hiện tại là gì. Nhưng hãy nhớ rằng gần như mọi cuộc gọi hệ thống đều có một ít thời gian xử lý được thêm vào nó.
Jason Tan

0

SE Linux không vô vọng như trước đây, ít nhất nó không có trong các bản phát hành được hỗ trợ thương mại như RHEL5. Đối với hầu hết các phần bạn có thể để nó trên đó, và nó sẽ ổn với bất cứ điều gì được cung cấp bởi RedHat. Với bất cứ điều gì khác, nó có thể thay đổi. Vấn đề là dịch vụ chuyên nghiệp hoạt động để giúp các ứng dụng hoạt động với SE Linux được kích hoạt là một nguồn doanh thu tốt cho các công ty như RedHat và Oracle, vì vậy họ không có động lực để làm cho mọi thứ hoạt động tốt.


Tôi không nghĩ rằng Oracle chính thức hỗ trợ SELinux tho
wzzrd
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.