ಸಿಸ್ಟಮ್ ನಿರ್ವಾಹಕರಿಗೆ SELinux ಚೀಟ್ ಶೀಟ್: ಪ್ರಮುಖ ಪ್ರಶ್ನೆಗಳಿಗೆ 42 ಉತ್ತರಗಳು

ಲೇಖನದ ಅನುವಾದವನ್ನು ಕೋರ್ಸ್‌ನ ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ವಿಶೇಷವಾಗಿ ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ "ಲಿನಕ್ಸ್ ನಿರ್ವಾಹಕರು".

ಸಿಸ್ಟಮ್ ನಿರ್ವಾಹಕರಿಗೆ SELinux ಚೀಟ್ ಶೀಟ್: ಪ್ರಮುಖ ಪ್ರಶ್ನೆಗಳಿಗೆ 42 ಉತ್ತರಗಳು

ಸುಧಾರಿತ ಭದ್ರತೆಯೊಂದಿಗೆ ಲಿನಕ್ಸ್‌ನಲ್ಲಿರುವ ಜೀವನ, ಬ್ರಹ್ಮಾಂಡ ಮತ್ತು ಎಲ್ಲದರ ಕುರಿತು ಪ್ರಮುಖ ಪ್ರಶ್ನೆಗಳಿಗೆ ಇಲ್ಲಿ ನೀವು ಉತ್ತರಗಳನ್ನು ಪಡೆಯುತ್ತೀರಿ.

"ವಿಷಯಗಳು ಯಾವಾಗಲೂ ತೋರುತ್ತಿರುವಂತೆ ಇರುವುದಿಲ್ಲ ಎಂಬ ಪ್ರಮುಖ ಸತ್ಯವು ಸಾಮಾನ್ಯ ಜ್ಞಾನವಾಗಿದೆ..."

-ಡಗ್ಲಾಸ್ ಆಡಮ್ಸ್, ದಿ ಹಿಚ್‌ಹೈಕರ್ಸ್ ಗೈಡ್ ಟು ದಿ ಗ್ಯಾಲಕ್ಸಿ

ಸುರಕ್ಷತೆ. ಹೆಚ್ಚಿದ ವಿಶ್ವಾಸಾರ್ಹತೆ. ಪತ್ರವ್ಯವಹಾರ. ನೀತಿ. ಅಪೋಕ್ಯಾಲಿಪ್ಸ್ ಸಿಸಾಡ್ಮಿನ್‌ನ ನಾಲ್ಕು ಕುದುರೆ ಸವಾರರು. ನಮ್ಮ ದೈನಂದಿನ ಕಾರ್ಯಗಳಿಗೆ ಹೆಚ್ಚುವರಿಯಾಗಿ - ಮೇಲ್ವಿಚಾರಣೆ, ಬ್ಯಾಕಪ್, ಅನುಷ್ಠಾನ, ಕಾನ್ಫಿಗರೇಶನ್, ನವೀಕರಿಸುವುದು, ಇತ್ಯಾದಿ - ನಮ್ಮ ಸಿಸ್ಟಮ್‌ಗಳ ಸುರಕ್ಷತೆಗೆ ಸಹ ನಾವು ಜವಾಬ್ದಾರರಾಗಿರುತ್ತೇವೆ. ನಾವು ವರ್ಧಿತ ಭದ್ರತೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವಂತೆ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಪೂರೈಕೆದಾರರು ಶಿಫಾರಸು ಮಾಡುವ ವ್ಯವಸ್ಥೆಗಳೂ ಸಹ. ಕೆಲಸ ಅನ್ನಿಸುತ್ತದೆ ಎಥಾನ್ ಹಂಟ್ "ಮಿಷನ್: ಇಂಪಾಸಿಬಲ್" ನಿಂದ.

