ಲಿನಕ್ಸ್ ಭದ್ರತಾ ವ್ಯವಸ್ಥೆಗಳು

ಎಂಬೆಡೆಡ್, ಮೊಬೈಲ್ ಸಾಧನಗಳು ಮತ್ತು ಸರ್ವರ್‌ಗಳಲ್ಲಿ Linux OS ನ ಪ್ರಚಂಡ ಯಶಸ್ಸಿಗೆ ಒಂದು ಕಾರಣವೆಂದರೆ ಕರ್ನಲ್, ಸಂಬಂಧಿತ ಸೇವೆಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಹೆಚ್ಚಿನ ಮಟ್ಟದ ಸುರಕ್ಷತೆ. ಆದರೆ ಹತ್ತಿರದಿಂದ ನೋಡಿ Linux ಕರ್ನಲ್‌ನ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗೆ, ಭದ್ರತೆಗೆ ಜವಾಬ್ದಾರರಾಗಿರುವ ಚೌಕವನ್ನು ಅದರಲ್ಲಿ ಕಂಡುಹಿಡಿಯುವುದು ಅಸಾಧ್ಯ. Linux ಭದ್ರತಾ ಉಪವ್ಯವಸ್ಥೆಯು ಎಲ್ಲಿ ಅಡಗಿದೆ ಮತ್ತು ಅದು ಏನು ಒಳಗೊಂಡಿದೆ?

Linux ಭದ್ರತಾ ಮಾಡ್ಯೂಲ್‌ಗಳು ಮತ್ತು SELinux ನಲ್ಲಿ ಹಿನ್ನೆಲೆ

ಭದ್ರತಾ ವರ್ಧಿತ ಲಿನಕ್ಸ್ ಎನ್ನುವುದು ಲಿನಕ್ಸ್ ಸಿಸ್ಟಮ್‌ಗಳನ್ನು ಸಂಭಾವ್ಯ ಬೆದರಿಕೆಗಳಿಂದ ರಕ್ಷಿಸಲು ಮತ್ತು ಸಾಂಪ್ರದಾಯಿಕ ಯುನಿಕ್ಸ್ ಭದ್ರತಾ ವ್ಯವಸ್ಥೆಯಾದ ವಿವೇಚನಾಯುಕ್ತ ಪ್ರವೇಶ ನಿಯಂತ್ರಣದ (ಡಿಎಸಿ) ನ್ಯೂನತೆಗಳನ್ನು ಸರಿಪಡಿಸಲು ಕಡ್ಡಾಯ ಮತ್ತು ಪಾತ್ರ-ಆಧಾರಿತ ಪ್ರವೇಶ ಮಾದರಿಗಳ ಆಧಾರದ ಮೇಲೆ ನಿಯಮಗಳು ಮತ್ತು ಪ್ರವೇಶ ಕಾರ್ಯವಿಧಾನಗಳ ಒಂದು ಗುಂಪಾಗಿದೆ. ಈ ಯೋಜನೆಯು US ನ್ಯಾಷನಲ್ ಸೆಕ್ಯುರಿಟಿ ಏಜೆನ್ಸಿಯ ಕರುಳಿನಲ್ಲಿ ಹುಟ್ಟಿಕೊಂಡಿತು ಮತ್ತು ಮುಖ್ಯವಾಗಿ ಗುತ್ತಿಗೆದಾರರಾದ ಸೆಕ್ಯೂರ್ ಕಂಪ್ಯೂಟಿಂಗ್ ಕಾರ್ಪೊರೇಷನ್ ಮತ್ತು MITER ಮತ್ತು ಹಲವಾರು ಸಂಶೋಧನಾ ಪ್ರಯೋಗಾಲಯಗಳಿಂದ ನೇರವಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗಿದೆ.

ಲಿನಕ್ಸ್ ಭದ್ರತಾ ವ್ಯವಸ್ಥೆಗಳು
Linux ಭದ್ರತಾ ಮಾಡ್ಯೂಲ್‌ಗಳು

ಲಿನಸ್ ಟೊರ್ವಾಲ್ಡ್ಸ್ ಹೊಸ NSA ಬೆಳವಣಿಗೆಗಳ ಬಗ್ಗೆ ಹಲವಾರು ಕಾಮೆಂಟ್‌ಗಳನ್ನು ಮಾಡಿದರು ಇದರಿಂದ ಅವುಗಳನ್ನು ಮುಖ್ಯ ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ನಲ್ಲಿ ಸೇರಿಸಬಹುದು. ಅವರು ಸಾಮಾನ್ಯ ಪರಿಸರವನ್ನು ವಿವರಿಸಿದರು, ವಸ್ತುಗಳೊಂದಿಗಿನ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿಯಂತ್ರಿಸಲು ಇಂಟರ್ಸೆಪ್ಟರ್‌ಗಳ ಸೆಟ್ ಮತ್ತು ಅನುಗುಣವಾದ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಕರ್ನಲ್ ಡೇಟಾ ರಚನೆಗಳಲ್ಲಿ ಕೆಲವು ರಕ್ಷಣಾತ್ಮಕ ಕ್ಷೇತ್ರಗಳ ಸೆಟ್. ಈ ಪರಿಸರವನ್ನು ನಂತರ ಯಾವುದೇ ಅಪೇಕ್ಷಿತ ಭದ್ರತಾ ಮಾದರಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಲೋಡ್ ಮಾಡಬಹುದಾದ ಕರ್ನಲ್ ಮಾಡ್ಯೂಲ್‌ಗಳಿಂದ ಬಳಸಬಹುದು. LSM ಸಂಪೂರ್ಣವಾಗಿ Linux ಕರ್ನಲ್ v2.6 ಅನ್ನು 2003 ರಲ್ಲಿ ಪ್ರವೇಶಿಸಿತು.

