Linux 시스템 보안 기초 · 39/50편

이 글은 리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 시리즈를 선행 학습으로 두고, 동일한 개념을 보안관제(SOC) 관점에서 한 단계 확장합니다.

선행 학습

1. 들어가며

방화벽은 네트워크 통제의 중심입니다. 그런데 리눅스 방화벽은 iptables, nftables, firewalld, ufw가 얽혀 있어 혼란스럽습니다. 이번 편은 이들의 관계를 정리하고, 방화벽 정책을 보안 관점에서 점검합니다.

2. 핵심 개념

계층 관계를 이해하면 명확합니다.

[ 관리 도구 ]  firewalld / ufw   ← 사용자 친화 프론트엔드
       │ 규칙을 변환
[ 규칙 엔진 ]  nftables (신) / iptables (구)
       │
[ 커널 훅 ]    Netfilter        ← 실제 패킷 검사

firewalld/ufw는 결국 nftables(또는 iptables)로 규칙을 만들고, 그것이 커널 Netfilter에서 동작합니다. 현대 배포판(RHEL9, Ubuntu 최신)은 백엔드가 nftables입니다.

firewalld  ─┐
ufw        ─┼─▶ nftables (또는 iptables) ─▶ Netfilter(커널) ─▶ 허용/차단
직접 nft   ─┘

3. 동작 원리

관리 도구로 만든 규칙이든 직접 만든 규칙이든, 최종적으로 Netfilter 훅에서 패킷마다 평가됩니다. 보안의 핵심은 기본 정책(default policy) 입니다. 기본을 'drop/deny'로 두고 필요한 것만 허용하는 화이트리스트 방식이 안전합니다. 기본이 'accept'면 규칙에서 빠진 모든 것이 통과됩니다.

또한 대부분 inbound만 신경 쓰지만, egress(outbound) 필터링도 중요합니다. outbound를 제한하면 C2 통신·데이터 유출(38편)을 원천 차단할 수 있습니다.

4. 명령어 실습

# nftables 전체 규칙
sudo nft list ruleset

# iptables 규칙(구형/호환)
sudo iptables -S; sudo iptables -L -n -v

# firewalld 상태·존·규칙 (RHEL 계열)
sudo firewall-cmd --state; sudo firewall-cmd --list-all

# ufw 상태 (Ubuntu)
sudo ufw status verbose

5. 실행 결과

실습 컨테이너의 iptables 정책 확인 형식입니다. (실제 캡처 — 컨테이너 기본 정책)

$ sudo iptables -S | head
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

여기서 -P INPUT ACCEPT는 기본 정책이 '허용'이라는 뜻으로, 운영 서버라면 위험합니다. 안전한 구성은 기본을 DROP으로 두고(-P INPUT DROP) 필요한 포트만 명시 허용하는 것입니다. (컨테이너 환경은 호스트 방화벽에 의존하므로 내부 정책이 느슨할 수 있습니다.)

6. 보안 관점 — 정상 사용 vs 악용

  • 정상/권장: 기본 정책 drop, 필요한 inbound만 허용, egress 제한, 존 분리.
  • 위험 징후:
    • 기본 정책 accept
    • 과도하게 넓은 허용 규칙(any→any)
    • 방화벽 규칙의 무단 변경(공격자의 통로 확보)
    • egress 무제한(C2/유출 방치)

방화벽 규칙 변경은 방어 태세 변화이므로 반드시 감사해야 합니다.

7. 탐지 방법

  • 기본 정책과 허용 규칙 점검
  • 규칙 기준선 대비 변경 탐지
  • egress 정책 유무 확인

8. SOC 관점 — SIEM · Wazuh · IOC

방화벽 규칙 변경은 auditd로 관련 명령(nft, iptables, firewall-cmd) 실행을 감사하고, 설정 파일 변경을 FIM으로 감시합니다. SIEM에서는 '방화벽 규칙 완화 → 신규 포트 노출 → 외부 연결'을 상관분석해 공격자의 통로 개설을 탐지합니다. egress 정책은 C2 차단의 마지막 방어선입니다.

9. 실습 체크리스트

[ ] 방화벽 백엔드(nftables/iptables) 확인
[ ] 기본 정책이 drop인지 확인
[ ] 허용 규칙의 과도함 점검
[ ] egress 제한 여부 확인

10. 핵심 정리

  • firewalld/ufw는 프론트엔드, nftables/iptables는 엔진, Netfilter가 커널 실행이다.
  • 현대 배포판의 백엔드는 nftables다.
  • 기본 정책을 drop으로 둔 화이트리스트가 안전하다.
  • egress 필터링은 C2·유출을 원천 차단한다.
  • 방화벽 규칙 변경은 방어 태세 변화로 감사한다.

11. 다음 편

다음 편에서는 40. Linux 네트워크 공격 흔적 분석 를 다룹니다. Part 5를 마무리하며, 네트워크 공격 흔적(스캔·brute force)을 로그와 연결로 분석합니다.


본 실습은 격리된 테스트 VM(Rocky Linux / Ubuntu, VMware) 및 테스트 계정 환경을 기준으로 하며, 운영 서버를 대상으로 하지 않습니다. 실행 결과는 실제 캡처와 예시 출력을 명확히 구분해 표기합니다.

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글