ááá·áºááœááºážáá¬ážáá±á¬ ááá¯ááá¯ááºážáááááá¬áá»á¬ážááŸáá·áº áá¬áá¬áá»á¬ážááœáẠLinux OS á ááŒá®ážáá¬ážáá±á¬á¡á±á¬ááºááŒááºááŸá¯áá¡ááŒá±á¬ááºážáááºážáá
áºáá¯ááŸá¬ kernelá áááºá
ááºáááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº á¡ááá®áá±ážááŸááºážáá»á¬ážá áá¯á¶ááŒá¯á¶áá±ážá¡áá±á¬áºáá±ážááŒáá·áºáá¬ážááŸá¯ááŒá
áºáááºá á¡á²á·ááá¯
Linux Security Modules ááŸáá·áº SELinux á áá±á¬ááºáá¶
Security Enhanced Linux ááẠLinux á áá áºáá»á¬ážááᯠááŒá áºááá¯ááºáá»á±ááŸááá±á¬ ááŒáááºážááŒá±á¬ááºááŸá¯áá»á¬ážá០áá¬ááœááºáááºááŸáá·áº ááá¬ážááá¯ážáá» Unix áá¯á¶ááŒá¯á¶áá±ážá áá Ạ(DAC) á á¡á¬ážáááºážáá»ááºáá»á¬ážááᯠááŒááºáááºáááºá¡ááœáẠáááŒá áºááá± á¡ááŒá±áá¶ááŒá®áž á¡áááºážááá¹áá¡ááŒá±ááŒá¯ áá¯á¶ážá áœá²ááœáá·áºáá±á¬áºáááºáá»á¬ážáá±á«áºááœáẠá¡ááŒá±áá¶áá¬ážáá±á¬ á ááºážáá»ááºážáá»á¬ážááŸáá·áº áááºáá±á¬ááºá¡áá¯á¶ážááŒá¯ááá·áº ááá¹ááá¬ážáá áºáá¯ááŒá áºáááºá á¡ááá¯áá«ááá±á¬áá»ááºááẠá¡áá±áááááºá¡áá»áá¯ážáá¬ážáá¯á¶ááŒá¯á¶áá±ážá¡á±áá»ááºá á®á á¡á°ááááºá¡á°áááŸá¡á ááŒá¯áᬠáááºáááá¯ááºáá¬áá»á¬áž Secure Computing Corporation ááŸáá·áº MITER ááŸáá·áº áá¯áá±áááá¬ááºááœá²áááºážáá»á¬ážá áœá¬ááá¯á·ááẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááœáẠááá¯ááºááá¯ááºáá«áááºáá²á·ááŒáááºá
Linux áá¯á¶ááŒá¯á¶áá±áž áá±á¬áºáá»á°ážáá»á¬áž
Linus Torvalds ááẠáááºážááá¯á·á¡á¬áž Linux kernel á á¡ááááá¬áááœá²ááœáẠááá·áºááœááºážááá¯ááºá
á±ááẠNSA ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá»á¬ážááá¯ááºáᬠááŸááºáá»ááºáá»á¬ážá
áœá¬ááᯠáá¶á·ááá¯ážáá±ážáá²á·áááºá á¡áá¬ááá¹áá¯áá»á¬ážáá±á«áºááœáẠáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá
á®áá¶ááá·áºááœá²áááºá¡ááœáẠááŒá¬ážááŒááºáááááá¬áá»á¬áž á¡á
á¯á¶ááá¯ááºááŸáá·áº áááºááá¯ááºáá±á¬ á¡áááºá¡áá»ááºážáá»á¬ážááᯠááááºážáááºážáááºá¡ááœáẠkernel áá±áá¬áááºáá±á¬ááºáá¯á¶áá»á¬ážááŸá á¡áá¬á¡ááœááºáááºáááºá¡áá»áá¯á·ááŸáá·áºá¡áá° áá¯á¶áááºáááºážáá»ááºáá
áºáá¯ááᯠáá±á¬áºááŒáá²á·áááºá ááá¯á·áá±á¬áẠá¡ááá¯ááŸááá±á¬ áá¯á¶ááŒá¯á¶áá±ážáá¯á¶á
á¶ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠáááºááá¯ááºáá±á¬ kernel module áá»á¬ážá០á€áááºáááºážáá»ááºááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá LSM ááẠ2.6 áá¯ááŸá
áºááœáẠLinux kernel v2003 ááᯠá¡ááŒáá·áºá¡ááááºáá±á¬ááºáá²á·áááºá
LSM áá°áá±á¬ááºááœáẠáá±áá¬ááœá²á·á ááºážáá¯á¶áá»á¬ážááœáẠá¡á á±á¬áá·áºá¡ááœááºáá»á¬ážááŸáá·áº áááºážááá¯á·ááᯠá á®áá¶ááá·áºááœá²áááºááŸáá·áº áááºáá±á¬ááºááááºážáá»á¯ááºáááºá¡ááœáẠkernel áá¯ááºááŸá á¡áá±ážááŒá®ážáá±á¬á¡áá»ááºáá»á¬ážááœáẠááŒá¬ážááŒááºáá¯ááºáá±á¬ááºááŸá¯áá±á«áºááá¯ááŸá¯áá»á¬áž áá«áááºáááºá áá¯á¶ááŒá¯á¶áá±áž áá±á¬áºáá»á°ážáá»á¬ážááᯠá á¬áááºážááœááºážááŒááºážá¡ááœáẠáá¯ááºáá±á¬ááºááá¯ááºá áœááºážááá¯áááºáž ááá·áºááœááºážáá±ážáá¬ážáááºá /sys/kernel/security/lsm á¡ááºáá¬áá±á·á áºááœáẠá áá áºá¡ááœááºážááŸá áááºááŒáœáá±á¬ module áá»á¬ážá á¬áááºážáá«ááŸááááºá LSM áá»áááºáá»á¬ážááᯠCONFIG_LSM ááœáẠáááºááŸááºáá¬ážááá·áº á¡á á®á¡á á¥áºá¡ááá¯ááºáž áá±á«áºááá¯áá¬ážáá±á¬ á á¬áááºážáá»á¬ážááœáẠááááºážáááºážáá¬ážáááºá á¡áá±ážá áááºáá»áááºá á¬ááœááºá á¬áááºážáá»á¬ážááᯠinclude/linux/lsm_hooks.h áá±á«ááºážá á®ážááá¯ááºááœáẠááá·áºááœááºážáá¬ážáááºá
LSM á áá áºááœá²ááẠáááºááŒáááºáá±á¬ Linux kernel v2.6 á áá°áá®áá±á¬áá¬ážááŸááºážá SELinux á á¡ááŒáá·áºá¡ááá±á«ááºážá ááºááŸá¯ááᯠá¡ááŒá®ážáááºááá¯ááºá á±áá²á·áááºá áá»ááºáá»ááºážáááºá SELinux ááẠáá¯á¶ááŒá¯á¶áá±á¬ Linux áááºáááºážáá»ááºá¡ááœáẠá á¶áááºááŸááºáá»ááºáá áºáá¯ááŒá áºáá¬ááŒá®áž RedHat Enterprise Linuxá Fedoraá Debianá Ubuntu ááá¯á·á áá±áááºážá¡á á¬ážáá¯á¶ážáá±á¬ ááŒáá·áºáá±ááŸá¯áá»á¬ážá áá áºá áááºáá áºááá¯ááºážááŒá áºáá¬áá²á·áááºá
áá±á«áá¬á
- á¡áá±á¬ááºá¡áá¬áž - SELinux á¡áá¯á¶ážááŒá¯áá°ááẠáá¯á¶ááŸáẠUnix/Linux á¡áá¯á¶ážááŒá¯áá° ID ááŸáá·áº ááá°áá«á áááºážááá¯á·ááẠáá°áá®áá±á¬á áá áºááœáẠá¡áá°ááŸááºááœá²áá±ááá¯ááºááá¯ááºáá±á¬áºáááºáž áááºážááá¯á·ááẠá¡ááŸá áºáá¬áá¡á¬ážááŒáá·áº áá¯á¶ážáááœá²ááŒá¬ážáá«áááºá áá¯á¶ááŸáẠLinux á¡áá±á¬áá·áºáá áºáá¯á á®ááẠSELinux ááœáẠáá áºáᯠááá¯á·ááá¯áẠáá áºáá¯áááºááá¯á áááºá ááºááá¯ááºáááºá SELinux á¡áá±á¬ááºá¡áá¬ážááẠáááºáá«áááºááá¯ááºááá·áº ááá¯ááááºážáá»á¬ážááᯠáá¯á¶ážááŒááºáá±ážááá·áº á¡áá¯á¶ážá á¯á¶áá¯á¶ááŒá¯á¶áá±ážááá¯ááºáᬠá¡ááŒá±á¬ááºážá¡áá¬á áá áºá áááºáá áºááá¯ááºážááŒá áºáááºá
- ááá¯ááááºážáá»á¬áž - SELinux ááœááºá ááá¯ááááºážááẠáá¬áá¬áááºá á¡áá±á¬ááºá¡áááºáá±á¬áºáá±á¬ááºááœááºáá»ááºááŒá áºáááºá ááá¯ááá¯áááºááŸá¬ áá¯ááºáááºážá ááºááŒá áºáááºá ááá¯ááááºážááẠáá¯ááºáááºážá ááºáá áºáá¯á áááºáá±á¬ááºááœáá·áºááᯠááá¯ááºááá¯ááºáááºááŸááºáááºá ááá¯ááááºážááẠá¡ááŒá±áá¶á¡á¬ážááŒáá·áº áááºááá·áº áá¯ááºáááºážá ááºáá»á¬áž áá¯ááºáá±á¬ááºááá¯ááºááẠááá¯á·ááá¯áẠáá¯ááºáááºážá ááºáá áºáá¯ááẠááá°áá®áá±á¬ á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááŸáá·áº áá¯ááºáá±á¬ááºááá¯ááºááá·áº áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá á á¬áááºážáá áºáá¯ááŒá áºáááºá á¡áá»áá¯á·áá±á¬ domains áá»á¬ážááẠá áá áºá á®áá¶ááá·áºááœá²ááŸá¯á¡ááœáẠsysadm_t ááŸáá·áº áá¯á¶ááŸááºá¡ááœáá·áºáá°ážááá¶ááá±á¬ áá¯á¶ážá áœá²áá°ááá¯ááááºážáá áºáá¯ááŒá áºááá·áº user_t ááá¯á·ááŒá áºáááºá init á áá áºááẠinit_t ááá¯ááááºážááœáẠá¡áá¯ááºáá¯ááºááŒá®áž á¡áááºáá±ážáá¬ážáá±á¬ áá¯ááºáááºážá ááºááẠname_t ááá¯ááááºážááœáẠá¡áá¯ááºáá¯ááºáááºá
- á¡áááºážááá¹á - ááá¯ááááºážáá»á¬ážááŸáá·áº SELinux á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááŒá¬ážááœáẠááŒá¬ážáá¶á¡ááŒá áºáá±á¬ááºááœááºáá±á¬ á¡áá¬áá áºáá¯á á¡áááºážááá¹ááá»á¬ážááẠáá¯á¶ážá áœá²áá°áá áºáŠážááá¯ááºááá¯ááºááá·áº ááá¯ááááºážáá»á¬ážááŸáá·áº á¡áá¯á¶ážááŒá¯áá°áááºáá±á¬ááºááá¯ááºááá·áº á¡áá¬ááá¹áá¯á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠáááºááŸááºáááºá ááá¯ááá¯á·áá±á¬áááºáá±á¬ááºááááºážáá»á¯ááºááŸá¯ááá¹ááá¬ážááẠá¡áá°ážá¡ááœáá·áºá¡áá±ážááá¯ážááŒáá·áºááá·áºááá¯ááºááá¯ááºááŸá¯áááŒáááºážááŒá±á¬ááºááŸá¯ááá¯áá¬ááœááºáá±ážáááºá á¡áááºážááá¹ááá»á¬ážááᯠSELinux ááœááºá¡áá¯á¶ážááŒá¯áá±á¬ Role Based Access Control (RBAC) áá¯á¶ááŒá¯á¶áá±ážáá¯á¶á á¶ááœáẠáá±ážáá¬ážáá¬ážáááºá
- á¡áá»áá¯ážá¡á á¬ážáá»á¬áž â á¡áá¬ááá¹áá¯áá áºáá¯á¡ááœáẠáááºááŸááºáá±ážáá¬ážááá·áº áá»áá·áºáá¯á¶ážááŸá¯á á¬áááºáž attribute ááá¯ááá¯ááºááá·áºáᬠáááºážááᯠáááºáá°áááºáá±á¬ááºááœáá·áºááŸááááºááᯠáá¯á¶ážááŒááºáááºá ááá¯ááááºážááẠáá¯ááºáááºážá ááºááŸáá·áº áááºááá¯ááºáááºááŸááœá²á á¡áá»áá¯ážá¡á á¬ážááẠáááºážááœáŸááºáá»á¬ážá ááá¯ááºáá»á¬ážá áá±á¬á·ááºáá²áá»á¬ážááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážá¡ááœáẠáááºááá¯ááºáá±áá»áááºááœáẠááá¯ááááºážáá áºáá¯ááᯠáááºááŸááºááŒááºážááŸáá·áº áááºáá°áááºá
- áá¬áá¬áááºááŸáá·áº á¡áá¬ááá¹áá¯áá»á¬áž - áá¯ááºáááºážá ááºáá»á¬ážááẠá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááŒá áºááŒá®áž áá®ážááŒá¬ážá¡ááŒá±á¬ááºážá¡áá¬áá áºáᯠááá¯á·ááá¯áẠáá¯á¶ááŒá¯á¶áá±ážááá¯ááááºážááœáẠáá¯ááºáá±á¬ááºáááºá áááºáááºááŸá¯á áá áºáááºážááŒá áºáá»á¬áž- ááá¯ááºáá»á¬ážá áááºážááœáŸááºáá»á¬ážá áá±á¬á·ááºáá²áá»á¬áž á áááºááá¯á·ááẠáá®ážááŒá¬ážá¡áá»áá¯ážá¡á á¬ážáá áºáá¯á¡ááŒá ẠáááºááŸááºáá±ážáá¬ážááá·áº á¡áá¬ááá¹áá¯áá»á¬ážááŒá áºááŒá®áž áá áºáááºážá¡á¬ážááŒáá·áº áá»áŸáá¯á·ááŸááºá¡ááá·áºáá áºáá¯ááŒá áºáááºá
- SELinux áá°áá«ááá»á¬áž - SELinux ááẠá áá áºá¡á¬áž áá¬ááœááºááẠáá°áá«áá¡áá»áá¯ážáá»áá¯ážááᯠá¡áá¯á¶ážááŒá¯áááºá SELinux áá°áá«áááẠá¡áá¯á¶ážááŒá¯áá°áááºáá±á¬ááºááœáá·áºááᯠá¡áááºážááá¹ááá»á¬ážá ááá¯ááááºážáá»á¬ážááá¯á· á¡áááºážááá¹ááá»á¬ážááŸáá·áº á¡áá»áá¯ážá¡á á¬ážáá»á¬ážá¡ááœáẠááá¯ááááºážáá»á¬ážááᯠáááºááŸááºáá±ážáááºá ááááŠážá áœá¬á á¡áá¯á¶ážááŒá¯áá°ááẠá¡áááºážááá¹ááá áºáá¯ááá°ááẠá¡ááœáá·áºá¡á¬áá¬ááŸáááŒá®ážá ááá¯á·áá±á¬áẠá¡áááºážááá¹áááẠááá¯ááááºážáá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááẠááœáá·áºááŒá¯áá¬ážáááºá áá±á¬ááºáá¯á¶ážááœááºá ááá¯ááááºážáá áºáá¯ááẠá¡áá»áá¯á·áá±á¬ á¡áá¬ááá¹áá¯á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááá¯á·áᬠáááºáá±á¬ááºááœáá·áºááŸáááá¯ááºáááºá
LSM ááŸáá·áº SELinux áááá¯áá¬
áá¬áááºááŸááá±á¬áºáááºážá LSM áá»á¬ážááẠáá±áá¯áá»á¡á¬ážááŒáá·áº áááºááá¯ááºáá±á¬ Linux module áá»á¬ážááá¯ááºáá«á ááá¯á·áá±á¬áºá SELinux áá²á·ááá¯á·áááºá áááºážááᯠkernel ááœáẠááá¯ááºááá¯ááºáá±á«ááºážá ááºáá¬ážáááºá LSM á¡áááºážá¡ááŒá áºáá¯ááºááá¯á· ááŒá±á¬ááºážáá²ááŸá¯ááá¯ááºážááẠkernel á á¯á ááºážááŸá¯á¡áá Ạááá¯á¡ááºáááºá áááºááá¯ááºáᬠááœá±ážáá»ááºááœáá·áºááᯠkernel áááºáááºáá»á¬ážááœáẠááœáá·áºáá¬ážááááºá ááá¯á·ááá¯ááºáá«á á áááºááœáá·áºááŒá®ážáá±á¬áẠLSM áá¯ááºááᯠá¡áááºááœááºážáááºááá¯ááºáá«á ááá¯á·áá±á¬áºá€ááá á¹á ááœááºáááºá OS bootloader option ááŒáá·áºááœáá·áºááá¯ááºáááºá
LSM á
á
áºáá±ážááŸá¯á¡ááœá²
LSM ááœáẠá á áºáá±ážááŸá¯áá»á¬ážá¡ááœáẠáááºááá¯ááºáᬠcore kernel áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááœáẠáá»áááºáá»á¬áž áááºáááºáá¬ážáááºá LSM á á¡áááá¡ááºá¹áá«áááºáá»á¬ážáá²ááŸáá áºáá¯ááŸá¬ áááºážááá¯á·ááẠstack á¡ááŒá±áá¶ááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áºá á á¶á á áºáá±ážááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºáá²ááŒá áºááŒá®áž LSM á¡ááœáŸá¬áá áºáá¯á á®ááẠá¡ááá¯ááááºážáá»á¯ááºááŸá¯áá»á¬ážááŸáá·áº ááááºážáá»á¯ááºááŸá¯áá»á¬ážááá¯áᬠáá±á«ááºážááá·áºáááºá ááá¯ááá¯áá¬á áá¬ážááŒá áºáá»ááºááᯠáá±á¬ááºááŒááºáá¯ááºááá¯á·áááá«áá°ážá áá¯á¶ááŸáẠDAC á á áºáá±ážááŸá¯áá»á¬ážáááááºááẠáá»áá¯á·ááœááºážáá«áá áááºážááẠLSM áá»áááºáá»á¬ážááá¯ááẠááá±á¬ááºááá¯ááºáá«á
SELinux ááẠá¡áá°ážá¡ááœáá·áºá¡áá±ážá¡áááºážáá¯á¶ážááŒá áºáá±á¬ Fluke áá¯áá±áááááºáááºááŸá¯á áá áºá Flask áá¯á¶ááŒá¯á¶áá±ážáááá¯áá¬ááᯠáááºáá¶áá²á·áááºá áááºážááá¯á·áá¡ááẠá¡ááŒá¶ááŒá¯áá¬ážááá·áºá¡ááá¯ááºáž á€á¡áá°á¡áá á¡ááŸá áºáá¬áááŸá¬ á¡áá¯á¶ážááŒá¯áá°á¡á¬áž áá±ážáá±á¬ááºááẠááá¯á·ááá¯áẠáááºááœááºáá¬ážááá·áº áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºá¡ááœáẠááá¯á¡ááºáá±á¬ á¡ááœáá·áºá¡áá±ážáá»á¬ážááá¯áᬠá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážáááºááŒá áºáááºá á€áááá¬áááᯠá¡áááºážáááºáá±á¬ááºá á¬ááá¯ááºááŒááºážááŒáá·áº á¡áá±á¬ááºá¡áááºáá±á¬áºáááºá ááá¯á·ááŒá±á¬áá·áº SELinux á áááºáá±á¬ááºááááºážáá»á¯ááºááŸá¯ááẠááá¯ááááºáž => á¡áá»áá¯ážá¡á á¬áž áá±á¬áºáááºáá±á«áºááœáẠá¡ááŒá±áá¶áá¬ážáááºá
á¡áááºážá¡ááŒáẠáááºáá±á¬ááºá á¬ááá¯ááºááŒááºážááŒáá·áºá SELinux ááẠUnix/Linux áááºáááºááŸá¯á áá áºáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááá·áº ááá¬ážááá¯ážáá» DAC áá±á¬áºáááºáá»á¬ážááẠááá¯ááá¯ááŒá®ážáá¬ážáá±á¬ áááºáá±á¬ááºááááºážáá»á¯ááºááá¯ááºá áœááºážááŸááááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááẠftp áá¬áá¬ááœáẠááŒá áºáá±á«áºáá¬ááá·áº ááœááºáááºáá±á«ááºáá¶áá«ááºááᯠááá·áºáááºááá¯ááºááŒá®áž á¡áá»áá¯á·ááá¯ááºááœá²áá áºáá¯ááœáẠááá¯ááºáá»á¬ážáá±ážáá¬ážááŒááºážááŸáá·áº ááŒá±á¬ááºážáá²ááŒááºážááᯠááœáá·áºááŒá¯áá±á¬áºáááºáž áááºážááá¯á·ááᯠááá»ááºáá«á
SELinux á á¡ááá á¡á áááºá¡ááá¯ááºážáá»á¬ážááŸá¬-
- áá°áá«ááá»áá·áºáá¯á¶ážááŸá¯ áá¬áᬠ- áááºáá±á¬ááºááááºážáá»á¯ááºááŸá¯á¡ááœáẠá¡ááá ááá¹ááá¬ážá
- á áá áºáá¯á¶ááŒá¯á¶áá±ážáá°áá«ááá»á¬ážá áá±áá¬áá±á·á áºá
- LSM ááŒá áºááẠáá¬ážáá±á¬ááºáá°ááŸáá·áº á¡ááŒááºá¡ááŸáẠáá¯á¶á·ááŒááºááŒááºážá
- Selinuxfs - Pseudo-FSá /proc áá²á·ááá¯á·áá°áá®ááŒá®áž /sys/fs/selinux ááœááºáááºáááºáá¬ážáááºá runtime ááœáẠLinux kernel á០ááá¯ááºážááá áºááŒáá·áº ááŒáá·áºááœááºážáá¬ážááŒá®áž SELinux á¡ááŒá±á¡áá± á¡áá»ááºá¡áááºáá«ááŸááá±á¬ ááá¯ááºáá»á¬ážáá«ááŸááááºá
- Vector Cache ááᯠáááºáá¯á¶ážáá«á - á áœááºážáá±á¬ááºáááºááŒáŸáá·áºáááºááẠá¡áááºááá¹ááá¬ážá
SELinux á¡áá¯ááºáá¯ááºáá¯á¶
á€á¡áá¬á¡á¬ážáá¯á¶ážáááºá¡á±á¬ááºáá«á¡ááá¯ááºážá¡áá¯ááºáá¯ááºáááºá
- SELinux á ááºážáááºážáá»ááºáá»á¬ážá¡á á¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯ááẠDAC á á áºáá±ážááŒá®ážáá±á¬áẠá¡áá¬ááá¹áá¯áá áºáá¯áá±á«áºááœáẠááœáá·áºááŒá¯áá¬ážááá·áºáá¯ááºáá±á¬ááºáá»ááºááᯠáá¯ááºáá±á¬ááºáááºá á¡áá±á«áºáá¯á¶ááœááºááŒáá¬ážááá·áºá¡ááá¯ááºážá á€áá¯ááºáá±á¬ááºáá»ááºáá±á¬ááºážááá¯áá»ááºááẠLSM ááŒá áºáááºáá¬ážáááºáá°áᶠáá±á¬ááºááœá¬ážáá«áááºá
- ááá¯áá±áá¬ááŸá áá±á¬ááºážááá¯áá»ááºá¡á¬áž á¡ááŒá±á¬ááºážá¡áá¬ááŸáá·áº á¡áá¬ááá¹áá¯á áá¯á¶ááŒá¯á¶áá±ážááá¯ááºáᬠáááºá ááºááŸá¯ááŸáá·áºá¡áá° LSM ááŸáá·áº á¡ááŒááºá¡ááŸááºá¡áá»áá¯ážáááºáá±á¬ááºááŸá¯á¡ááœáẠáá¬áááºááŸááá±á¬ SELinux Abstraction ááŸáá·áº Hook Logic module ááá¯á· áá±ážááá¯á·áá«áááºá
- Policy Enforcement Server ááẠá¡áá¬ááá¹áá¯ááá¯á· áá¬áá¬áááºááááºáá±á¬ááºááœáá·áºá¡ááœáẠáá¯á¶ážááŒááºáá»ááºáá»ááá¯ááºáá±á¬á¡ááœáá·áºá¡á¬áá¬ááŒá áºááŒá®áž áááºážááẠSELinux AnHL ááŸáá±áá¬ááá¯áááºáá¶áááŸááá«áááºá
- áááºáá±á¬ááºááŒááºáž ááá¯á·ááá¯áẠáá¬ážááŒá áºááŒááºážááá¯ááºáᬠáá¯á¶ážááŒááºáá»ááºáá áºáá¯áá»áááºá Policy Enforcement Server ááẠá¡áá¯á¶ážá¡áá»á¬ážáá¯á¶áž Access Vector Cache (AVC) á ááºážáá»ááºážáá»á¬ážá áááºááŸáºá áá áºááœá²ááᯠáááºááœáŸááºážáááºá
- áááºááá¯ááºáᬠá ááºážáá»ááºážá¡ááœáẠááŒá±ááŸááºážáá»ááºááᯠáááºááŸáºááœáẠááŸá¬áááœá±á·áá«á áá±á¬ááºážááá¯áá»ááºá¡á¬áž áá¯á¶ááŒá¯á¶áá±ážáá°áá«ááá±áá¬áá±á·á áºááá¯á· áá±ážááá¯á·áááºááŒá áºáááºá
- áá±áá¬áá±á·á áºááŸáá·áº AVC á០ááŸá¬ááœá±ááŸá¯ááááºááᯠáá°áá«ááá»áá·áºáá¯á¶ážááŸá¯áá¬áá¬ááá¯á· ááŒááºááá¯á·áááºá
- ááœá±á·ááŸááá±á¬áá°áá«áááẠáá±á¬ááºážááá¯áá¬ážáá±á¬áá¯ááºáá±á¬ááºáá»ááºááŸáá·áº ááá¯ááºáá®áá«áá áááºáááºááŸá¯ááᯠááœáá·áºááŒá¯áá«áááºá ááá¯ááºáá«á á á áºáááºáá±ážááᯠáá¬ážááŒá áºáá¬ážáááºá
SELinux áááºáááºáá»á¬ážááᯠá á®áá¶ááá·áºááœá²ááŒááºážá
SELinux ááẠáá¯ááºáá¯á¶ážáá»áá¯ážáá²á០áá áºáá¯ááœáẠáá¯ááºáá±á¬ááºáááº-
- Enforcecing - áá¯á¶ááŒá¯á¶áá±ážáá°áá«ááá»á¬ážááᯠáááºážáá»ááºá áœá¬ áá»áá·áºáá¯á¶ážááŒááºážá
- ááœáá·áºááŒá¯áá»áẠ- ááá·áºáááºáá»ááºáá»á¬ážááᯠáá»áá¯ážáá±á¬ááºááŒááºážá¡á¬áž ááœáá·áºááŒá¯áá¬ážááŒá®áž áááºááá¯ááºáᬠá¡ááŸááºá¡áá¬ážááᯠááŸááºáááºážááœáẠááŒá¯áá¯ááºáá¬ážáááºá
- ááááºáá¬ážáááº- áá¯á¶ááŒá¯á¶áá±ážáá°áá«ááá»á¬ážááẠá¡áááºáááºááŒááºážáááŸááá«á
á¡á±á¬ááºáá« command ááŒáá·áº 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=áá
áºááŸááº
setenfoce ááŸáá·áº ááŒá¬ážáá¬ážáá»ááºááŸá¬ áááºáááºááŸá¯á áá Ạá áááºááá·áºá¡áá«á SELinux áá¯ááºááẠááá¯ááºááœá²á·á ááºážáá¯á¶ááá¯ááºááŸá SELINUX áá«áá¬áá®áá¬á áááºááá¯ážááŸáá·áºá¡áá® áááºááŸááºáá±ážáááºááŒá áºáááºá ááá¯á·á¡ááŒááºá <=> disabled á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒáá¹áá¬ááºážáá¬ážááŒááºážááẠ/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 áá±á¬áºáá»á°ážáá»á¬ážááᯠáááºááẠsemodule ááá¯áá¯á¶ážáá«á áááºážááá¯á·ááᯠáá±á«ááºážááá·áºáᬠáááºááŸá¬ážáá«á
[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 login SELinux á¡áá¯á¶ážááŒá¯áá°áá áºáŠážá¡á¬áž áááºáááºááŸá¯á áá áºá¡áá¯á¶ážááŒá¯áá°áá áºáŠážááŸáá·áº áá»áááºáááºáá¬ážááŒá®áž áá¯áááá áááºážááᯠá á¬áááºážááŒá¯á á¯áá¬ážáááºá áá±á¬ááºáá¯á¶ážááœáẠ-r ááá¯ááºáá«ááŸááá±á¬ áá±á¬ááºáá¯á¶ážá¡áááá·áºááẠSELinux á¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡á¬áž OS á¡áá±á¬áá·áºáá»á¬ážááá¯á· ááŒá±áá¯á¶ááœá²ááŒááºážááᯠáááºááŸá¬ážáá±ážáá«áááºá MLS/MCS Range áááºááá¯ážáá»á¬ážá¡ááœáẠá¡áá¬ážá¡ááá¯á ááŸááºážáááºážáá»ááºááᯠááááºá¡ááá¯ááºážááœáẠááœá±á·ááá¯ááºáááºá
[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
á¡ááœá²á· semanage á¡áá¯á¶ážááŒá¯áá° 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
á¡áááá·áºáá±ážááœá±ážáá»ááºá áá¬áá»á¬áž-
- -a á áááºááŒáá¯ááºá¡áááºážááá¹áááŒá±áá¯á¶ááœá²ááá·áºááœááºážááŒááºáž
- -l ááá¯ááºáá®áá±á¬ áá¯á¶ážá áœá²áá°áá»á¬ážááŸáá·áº á¡áááºážááá¹ááá»á¬ážá á¬áááºážá
- -d á áááºááŒáá¯ááºá¡áááºážááá¹áááŒá±áá¯á¶ááœá²ááá·áºááœááºážááŸá¯ááá¯áááºááŸá¬ážáá«á
- -R á¡áá¯á¶ážááŒá¯áá°ááŸáá·áº áá°ážááœá²áá«ááŸááá±á¬ á¡áááºážááá¹ááá»á¬ážá á¬áááºážá
ááá¯ááºáá»á¬ážá á¡áá±á«ááºáá»á¬ážááŸáá·áº áá°áá®áá¶áá»á¬áž
SELinux module áá áºáá¯á á®ááẠfile marking rules á¡á á¯á¶ááᯠáá¶á·ááá¯ážáá±ážáááºá ááá¯á·áá±á¬áº ááá¯á¡ááºáá«á ááá·áºááá¯ááºááá¯áẠá ááºážáá»ááºážáá»á¬ážááá¯áááºáž ááá·áºááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠáááºáá¬áá¬á¡á¬áž /srv/www ááá¯ááºááœá²ááá¯á· áááºáá±á¬ááºááœáá·áºááŸáá á±ááá¯áá«áááºá
[admin@server ~]$ semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?
[admin@server ~]$ restorecon -R /srv/www/
ááá command ááẠá¡ááŸááºá¡áá¬ážá ááºážáá»ááºážá¡áá áºáá»á¬ážááᯠááŸááºáá¯á¶áááºááŒá®áž áá¯áááááẠáááºááŸáá ááºážáá»ááºážáá»á¬ážááŸáá·áºá¡áá® ááá¯ááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠááŒááºáááºáááºááŸááºááŒááºáž ááá¯á·ááá¯áẠáá¯ááºáá±á¬áºááŒáááŒááºážááŒá áºáááºá
á¡áá¬ážáá°á TCP/UDP áá±á«ááºáá»á¬ážááᯠááá·áºáá»á±á¬áºáá±á¬áááºáá±á¬ááºááŸá¯áá»á¬ážááᬠáááºážááá¯á·ááᯠáá¬ážáááºááá¯ááºá á±ááá·áºáááºážááŒáá·áº á¡ááŸááºá¡áá¬ážááŒá¯áá¬ážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºáá¬áá¬áá áºáá¯ááẠport 8080 ááœááºáá¬ážáá±á¬ááºáááºá¡ááœááºá áááºááẠcommand áá áºáá¯ááᯠrun áááºááá¯á¡ááºáááºá
[admin@server ~]$ semanage port -m -t http_port_t -p tcp 8080
SELinux module áá»á¬ážááœáẠáááá¬áááºááŸá¬ážáá±á¬ á¡áá±á¡ááœááºááẠboolean áááºááá¯ážáá»á¬ážááᯠáá°áá±á¬ááºááá¯ááºáá±á¬ áá±á¬ááºáá»á¬ážááŸááááºá ááá¯áá²á·ááá¯á·áá±á¬ááœá±ážáá»ááºááŸá¯áá»á¬ážáá á¬áááºážáá áºáá¯áá¯á¶ážááᯠgetsebool -a ááŒáá·áºááŒáá·áºááŸá¯ááá¯ááºáááºá setsebool ááᯠá¡áá¯á¶ážááŒá¯á Boolean áááºááá¯ážáá»á¬ážááᯠááŒá±á¬ááºážáá²ááá¯ááºáááºá
[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 ááᯠááá·áºááœááºážáá¬ážáá«áááºá áá»áœááºáá±á¬áºááá¯á· áááºáááºá áá»á±á¬áºááŒááºáá²á·áááºá
áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶ááŸááºáá¶ááááŸááá°áá»á¬ážááŸáá·áº á
áááºáááºá /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 ááẠá¡áá¯á¶ážááŒá¯áá°ááŸáá·áº á¡áááºááŒá±ááá¯ááºáááºá setroubleshoot package ááᯠinstall áá¯ááºááŒá®áž system log ááá¯ááŒáá·áºáá¯á¶áá«áá²á
[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-áááºáááºá á¬áá»ááºááŸá¬ááá¯á· áááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºáááºá á¡áá¬á¡á¬ážáá¯á¶áž á¡áááºááŒá±áá«áááºá
source: www.habr.com