LSM ಫ್ರೇಮ್‌ವರ್ಕ್ ಡೇಟಾ ರಚನೆಗಳಲ್ಲಿನ ಗಾರ್ಡ್ ಫೀಲ್ಡ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಕುಶಲತೆಯಿಂದ ನಿರ್ವಹಿಸಲು ಮತ್ತು ಪ್ರವೇಶ ನಿಯಂತ್ರಣವನ್ನು ನಿರ್ವಹಿಸಲು ಕರ್ನಲ್ ಕೋಡ್‌ನಲ್ಲಿನ ನಿರ್ಣಾಯಕ ಹಂತಗಳಲ್ಲಿ ಪ್ರತಿಬಂಧ ಕಾರ್ಯಗಳಿಗೆ ಕರೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಭದ್ರತಾ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ನೋಂದಾಯಿಸಲು ಇದು ಕಾರ್ಯವನ್ನು ಕೂಡ ಸೇರಿಸುತ್ತದೆ. /sys/kernel/security/lsm ಇಂಟರ್‌ಫೇಸ್ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಸಕ್ರಿಯ ಮಾಡ್ಯೂಲ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿದೆ. LSM ಹುಕ್‌ಗಳನ್ನು CONFIG_LSM ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಕ್ರಮದಲ್ಲಿ ಕರೆಯಲಾಗುವ ಪಟ್ಟಿಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ. ಕೊಕ್ಕೆಗಳ ಮೇಲಿನ ವಿವರವಾದ ದಸ್ತಾವೇಜನ್ನು ಹೆಡರ್ ಫೈಲ್‌ನಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ/linux/lsm_hooks.h.

LSM ಉಪವ್ಯವಸ್ಥೆಯು SELinux ನ ಸಂಪೂರ್ಣ ಏಕೀಕರಣವನ್ನು ಸ್ಥಿರವಾದ Linux ಕರ್ನಲ್ v2.6 ನ ಅದೇ ಆವೃತ್ತಿಯೊಂದಿಗೆ ಪೂರ್ಣಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗಿಸಿತು. ತಕ್ಷಣವೇ, SELinux ಸುರಕ್ಷಿತ ಲಿನಕ್ಸ್ ಪರಿಸರಕ್ಕೆ ವಾಸ್ತವಿಕ ಮಾನದಂಡವಾಯಿತು ಮತ್ತು ಅತ್ಯಂತ ಜನಪ್ರಿಯ ವಿತರಣೆಗಳಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ: RedHat Enterprise Linux, Fedora, Debian, Ubuntu.

