SELinux ಗೆ ಆರಂಭಿಕರ ಮಾರ್ಗದರ್ಶಿ

SELinux ಗೆ ಆರಂಭಿಕರ ಮಾರ್ಗದರ್ಶಿ

ಕೋರ್ಸ್ ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ಸಿದ್ಧಪಡಿಸಿದ ಲೇಖನದ ಅನುವಾದ "ಲಿನಕ್ಸ್ ಭದ್ರತೆ"

SELinux ಅಥವಾ ಸೆಕ್ಯುರಿಟಿ ವರ್ಧಿತ ಲಿನಕ್ಸ್ ದುರುದ್ದೇಶಪೂರಿತ ಒಳನುಗ್ಗುವಿಕೆಗಳನ್ನು ತಡೆಗಟ್ಟಲು US ರಾಷ್ಟ್ರೀಯ ಭದ್ರತಾ ಸಂಸ್ಥೆ (NSA) ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ವರ್ಧಿತ ಪ್ರವೇಶ ನಿಯಂತ್ರಣ ಕಾರ್ಯವಿಧಾನವಾಗಿದೆ. ಇದು ಬಲವಂತದ (ಅಥವಾ ಕಡ್ಡಾಯ) ಪ್ರವೇಶ ನಿಯಂತ್ರಣ ಮಾದರಿಯನ್ನು (ಇಂಗ್ಲಿಷ್ ಕಡ್ಡಾಯ ಪ್ರವೇಶ ನಿಯಂತ್ರಣ, MAC) ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ವಿವೇಚನೆಯ (ಅಥವಾ ಆಯ್ದ) ಮಾದರಿಯ ಮೇಲೆ (ಇಂಗ್ಲಿಷ್ ವಿವೇಚನಾಶೀಲ ಪ್ರವೇಶ ನಿಯಂತ್ರಣ, DAC) ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ, ಅಂದರೆ, ಓದಲು, ಬರೆಯಲು, ಕಾರ್ಯಗತಗೊಳಿಸಲು ಅನುಮತಿಗಳು.

SELinux ಮೂರು ವಿಧಾನಗಳನ್ನು ಹೊಂದಿದೆ:

  1. ಜಾರಿಗೊಳಿಸುವುದು - ನೀತಿ ನಿಯಮಗಳ ಆಧಾರದ ಮೇಲೆ ಪ್ರವೇಶ ನಿರಾಕರಣೆ.
  2. ಅನುಮತಿ — ನೀತಿಯನ್ನು ಉಲ್ಲಂಘಿಸುವ ಕ್ರಿಯೆಗಳ ಲಾಗ್ ಅನ್ನು ಇಟ್ಟುಕೊಳ್ಳುವುದು, ಅದನ್ನು ಜಾರಿಗೊಳಿಸುವ ಕ್ರಮದಲ್ಲಿ ನಿಷೇಧಿಸಲಾಗಿದೆ.
  3. ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ - SELinux ನ ಸಂಪೂರ್ಣ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವಿಕೆ.

ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಇವೆ /etc/selinux/config

SELinux ಮೋಡ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ

ಪ್ರಸ್ತುತ ಮೋಡ್ ಅನ್ನು ಕಂಡುಹಿಡಿಯಲು, ರನ್ ಮಾಡಿ

$ getenforce

ಮೋಡ್ ಅನ್ನು ಅನುಮತಿಗೆ ಬದಲಾಯಿಸಲು ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿ

$ setenforce 0

ಅಥವಾ, ಮೋಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಅನುಮತಿ ಮೇಲೆ ಜಾರಿಗೊಳಿಸುವುದು, ಕಾರ್ಯಗತಗೊಳಿಸಿ

$ setenforce 1

ನೀವು SELinux ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬೇಕಾದರೆ, ಇದನ್ನು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಮೂಲಕ ಮಾತ್ರ ಮಾಡಬಹುದು

$ vi /etc/selinux/config

ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು, SELINUX ನಿಯತಾಂಕವನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಬದಲಾಯಿಸಿ:

SELINUX=disabled

SELinux ಅನ್ನು ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ

