linux security sysctl pam selinux apparmor fstab

Linux 커널 및 보안 구성: sysctl, PAM 및 액세스 제어

sysctl, PAM, SELinux, AppArmor 및 보안 fstab 마운트 설정을 사용한 Linux 커널 강화 및 보안 구성에 대한 종합 가이드.

2026-04-18

Linux 커널 및 보안 구성: sysctl, PAM 및 액세스 제어

Linux 시스템 보안에는 커널에서 시작하여 인증 시스템, 액세스 제어 및 스토리지 마운트에 이르는 다계층 접근 방식이 필요합니다. 이 가이드는 현대적인 Linux 환경에서 가장 중요한 보안 구성 구성 요소에 대한 자세한 참조를 제공합니다.

1. sysctl을 이용한 커널 매개변수 구성

sysctl 명령과 /etc/sysctl.conf 파일(/etc/sysctl.d/ 파일 포함)은 런타임에 Linux 커널 매개변수를 구성하기 위한 기본 도구입니다. 이러한 매개변수 중 상당수는 보안에 중요한 영향을 미칩니다.

sysctl 구성 생성기 사용

구성 파일을 수동으로 편집할 수도 있지만, **sysctl 구성 생성기(sysctl config generator)**를 사용하면 중요한 강화 설정을 놓치지 않도록 도와줍니다. 구성해야 할 일반적인 매개변수는 다음과 같습니다.

  • 네트워크 강화: IP 포워딩 비활성화(net.ipv4.ip_forward = 0), ICMP 리다이렉트 무시(net.ipv4.conf.all.accept_redirects = 0), TCP SYN 쿠키 보호 활성화(net.ipv4.tcp_syncookies = 1).
  • 메모리 보호: kernel.randomize_va_space = 2를 통한 ASLR(Address Space Layout Randomization) 활성화.
  • 정보 유출 제한: 커널 로그 액세스 제한(kernel.dmesg_restrict = 1) 및 커널 심볼 테이블 제한(kernel.kptr_restrict = 2).

Linux 커널 매개변수 참조표

매개변수 권장 값 설명
net.ipv4.tcp_syncookies 1 SYN 플러드 공격으로부터 보호합니다.
net.ipv4.conf.all.rp_filter 1 IP 스푸핑을 방지하기 위해 역방향 경로 필터링을 활성화합니다.
kernel.randomize_va_space 2 버퍼 오버플로우 공격을 방지하기 위한 완전한 ASLR.
fs.protected_fifos 2 누구나 쓰기 가능한 디렉토리 내에서 FIFO에 대한 무단 쓰기를 방지합니다.

2. 플러그형 인증 모듈 (PAM)

PAM은 서비스 자체를 수정하지 않고도 다양한 서비스에 대한 인증을 관리할 수 있는 유연한 방법을 제공합니다. 강력한 비밀번호 정책과 다요소 인증을 시행하려면 PAM을 올바르게 구성하는 것이 필수적입니다.

PAM 구성 생성기 고려 사항

**PAM 구성 생성기(PAM config generator)**는 일반적으로 /etc/pam.d/에 있는 파일에 집중합니다. 보안을 위해 포함해야 할 주요 모듈은 다음과 같습니다.

  • pam_cracklib.so / pam_pwquality.so: 비밀번호 복잡성 요구 사항(길이, 문자 유형)을 시행합니다.
  • pam_tally2.so / pam_faillock.so: 무차별 대입 공격을 방지하기 위해 일정 횟수의 로그인 실패 후 계정을 잠급니다.
  • pam_unix.so: /etc/shadow에 대해 비밀번호를 확인하는 표준 모듈입니다.

비밀번호 품질 구성 예시:

password requisite pam_pwquality.so retry=3 minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root

3. 강제 액세스 제어: SELinux 및 AppArmor

사용자 및 그룹 기반의 표준 임의 액세스 제어(DAC)와 달리 강제 액세스 제어(MAC)를 사용하면 관리자가 시스템의 모든 프로세스와 파일에 대해 세분화된 보안 정책을 정의할 수 있습니다.

SELinux 정책 생성기 vs. AppArmor 프로필 생성기

  • SELinux (Security-Enhanced Linux): 모든 개체(프로세스, 파일, 포트)에 라벨링 시스템을 사용합니다. 강력하지만 학습 곡선이 가파릅니다. 복잡한 거부를 처리하려면 SELinux 정책 생성기(SELinux policy generator)(audit2allow 등)가 필요한 경우가 많습니다.
  • AppArmor: 경로 기반 프로필을 사용합니다. 일반적으로 SELinux보다 구성하기 쉬운 것으로 간주됩니다. AppArmor 프로필 생성기(AppArmor profile generator)(aa-genprof 등)는 애플리케이션 동작을 모니터링하여 프로필을 만드는 데 도움을 줄 수 있습니다.

SELinux vs. AppArmor 비교

기능 SELinux AppArmor
제어 유형 라벨 기반 경로 기반
복잡성 높음 중간
기본 제공 배포판 RHEL, CentOS, Fedora Ubuntu, Debian, openSUSE
유연성 매우 높음 높음
학습 곡선 가파름 완만함

4. /etc/fstab을 이용한 보안 스토리지 마운트

/etc/fstab 파일은 스토리지 장치가 마운트되는 방식을 정의합니다. 올바른 마운트 옵션을 사용하면 임시 디렉토리에서 악성 바이너리를 실행하는 것과 같은 다양한 유형의 공격을 방지할 수 있습니다.

/etc/fstab 생성기 보안 플래그

**/etc/fstab 생성기(/etc/fstab generator)**를 사용할 때는 비시스템 파티션(/tmp, /var 또는 외부 드라이브 등)에 다음 보안 플래그를 포함해야 합니다.

  • nodev: 파일 시스템에서 블록 또는 문자 특수 장치의 해석을 방지합니다.
  • nosuid: set-user-identifier 또는 set-group-identifier 비트를 비활성화합니다.
  • noexec: 파일 시스템에서 바이너리 실행을 방지합니다.

/tmp에 대한 보안 항목 예시:

UUID=... /tmp tmpfs rw,nosuid,nodev,noexec 0 0

FAQ: Linux 보안 구성

Q: SELinux와 AppArmor 중 무엇을 사용해야 하나요?

A: 일반적으로 사용 중인 배포판에 따라 다릅니다. 기본적으로 지원되고 활성화된 것을 사용하세요(RHEL 계열은 SELinux, Debian 계열은 AppArmor). 가장 포괄적인 사전 구성된 정책을 가지고 있기 때문입니다.

Q: net.ipv4.ip_forward가 기본적으로 비활성화되어 있는 이유는 무엇인가요?

A: IP 포워딩을 활성화하면 시스템이 라우터 역할을 할 수 있게 되며, 이는 명시적인 의도가 없고 제대로된 방화벽 설정이 없는 경우 보안 위험이 될 수 있습니다.

Q: PAM을 잘못 구성하면 어떻게 되나요?

A: PAM 구성을 잘못하면 root를 포함한 모든 사용자가 시스템에서 차단될 수 있습니다. PAM 변경 사항을 테스트할 때는 항상 활성 root 셸을 열어 두거나 복구 계획(Live CD 부팅 등)을 세워 두십시오.

Q: sysctl 설정이 적용되었는지 어떻게 확인하나요?

A: sysctl -a 명령을 사용하여 현재의 모든 커널 매개변수와 해당 값을 확인하십시오. sysctl net.ipv4.tcp_syncookies와 같이 특정 매개변수를 확인할 수도 있습니다.