SELinux ಗ್ಲಾಸರಿ

  • ಗುರುತು - SELinux ಬಳಕೆದಾರನು ಸಾಮಾನ್ಯ Unix/Linux ಬಳಕೆದಾರ ID ಯಂತೆಯೇ ಅಲ್ಲ; ಅವರು ಒಂದೇ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಸಹಬಾಳ್ವೆ ಮಾಡಬಹುದು, ಆದರೆ ಮೂಲಭೂತವಾಗಿ ಸಂಪೂರ್ಣವಾಗಿ ಭಿನ್ನವಾಗಿರುತ್ತವೆ. ಪ್ರತಿಯೊಂದು ಪ್ರಮಾಣಿತ ಲಿನಕ್ಸ್ ಖಾತೆಯು SELinux ನಲ್ಲಿ ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನದಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗಬಹುದು. SELinux ಗುರುತು ಒಟ್ಟಾರೆ ಭದ್ರತಾ ಸಂದರ್ಭದ ಭಾಗವಾಗಿದೆ, ಇದು ನೀವು ಯಾವ ಡೊಮೇನ್‌ಗಳಿಗೆ ಸೇರಬಹುದು ಮತ್ತು ಸೇರಬಾರದು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ.
  • ಡೊಮೇನ್‌ಗಳು - SELinux ನಲ್ಲಿ, ಡೊಮೇನ್ ಒಂದು ವಿಷಯದ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಂದರ್ಭವಾಗಿದೆ, ಅಂದರೆ ಒಂದು ಪ್ರಕ್ರಿಯೆ. ಪ್ರಕ್ರಿಯೆ ಹೊಂದಿರುವ ಪ್ರವೇಶವನ್ನು ಡೊಮೇನ್ ನೇರವಾಗಿ ನಿರ್ಧರಿಸುತ್ತದೆ. ಡೊಮೇನ್ ಮೂಲಭೂತವಾಗಿ ಯಾವ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಮಾಡಬಹುದು ಅಥವಾ ಪ್ರಕ್ರಿಯೆಯು ವಿವಿಧ ಪ್ರಕಾರಗಳೊಂದಿಗೆ ಏನು ಮಾಡಬಹುದು ಎಂಬುದರ ಪಟ್ಟಿಯಾಗಿದೆ. ಡೊಮೇನ್‌ಗಳ ಕೆಲವು ಉದಾಹರಣೆಗಳು ಸಿಸ್ಟಂ ಅಡ್ಮಿನಿಸ್ಟ್ರೇಷನ್‌ಗಾಗಿ sysadm_t, ಮತ್ತು ಸಾಮಾನ್ಯ ಸವಲತ್ತು ಇಲ್ಲದ ಬಳಕೆದಾರ ಡೊಮೇನ್ ಆಗಿರುವ user_t. init ವ್ಯವಸ್ಥೆಯು init_t ಡೊಮೇನ್‌ನಲ್ಲಿ ಚಲಿಸುತ್ತದೆ ಮತ್ತು ಹೆಸರಿಸಿದ ಪ್ರಕ್ರಿಯೆಯು name_t ಡೊಮೇನ್‌ನಲ್ಲಿ ಚಲಿಸುತ್ತದೆ.
  • ಪಾತ್ರಗಳು — ಡೊಮೇನ್‌ಗಳು ಮತ್ತು SELinux ಬಳಕೆದಾರರ ನಡುವೆ ಮಧ್ಯವರ್ತಿಯಾಗಿ ಯಾವುದು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಬಳಕೆದಾರರು ಯಾವ ಡೊಮೇನ್‌ಗಳಿಗೆ ಸೇರಿರಬಹುದು ಮತ್ತು ಅವರು ಯಾವ ರೀತಿಯ ವಸ್ತುಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಎಂಬುದನ್ನು ಪಾತ್ರಗಳು ನಿರ್ಧರಿಸುತ್ತವೆ. ಈ ಪ್ರವೇಶ ನಿಯಂತ್ರಣ ಕಾರ್ಯವಿಧಾನವು ಸವಲತ್ತು ಹೆಚ್ಚಳದ ದಾಳಿಯ ಬೆದರಿಕೆಯನ್ನು ತಡೆಯುತ್ತದೆ. SELinux ನಲ್ಲಿ ಬಳಸಲಾದ ರೋಲ್ ಬೇಸ್ಡ್ ಅಕ್ಸೆಸ್ ಕಂಟ್ರೋಲ್ (RBAC) ಭದ್ರತಾ ಮಾದರಿಯಲ್ಲಿ ಪಾತ್ರಗಳನ್ನು ಬರೆಯಲಾಗುತ್ತದೆ.
  • ವಿಧಗಳು — ಒಂದು ವಿಧದ ಜಾರಿ ಪಟ್ಟಿ ಗುಣಲಕ್ಷಣವು ಒಂದು ವಸ್ತುವಿಗೆ ನಿಗದಿಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ಯಾರು ಪ್ರವೇಶಿಸಬಹುದು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಡೊಮೇನ್ ವ್ಯಾಖ್ಯಾನದಂತೆಯೇ, ಡೊಮೇನ್ ಪ್ರಕ್ರಿಯೆಗೆ ಅನ್ವಯಿಸುತ್ತದೆ ಮತ್ತು ಟೈಪ್ ಡೈರೆಕ್ಟರಿಗಳು, ಫೈಲ್‌ಗಳು, ಸಾಕೆಟ್‌ಗಳು ಇತ್ಯಾದಿಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತದೆ.
  • ವಿಷಯಗಳು ಮತ್ತು ವಸ್ತುಗಳು - ಪ್ರಕ್ರಿಯೆಗಳು ವಿಷಯಗಳಾಗಿವೆ ಮತ್ತು ನಿರ್ದಿಷ್ಟ ಸನ್ನಿವೇಶದಲ್ಲಿ ಅಥವಾ ಭದ್ರತಾ ಡೊಮೇನ್‌ನಲ್ಲಿ ರನ್ ಆಗುತ್ತವೆ. ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಸಂಪನ್ಮೂಲಗಳು: ಫೈಲ್‌ಗಳು, ಡೈರೆಕ್ಟರಿಗಳು, ಸಾಕೆಟ್‌ಗಳು, ಇತ್ಯಾದಿ, ಒಂದು ನಿರ್ದಿಷ್ಟ ಪ್ರಕಾರವನ್ನು ನಿಗದಿಪಡಿಸಿದ ವಸ್ತುಗಳು, ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಗೌಪ್ಯತೆ ಮಟ್ಟ.
  • SELinux ನೀತಿಗಳು — ಸಿಸ್ಟಮ್ ಅನ್ನು ರಕ್ಷಿಸಲು SELinux ವಿವಿಧ ನೀತಿಗಳನ್ನು ಬಳಸುತ್ತದೆ. SELinux ನೀತಿಯು ಬಳಕೆದಾರರ ಪ್ರವೇಶವನ್ನು ಪಾತ್ರಗಳಿಗೆ, ಪಾತ್ರಗಳಿಗೆ ಡೊಮೇನ್‌ಗಳಿಗೆ ಮತ್ತು ಡೊಮೇನ್‌ಗಳ ಪ್ರಕಾರಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ಮೊದಲಿಗೆ, ಬಳಕೆದಾರರಿಗೆ ಪಾತ್ರವನ್ನು ಪಡೆಯಲು ಅಧಿಕಾರವಿದೆ, ನಂತರ ಡೊಮೇನ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಪಾತ್ರವನ್ನು ಅಧಿಕೃತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಅಂತಿಮವಾಗಿ, ಡೊಮೇನ್ ಕೆಲವು ರೀತಿಯ ವಸ್ತುಗಳಿಗೆ ಮಾತ್ರ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುತ್ತದೆ.

LSM ಮತ್ತು SELinux ಆರ್ಕಿಟೆಕ್ಚರ್

