Проблема: Порт MySQL 3306 открыт и общедоступен. Я хочу его закрыть.
Статус межсетевого экрана
$ sudo firewall-cmd --state
running
$ sudo firewall-cmd --zone=public --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: ssh dhcpv6-client https http
ports: 80/tcp 443/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
$ nmap IP
Starting Nmap 7.70
..cut..
Host is up (0.47s latency).
Not shown: 994 filtered ports
PORT STATE SERVICE
22/tcp closed ssh
80/tcp open http
443/tcp open https
3306/tcp open mysql
Почему открыт порт 3306? Почему по умолчанию порты не закрыты?
Вот и разобрался.
Порт 3306 был открыт с докер и docker обходит типичные правила iptables. Так что да.
Решением было изменить docker-composer.yml
конфигурация из
ports:
- 3306:3306
к
expose:
- 3306
где expose не будет открывать порт публично, только для других контейнеров.