ಈ ಸಂದಿಗ್ಧತೆಯನ್ನು ಎದುರಿಸುತ್ತಿರುವ ಕೆಲವು ಸಿಸ್ಟಮ್ ನಿರ್ವಾಹಕರು ತೆಗೆದುಕೊಳ್ಳಲು ನಿರ್ಧರಿಸುತ್ತಾರೆ ನೀಲಿ ಮಾತ್ರೆ, ಏಕೆಂದರೆ ಅವರು ಜೀವನ, ಬ್ರಹ್ಮಾಂಡ ಮತ್ತು ಎಲ್ಲದರ ದೊಡ್ಡ ಪ್ರಶ್ನೆಗೆ ಉತ್ತರವನ್ನು ಎಂದಿಗೂ ತಿಳಿದಿರುವುದಿಲ್ಲ ಎಂದು ಅವರು ಭಾವಿಸುತ್ತಾರೆ. ಮತ್ತು ನಮಗೆ ತಿಳಿದಿರುವಂತೆ, ಉತ್ತರವು 42 ಆಗಿದೆ.

ದಿ ಹಿಚ್‌ಹೈಕರ್ಸ್ ಗೈಡ್ ಟು ದಿ ಗ್ಯಾಲಕ್ಸಿಯ ಉತ್ಸಾಹದಲ್ಲಿ, ನಿಯಂತ್ರಣ ಮತ್ತು ಬಳಕೆಯ ಕುರಿತು ಪ್ರಮುಖ ಪ್ರಶ್ನೆಗಳಿಗೆ 42 ಉತ್ತರಗಳು ಇಲ್ಲಿವೆ. SELinux ನಿಮ್ಮ ಸಿಸ್ಟಂಗಳಲ್ಲಿ.

1. SELinux ಬಲವಂತದ ಪ್ರವೇಶ ನಿಯಂತ್ರಣ ವ್ಯವಸ್ಥೆಯಾಗಿದೆ, ಅಂದರೆ ಪ್ರತಿ ಪ್ರಕ್ರಿಯೆಯು ಲೇಬಲ್ ಅನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ಫೈಲ್, ಡೈರೆಕ್ಟರಿ ಮತ್ತು ಸಿಸ್ಟಮ್ ಆಬ್ಜೆಕ್ಟ್ ಕೂಡ ಲೇಬಲ್ಗಳನ್ನು ಹೊಂದಿದೆ. ಟ್ಯಾಗ್ ಮಾಡಲಾದ ಪ್ರಕ್ರಿಯೆಗಳು ಮತ್ತು ವಸ್ತುಗಳ ನಡುವಿನ ಪ್ರವೇಶವನ್ನು ನೀತಿ ನಿಯಮಗಳು ನಿಯಂತ್ರಿಸುತ್ತವೆ. ಕರ್ನಲ್ ಈ ನಿಯಮಗಳನ್ನು ಜಾರಿಗೊಳಿಸುತ್ತದೆ.

2. ಎರಡು ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಗಳು: ಲೇಬಲಿಂಗ್ - ಗುರುತುಗಳು (ಫೈಲ್‌ಗಳು, ಪ್ರಕ್ರಿಯೆಗಳು, ಪೋರ್ಟ್‌ಗಳು, ಇತ್ಯಾದಿ) ಮತ್ತು ವಿಧದ ಜಾರಿ (ಇದು ಪ್ರಕಾರಗಳ ಆಧಾರದ ಮೇಲೆ ಪರಸ್ಪರ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ).

3. ಸರಿಯಾದ ಲೇಬಲ್ ಫಾರ್ಮ್ಯಾಟ್ user:role:type:level (ಐಚ್ಛಿಕ).

4. ಬಹು ಹಂತದ ಭದ್ರತೆಯನ್ನು ಒದಗಿಸುವ ಉದ್ದೇಶ (ಬಹು ಹಂತದ ಭದ್ರತೆ - MLS) ಅವರು ಬಳಸುವ ಡೇಟಾದ ಸುರಕ್ಷತೆಯ ಮಟ್ಟವನ್ನು ಆಧರಿಸಿ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು (ಡೊಮೇನ್‌ಗಳು) ನಿರ್ವಹಿಸುವುದು. ಉದಾಹರಣೆಗೆ, ರಹಸ್ಯ ಪ್ರಕ್ರಿಯೆಯು ಉನ್ನತ ರಹಸ್ಯ ಡೇಟಾವನ್ನು ಓದಲು ಸಾಧ್ಯವಿಲ್ಲ.