ಹೆಸರಿನ ಹೊರತಾಗಿಯೂ, LSM ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಲೋಡ್ ಮಾಡಬಹುದಾದ Linux ಮಾಡ್ಯೂಲ್‌ಗಳಲ್ಲ. ಆದಾಗ್ಯೂ, SELinux ನಂತೆ, ಇದು ನೇರವಾಗಿ ಕರ್ನಲ್‌ಗೆ ಸಂಯೋಜಿಸಲ್ಪಟ್ಟಿದೆ. LSM ಮೂಲ ಕೋಡ್‌ಗೆ ಯಾವುದೇ ಬದಲಾವಣೆಗೆ ಹೊಸ ಕರ್ನಲ್ ಸಂಕಲನದ ಅಗತ್ಯವಿದೆ. ಕರ್ನಲ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಅನುಗುಣವಾದ ಆಯ್ಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕು, ಇಲ್ಲದಿದ್ದರೆ ಬೂಟ್ ಮಾಡಿದ ನಂತರ LSM ಕೋಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ. ಆದರೆ ಈ ಸಂದರ್ಭದಲ್ಲಿ ಸಹ, OS ಬೂಟ್ಲೋಡರ್ ಆಯ್ಕೆಯಿಂದ ಇದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬಹುದು.

ಲಿನಕ್ಸ್ ಭದ್ರತಾ ವ್ಯವಸ್ಥೆಗಳು
LSM ಚೆಕ್ ಸ್ಟಾಕ್

LSM ಕೋರ್ ಕರ್ನಲ್ ಫಂಕ್ಷನ್‌ಗಳಲ್ಲಿ ಕೊಕ್ಕೆಗಳನ್ನು ಹೊಂದಿದ್ದು ಅದು ಚೆಕ್‌ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದೆ. LSM ಗಳ ಒಂದು ಮುಖ್ಯ ಲಕ್ಷಣವೆಂದರೆ ಅವುಗಳನ್ನು ಜೋಡಿಸಲಾಗಿದೆ. ಹೀಗಾಗಿ, ಪ್ರಮಾಣಿತ ತಪಾಸಣೆಗಳನ್ನು ಇನ್ನೂ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು LSM ನ ಪ್ರತಿಯೊಂದು ಪದರವು ಹೆಚ್ಚುವರಿ ನಿಯಂತ್ರಣಗಳು ಮತ್ತು ನಿಯಂತ್ರಣಗಳನ್ನು ಮಾತ್ರ ಸೇರಿಸುತ್ತದೆ. ಇದರರ್ಥ ನಿಷೇಧವನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳಲಾಗುವುದಿಲ್ಲ. ಇದನ್ನು ಚಿತ್ರದಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ; ದಿನನಿತ್ಯದ DAC ತಪಾಸಣೆಯ ಫಲಿತಾಂಶವು ವಿಫಲವಾದರೆ, ವಿಷಯವು LSM ಕೊಕ್ಕೆಗಳನ್ನು ಸಹ ತಲುಪುವುದಿಲ್ಲ.

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

ಬಲವಂತದ ಪ್ರವೇಶ ಟೈಪಿಂಗ್‌ಗೆ ಧನ್ಯವಾದಗಳು, Unix/Linux ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂಗಳಲ್ಲಿ ಬಳಸಲಾಗುವ ಸಾಂಪ್ರದಾಯಿಕ DAC ಮಾದರಿಗಿಂತ SELinux ಹೆಚ್ಚಿನ ಪ್ರವೇಶ ನಿಯಂತ್ರಣ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಹೊಂದಿದೆ. ಉದಾಹರಣೆಗೆ, ನೀವು ftp ಸರ್ವರ್ ಸಂಪರ್ಕಿಸುವ ನೆಟ್ವರ್ಕ್ ಪೋರ್ಟ್ ಸಂಖ್ಯೆಯನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು, ನಿರ್ದಿಷ್ಟ ಫೋಲ್ಡರ್ನಲ್ಲಿ ಫೈಲ್ಗಳನ್ನು ಬರೆಯಲು ಮತ್ತು ಬದಲಾಯಿಸಲು ಅನುಮತಿಸಬಹುದು, ಆದರೆ ಅವುಗಳನ್ನು ಅಳಿಸುವುದಿಲ್ಲ.

SELinux ನ ಮುಖ್ಯ ಘಟಕಗಳು:

  • ನೀತಿ ಜಾರಿ ಸರ್ವರ್ - ಪ್ರವೇಶ ನಿಯಂತ್ರಣವನ್ನು ಸಂಘಟಿಸುವ ಮುಖ್ಯ ಕಾರ್ಯವಿಧಾನ.
  • ಸಿಸ್ಟಮ್ ಭದ್ರತಾ ನೀತಿ ಡೇಟಾಬೇಸ್.
  • LSM ಈವೆಂಟ್ ಇಂಟರ್ಸೆಪ್ಟರ್ನೊಂದಿಗೆ ಸಂವಹನ.
  • Selinuxfs - ಸ್ಯೂಡೋ-ಎಫ್ಎಸ್, /proc ನಂತೆಯೇ ಮತ್ತು /sys/fs/selinux ನಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿದೆ. ರನ್‌ಟೈಮ್‌ನಲ್ಲಿ ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ನಿಂದ ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಜನಸಂಖ್ಯೆಯನ್ನು ಹೊಂದಿದೆ ಮತ್ತು SELinux ಸ್ಥಿತಿ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿರುವ ಫೈಲ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.
  • ವೆಕ್ಟರ್ ಸಂಗ್ರಹವನ್ನು ಪ್ರವೇಶಿಸಿ - ಉತ್ಪಾದಕತೆಯನ್ನು ಹೆಚ್ಚಿಸಲು ಸಹಾಯಕ ಕಾರ್ಯವಿಧಾನ.

