인프라 고도화 작업 혹은 기존 서버 마이그레이션 시, 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로 수동 제어가 필요한 경우 위와 같은 방법으로 정책을 유지할 수 있습니다.
감사합니다.
'Technical > System' 카테고리의 다른 글
Windows 설치 시 디스크 MBR -> GPT 변환 방법 (0) | 2025.07.14 |
---|---|
IBM Storwize V5000 디스크 추가 및 기존 볼륨 확장하는 방법 (0) | 2025.05.07 |
Windows 서버에서 SNMPv3 설정하기 (Net-SNMP) (1) | 2025.04.23 |
Linux에서 SNMPv3 설정 하기 (0) | 2025.04.01 |
[Linux] Session Timeout 설정 (0) | 2024.12.24 |
댓글