SELinux
SELinux를 사용하기 위해서는 다음과 같은 커널 컨피그가 설정돼 있어야 합니다.
* CONFIG_AUDIT=y
* CONFIG_NF_CONNTRACK_SECMARK=y
* CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
* CONFIG_NETFILTER_XT_TARGET_SECMARK=y
* CONFIG_IP_NF_SECURITY=y
* CONFIG_EXT4_FS_SECURITY=y
* CONFIG_SECURITY=y
* CONFIG_SECURITY_NETWORK=y
* CONFIG_LSM_MMAP_MIN_ADDR=4096
* CONFIG_SECURITY_SELINUX=y
만약 linux-next 브랜치에서 가져온 리눅스 커널 개발 용 소스에서는 아래 패치를 적용하면
SELinux 관련 컨피그를 모두 킬 수 있습니다.
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 662b003..be9a2e7 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -1186,6 +1186,15 @@ CONFIG_9P_FS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_SECURITY=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
+CONFIG_NETFILTER_XT_TARGET_SECMARK=y
+CONFIG_IP_NF_SECURITY=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_LSM_MMAP_MIN_ADDR=4096
+CONFIG_SECURITY_SELINUX=y
CONFIG_CRYPTO_ECHAINIV=y
CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_CRYPTO_USER_API_RNG=m
대중적으로 많이 활용되는 라즈비안 커널에서는 아래 컨피그를 적용해야 합니다.
diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig
index f4da602..76bc83d 100644
--- a/arch/arm/configs/bcm2709_defconfig
+++ b/arch/arm/configs/bcm2709_defconfig
@@ -1451,6 +1451,14 @@ CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_DLM=m
CONFIG_SECURITY=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
+CONFIG_NETFILTER_XT_TARGET_SECMARK=y
+CONFIG_IP_NF_SECURITY=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_LSM_MMAP_MIN_ADDR=4096
+CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_APPARMOR=y
CONFIG_LSM=""
CONFIG_CRYPTO_USER=m
위와 같이 설정하면 디폴트 LSM으로 SELINUX가 설정되며, .config에서 아래 내용을 확인할 수 있습니다.
CONFIG_DEFAULT_SECURITY_SELINUX=y
# CONFIG_DEFAULT_SECURITY_DAC is not set
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf"
SMACK 설정
SELinux와 더불어 가장 널리 사용되는 LSM인 SMACK을 사용하려면,
아래와 같은 컨피그가 설정돼 있어야 합니다.
* CONFIG_AUDIT=y
* CONFIG_NF_CONNTRACK_SECMARK=y
* CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
* CONFIG_NETFILTER_XT_TARGET_SECMARK=y
* CONFIG_IP_NF_SECURITY=y
* CONFIG_EXT4_FS_SECURITY=y
* CONFIG_SECURITY=y
* CONFIG_SECURITY_NETWORK=y
* CONFIG_LSM_MMAP_MIN_ADDR=4096
* CONFIG_SECURITY_SMACK=y
* CONFIG_SECURITY_SMACK_BRINGUP=y
* CONFIG_DEFAULT_SECURITY_SMACK=y
* CONFIG_DEFAULT_SECURITY="smack"
만약 linux-next 브랜치에서 가져온 리눅스 커널 개발 용 소스에서는 아래 패치를 적용하면
SMACK 관련 컨피그를 모두 킬 수 있습니다.
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 662b003..13abbd84 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -1186,6 +1186,18 @@ CONFIG_9P_FS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_SECURITY=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
+CONFIG_NETFILTER_XT_TARGET_SECMARK=y
+CONFIG_IP_NF_SECURITY=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_LSM_MMAP_MIN_ADDR=4096
+CONFIG_SECURITY_SMACK=y
+CONFIG_SECURITY_SMACK_BRINGUP=y
+CONFIG_DEFAULT_SECURITY_SMACK=y
+CONFIG_DEFAULT_SECURITY="smack"
CONFIG_CRYPTO_ECHAINIV=y
CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_CRYPTO_USER_API_RNG=m
다음은 라즈비안에서 설정한 컨피그입니다.
diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig
index f4da602..904c801 100644
--- a/arch/arm/configs/bcm2709_defconfig
+++ b/arch/arm/configs/bcm2709_defconfig
@@ -1451,6 +1451,17 @@ CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_DLM=m
CONFIG_SECURITY=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
+CONFIG_NETFILTER_XT_TARGET_SECMARK=y
+CONFIG_IP_NF_SECURITY=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_LSM_MMAP_MIN_ADDR=4096
+CONFIG_SECURITY_SMACK=y
+CONFIG_SECURITY_SMACK_BRINGUP=y
+CONFIG_DEFAULT_SECURITY_SMACK=y
+CONFIG_DEFAULT_SECURITY="smack"
CONFIG_SECURITY_APPARMOR=y
CONFIG_LSM=""
CONFIG_CRYPTO_USER=m
위와 같이 설정하면 디폴트 LSM으로 SMACK가 설정되며, .config에서 아래 내용을 확인할 수 있습니다.
CONFIG_DEFAULT_SECURITY_SMACK=y
# CONFIG_DEFAULT_SECURITY_DAC is not set
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity,smack,selinux,tomoyo,apparmor,bpf"
최근 덧글