5. ಬಹು-ವರ್ಗದ ಭದ್ರತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು (ಬಹು-ವರ್ಗದ ಭದ್ರತೆ - MCS) ಒಂದೇ ರೀತಿಯ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಪರಸ್ಪರ ರಕ್ಷಿಸುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, ವರ್ಚುವಲ್ ಯಂತ್ರಗಳು, ಓಪನ್‌ಶಿಫ್ಟ್ ಎಂಜಿನ್‌ಗಳು, SELinux ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ಗಳು, ಕಂಟೈನರ್‌ಗಳು, ಇತ್ಯಾದಿ.).

6. ಬೂಟ್‌ನಲ್ಲಿ SELinux ಮೋಡ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಕರ್ನಲ್ ಆಯ್ಕೆಗಳು:

  • autorelabel=1 → ಸಿಸ್ಟಮ್ ಅನ್ನು ಮರುಲೇಬಲ್ ಮಾಡುವಿಕೆಯನ್ನು ರನ್ ಮಾಡಲು ಕಾರಣವಾಗುತ್ತದೆ
  • selinux=0 → ಕರ್ನಲ್ SELinux ಮೂಲಸೌಕರ್ಯವನ್ನು ಲೋಡ್ ಮಾಡುವುದಿಲ್ಲ
  • enforcing=0 → ಅನುಮತಿ ಮೋಡ್‌ನಲ್ಲಿ ಲೋಡ್ ಆಗುತ್ತಿದೆ

7. ನೀವು ಸಂಪೂರ್ಣ ಸಿಸ್ಟಮ್ ಅನ್ನು ಮರುಲೇಬಲ್ ಮಾಡಬೇಕಾದರೆ:

# touch /.autorelabel
#reboot

ಸಿಸ್ಟಮ್ ಮಾರ್ಕಿಂಗ್ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ದೋಷಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ರಿಮಾರ್ಕ್ ಮಾಡುವಿಕೆ ಯಶಸ್ವಿಯಾಗಲು ನೀವು ಅನುಮತಿ ಮೋಡ್‌ನಲ್ಲಿ ಬೂಟ್ ಮಾಡಬೇಕಾಗಬಹುದು.

8. SELinux ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು: # getenforce

9. SELinux ಅನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲು/ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು: # setenforce [1|0]

10. SELinux ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ: # sestatus

11. ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್: /etc/selinux/config

12. SELinux ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ? ಅಪಾಚೆ ವೆಬ್ ಸರ್ವರ್‌ಗಾಗಿ ಗುರುತು ಮಾಡುವ ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ:

  • ಬೈನರಿ ಪ್ರಾತಿನಿಧ್ಯ: /usr/sbin/httpd→httpd_exec_t
  • ಕಾನ್ಫಿಗರೇಶನ್ ಡೈರೆಕ್ಟರಿ: /etc/httpd→httpd_config_t
  • ಲಾಗ್ ಫೈಲ್ ಡೈರೆಕ್ಟರಿ: /var/log/httpd → httpd_log_t
  • ವಿಷಯ ಡೈರೆಕ್ಟರಿ: /var/www/html → httpd_sys_content_t
  • ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ: /usr/lib/systemd/system/httpd.service → httpd_unit_file_d
  • ಪ್ರಕ್ರಿಯೆ: /usr/sbin/httpd -DFOREGROUND → httpd_t
  • ಬಂದರುಗಳು: 80/tcp, 443/tcp → httpd_t, http_port_t

ಸಂದರ್ಭದಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಪ್ರಕ್ರಿಯೆ httpd_t, ಲೇಬಲ್ ಮಾಡಲಾದ ವಸ್ತುವಿನೊಂದಿಗೆ ಸಂವಹನ ಮಾಡಬಹುದು httpd_something_t.

13. ಅನೇಕ ಆಜ್ಞೆಗಳು ವಾದವನ್ನು ಸ್ವೀಕರಿಸುತ್ತವೆ -Z ಸನ್ನಿವೇಶವನ್ನು ವೀಕ್ಷಿಸಲು, ರಚಿಸಲು ಮತ್ತು ಬದಲಾಯಿಸಲು:

  • ls -Z
  • id -Z
  • ps -Z
  • netstat -Z
  • cp -Z
  • mkdir -Z

