Skip to content

Commit 0ecf8ee

Browse files
authored
Modify iptables rules to allow exgress traffic from within the container. See BREV-2599.
1 parent 2d74404 commit 0ecf8ee

1 file changed

Lines changed: 21 additions & 1 deletion

File tree

v1/providers/shadeform/firewall.go

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,26 @@ const (
1515
ufwDefaultAllowPort2222 = "ufw allow 2222/tcp"
1616
ufwForceEnable = "ufw --force enable"
1717

18+
// Clear DOCKER-USER policy.
1819
ipTablesResetDockerUserChain = "iptables -F DOCKER-USER"
19-
ipTablesAllowDockerUserOutbound = "iptables -A DOCKER-USER -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT"
20+
21+
// Allow return traffic.
22+
ipTablesAllowDockerUserOutbound = "iptables -A DOCKER-USER -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT"
23+
24+
// Allow containers to initiate outbound traffic (default bridge + user-defined bridges).
25+
ipTablesAllowDockerUserOutboundInit0 = "iptables -A DOCKER-USER -i docker0 ! -o docker0 -j ACCEPT"
26+
ipTablesAllowDockerUserOutboundInit1 = "iptables -A DOCKER-USER -i br+ ! -o br+ -j ACCEPT"
27+
28+
// Allow container-to-container on the same bridge.
29+
ipTablesAllowDockerUserDockerToDocker0 = "iptables -A DOCKER-USER -i docker0 -o docker0 -j ACCEPT"
30+
ipTablesAllowDockerUserDockerToDocker1 = "iptables -A DOCKER-USER -i br+ -o br+ -j ACCEPT"
31+
32+
// Allow inbound traffic on the loopback interface.
2033
ipTablesAllowDockerUserInpboundLoopback = "iptables -A DOCKER-USER -i lo -j ACCEPT"
34+
35+
// Drop everything else.
2136
ipTablesDropDockerUserInbound = "iptables -A DOCKER-USER -j DROP"
37+
2238
ipTablesReturnDockerUser = "iptables -A DOCKER-USER -j RETURN"
2339
)
2440

@@ -63,6 +79,10 @@ func (c *ShadeformClient) getIPTablesCommands() []string {
6379
commands := []string{
6480
ipTablesResetDockerUserChain,
6581
ipTablesAllowDockerUserOutbound,
82+
ipTablesAllowDockerUserOutboundInit0,
83+
ipTablesAllowDockerUserOutboundInit1,
84+
ipTablesAllowDockerUserDockerToDocker0,
85+
ipTablesAllowDockerUserDockerToDocker1,
6686
ipTablesAllowDockerUserInpboundLoopback,
6787
ipTablesDropDockerUserInbound,
6888
ipTablesReturnDockerUser, // Expected by Docker

0 commit comments

Comments
 (0)