====== 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}}