본문 바로가기
Technical/System

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

by 채희창 2025. 7. 16.

RedHat/Rocky Linux 6에서는 OS 기본 방화벽으로 iptables를 기본으로 사용하였지만 RedHat/Rocky Linux 7부터 OS 기본 방화벽이 firewalld로 변경되었으며 이후 버전에서도 firewalld를표준으로 사용하고 있습니다. 그럼에도 불구하고 인프라 고도화 작업이나 기존 서버 마이그레이션 시에는 여전히 iptables를 사용하는 환경이 많습니다. 기존에 사용하던 명령어 방식에 익숙한 운영자들에게 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는 여전히 단순하고 강력한 방화벽 도구입니다.

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

 

감사합니다.

댓글