리눅스 / SELinux(Security-Enhanced Linux)

SELinux(Security-Enhanced Linux)는 리눅스 커널에 통합된 보안 모듈로, 미국 국가안보국(NSA)이 개발한 강력한 접근 제어 메커니즘을 제공하는 보안 프레임워크입니다. SELinux는 시스템의 보안을 강화하기 위해 다양한 보안 정책을 적용하여 프로세스와 사용자 간의 상호작용을 제어합니다. SELinux의 주요 특징과 기능은 다음과 같습니다:

  1. 정책 기반 접근 제어
    SELinux는 시스템의 모든 파일, 디렉터리, 포트, 그리고 프로세스에 대한 접근을 제어하기 위해 보안 정책을 사용합니다. 이 정책은 시스템 관리자에 의해 정의되고 적용됩니다.

  2. 강제 접근 제어(Mandatory Access Control, MAC)
    SELinux는 전통적인 자유 접근 제어(Discretionary Access Control, DAC)와 달리, 더 엄격한 보안 정책을 강제하는 MAC을 사용합니다. 이를 통해 시스템의 보안 수준을 크게 향상시킬 수 있습니다.

  3. 보안 컨텍스트
    SELinux는 각 파일, 프로세스, 그리고 시스템 객체에 보안 컨텍스트를 할당합니다. 이 보안 컨텍스트는 해당 객체에 대한 접근 권한을 결정하는 데 사용됩니다.

  4. 세분화된 권한 제어
    SELinux는 세분화된 권한 제어를 통해 특정 작업에 필요한 최소한의 권한만을 부여함으로써 보안을 강화합니다. 이를 통해 시스템이 더 안전해지고, 잠재적인 보안 취약점을 줄일 수 있습니다.

  5. 로그 및 감사
    SELinux는 보안 이벤트를 상세히 기록하고 감사 로그를 생성하여 시스템 관리자가 보안 위협을 감지하고 대응할 수 있도록 합니다.

SELinux는 많은 리눅스 배포판에 기본적으로 포함되어 있으며, Red Hat Enterprise Linux (RHEL), CentOS, Fedora 등에서 널리 사용되고 있습니다. 사용자는 시스템 보안을 강화하기 위해 SELinux를 활성화하고 적절한 정책을 구성하여 활용할 수 있습니다.

같은 카테고리의 다른 글
Rocky Linux 9 / Apache / Virtulahost 만드는 방법

Rocky Linux 9 / Apache / Virtulahost 만드는 방법

하나의 서버에서 여러 사이트를 운영할 수 있다. Rocky Linux 9에서 Apache 웹서버로 구현하는 방법을 정리한다. Selinux가 활성화되어 있으면 작동하지 않고, 별도의 설정이 필요하다. 여기서는 Selinux를 끄고 진행한다. 목표 하나의 서버에서 두 개의 사이트를 운영한다. http://aaa.manualfactory.net로 접속하면 Welcome to AAA!, http://bbb.manualfactory.net으로 접속하면 Welcome to BBB!를 출력한다. DNS 설정 aaa.manualfactory.net. bbb.manualfactory.net 모두 같은 IP로 가도록 설정한다. 폴더와 파일 생성 /home/aaa ...

Ubuntu Server 22.04 / vsftpd로 FTP 서버 구축하기

vsftpd vsftpd(Very Secure FTP Daemon)는 유닉스와 리눅스에서 사용할 수 있는 가벼운 FTP 서버입니다. 주요 특징은 다음과 같습니다. Virtual IP configurations Virtual users Standalone or inetd operation Powerful per-user configurability Bandwidth throttling Per-source-IP configurability Per-source-IP limits IPv6 Encryption support through SSL integration 설치 vsftpd는 우분투 패키지에 포함되어 있으므로 다음과 같이 명령하여 설치할 수 있습니다. # apt install vsftpd 방화벽을 사용 중이라면 다음과 같이 명령하여 포트를 ...

Ubuntu Server / 22.04 / 네트워크 세팅에 이더넷(Wired) 보이지 않을 때 해결 방법

Ubuntu Server / 22.04 / 네트워크 세팅에 이더넷(Wired) 보이지 않을 때 해결 방법

우분투 설정의 네트워크에 Wired가 보이지 않는다. 그것이 보여야 GUI로 IP 설정이 가능한데 말이다. 이를 보이게 하는 방법이 여러 가지가 있는 거 같은데, 내가 성공한 방법은... /etc/netplan/00-installer-config.yaml의 내용은 다음처럼 생겼을 것이다. # This is the network config written by 'subiquity' network: ethernets: eth0: dhcp4: true ...

