본문 바로가기
Technical/System

RedHat/Rocky Linux 8 iptables 정책 초기화될 경우

by 채희창 2025. 7. 16.

인프라 고도화 작업 혹은 기존 서버 마이그레이션 시, firewalld 대신 iptables를 사용하는 환경이 여전히 많습니다. 이러한 환경에서 시스템 재부팅 후 iptables 정책이 초기화되는 문제를 겪는 경우가 있습니다. 이 포스팅에서는 그 원인과 해결책을 정리합니다.

 

이럴 경우에 대응할 수 있는 방법을 작성하겠습니다.

 

iptables 정책이 초기화 되는 이유?

1. firewalld가 활성화된 경우

- firewalld는 내부적으로 iptables를 조작합니다.

- 사용자가 수동으로 설정한 iptables 규칙은 firewalld가 재시작되거나 정책을 적용할 때 모두 초기화됩니다.

2. firewalld가 꺼져 있어도 iptables-services가 없을 경우

- iptables-services 패키지가 설치되어 있지 않으면, 시스템 재부팅 시 저장된 iptables 정책을 자동으로 불러오지 못합니다. 

3. iptables 규칙

- iptables 명령어로 설정한 규칙은 커널 메모리에 일시적으로만 존재합니다.

- 재부팅 시 메모리가 초기화되므로, 규칙도 함께 사라집니다.

 

방법1) iptables-services 패키지 설치 및 설정 

  • firewalld 중지 및 비활성화

# 상태 확인
systemctl status firewalld

# 중지
sudo systemctl stop firewalld

# 비활성화
sudo systemctl disable firewalld

 

  • iptables-services 패키지 설치

sudo yum install -y iptables-services

 

  • 현재 iptables 규칙 저장

sudo iptables-save > /etc/sysconfig/iptables

 

  • iptables 서비스 등록 및 시작

sudo systemctl enable iptables
sudo systemctl start iptables

 

방법2) systemd 서비스로 직접 복원 처리

  • iptables-services를 설치하지 않고도 사용자 정의 systemd 서비스로 복원 처리도 가능합니다.

 

  • iptables 규칙 저장

sudo iptables-save > /etc/sysconfig/iptables

 

  • systemd 서비스 생성

sudo vi /etc/systemd/system/iptables-restore.service


[Unit]
Description=Restore iptables rules
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/iptables-restore /etc/sysconfig/iptables
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target


  •  서비스 등록 및 적용

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable iptables-restore.service

 

iptables는 여전히 단순하고 강력한 방화벽 도구입니다.

RHEL8 이후로 기본은 firewalld지만, iptables로 수동 제어가 필요한 경우 위와 같은 방법으로 정책을 유지할 수 있습니다. 

 

감사합니다.

댓글