ಫೈಲ್‌ಗಳನ್ನು ಅವುಗಳ ಮೂಲ ಡೈರೆಕ್ಟರಿಯ ಸಂದರ್ಭವನ್ನು ಆಧರಿಸಿ ರಚಿಸಿದಾಗ ಸನ್ನಿವೇಶಗಳನ್ನು ಸ್ಥಾಪಿಸಲಾಗುತ್ತದೆ (ಕೆಲವು ವಿನಾಯಿತಿಗಳೊಂದಿಗೆ). RPM ಗಳು ಅನುಸ್ಥಾಪನೆಯ ಸಮಯದಲ್ಲಿ ಸಂದರ್ಭಗಳನ್ನು ಸ್ಥಾಪಿಸಬಹುದು.

14. SELinux ದೋಷಗಳಿಗೆ ನಾಲ್ಕು ಮುಖ್ಯ ಕಾರಣಗಳಿವೆ, ಇವುಗಳನ್ನು ಕೆಳಗೆ 15-21 ಅಂಕಗಳಲ್ಲಿ ಹೆಚ್ಚು ವಿವರವಾಗಿ ವಿವರಿಸಲಾಗಿದೆ:

  • ಲೇಬಲಿಂಗ್ ಸಮಸ್ಯೆಗಳು
  • ಏಕೆಂದರೆ SELinux ತಿಳಿಯಬೇಕಾದದ್ದು
  • SELinux ನೀತಿ/ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ದೋಷ
  • ನಿಮ್ಮ ಮಾಹಿತಿಯು ರಾಜಿಯಾಗಬಹುದು

15. ಲೇಬಲಿಂಗ್ ಸಮಸ್ಯೆ: ನಿಮ್ಮ ಫೈಲ್‌ಗಳು ಒಳಗಿದ್ದರೆ /srv/myweb ತಪ್ಪಾಗಿ ಗುರುತಿಸಲಾಗಿದೆ, ಪ್ರವೇಶವನ್ನು ನಿರಾಕರಿಸಬಹುದು. ಇದನ್ನು ಸರಿಪಡಿಸಲು ಕೆಲವು ಮಾರ್ಗಗಳು ಇಲ್ಲಿವೆ:

  • ಲೇಬಲ್ ನಿಮಗೆ ತಿಳಿದಿದ್ದರೆ:
    # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
  • ಸಮಾನ ಗುರುತುಗಳೊಂದಿಗೆ ಫೈಲ್ ನಿಮಗೆ ತಿಳಿದಿದ್ದರೆ:
    # semanage fcontext -a -e /srv/myweb /var/www
  • ಸಂದರ್ಭವನ್ನು ಮರುಸ್ಥಾಪಿಸುವುದು (ಎರಡೂ ಸಂದರ್ಭಗಳಲ್ಲಿ):
    # restorecon -vR /srv/myweb

16. ಲೇಬಲ್ ಸಮಸ್ಯೆ: ನೀವು ಫೈಲ್ ಅನ್ನು ನಕಲಿಸುವ ಬದಲು ಅದನ್ನು ಸರಿಸಿದರೆ, ಫೈಲ್ ಅದರ ಮೂಲ ಸಂದರ್ಭವನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಈ ಸಮಸ್ಯೆಯನ್ನು ಸರಿಪಡಿಸಲು:

  • ಲೇಬಲ್ನೊಂದಿಗೆ ಸಂದರ್ಭ ಆಜ್ಞೆಯನ್ನು ಬದಲಾಯಿಸಿ:
    # chcon -t httpd_system_content_t /var/www/html/index.html
  • ಲಿಂಕ್ ಲೇಬಲ್‌ನೊಂದಿಗೆ ಕಾಂಟೆಕ್ಸ್ಟ್ ಕಮಾಂಡ್ ಅನ್ನು ಬದಲಾಯಿಸಿ:
    # chcon --reference /var/www/html/ /var/www/html/index.html
  • ಸಂದರ್ಭವನ್ನು ಮರುಸ್ಥಾಪಿಸಿ (ಎರಡೂ ಸಂದರ್ಭಗಳಲ್ಲಿ): # restorecon -vR /var/www/html/

17. ವೇಳೆ ನೀವು ತಿಳಿದುಕೊಳ್ಳಬೇಕಾದ SELinuxHTTPD ಪೋರ್ಟ್ 8585 ನಲ್ಲಿ ಕೇಳುತ್ತಿದೆ ಎಂದು, SELinux ಗೆ ತಿಳಿಸಿ:

# semanage port -a -t http_port_t -p tcp 8585

