리눅스 / 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를 활성화하고 적절한 정책을 구성하여 활용할 수 있습니다.

같은 카테고리의 다른 글

Ubuntu 18.04 Server / apt / 패키지 설치, 삭제, 업그레이드하는 명령어

Ubuntu에서 패키지를 관리하는 명령어는 여러 가지가 있습니다. 그 중 널리 사용되는 것은 apt-get과 apt입니다. 아래는 apt를 이용하여 패키지를 설치하고 삭제하고 업그레이드하는 방법입니다. 대부분의 경우 apt-get을 사용해도 작동합니다. APT 사용법 패키지 목록을 갱신합니다 # apt update 모든 패키지를 최신 버전으로 업그레이드합니다. # apt upgrade abc 패키지를 설치합니다. 의존성있는 패키지도 함께 설치합니다. # apt install abc abc 패키지를 삭제합니다. 설정 ...

리눅스 / 배포판 / 페도라(Fedora) - 역사, 특징, 장점

페도라의 역사 페도라(Fedora)는 2003년 11월 6일에 첫 번째 버전이 출시되었습니다. 페도라는 레드햇(Red Hat)의 커뮤니티 주도 프로젝트로 시작되었으며, 레드햇 엔터프라이즈 리눅스(RHEL)의 기반이 됩니다. 페도라는 최신 기술과 소프트웨어를 빠르게 채택하고 배포하는 것을 목표로 하며, 개발자와 파워 유저들에게 인기가 많습니다. 레드햇과의 관계 페도라는 레드햇의 후원을 받으며, 페도라 프로젝트는 레드햇이 주도하지만, 커뮤니티가 중요한 역할을 합니다. 레드햇은 페도라에서 ...

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

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

CentOS 7 / ntsysv로 부팅할 때 서비스 자동으로 시작하게 하기

CentOS 7 / ntsysv로 부팅할 때 서비스 자동으로 시작하게 하기

서비스 관리는 보통 systemctl 명령어로 합니다. systemctl 명령어의 enable을 이용하면 시스템이 부팅할 때 서비스가 자동으로 시작하게 할 수 있습니다. 예를 들어 systemctl enable httpd.service 는 서버가 부팅할 때 httpd 서비스를 자동으로 시작합니다. 만약 이러한 서비스 관리를 명령어로 하는 불편하다면 ntsysv를 사용해보세요. TUI로 자동으로 시작하는 서비스를 관리할 수 있습니다. 다음과 같이 명령하여 ntsysv 패키지를 설치합니다. yum install ntsysv 다음과 같이 ...

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 16.04 Server / logrotate 설치하고 설정하기

우분투(Ubuntu)는 여러 작업의 내용을 로그(Log) 파일로 남깁니다. 예를 들어 웹서버 운영과 관련된 로그는 /var/log/apache2에 있습니다. 로그는 기본적으로 하나의 파일에 계속 추가하는 것이어서, 시간이 지날수록 파일의 크기가 커집니다. 로그 파일의 크기가 너무 커지면, 시스템이 느려지거나 다운되기도 합니다. 이러한 문제를 해결해주는 패키지가 logrotate입니다. 로그 파일이 일정 기준을 충족하면 기존 로그 파일을 다른 이름으로 변경하여 저장하고 ...

Ubuntu 22.04 Server / Apache, PHP, MariaDB 설치하는 방법

Ubuntu 22.04 Server / Apache, PHP, MariaDB 설치하는 방법

Ubuntu Server에 웹서버 Apache, 웹프로그래밍 언어 PHP, 데이터베이스 MariaDB를 설치하는 방법입니다. 웹서버 운영을 위한 최소한의 설치로, 실제로 서비스할 때는 더 많은 패키지가 필요할 수 있습니다. 설치 Apache, PHP, MariaDB를 설치합니다. php-mysql은 PHP와 MariaDB 연동을 위한 패키지입니다. # apt install apache2 mariadb-server php php-mysql MariaDB 설정 다음과 같이 명령하여 몇 가지 설정을 합니다. # mysql_secure_installation MariaDB의 root 계정 ...

리눅스 / 명령어 / scp

scp는 ssh 프로토콜을 이용하여 파일을 송수신하는 명령어이다. local → remote remote → local remote → remote 모두 가능하다. local → remote 파일 복사 # scp a.txt root@192.168.3.211:/temp/a.txt root@192.168.3.211's password: 명령어를 실행한 디렉토리에 있는 a.txt 파일을 192.168.3.211 컴퓨터에 root 계정으로 연결하여 복사한다. 원격 컴퓨터에 /temp 디렉토리가 없으면 복사되지 않는다. 원격 컴퓨터에 /temp 디렉토리가 있으면 a.txt로 복사된다. a.txt 파일이 이미 있다면 덮어쓴다. root 계정의 ...

Ubuntu 22.04 Server / ufw로 방화벽 설정하는 방법

우분투에서 방화벽을 설정하는 명령어는 ufw이다. ufw로 방화벽을 활성화시키고 관리하는 방법은 다음과 같다. 방화벽 활성화 ufw enable 방화벽 비활성화 ufw disable 방화벽 상태 확인 ufw status 53 포트 허용 ufw allow 53 53 포트 tcp 패킷 허용 ufw allow 53/tcp 53 포트 udp 패킷 허용 ufw allow 53/udp 53 포트 거부 ufw deny 53 53 포트 tcp 패킷 거부 ufw deny 53/tcp 53 포트 udp 패킷 거부 ufw deny ...

Ubuntu 18.04 / 메모

SSH 설정 설정 파일 /etc/ssh/sshd_config 포트 변경하기 다음 코드를 #Port 22 다음처럼 바꾼다. Port 1234 포트 번호는 자신이 원하는 것으로... root 계정 로그인 가능하게 만들기 다음 코드를 #PermitRootLogin prohibit-password 다음처럼 만든다. PermitRootLogin yes 설정 변경 적용하기 service ssh restart