====== 26 Docker iptables ======
Dockerでiptablesを利用するには、DOCKER-USER chainにルールを追加します。
特定ネットワークからのみmysql接続を許可したい時など
IP確認
# docker inspect db
"Networks": {
"django_default": {
.
.
.
"Gateway": "172.23.0.1",
"IPAddress": "172.23.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:17:00:02",
"DriverOpts": null
}
}
}
}
特定IPだけ許可
iptables -I DOCKER-USER -p tcp --dport 3306 -d 172.23.0.2 -j DROP
iptables -I DOCKER-USER -p tcp --dport 3306 -s 192.168.10.10 -d 172.23.0.2 -j ACCEPT
netfilter-persistentを利用すると、起動時に自動で反映する事が可能ですが、
Dockerを利用していると、起動時にDockerがiptablesのルールを追加するので、ルールが重複する可能性があります。
netfilter-persistentを利用する場合は、保存したルールからDockerが自動で入れるルールを削除しておいた方が良いです。
apt install netfilter-persistent
シェルなど用意しておいて、起動後入れる設定とかでも良いかも。
--- //[[matsui@flateight.com|Shinya Matsui]] 2023/12/06 07:10//
現在確認すると、netfilter-persistentでの反映方法は設定反映されなくなってた。。。
やはり再起動後はシェルなどで追加する方が良さそう。
/etc/init.d/netfilter-persistent save
/etc/init.d/netfilter-persistent reload
{{tag>Docker iptables}}