42 lines
1.1 KiB
Markdown
42 lines
1.1 KiB
Markdown
|
---
|
||
|
layout: post
|
||
|
title: "Ferm rules for docker"
|
||
|
date: 2014-11-01 15:05:44 +0100
|
||
|
comments: true
|
||
|
categories:
|
||
|
- docker
|
||
|
---
|
||
|
|
||
|
The Docker daemon add his own custom rules by default to iptables. If you use
|
||
|
[ferm](http://ferm.foo-projects.org/) to manage your iptables rules, it is a
|
||
|
good idea to prepopulate rules for docker. Otherwise they will be overwritten by
|
||
|
ferm as it restarts.
|
||
|
|
||
|
To do so add the following lines at the top of your ferm.conf:
|
||
|
|
||
|
```
|
||
|
domain ip {
|
||
|
table filter chain FORWARD {
|
||
|
outerface docker0 mod conntrack ctstate (RELATED ESTABLISHED) ACCEPT;
|
||
|
interface docker0 outerface !docker0 ACCEPT;
|
||
|
interface docker0 outerface docker0 ACCEPT;
|
||
|
}
|
||
|
table nat {
|
||
|
chain DOCKER;
|
||
|
chain PREROUTING {
|
||
|
mod addrtype dst-type LOCAL jump DOCKER;
|
||
|
}
|
||
|
chain OUTPUT {
|
||
|
daddr !127.0.0.0/8 mod addrtype dst-type LOCAL jump DOCKER;
|
||
|
}
|
||
|
|
||
|
chain POSTROUTING {
|
||
|
saddr 172.17.0.0/16 outerface !docker0 MASQUERADE;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
In my case docker's subnet is `172.17.0.0/16` and uses `docker0` as bridge
|
||
|
device.
|