ಲಿನಕ್ಸ್ ಭದ್ರತಾ ವ್ಯವಸ್ಥೆಗಳು
SELinux ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ

ಇದು ಎಲ್ಲಾ ಈ ರೀತಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

  1. ಒಂದು ನಿರ್ದಿಷ್ಟ ವಿಷಯವು, SELinux ಪರಿಭಾಷೆಯಲ್ಲಿ, ಮೇಲಿನ ಚಿತ್ರದಲ್ಲಿ ತೋರಿಸಿರುವಂತೆ DAC ಪರಿಶೀಲನೆಯ ನಂತರ ವಸ್ತುವಿನ ಮೇಲೆ ಅನುಮತಿಸಲಾದ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಮಾಡಲು ಈ ವಿನಂತಿಯು LSM ಈವೆಂಟ್ ಇಂಟರ್ಸೆಪ್ಟರ್‌ಗೆ ಹೋಗುತ್ತದೆ.
  2. ಅಲ್ಲಿಂದ, ವಿಷಯ ಮತ್ತು ಆಬ್ಜೆಕ್ಟ್ ಸೆಕ್ಯುರಿಟಿ ಸಂದರ್ಭದ ಜೊತೆಗೆ ವಿನಂತಿಯನ್ನು SELinux ಅಮೂರ್ತತೆ ಮತ್ತು ಹುಕ್ ಲಾಜಿಕ್ ಮಾಡ್ಯೂಲ್‌ಗೆ ರವಾನಿಸಲಾಗುತ್ತದೆ, ಇದು LSM ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಕಾರಣವಾಗಿದೆ.
  3. ಆಬ್ಜೆಕ್ಟ್‌ಗೆ ವಿಷಯದ ಪ್ರವೇಶದ ಮೇಲೆ ನಿರ್ಧಾರ ತೆಗೆದುಕೊಳ್ಳುವ ಅಧಿಕಾರವು ನೀತಿ ಜಾರಿ ಸರ್ವರ್ ಆಗಿದೆ ಮತ್ತು ಇದು SELinux AnHL ನಿಂದ ಡೇಟಾವನ್ನು ಪಡೆಯುತ್ತದೆ.
  4. ಪ್ರವೇಶ ಅಥವಾ ನಿರಾಕರಣೆ ಕುರಿತು ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು, ನೀತಿ ಜಾರಿ ಸರ್ವರ್ ಹೆಚ್ಚು ಬಳಸಿದ ನಿಯಮಗಳಿಗಾಗಿ ಪ್ರವೇಶ ವೆಕ್ಟರ್ ಸಂಗ್ರಹ (AVC) ಕ್ಯಾಶಿಂಗ್ ಉಪವ್ಯವಸ್ಥೆಗೆ ತಿರುಗುತ್ತದೆ.
  5. ಕ್ಯಾಶ್‌ನಲ್ಲಿ ಅನುಗುಣವಾದ ನಿಯಮಕ್ಕೆ ಪರಿಹಾರವು ಕಂಡುಬರದಿದ್ದರೆ, ನಂತರ ವಿನಂತಿಯನ್ನು ಭದ್ರತಾ ನೀತಿ ಡೇಟಾಬೇಸ್‌ಗೆ ರವಾನಿಸಲಾಗುತ್ತದೆ.
  6. ಡೇಟಾಬೇಸ್ ಮತ್ತು AVC ಯಿಂದ ಹುಡುಕಾಟ ಫಲಿತಾಂಶವನ್ನು ನೀತಿ ಜಾರಿ ಸರ್ವರ್‌ಗೆ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ.
  7. ಕಂಡುಬರುವ ನೀತಿಯು ವಿನಂತಿಸಿದ ಕ್ರಿಯೆಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತಿದ್ದರೆ, ನಂತರ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಅನುಮತಿಸಲಾಗುತ್ತದೆ. ಇಲ್ಲದಿದ್ದರೆ, ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿಷೇಧಿಸಲಾಗಿದೆ.

SELinux ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು

SELinux ಮೂರು ವಿಧಾನಗಳಲ್ಲಿ ಒಂದರಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ:

  • ಜಾರಿಗೊಳಿಸುವುದು - ಭದ್ರತಾ ನೀತಿಗಳಿಗೆ ಕಟ್ಟುನಿಟ್ಟಾದ ಅನುಸರಣೆ.
  • ಅನುಮತಿ - ನಿರ್ಬಂಧಗಳ ಉಲ್ಲಂಘನೆಯನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ; ಜರ್ನಲ್ನಲ್ಲಿ ಅನುಗುಣವಾದ ಟಿಪ್ಪಣಿಯನ್ನು ಮಾಡಲಾಗಿದೆ.
  • ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ-ಸುರಕ್ಷತಾ ನೀತಿಗಳು ಜಾರಿಯಲ್ಲಿಲ್ಲ.

ಕೆಳಗಿನ ಆಜ್ಞೆಯೊಂದಿಗೆ SELinux ಯಾವ ಕ್ರಮದಲ್ಲಿದೆ ಎಂಬುದನ್ನು ನೀವು ನೋಡಬಹುದು.

[admin@server ~]$ getenforce
Permissive