ಪ್ರತಿಯೊಂದು ಫೈಲ್ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯನ್ನು SELinux ಸಂದರ್ಭದೊಂದಿಗೆ ಗುರುತಿಸಲಾಗಿದೆ, ಇದು ಬಳಕೆದಾರ, ಪಾತ್ರ, ಪ್ರಕಾರ, ಇತ್ಯಾದಿಗಳಂತಹ ಹೆಚ್ಚುವರಿ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಇದು ನಿಮ್ಮ ಮೊದಲ ಬಾರಿಗೆ SELinux ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ನೀವು ಮೊದಲು ಸಂದರ್ಭ ಮತ್ತು ಲೇಬಲ್‌ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಲೇಬಲ್‌ಗಳು ಮತ್ತು ಸಂದರ್ಭವನ್ನು ನಿಯೋಜಿಸುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಟ್ಯಾಗಿಂಗ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಗುರುತು ಹಾಕಲು ಪ್ರಾರಂಭಿಸಲು, ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ನಲ್ಲಿ ನಾವು ಮೋಡ್ ಅನ್ನು ಬದಲಾಯಿಸುತ್ತೇವೆ ಅನುಮತಿ.

$ vi /etc/selinux/config
SELINUX=permissive

ಮೋಡ್ ಅನ್ನು ಹೊಂದಿಸಿದ ನಂತರ ಅನುಮತಿ, ಹೆಸರಿನೊಂದಿಗೆ ರೂಟ್‌ನಲ್ಲಿ ಖಾಲಿ ಗುಪ್ತ ಫೈಲ್ ಅನ್ನು ರಚಿಸಿ autorelabel

$ touch /.autorelabel

ಮತ್ತು ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ

$ init 6

ಗಮನಿಸಿ: ನಾವು ಮೋಡ್ ಅನ್ನು ಬಳಸುತ್ತೇವೆ ಅನುಮತಿ ಮೋಡ್ನ ಬಳಕೆಯಿಂದ ಗುರುತು ಮಾಡಲು ಜಾರಿಗೊಳಿಸುವುದು ರೀಬೂಟ್ ಸಮಯದಲ್ಲಿ ಸಿಸ್ಟಮ್ ಕ್ರ್ಯಾಶ್ ಆಗಲು ಕಾರಣವಾಗಬಹುದು.

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

$ setenforce 1

ನೀವು ಈಗ ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ SELinux ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಿರುವಿರಿ.

ದಾಖಲೆಗಳ ಮೇಲ್ವಿಚಾರಣೆ

ಗುರುತು ಮಾಡುವಾಗ ಅಥವಾ ಸಿಸ್ಟಮ್ ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ನೀವು ಕೆಲವು ದೋಷಗಳನ್ನು ಎದುರಿಸಿರಬಹುದು. ನಿಮ್ಮ SELinux ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಲು ಮತ್ತು ಯಾವುದೇ ಪೋರ್ಟ್, ಅಪ್ಲಿಕೇಶನ್ ಇತ್ಯಾದಿಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸದಿದ್ದರೆ, ನೀವು ಲಾಗ್‌ಗಳನ್ನು ನೋಡಬೇಕು. SELinux ಲಾಗ್ ಇದೆ /var/log/audit/audit.log, ಆದರೆ ದೋಷಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ನೀವು ಸಂಪೂರ್ಣ ವಿಷಯವನ್ನು ಓದುವ ಅಗತ್ಯವಿಲ್ಲ. ದೋಷಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ನೀವು audit2why ಉಪಯುಕ್ತತೆಯನ್ನು ಬಳಸಬಹುದು. ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿ:

$ audit2why < /var/log/audit/audit.log

ಪರಿಣಾಮವಾಗಿ, ನೀವು ದೋಷಗಳ ಪಟ್ಟಿಯನ್ನು ಸ್ವೀಕರಿಸುತ್ತೀರಿ. ಲಾಗ್‌ನಲ್ಲಿ ಯಾವುದೇ ದೋಷಗಳಿಲ್ಲದಿದ್ದರೆ, ಯಾವುದೇ ಸಂದೇಶಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುವುದಿಲ್ಲ.

SELinux ನೀತಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗುತ್ತಿದೆ