18. ನೀವು ತಿಳಿದುಕೊಳ್ಳಬೇಕಾದ SELinux ಬೂಲಿಯನ್ ಮೌಲ್ಯಗಳು SELinux ನೀತಿಯ ಭಾಗಗಳನ್ನು SELinux ನೀತಿಯನ್ನು ತಿದ್ದಿ ಬರೆಯುವ ಅರಿವಿಲ್ಲದೆ ರನ್‌ಟೈಮ್‌ನಲ್ಲಿ ಬದಲಾಯಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ನೀವು httpd ಇಮೇಲ್ ಕಳುಹಿಸಲು ಬಯಸಿದರೆ, ನಮೂದಿಸಿ: # setsebool -P httpd_can_sendmail 1

19. ನೀವು ತಿಳಿದುಕೊಳ್ಳಬೇಕಾದ SELinux SELinux ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು/ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ತಾರ್ಕಿಕ ಮೌಲ್ಯಗಳು:

  • ಎಲ್ಲಾ ಬೂಲಿಯನ್ ಮೌಲ್ಯಗಳನ್ನು ನೋಡಲು: # getsebool -a
  • ಪ್ರತಿಯೊಂದರ ವಿವರಣೆಯನ್ನು ನೋಡಲು: # semanage boolean -l
  • ಬೂಲಿಯನ್ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿಸಲು: # setsebool [_boolean_] [1|0]
  • ಶಾಶ್ವತ ಅನುಸ್ಥಾಪನೆಗೆ, ಸೇರಿಸಿ -P. ಉದಾಹರಣೆಗೆ: # setsebool httpd_enable_ftp_server 1 -P

20. SELinux ನೀತಿಗಳು/ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ದೋಷಗಳನ್ನು ಹೊಂದಿರಬಹುದು, ಅವುಗಳೆಂದರೆ:

  • ಅಸಾಮಾನ್ಯ ಕೋಡ್ ಮಾರ್ಗಗಳು
  • ಸಂರಚನೆಗಳು
  • stdout ಅನ್ನು ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ
  • ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಸೋರಿಕೆ
  • ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಮೆಮೊರಿ
  • ಕಳಪೆಯಾಗಿ ನಿರ್ಮಿಸಿದ ಗ್ರಂಥಾಲಯಗಳು

ಟಿಕೆಟ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ (ಬಗ್ಜಿಲ್ಲಾಗೆ ವರದಿಯನ್ನು ಸಲ್ಲಿಸಬೇಡಿ; ಬಗ್ಜಿಲ್ಲಾ ಯಾವುದೇ SLA ಹೊಂದಿಲ್ಲ).

21. ನಿಮ್ಮ ಮಾಹಿತಿಯು ರಾಜಿಯಾಗಬಹುದುನೀವು ನಿರ್ಬಂಧಿತ ಡೊಮೇನ್‌ಗಳನ್ನು ಹೊಂದಿದ್ದರೆ:

  • ಕರ್ನಲ್ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಿ
  • ಜಾರಿಗೊಳಿಸಿದ SELinux ಮೋಡ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ
  • ಬರೆಯಲು etc_t/shadow_t
  • iptables ನಿಯಮಗಳನ್ನು ಬದಲಾಯಿಸಿ

22. ನೀತಿ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು SELinux ಪರಿಕರಗಳು:

# yum -y install setroubleshoot setroubleshoot-server

ರೀಬೂಟ್ ಮಾಡಿ ಅಥವಾ ಮರುಪ್ರಾರಂಭಿಸಿ auditd ಅನುಸ್ಥಾಪನೆಯ ನಂತರ.

23. ಬಳಸಿ

journalctl

ಸಂಬಂಧಿಸಿದ ಎಲ್ಲಾ ಲಾಗ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ಪ್ರದರ್ಶಿಸಲು setroubleshoot:

# journalctl -t setroubleshoot --since=14:20

24. ಬಳಸಿ journalctl ನಿರ್ದಿಷ್ಟ SELinux ಟ್ಯಾಗ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ಎಲ್ಲಾ ಲಾಗ್‌ಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಲು. ಉದಾಹರಣೆಗೆ:

# journalctl _SELINUX_CONTEXT=system_u:system_r:policykit_t:s0

