개별적으로 재설정할 수 있도록 방화벽 규칙을 체인으로 격리하려면 어떻게 해야 합니까?

개별적으로 재설정할 수 있도록 방화벽 규칙을 체인으로 격리하려면 어떻게 해야 합니까?

나는 한동안 몇 가지 iptables 규칙을 실행해 왔고 지금까지 문제가 없었기를 바랍니다. 이것은 그것의 단편이다

# Block all input and forward traffic, both IPv4 and IPv6
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# Allow traffic already established to continue
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow ssh, dns, ldap, ftp and web services
iptables -A INPUT -p tcp --dport ssh -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -i eth0 -j ACCEPT

# OpenVPN tunnels
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE
iptables -A OUTPUT -o tun0 -j ACCEPT

Docker를 사용하기 시작한 이후로 뭔가 문제가 생겼을 때 방화벽을 제어하고 재설정하는 것이 매우 혼란스러워졌습니다. 모든 방화벽 규칙을 재설정하려고 하면 Docker 라우팅이 엉망이 되어 더 이상 작동하지 않습니다.

따라서 이 문제를 해결하는 올바른 방법은 모든 방화벽 규칙(위에 나열된 규칙)을 별도의 체인에 배치하는 것 같습니다. 도와주세요?

  • 이 모든 규칙을 내 특정 체인에 어떻게 넣을 수 있나요?
  • Docker 규칙에 영향을 주지 않고 내 체인의 규칙만 재설정하려면 어떻게 해야 합니까?

나는 문제를 해결하려고 노력한다.

내가 올바르게 이해했다면 기본 정책을 다음으로 변경해야 합니다.

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

도착하다

iptables -A MyChain -P INPUT DROP
iptables -A MyChain -P OUTPUT ACCEPT
iptables -A MyChain -P FORWARD DROP

다음을 추가해야 합니다.

iptables -P INPUT jump MyChain
iptables -P OUTPUT jump MyChain
iptables -P FORWARD jump MyChain

기본 트래픽이 내 체인으로 이동하도록 합니다.

마지막으로 각 규칙을 추가해야 합니다 -A MyChain.

그러나 때때로 우리는 이미 -A깃발을 가지고 있습니다. 좋은 체인 격리 목표를 달성하기 위해 규칙을 편집하는 방법을 이해하도록 도와줄 수 있는 사람이 있습니까?

관련 정보