[TIP] Docker 룰이 포함된 iptables 룰 저장 및 복구

리눅스/DNS|2022. 12. 22. 16:53
반응형

[TIP] Docker 룰이 포함된 iptables 룰 저장 및 복구

 

iptables 기본 룰에서 docker 컨테이너등을 실행하면 컨테이너가 사용하는 포트의 연결을 위해

자동으로 iptables 룰이 추가됩니다.

하지만 iptables 룰을 잘못 수정하였다가 컨테이너 서비스가 먹통 되는 일이 생기는데 이를 방지하기 위해

iptables 룰을 주기적으로 저장해 두어야 합니다.

 

-----------------------------------

# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
DOCKER-USER  all  --  0.0.0.0/0            0.0.0.0/0           
DOCKER-ISOLATION-STAGE-1  all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain DOCKER (2 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            192.168.96.2         tcp dpt:3306
ACCEPT     tcp  --  0.0.0.0/0            192.168.96.3         tcp dpt:443
ACCEPT     tcp  --  0.0.0.0/0            192.168.96.4         tcp dpt:9000
ACCEPT     tcp  --  0.0.0.0/0            192.168.96.3         tcp dpt:80

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target     prot opt source               destination         
DOCKER-ISOLATION-STAGE-2  all  --  0.0.0.0/0            0.0.0.0/0           
RETURN     all  --  0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-ISOLATION-STAGE-2 (2 references)
target     prot opt source               destination         
DROP       all  --  0.0.0.0/0            0.0.0.0/0           
RETURN     all  --  0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-USER (1 references)
target     prot opt source               destination         
RETURN     all  --  0.0.0.0/0            0.0.0.0/0           

-----------------------------------

 

현재 iptables 룰 저장

# iptables-save > iptables_20221222.rules

 

백업한 iptables 룰 복원

# iptables-restore < iptables_20221222.rules

 

혹시 백업해둔 룰이 없을땐 서비스 중지를 감수하고 docker 를 재시작 하면 컨테이너가 구동되면서 iptables 룰이 재구성 됩니다.

# systemctl restart docker

 

반응형

댓글()