25. ಒಂದು SELinux ದೋಷ ಸಂಭವಿಸಿದಲ್ಲಿ, ಲಾಗ್ ಅನ್ನು ಬಳಸಿ setroubleshoot ಹಲವಾರು ಸಂಭಾವ್ಯ ಪರಿಹಾರಗಳನ್ನು ನೀಡುತ್ತಿದೆ.
ಉದಾಹರಣೆಗೆ, ನಿಂದ journalctl:

Jun 14 19:41:07 web1 setroubleshoot: SELinux is preventing httpd from getattr access on the file /var/www/html/index.html. For complete message run: sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e

# sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
SELinux is preventing httpd from getattr access on the file /var/www/html/index.html.

***** Plugin restorecon (99.5 confidence) suggests ************************

If you want to fix the label,
/var/www/html/index.html default label should be httpd_syscontent_t.
Then you can restorecon.
Do
# /sbin/restorecon -v /var/www/html/index.html

26. ಲಾಗಿಂಗ್: SELinux ಹಲವು ಸ್ಥಳಗಳಲ್ಲಿ ಮಾಹಿತಿಯನ್ನು ದಾಖಲಿಸುತ್ತದೆ:

  • / var / log / messages
  • /var/log/audit/audit.log
  • /var/lib/setroubleshoot/setroubleshoot_database.xml

27. ಲಾಗಿಂಗ್: ಆಡಿಟ್ ಲಾಗ್‌ನಲ್ಲಿ SELinux ದೋಷಗಳಿಗಾಗಿ ಹುಡುಕಲಾಗುತ್ತಿದೆ:

# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today

28. ನಿರ್ದಿಷ್ಟ ಸೇವೆಗಾಗಿ SELinux ಪ್ರವೇಶ ವೆಕ್ಟರ್ ಸಂಗ್ರಹ (AVC) ಸಂದೇಶಗಳನ್ನು ಹುಡುಕಲು:

# ausearch -m avc -c httpd

29. ಉಪಯುಕ್ತತೆ audit2allow ನಿಷೇಧಿತ ಕಾರ್ಯಾಚರಣೆಗಳ ಲಾಗ್‌ಗಳಿಂದ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ನಂತರ SELinux ಅನುಮತಿ ನೀತಿ ನಿಯಮಗಳನ್ನು ರಚಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ:

  • ಪ್ರವೇಶವನ್ನು ಏಕೆ ನಿರಾಕರಿಸಲಾಗಿದೆ ಎಂಬುದರ ಕುರಿತು ಮಾನವ-ಓದಬಲ್ಲ ವಿವರಣೆಯನ್ನು ರಚಿಸಲು: # audit2allow -w -a
  • ನಿರಾಕರಿಸಿದ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸುವ ಪ್ರಕಾರದ ಜಾರಿ ನಿಯಮವನ್ನು ವೀಕ್ಷಿಸಲು: # audit2allow -a
  • ಕಸ್ಟಮ್ ಮಾಡ್ಯೂಲ್ ರಚಿಸಲು: # audit2allow -a -M mypolicy
  • ಆಯ್ಕೆ -M ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಹೆಸರಿನೊಂದಿಗೆ ವಿಧದ ಜಾರಿ ಫೈಲ್ (.te) ಅನ್ನು ರಚಿಸುತ್ತದೆ ಮತ್ತು ನಿಯಮವನ್ನು ನೀತಿ ಪ್ಯಾಕೇಜ್‌ಗೆ (.pp) ಕಂಪೈಲ್ ಮಾಡುತ್ತದೆ: mypolicy.pp mypolicy.te
  • ಕಸ್ಟಮ್ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು: # semodule -i mypolicy.pp

30. ಅನುಮತಿ ಮೋಡ್‌ನಲ್ಲಿ ಕೆಲಸ ಮಾಡಲು ಪ್ರತ್ಯೇಕ ಪ್ರಕ್ರಿಯೆಯನ್ನು (ಡೊಮೇನ್) ಕಾನ್ಫಿಗರ್ ಮಾಡಲು: # semanage permissive -a httpd_t

31. ನೀವು ಇನ್ನು ಮುಂದೆ ಡೊಮೇನ್ ಅನ್ನು ಅನುಮತಿಸಲು ಬಯಸದಿದ್ದರೆ: # semanage permissive -d httpd_t

