개인 IP: 10.64.30.117을 사용하여 포트 3306에서 실행되는 MySQL 서버가 있습니다. 또한 개인 IP가 10.17.23.1인 다른 노드에서 실행되는 웹 애플리케이션도 있습니다.
내 웹 애플리케이션이 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 이 원칙은 웹 서버 뒤의 Tomcat과 같은 다른 서비스에도 적용됩니다. 클라이언트가 동일한 시스템/VM에 있는 경우에만 서비스를 localhost에 바인딩할 수도 있습니다.
또한 IP 주소 변경 처리에 대해서는 관련 질문을 참조하세요.ISP에 의한 IP 주소 변경을 어떻게 처리하나요?