質問: ubuntu 16の特定のインターフェイスでdockerコンテナのデータベースへの接続を制限することは可能ですか? いくつかのネットワークインターフェイスを備えたサーバー(dockerコンテナで percona を使用)にmysqlデータベースがあります。私のシステムはubuntu 16.04.2 ltsです。ifconfig eth0 link encap:... inet addr:95.*.*.* eth1 link encap:... inet addr:10.*.*.* ufwを使用したアクセスをeth0インターフェイス上のデータベースに制限し、eth1を許可することは可能ですか?したがって、10.*.*.*:6603でdbにアクセスできますが、95.*.*.*:6603でアクセスすることはできません。更新(2017年4月3日):そのコマンドを使用してルールを追加しました。sudo ufw deny in on eth0 to any port 6603 from any proto tcp 状態:$ sudo ufw status status: active to action from -- ------ ---- 6603/tcp on eth0 deny anywhere 6603/tcp (v6) on eth0 deny anywhere (v6) しかし、拒否ルールにもかかわらず、mysqlクライアントを使用してdbに入力できます。しかし、6603ポートはまだ開いています:nmap -p 6603 95.85.54.75 starting nmap 7.01 ( https://nmap.org ) at 2017-03-04 16:14 utc nmap scan report for 95.85.54.75 host is up (0.0012s latency). port state service 6603/tcp open unknown nmap done: 1 ip address (1 host up) scanned in 0.65 seconds
回答: ufwを使用する代わりに、mysqlを単一のインターフェースにバインドできます。mysqld構成ファイル(通常は/etc/mysql/my.cnfにあります)にはbind-addressというオプションがあり、単一のipアドレス(たとえば10.0.4.25など)を設定して、mysqlがそのインターフェイスでのみリッスンするように強制できます。ただし、 弱いホストモデル を使用するホストでは(一部のlinuxディストリビューションのように)、防弾ソリューションではありません。あるインターフェースにバインドされたサービスに別のインターフェースから接続することが可能です。