32. ಎಲ್ಲಾ ಅನುಮತಿ ಡೊಮೇನ್‌ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು: # semodule -d permissivedomains

33. MLS SELinux ನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತಿದೆ: # yum install selinux-policy-mls
в /etc/selinux/config:

SELINUX=permissive
SELINUXTYPE=mls

SELinux ಅನುಮತಿ ಮೋಡ್‌ನಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ: # setenforce 0
ಸ್ಕ್ರಿಪ್ಟ್ ಬಳಸಿ fixfilesಮುಂದಿನ ರೀಬೂಟ್‌ನಲ್ಲಿ ಫೈಲ್‌ಗಳನ್ನು ಮರುಲೇಬಲ್ ಮಾಡಲಾಗಿದೆಯೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು:

# fixfiles -F onboot # reboot

34. ನಿರ್ದಿಷ್ಟ MLS ಶ್ರೇಣಿಯೊಂದಿಗೆ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಿ: # useradd -Z staff_u john

ಆಜ್ಞೆಯನ್ನು ಬಳಸುವುದು useradd, ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ SELinux ಬಳಕೆದಾರರಿಗೆ ಮ್ಯಾಪ್ ಮಾಡಿ (ಈ ಸಂದರ್ಭದಲ್ಲಿ, staff_u).

35. SELinux ಮತ್ತು Linux ಬಳಕೆದಾರರ ನಡುವೆ ಮ್ಯಾಪಿಂಗ್ ವೀಕ್ಷಿಸಲು: # semanage login -l

36. ಬಳಕೆದಾರರಿಗೆ ನಿರ್ದಿಷ್ಟ ಶ್ರೇಣಿಯನ್ನು ವಿವರಿಸಿ: # semanage login --modify --range s2:c100 john

37. ಬಳಕೆದಾರರ ಹೋಮ್ ಡೈರೆಕ್ಟರಿ ಲೇಬಲ್ ಅನ್ನು ಸರಿಪಡಿಸಲು (ಅಗತ್ಯವಿದ್ದರೆ): # chcon -R -l s2:c100 /home/john

38. ಪ್ರಸ್ತುತ ವರ್ಗಗಳನ್ನು ವೀಕ್ಷಿಸಲು: # chcat -L

39. ವರ್ಗಗಳನ್ನು ಬದಲಾಯಿಸಲು ಅಥವಾ ನಿಮ್ಮದೇ ಆದದನ್ನು ರಚಿಸಲು ಪ್ರಾರಂಭಿಸಲು, ಫೈಲ್ ಅನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಎಡಿಟ್ ಮಾಡಿ:

/etc/selinux/_<selinuxtype>_/setrans.conf

40. ನಿರ್ದಿಷ್ಟ ಫೈಲ್, ಪಾತ್ರ ಮತ್ತು ಬಳಕೆದಾರ ಸನ್ನಿವೇಶದಲ್ಲಿ ಆಜ್ಞೆ ಅಥವಾ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಚಲಾಯಿಸಲು:

# runcon -t initrc_t -r system_r -u user_u yourcommandhere

  • -t ಫೈಲ್ ಸಂದರ್ಭ
  • -r ಪಾತ್ರದ ಸಂದರ್ಭ
  • -u ಬಳಕೆದಾರ ಸಂದರ್ಭ

41. SELinux ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾದ ಕಂಟೈನರ್‌ಗಳು:

  • ಪಾಡ್ಮನ್: # podman run --security-opt label=disable …
  • ಡಾಕರ್: # docker run --security-opt label=disable …

42. ನೀವು ಕಂಟೇನರ್‌ಗೆ ಸಿಸ್ಟಮ್‌ಗೆ ಸಂಪೂರ್ಣ ಪ್ರವೇಶವನ್ನು ನೀಡಬೇಕಾದರೆ:

  • ಪಾಡ್ಮನ್: # podman run --privileged …
  • ಡಾಕರ್: # docker run --privileged …

ಮತ್ತು ಈಗ ನಿಮಗೆ ಈಗಾಗಲೇ ಉತ್ತರ ತಿಳಿದಿದೆ. ಆದ್ದರಿಂದ ದಯವಿಟ್ಟು: ಗಾಬರಿಯಾಗಬೇಡಿ ಮತ್ತು SELinux ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ.

ಉಲ್ಲೇಖಗಳು:

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