プライベートIP:10.64.30.117を使用してポート3306で実行されているMySQLサーバーがあります。また、プライベートIPが10.17.23.1の別のノードで実行されるWebアプリケーションもあります。
私のWebアプリケーションがMySQLサーバーにアクセスできるようにしたいのですが、MySQLを公に使用したくありません。 (両方のノードにパブリックIPもあります。)
UFWを試してみましたが、すべてがブロックされているようです。ufw status
コマンドは以下を示します。
To Action From
-- ------ ----
3306 DENY Anywhere
3306 ALLOW 10.0.0.0/8
3306 ALLOW 10.0.0.0/24
3306 (v6) DENY Anywhere (v6)
全体ifconfig
の外観は次のとおりです。
$ ifconfig
ens2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.64.30.117 netmask 255.255.255.254 broadcast 10.64.30.117
inet6 2001:xxxx:xxxx:xxx::1 prefixlen 127 scopeid 0x0<global>
inet6 fe80::dc1c:3cff:fe32:203b prefixlen 64 scopeid 0x20<link>
ether de:1c:3c:32:20:3b txqueuelen 1000 (Ethernet)
RX packets 363358 bytes 1082623290 (1.0 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 310592 bytes 37970748 (37.9 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2844 bytes 779466 (779.4 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2844 bytes 779466 (779.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
メモ:これらのプライベートIPは変更される可能性があるため、ハードコードできません。
UFWやiptablesでこれを設定する他の方法はありますか?
答え1
どのディストリビューションを使用しているかは明らかではありませんが、すべてのルールがこのファイルに保存されていると思います。
$ sudo cat /etc/ufw/user.rules
リスト内のALLOWルールを持つプライベートCIDRが最初で、DENYルールが最後になるように、このファイルの内容を並べ替えることができる必要があります。コンテンツが正常に並べ替えられた場合、sudo ufw status
コマンドは次のようにルールを表示します。
3306 ALLOW 10.0.0.0/8
3306 ALLOW 10.0.0.0/24
3306 DENY Anywhere
3306 (v6) DENY Anywhere (v6)
引用する
答え2
ファイアウォールの代替(または補完)戦略は、不要なサービス/構成がないという黄金律に従うことです。したがって、まずMysqlがパブリックアドレスから応答しないようにしてください。
ここで推奨される戦略は、Mysqlデーモン/サービスがプライベートIPアドレスでのみリッスンするようにバインド/作成することです。
編集my.cnf
と使用:
bind-address=10.64.30.117
IPアドレスの変更について述べたように、/ etc / hostsで定義されているホスト名と一緒にこのディレクティブを使用し、Mysqlを(再起動する)前に変更できます。 (または存在するプライベートDNS名を使用してください)
その後、Mysqlデーモンを再起動すると、デバイスは別のIPアドレスからの要求を受信しなくなります。
PSボーナスでパブリックIPアドレスの変更を心配する必要はありません。プライベートIPアドレスを変更する場合は、ネットワーク設定を強制するか、仮想IPアドレスを使用するか、構成ファイルを動的に変更して解決する必要があります。
PPSこの原則は、Webサーバーの背後にあるTomcatなどの他のサービスにも適用されます。クライアントが同じシステム/VM上にある場合にのみ、サービスをlocalhostにバインドすることもできます。
また、IPアドレス変更処理については、関連質問をご覧ください。ISPによるIPアドレスの変更をどのように処理しますか?