SELinux ನೀತಿಯು SELinux ಭದ್ರತಾ ಕಾರ್ಯವಿಧಾನವನ್ನು ನಿಯಂತ್ರಿಸುವ ನಿಯಮಗಳ ಗುಂಪಾಗಿದೆ. ಒಂದು ನೀತಿಯು ನಿರ್ದಿಷ್ಟ ಪರಿಸರಕ್ಕಾಗಿ ನಿಯಮಗಳ ಗುಂಪನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ಈಗ ನಾವು ನಿಷೇಧಿತ ಸೇವೆಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಲು ನೀತಿಗಳನ್ನು ಹೇಗೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕೆಂದು ಕಲಿಯುತ್ತೇವೆ.

1. ತಾರ್ಕಿಕ ಮೌಲ್ಯಗಳು (ಸ್ವಿಚ್‌ಗಳು)

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

ಉದಾಹರಣೆಗೆ
ನಾವು FTP ರೀಡ್/ರೈಟ್ ಮೂಲಕ ಬಳಕೆದಾರರ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುತ್ತೇವೆ ಮತ್ತು ನಾವು ಅದನ್ನು ಈಗಾಗಲೇ ಹಂಚಿಕೊಂಡಿದ್ದೇವೆ, ಆದರೆ ನಾವು ಅದನ್ನು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ನಮಗೆ ಏನೂ ಕಾಣಿಸುವುದಿಲ್ಲ. ಏಕೆಂದರೆ SELinux ನೀತಿಯು FTP ಸರ್ವರ್ ಅನ್ನು ಬಳಕೆದಾರರ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಗೆ ಓದುವುದನ್ನು ಮತ್ತು ಬರೆಯುವುದನ್ನು ತಡೆಯುತ್ತದೆ. FTP ಸರ್ವರ್ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ನಾವು ನೀತಿಯನ್ನು ಬದಲಾಯಿಸಬೇಕಾಗಿದೆ. ಮಾಡುವ ಮೂಲಕ ಇದಕ್ಕೆ ಸ್ವಿಚ್‌ಗಳಿವೆಯೇ ಎಂದು ನೋಡೋಣ

$ semanage boolean -l

ಈ ಆಜ್ಞೆಯು ಲಭ್ಯವಿರುವ ಸ್ವಿಚ್‌ಗಳನ್ನು ಅವುಗಳ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿ (ಆನ್ ಅಥವಾ ಆಫ್) ಮತ್ತು ವಿವರಣೆಯೊಂದಿಗೆ ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ. ftp-ಮಾತ್ರ ಫಲಿತಾಂಶಗಳನ್ನು ಹುಡುಕಲು grep ಅನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಹುಡುಕಾಟವನ್ನು ನೀವು ಸಂಸ್ಕರಿಸಬಹುದು:

$ semanage boolean -l | grep ftp

ಮತ್ತು ನೀವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಕಾಣಬಹುದು

ftp_home_dir        -> off       Allow ftp to read & write file in user home directory

ಈ ಸ್ವಿಚ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ, ಆದ್ದರಿಂದ ನಾವು ಇದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತೇವೆ setsebool $ setsebool ftp_home_dir on

ಈಗ ನಮ್ಮ ftp ಡೀಮನ್ ಬಳಕೆದಾರರ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.
ಗಮನಿಸಿ: ನೀವು ಮಾಡುವ ಮೂಲಕ ವಿವರಣೆಯಿಲ್ಲದೆ ಲಭ್ಯವಿರುವ ಸ್ವಿಚ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ಸಹ ಪಡೆಯಬಹುದು getsebool -a

2. ಲೇಬಲ್‌ಗಳು ಮತ್ತು ಸಂದರ್ಭ