CentOS 8 / 언어 변경하는 방법

CentOS 8 / 언어 변경하는 방법

현재 언어 확인하기 # localectl System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: us 사용 가능한 언어 확인하기 # localectl list-locales C.utf8 en_AG en_AU en_AU.utf8 en_BW en_BW.utf8 en_CA en_CA.utf8 en_DK en_DK.utf8 en_GB en_GB.iso885915 en_GB.utf8 en_HK en_HK.utf8 en_IE en_IE.utf8 en_IE@euro en_IL en_IN en_NG en_NZ en_NZ.utf8 en_PH en_PH.utf8 en_SC.utf8 en_SG en_SG.utf8 en_US en_US.iso885915 en_US.utf8 en_ZA en_ZA.utf8 en_ZM en_ZW en_ZW.utf8 ko_KR.euckr ko_KR.utf8 언어를 한글로 변경하기 # localectl set-locale LANG=ko_KR.utf8 # localectl System Locale: LANG=ko_KR.utf8 ...

리눅스 / 명령어 / cd / 다른 디렉토리로 이동하는 명령어

cd는 change directory의 약자로, 다른 디렉토리로 이동하는 명령어이다. cd 현재 로그인한 사용자의 홈 디렉토리로 이동한다. 일반적으로 root 계정이라면 /root로, 사용자 jb 계정이라면 /home/jb로 이동한다. cd ~user user의 홈 디렉토리로 이동한다. 다음과 같이 명령하면 jb 사용자의 홈 디렉토리로 이동한다. # cd ~jb cd 디렉토리명 지정한 디렉토리로 이동한다. 절대경로, 상대경로 다 사용할 수 있다. 다음과 같이 명령하면 /etc 디렉토리로 이동한다. # cd /etc 현재 ...

Rocky Linux 9 / Apache, PHP, MariaDB 설치

Rocky Linux 9 / Apache, PHP, MariaDB 설치

Rocky Linux 9에 Apache, PHP, MariaDB를 설치하는 방법을 정리합니다.

Ubuntu 16.04 Server / 고정 IP 설정하는 방법

네트워크 설정 파일은 /etc/network/interfaces이다. 우분투를 DHCP로 설치했다면 설정 파일의 내용은 다음과 비슷하게 되어 있다. # The primary network interface auto enp0s3 iface enp0s3 inet dhcp 이를 다음처럼 변경하고 저장한다. xxx.xxx.xxx.xxx는 네트워크 환경에 맞게 수정한다. # The primary network interface auto enp0s3 iface enp0s3 inet static address xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx gateway xxx.xxx.xxx.xxx dns-nameservers xxx.xxx.xxx.xxx 다음과 같이 명령하여 네트워크를 재시작한다. systemctl restart networking.service 만약 위와 같이 해도 ...

리눅스 / 명령어 / mkdir / 디렉토리 만드는 명령어

mkdir은 make directory의 약자로, 디렉토리를 만드는 명령어이다. abc 디렉토리를 만든다. # mkdir abc abc 디렉토리 아래에 def 디렉토리를 만든다. 만약 abc 디렉토리가 없다면 def 디렉토리를 만들 수 없다는 메시지가 나온다. # mkdir abc/def p 옵션을 붙이면 abc 디렉토리가 없어도 abc 디렉토리를 만든 후에 def 디렉토리를 만든다. # mkdir -p abc/def 리눅스 / 명령어 / rm / 파일 ...

Rocky Linux 8 / root 계정으로 ssh 접속 가능하게 설정하는 방법

Rocky Linux 8 / root 계정으로 ssh 접속 가능하게 설정하는 방법

Rocky Linux를 설치할 때 가능하게 설정하지 않았다면, root 계정으로 ssh 접속을 할 수 없다. 보안 상 권장되는 설정이나, 테스트나 공부 목적 등으로 root 계정으로 ssh 접속하는 게 더 좋은 상황이라면, 다음과 같이 하여 접속을 허용할 수 있다. vi나 nano 같은 텍스트 에디터로 /etc/ssh/sshd_config 파일을 연다. 제일 밑에 다음 코드를 추가하고, 저장한다. PermitRootLogin yes 다음과 같이 ...

리눅스 / 명령어 / touch / 빈 파일 만들기, 최종 수정 시간 변경하기

touch는 빈 파일 만들거나 파일의 최종 수정 시간을 현재 시간으로 바꾸는 명령어이다. abc.txt 파일이 없다면, 내용이 없는 abc.txt 파일을 만듭니다. abc.txt 파일이 있다면, 파일의 최종 수정 시간을 현재로 변경합니다. # touch abc.txt