ರೀಬೂಟ್ ಮಾಡುವ ಮೊದಲು ಮೋಡ್ ಅನ್ನು ಬದಲಾಯಿಸುವುದು, ಉದಾಹರಣೆಗೆ, ಅದನ್ನು ಜಾರಿಗೊಳಿಸಲು ಹೊಂದಿಸುವುದು, ಅಥವಾ 1. ಅನುಮತಿಸುವ ಪ್ಯಾರಾಮೀಟರ್ ಸಂಖ್ಯಾ ಕೋಡ್ 0 ಗೆ ಅನುರೂಪವಾಗಿದೆ.

[admin@server ~]$ setenfoce enforcing
[admin@server ~]$ setenfoce 1 #то же самое

ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸುವ ಮೂಲಕ ನೀವು ಮೋಡ್ ಅನ್ನು ಸಹ ಬದಲಾಯಿಸಬಹುದು:

[admin@server ~]$ cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.

SELINUXTYPE=ಗುರಿ

ಸೆಟೆನ್‌ಫೋಸ್‌ನೊಂದಿಗಿನ ವ್ಯತ್ಯಾಸವೆಂದರೆ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಬೂಟ್ ಮಾಡಿದಾಗ, ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ನಲ್ಲಿನ SELINUX ಪ್ಯಾರಾಮೀಟರ್‌ನ ಮೌಲ್ಯಕ್ಕೆ ಅನುಗುಣವಾಗಿ SELinux ಮೋಡ್ ಅನ್ನು ಹೊಂದಿಸಲಾಗುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, <=> ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವಿಕೆಗೆ ಬದಲಾವಣೆಗಳು /etc/selinux/config ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸುವ ಮೂಲಕ ಮತ್ತು ರೀಬೂಟ್ ಮಾಡಿದ ನಂತರ ಮಾತ್ರ ಪರಿಣಾಮ ಬೀರುತ್ತವೆ.

ಸಂಕ್ಷಿಪ್ತ ಸ್ಥಿತಿ ವರದಿಯನ್ನು ವೀಕ್ಷಿಸಿ:

[admin@server ~]$ sestatus

SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31

SELinux ಗುಣಲಕ್ಷಣಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಕೆಲವು ಪ್ರಮಾಣಿತ ಉಪಯುಕ್ತತೆಗಳು -Z ನಿಯತಾಂಕವನ್ನು ಬಳಸುತ್ತವೆ.

[admin@server ~]$ ls -lZ /var/log/httpd/
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200920
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200927
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201004
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201011
[admin@server ~]$ ps -u apache -Z
LABEL                             PID TTY          TIME CMD
system_u:system_r:httpd_t:s0     2914 ?        00:00:04 httpd
system_u:system_r:httpd_t:s0     2915 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     2916 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     2917 ?        00:00:00 httpd
...
system_u:system_r:httpd_t:s0     2918 ?        00:00:00 httpd

ls -l ನ ಸಾಮಾನ್ಯ ಔಟ್‌ಪುಟ್‌ಗೆ ಹೋಲಿಸಿದರೆ, ಈ ಕೆಳಗಿನ ಸ್ವರೂಪದಲ್ಲಿ ಹಲವಾರು ಹೆಚ್ಚುವರಿ ಕ್ಷೇತ್ರಗಳಿವೆ:

<user>:<role>:<type>:<level>

ಕೊನೆಯ ಕ್ಷೇತ್ರವು ಭದ್ರತಾ ವರ್ಗೀಕರಣದಂತಹದನ್ನು ಸೂಚಿಸುತ್ತದೆ ಮತ್ತು ಎರಡು ಅಂಶಗಳ ಸಂಯೋಜನೆಯನ್ನು ಒಳಗೊಂಡಿದೆ:

  • s0 - ಪ್ರಾಮುಖ್ಯತೆ, ಕೆಳಮಟ್ಟದ-ಉನ್ನತ ಮಟ್ಟದ ಮಧ್ಯಂತರ ಎಂದೂ ಬರೆಯಲಾಗಿದೆ
  • c0, c1... c1023 - ವರ್ಗ.

ಪ್ರವೇಶ ಸಂರಚನೆಯನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ

SELinux ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು, ಸೇರಿಸಲು ಮತ್ತು ತೆಗೆದುಹಾಕಲು ಸೆಮೊಡ್ಯೂಲ್ ಅನ್ನು ಬಳಸಿ.

[admin@server ~]$ semodule -l |wc -l #список всех модулей
408
[admin@server ~]$ semodule -e abrt #enable - активировать модуль
[admin@server ~]$ semodule -d accountsd #disable - отключить модуль
[admin@server ~]$ semodule -r avahi #remove - удалить модуль

ಮೊದಲ ತಂಡ semanage ಲಾಗಿನ್ SELinux ಬಳಕೆದಾರರನ್ನು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಬಳಕೆದಾರರಿಗೆ ಸಂಪರ್ಕಿಸುತ್ತದೆ, ಎರಡನೆಯದು ಪಟ್ಟಿಯನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಅಂತಿಮವಾಗಿ, -r ಸ್ವಿಚ್‌ನೊಂದಿಗಿನ ಕೊನೆಯ ಆಜ್ಞೆಯು SELinux ಬಳಕೆದಾರರ ಮ್ಯಾಪಿಂಗ್ ಅನ್ನು OS ಖಾತೆಗಳಿಗೆ ತೆಗೆದುಹಾಕುತ್ತದೆ. MLS/MCS ಶ್ರೇಣಿಯ ಮೌಲ್ಯಗಳ ಸಿಂಟ್ಯಾಕ್ಸ್‌ನ ವಿವರಣೆಯು ಹಿಂದಿನ ವಿಭಾಗದಲ್ಲಿದೆ.