SELinux ನೀತಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಇದು ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ಮಾರ್ಗವಾಗಿದೆ. ಪ್ರತಿಯೊಂದು ಫೈಲ್, ಫೋಲ್ಡರ್, ಪ್ರಕ್ರಿಯೆ ಮತ್ತು ಪೋರ್ಟ್ ಅನ್ನು SELinux ಸಂದರ್ಭದೊಂದಿಗೆ ಗುರುತಿಸಲಾಗಿದೆ:

  • ಫೈಲ್‌ಗಳು ಮತ್ತು ಫೋಲ್ಡರ್‌ಗಳಿಗಾಗಿ, ಲೇಬಲ್‌ಗಳನ್ನು ಫೈಲ್ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ವಿಸ್ತೃತ ಗುಣಲಕ್ಷಣಗಳಾಗಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯೊಂದಿಗೆ ವೀಕ್ಷಿಸಬಹುದು:
    $ ls -Z /etc/httpd
  • ಪ್ರಕ್ರಿಯೆಗಳು ಮತ್ತು ಪೋರ್ಟ್‌ಗಳಿಗಾಗಿ, ಲೇಬಲಿಂಗ್ ಅನ್ನು ಕರ್ನಲ್‌ನಿಂದ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನೀವು ಈ ಲೇಬಲ್‌ಗಳನ್ನು ಈ ಕೆಳಗಿನಂತೆ ವೀಕ್ಷಿಸಬಹುದು:

ಪ್ರಕ್ರಿಯೆ

$ ps –auxZ | grep httpd

ಬಂದರು

$ netstat -anpZ | grep httpd

ಉದಾಹರಣೆಗೆ
ಲೇಬಲ್‌ಗಳು ಮತ್ತು ಸಂದರ್ಭವನ್ನು ಚೆನ್ನಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಈಗ ಒಂದು ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ. ನಾವು ಡೈರೆಕ್ಟರಿಯ ಬದಲಿಗೆ ವೆಬ್ ಸರ್ವರ್ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ ಎಂದು ಹೇಳೋಣ /var/www/html/ использует /home/dan/html/. SELinux ಇದನ್ನು ನೀತಿಯ ಉಲ್ಲಂಘನೆ ಎಂದು ಪರಿಗಣಿಸುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ವೆಬ್ ಪುಟಗಳನ್ನು ವೀಕ್ಷಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಏಕೆಂದರೆ ನಾವು HTML ಫೈಲ್‌ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಭದ್ರತಾ ಸಂದರ್ಭವನ್ನು ಹೊಂದಿಸಿಲ್ಲ. ಡೀಫಾಲ್ಟ್ ಭದ್ರತಾ ಸಂದರ್ಭವನ್ನು ವೀಕ್ಷಿಸಲು, ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ:

$ ls –lz /var/www/html
 -rw-r—r—. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/

ಇಲ್ಲಿ ನಮಗೆ ಸಿಕ್ಕಿತು httpd_sys_content_t html ಫೈಲ್‌ಗಳಿಗೆ ಸಂದರ್ಭವಾಗಿ. ನಮ್ಮ ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಗೆ ನಾವು ಈ ಭದ್ರತಾ ಸಂದರ್ಭವನ್ನು ಹೊಂದಿಸಬೇಕಾಗಿದೆ, ಇದು ಪ್ರಸ್ತುತ ಈ ಕೆಳಗಿನ ಸಂದರ್ಭವನ್ನು ಹೊಂದಿದೆ:

-rw-r—r—. dan dan system_u:object_r:user_home_t:s0 /home/dan/html/

ಫೈಲ್ ಅಥವಾ ಡೈರೆಕ್ಟರಿಯ ಭದ್ರತಾ ಸಂದರ್ಭವನ್ನು ಪರಿಶೀಲಿಸಲು ಪರ್ಯಾಯ ಆಜ್ಞೆ:

$ semanage fcontext -l | grep '/var/www'

ನಾವು ಸರಿಯಾದ ಭದ್ರತಾ ಸಂದರ್ಭವನ್ನು ಕಂಡುಕೊಂಡ ನಂತರ ಸಂದರ್ಭವನ್ನು ಬದಲಾಯಿಸಲು ನಾವು ಸೆಮನೇಜ್ ಅನ್ನು ಸಹ ಬಳಸುತ್ತೇವೆ. /home/dan/html ನ ಸಂದರ್ಭವನ್ನು ಬದಲಾಯಿಸಲು, ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಗಳನ್ನು ಚಲಾಯಿಸಿ:

$ semanage fcontext -a -t httpd_sys_content_t ‘/home/dan/html(/.*)?’
$ semanage fcontext -l | grep ‘/home/dan/html’
/home/dan/html(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
$ restorecon -Rv /home/dan/html

ಸೆಮ್ಯಾನೇಜ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸಂದರ್ಭವನ್ನು ಬದಲಾಯಿಸಿದ ನಂತರ, ಫೈಲ್‌ಗಳು ಮತ್ತು ಡೈರೆಕ್ಟರಿಗಳಿಗಾಗಿ ಮರುಸ್ಥಾಪನೆಕಾನ್ ಆಜ್ಞೆಯು ಡೀಫಾಲ್ಟ್ ಸಂದರ್ಭವನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ. ನಮ್ಮ ವೆಬ್ ಸರ್ವರ್ ಈಗ ಫೋಲ್ಡರ್‌ನಿಂದ ಫೈಲ್‌ಗಳನ್ನು ಓದಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ /home/dan/htmlಏಕೆಂದರೆ ಈ ಫೋಲ್ಡರ್‌ಗೆ ಭದ್ರತಾ ಸಂದರ್ಭವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ httpd_sys_content_t.

3. ಸ್ಥಳೀಯ ನೀತಿಗಳನ್ನು ರಚಿಸಿ

ಮೇಲಿನ ವಿಧಾನಗಳು ನಿಮಗೆ ಯಾವುದೇ ಉಪಯೋಗವಿಲ್ಲದ ಸಂದರ್ಭಗಳು ಇರಬಹುದು ಮತ್ತು ನೀವು audit.log ನಲ್ಲಿ ದೋಷಗಳನ್ನು (avc/denial) ಪಡೆಯುತ್ತೀರಿ. ಇದು ಸಂಭವಿಸಿದಾಗ, ನೀವು ಸ್ಥಳೀಯ ನೀತಿಯನ್ನು ರಚಿಸಬೇಕಾಗಿದೆ. ಮೇಲೆ ವಿವರಿಸಿದಂತೆ ಆಡಿಟ್2ವೈ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಎಲ್ಲಾ ದೋಷಗಳನ್ನು ಕಾಣಬಹುದು.

ದೋಷಗಳನ್ನು ಪರಿಹರಿಸಲು ನೀವು ಸ್ಥಳೀಯ ನೀತಿಯನ್ನು ರಚಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ನಾವು httpd (apache) ಅಥವಾ smbd (samba) ಗೆ ಸಂಬಂಧಿಸಿದ ದೋಷವನ್ನು ಪಡೆಯುತ್ತೇವೆ, ನಾವು ದೋಷಗಳನ್ನು ಗುರುತಿಸುತ್ತೇವೆ ಮತ್ತು ಅವುಗಳಿಗೆ ನೀತಿಯನ್ನು ರಚಿಸುತ್ತೇವೆ:

apache
$ grep httpd_t /var/log/audit/audit.log | audit2allow -M http_policy
samba
$ grep smbd_t /var/log/audit/audit.log | audit2allow -M smb_policy

ಇದು http_policy и smb_policy ನಾವು ರಚಿಸಿದ ಸ್ಥಳೀಯ ನೀತಿಗಳ ಹೆಸರುಗಳಾಗಿವೆ. ಈಗ ನಾವು ಈ ರಚಿಸಲಾದ ಸ್ಥಳೀಯ ನೀತಿಗಳನ್ನು ಪ್ರಸ್ತುತ SELinux ನೀತಿಗೆ ಲೋಡ್ ಮಾಡಬೇಕಾಗಿದೆ. ಇದನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಮಾಡಬಹುದು:

$ semodule –I http_policy.pp
$ semodule –I smb_policy.pp

ನಮ್ಮ ಸ್ಥಳೀಯ ನೀತಿಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ನಾವು ಇನ್ನು ಮುಂದೆ audit.log ನಲ್ಲಿ ಯಾವುದೇ avc ಅಥವಾ denail ಅನ್ನು ಸ್ವೀಕರಿಸುವುದಿಲ್ಲ.

ಇದು ನಿಮಗೆ SELinux ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುವ ನನ್ನ ಪ್ರಯತ್ನವಾಗಿದೆ. ಈ ಲೇಖನವನ್ನು ಓದಿದ ನಂತರ ನೀವು SELinux ನೊಂದಿಗೆ ಹೆಚ್ಚು ಆರಾಮದಾಯಕವಾಗುತ್ತೀರಿ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.

ಮೂಲ: www.habr.com

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