본문 바로가기
Linux

SELinux, PAM, IPTables, UFW, Bacula: 리눅스 보안 및 백업 관리 총정리

by Mostlove 2025. 3. 19.
728x90
반응형

SELinux (Security Enhanced Linux)
SELinux는 NSA(미국 국가안전보장국)에서 개발한 보안 모듈로, Linux에서 보안 OS 기능을 강화하기 위해 사용됩니다. Linux에서 파일 및 디렉터리에 대한 권한을 다루는 방식은 크게 3가지로 나눌 수 있습니다:

  1. 임의 접근제어 (DAC): 파일/디렉터리 소유자가 권한을 설정하지만, 보안 취약점이 있을 수 있습니다.
  2. 강제 접근제어 (MAC): SELinux를 통해 중앙 관리자가 정책 파일을 설정하여, 파일/디렉터리 권한을 일괄적으로 제어합니다.
  3. 역할기반 접근제어 (RBAC): SELinux를 사용하여 root 권한을 역할로 분리하고, 최소 권한 원칙을 적용하여 보안을 강화합니다.

Ubuntu에는 기본적으로 SELinux가 설치되어 있지 않지만, 설치 후 활성화할 수 있습니다.
설치 및 활성화 방법:

  1. apt update 후 apt -y install selinux-basics selinux-policy-default auditd로 필수 도구 설치
  2. selinux-activate로 활성화 후, sestatus 명령어로 상태 확인
  3. 시스템 재부팅 후, 다시 sestatus 명령어로 SELinux 상태 확인 (enabled로 변경)

SELinux 설정은 /etc/selinux/config 파일에서 확인 및 변경할 수 있습니다. getenforce로 설정 확인 후, setenforce 0을 통해 일시적으로 비활성화할 수 있습니다.

SELinux의 보안 컨텍스트는 ls -lZ(파일) 또는 ls -dZ(디렉터리)로 확인하고, chcon을 사용해 변경할 수 있습니다.


PAM (Pluggable Authentication Modules)
Linux에서는 다양한 어플리케이션들이 각기 다른 인증 방법을 사용합니다. 이를 관리하는 데 어려움이 있을 수 있는데, PAM을 사용하면 인증 방법을 통합하여 효율적으로 관리할 수 있습니다.

PAM을 사용하면, SSH, CRON 등 다양한 서비스에서 인증 방법을 중앙에서 관리할 수 있으며, 서비스별로 별도로 설정 파일을 수정할 필요 없이 /etc/pam.d/나 /etc/pam.conf에서 설정을 관리할 수 있습니다. 예를 들어, SSH와 CRON의 설정을 PAM으로 관리할 수 있습니다.

PAM의 기본 파일은 /etc/pam.d/에 있으며, 각 서비스에 대해 인증 모듈을 설정합니다. 예를 들어, sshd나 crond 서비스에 대해 필요한 인증 룰을 /etc/pam.d/에 설정할 수 있습니다.


IPTables
Iptables는 Linux에서 제공하는 소프트웨어 방화벽으로, 네트워크 트래픽을 필터링하는 데 사용됩니다. 이 도구는 Netfilter라고도 불리며, 커널 레벨에서 작동하지만, 사용자 공간에서 iptables 명령어를 통해 관리할 수 있습니다.

  • 체인: 룰이 적용되는 순서대로 나열된 규칙입니다. 기본적으로 INPUT, OUTPUT, FORWARD 체인이 있으며, 각 체인에 대해 룰을 설정합니다.
  • : 트래픽에 대한 조건을 지정하고, 그에 따라 행동(ACCEPT, REJECT, DROP 등)을 정의합니다.
  • 폴리시: 기본 규칙 설정을 말합니다. 예를 들어, 패킷이 특정 조건을 만족하지 않으면 기본적으로 DROP되도록 설정할 수 있습니다.

방화벽 설정 예시:

  • iptables -A INPUT -p tcp --dport 22 -j REJECT: 22번 포트를 통한 TCP 트래픽을 차단합니다.
  • iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT: 80번과 443번 포트를 통한 TCP 트래픽을 허용합니다.

기타 옵션:

  • iptables-save와 iptables-restore를 사용해 설정을 저장하고 복원할 수 있습니다.
  • iptables에서 기본 정책을 설정하거나, 특정 서비스를 허용하거나 차단하는 룰을 추가할 수 있습니다.

이 방화벽은 서버의 네트워크 트래픽을 제어하는 중요한 역할을 하며, 보안을 강화하는 데 필수적인 도구입니다.

 

UFW (Uncomplicated Firewall)

UFW는 리눅스 시스템에서 간단하게 방화벽을 관리할 수 있도록 돕는 도구입니다. iptables를 직접 설정하는 것보다 사용이 편리합니다. 기본적으로 리눅스 시스템에서 간단한 보안 정책을 설정할 때 사용됩니다.

기본 명령어들:

UFW 활성화/비활성화
sudo ufw enable # 방화벽 활성화 sudo ufw disable # 방화벽 비활성화
상태 확인
sudo ufw status
특정 포트 열기
예를 들어, 80번 포트를 열려면:
sudo ufw allow 80/tcp
특정 포트 차단하기
예를 들어, 22번 포트를 차단하려면:
sudo ufw deny 22/tcp
서비스 열기
예를 들어, ssh 서비스에 대한 접근을 허용하려면:
sudo ufw allow ssh
UFW 기본 정책 설정
기본적으로 deny 정책을 적용하여, 허용된 트래픽만 접근을 허용하게 할 수 있습니다.
sudo ufw default deny incoming # 모든 수신 트래픽 차단 sudo ufw default allow outgoing # 모든 송신 트래픽 허용

UFW 로그 설정:

  • 로그 보기
     
sudo ufw status verbose

Bacula

Bacula는 네트워크를 통한 백업을 관리하는 프로그램입니다. 다양한 시스템에서 데이터를 안전하게 백업하고 복원하는 데 사용됩니다. 주로 엔터프라이즈 환경에서 데이터를 백업하는 데 많이 사용됩니다.

Bacula 구성 요소:

  • Director: 백업 및 복원 작업을 관리하는 서버.
  • Storage Daemon: 백업 데이터를 저장하는 서버.
  • File Daemon: 백업할 파일 시스템을 관리하는 클라이언트.
  • Console: 사용자 인터페이스로, 백업/복원 명령을 제공하는 도구입니다.

Bacula 설치 예시:

  1.  
Bacula 설치
apt 또는 yum을 이용하여 Bacula를 설치할 수 있습니다.
sudo apt install bacula-server bacula-client
Bacula 서비스 시작
Bacula 관련 서비스를 시작합니다.
sudo systemctl start bacula-director sudo systemctl start bacula-sd sudo systemctl start bacula-fd
백업 작업 설정
Bacula는 Director에서 작업을 설정하는 방식으로 운영됩니다. bacula-dir.conf 파일에서 설정할 수 있습니다.
백업 실행
백업을 실행하려면 Bacula 콘솔에서 명령어를 입력합니다:
bconsole *run

 

반응형

'Linux' 카테고리의 다른 글

RPM(Red Hat Package Manager)  (0) 2025.03.20
TestDisk  (0) 2025.03.20
Linux 네트워크 및 시스템 관리: 중요한 도구와 설정 방법  (0) 2025.03.18
네트워크 모니터링 도구  (0) 2025.03.13
리눅스 과정 13일차  (1) 2025.03.06