[admin@server ~]$ semanage login -a -s user_u karol
[admin@server ~]$ semanage login -l

Login Name SELinux User MLS/MCS Range Service
__default__ unconfined_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
system_u system_u s0-s0:c0.c1023 *
[admin@server ~]$ semanage login -d karol

ತಂಡದ ಸೀಮೆನೇಜ್ ಬಳಕೆದಾರ SELinux ಬಳಕೆದಾರರು ಮತ್ತು ಪಾತ್ರಗಳ ನಡುವೆ ಮ್ಯಾಪಿಂಗ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ.

[admin@server ~]$ semanage user -l
                Labeling   MLS/       MLS/                          
SELinux User    Prefix     MCS Level  MCS Range             SELinux Roles
guest_u         user       s0         s0                    guest_r
staff_u         staff      s0         s0-s0:c0.c1023        staff_r sysadm_r
...
user_u          user       s0         s0                    user_r
xguest_u        user       s0         s0                    xguest_r
[admin@server ~]$ semanage user -a -R 'staff_r user_r'
[admin@server ~]$ semanage user -d test_u

ಕಮಾಂಡ್ ನಿಯತಾಂಕಗಳು:

  • ಕಸ್ಟಮ್ ರೋಲ್ ಮ್ಯಾಪಿಂಗ್ ಪ್ರವೇಶವನ್ನು ಸೇರಿಸಿ;
  • -ಎಲ್ ಹೊಂದಾಣಿಕೆಯ ಬಳಕೆದಾರರು ಮತ್ತು ಪಾತ್ರಗಳ ಪಟ್ಟಿ;
  • -d ಬಳಕೆದಾರ ರೋಲ್ ಮ್ಯಾಪಿಂಗ್ ನಮೂದನ್ನು ಅಳಿಸಿ;
  • ಬಳಕೆದಾರರಿಗೆ ಲಗತ್ತಿಸಲಾದ ಪಾತ್ರಗಳ -R ಪಟ್ಟಿ;

ಫೈಲ್‌ಗಳು, ಪೋರ್ಟ್‌ಗಳು ಮತ್ತು ಬೂಲಿಯನ್ ಮೌಲ್ಯಗಳು

ಪ್ರತಿಯೊಂದು SELinux ಮಾಡ್ಯೂಲ್ ಫೈಲ್ ಟ್ಯಾಗಿಂಗ್ ನಿಯಮಗಳ ಗುಂಪನ್ನು ಒದಗಿಸುತ್ತದೆ, ಆದರೆ ಅಗತ್ಯವಿದ್ದರೆ ನೀವು ನಿಮ್ಮ ಸ್ವಂತ ನಿಯಮಗಳನ್ನು ಸೇರಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ವೆಬ್ ಸರ್ವರ್ /srv/www ಫೋಲ್ಡರ್‌ಗೆ ಪ್ರವೇಶ ಹಕ್ಕುಗಳನ್ನು ಹೊಂದಲು ನಾವು ಬಯಸುತ್ತೇವೆ.

[admin@server ~]$ semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?
[admin@server ~]$ restorecon -R /srv/www/

ಮೊದಲ ಆಜ್ಞೆಯು ಹೊಸ ಮಾರ್ಕಿಂಗ್ ನಿಯಮಗಳನ್ನು ನೋಂದಾಯಿಸುತ್ತದೆ, ಮತ್ತು ಎರಡನೇ ಮರುಹೊಂದಿಸುತ್ತದೆ, ಅಥವಾ ಪ್ರಸ್ತುತ ನಿಯಮಗಳಿಗೆ ಅನುಗುಣವಾಗಿ ಫೈಲ್ ಪ್ರಕಾರಗಳನ್ನು ಹೊಂದಿಸುತ್ತದೆ.

ಅಂತೆಯೇ, TCP/UDP ಪೋರ್ಟ್‌ಗಳನ್ನು ಸೂಕ್ತ ಸೇವೆಗಳು ಮಾತ್ರ ಆಲಿಸುವ ರೀತಿಯಲ್ಲಿ ಗುರುತಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಪೋರ್ಟ್ 8080 ನಲ್ಲಿ ವೆಬ್ ಸರ್ವರ್ ಕೇಳಲು, ನೀವು ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಬೇಕು.

[admin@server ~]$ semanage port -m -t http_port_t -p tcp 8080

ಗಮನಾರ್ಹ ಸಂಖ್ಯೆಯ SELinux ಮಾಡ್ಯೂಲ್‌ಗಳು ಬೂಲಿಯನ್ ಮೌಲ್ಯಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದಾದ ನಿಯತಾಂಕಗಳನ್ನು ಹೊಂದಿವೆ. ಅಂತಹ ನಿಯತಾಂಕಗಳ ಸಂಪೂರ್ಣ ಪಟ್ಟಿಯನ್ನು getsebool -a ಬಳಸಿ ನೋಡಬಹುದು. ಸೆಟ್‌ಬೂಲ್ ಬಳಸಿ ನೀವು ಬೂಲಿಯನ್ ಮೌಲ್ಯಗಳನ್ನು ಬದಲಾಯಿಸಬಹುದು.

[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_cgi --> on
[admin@server ~]$ setsebool -P httpd_enable_cgi off
[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_homedirs --> off

ಕಾರ್ಯಾಗಾರ, Pgadmin-ವೆಬ್ ಇಂಟರ್‌ಫೇಸ್‌ಗೆ ಪ್ರವೇಶ ಪಡೆಯಿರಿ

ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ: PostgreSQL ಡೇಟಾಬೇಸ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ನಾವು RHEL 7.6 ನಲ್ಲಿ pgadmin4-web ಅನ್ನು ಸ್ಥಾಪಿಸಿದ್ದೇವೆ. ಸ್ವಲ್ಪ ನಡೆದೆವು ಅನ್ವೇಷಣೆ pg_hba.conf, postgresql.conf ಮತ್ತು config_local.py ನ ಸೆಟ್ಟಿಂಗ್‌ಗಳೊಂದಿಗೆ, ಫೋಲ್ಡರ್ ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿಸಿ, ಪಿಪ್‌ನಿಂದ ಕಾಣೆಯಾದ ಪೈಥಾನ್ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ. ಎಲ್ಲವೂ ಸಿದ್ಧವಾಗಿದೆ, ನಾವು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ ಮತ್ತು ಸ್ವೀಕರಿಸುತ್ತೇವೆ 500 ಆಂತರಿಕ ಸರ್ವರ್ ದೋಷ.

ಲಿನಕ್ಸ್ ಭದ್ರತಾ ವ್ಯವಸ್ಥೆಗಳು

ನಾವು ವಿಶಿಷ್ಟ ಶಂಕಿತರೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ, /var/log/httpd/error_log ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತೇವೆ. ಅಲ್ಲಿ ಕೆಲವು ಆಸಕ್ತಿದಾಯಕ ನಮೂದುಗಳಿವೆ.

[timestamp] [core:notice] [pid 23689] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
...
[timestamp] [wsgi:error] [pid 23690] [Errno 13] Permission denied: '/var/lib/pgadmin'
[timestamp] [wsgi:error] [pid 23690] [timestamp] [wsgi:error] [pid 23690] HINT : You may need to manually set the permissions on
[timestamp] [wsgi:error] [pid 23690] /var/lib/pgadmin to allow apache to write to it.

ಈ ಹಂತದಲ್ಲಿ, ಹೆಚ್ಚಿನ Linux ನಿರ್ವಾಹಕರು setencorce 0 ಅನ್ನು ಚಲಾಯಿಸಲು ಬಲವಾಗಿ ಪ್ರಚೋದಿಸಲ್ಪಡುತ್ತಾರೆ ಮತ್ತು ಅದು ಅದರ ಅಂತ್ಯವಾಗಿರುತ್ತದೆ. ನಾನೂ ಮೊದಲ ಸಲ ಹಾಗೆ ಮಾಡಿದ್ದೆ. ಇದು ಸಹಜವಾಗಿ ಒಂದು ಮಾರ್ಗವಾಗಿದೆ, ಆದರೆ ಉತ್ತಮವಾದದ್ದಕ್ಕಿಂತ ದೂರವಿದೆ.

ತೊಡಕಿನ ವಿನ್ಯಾಸಗಳ ಹೊರತಾಗಿಯೂ, SELinux ಬಳಕೆದಾರ ಸ್ನೇಹಿಯಾಗಿರಬಹುದು. ಸೆಟ್ಟ್ರಬಲ್‌ಶೂಟ್ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ ಮತ್ತು ಸಿಸ್ಟಮ್ ಲಾಗ್ ಅನ್ನು ವೀಕ್ಷಿಸಿ.

[admin@server ~]$ yum install setroubleshoot
[admin@server ~]$ journalctl -b -0
[admin@server ~]$ service restart auditd

ಆಡಿಟ್ಡ್ ಸೇವೆಯನ್ನು ಈ ರೀತಿ ಮರುಪ್ರಾರಂಭಿಸಬೇಕು ಮತ್ತು OS ನಲ್ಲಿ systemd ಇರುವಿಕೆಯ ಹೊರತಾಗಿಯೂ systemctl ಅನ್ನು ಬಳಸಬಾರದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಸಿಸ್ಟಮ್ ಲಾಗ್‌ನಲ್ಲಿ ಸೂಚಿಸಲಾಗುವುದು ನಿರ್ಬಂಧಿಸುವ ಸಂಗತಿ ಮಾತ್ರವಲ್ಲ, ಕಾರಣ ಮತ್ತು ನಿಷೇಧವನ್ನು ನಿವಾರಿಸುವ ಮಾರ್ಗ.

ಲಿನಕ್ಸ್ ಭದ್ರತಾ ವ್ಯವಸ್ಥೆಗಳು

ನಾವು ಈ ಆಜ್ಞೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತೇವೆ:

[admin@server ~]$ setsebool -P httpd_can_network_connect 1
[admin@server ~]$ setsebool -P httpd_can_network_connect_db 1

ನಾವು pgadmin4-ವೆಬ್ ವೆಬ್ ಪುಟಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಪರಿಶೀಲಿಸುತ್ತೇವೆ, ಎಲ್ಲವೂ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ಲಿನಕ್ಸ್ ಭದ್ರತಾ ವ್ಯವಸ್ಥೆಗಳು

ಲಿನಕ್ಸ್ ಭದ್ರತಾ ವ್ಯವಸ್ಥೆಗಳು

ಮೂಲ: www.habr.com

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