Я настраиваю тестовую / лабораторную среду для группы разработчиков, которым тоже нужна база данных. Я установил Centos 7 VPS, на который я установил сервер приложений, базу данных и экземпляр Openvpn.
Я использую iptables для фильтрации трафика, и только 1194 / udp не доступны в Интернете, я принимаю только то, что мне нужно, от интерфейса туннеля. (На самом деле я временно принимаю 22 / tcp из Интернета, потому что я возился с конфигурацией vpn. Я использую ключи ssh, а root все равно не может удаленно войти в систему)
Проблема в том, что я могу подключиться к серверу через SSH, и я также вижу целевую страницу приложения (которая обслуживается по 8080 / tcp), но я не могу подключиться к базе данных.
Вот правила брандмауэра:
[root@grolloserver ~]# iptables -nvL
Chain INPUT (policy DROP 198 packets, 19717 bytes)
pkts bytes target prot opt in out source destination
48218 4934K f2b-SSH tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
25541 1143K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
3 120 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
72983 14M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
31 1302 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:1194
2 1570 ACCEPT icmp -- tun0 * 0.0.0.0/0 0.0.0.0/0
2 92 ACCEPT tcp -- tun0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
1 44 ACCEPT tcp -- tun0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
0 0 ACCEPT tcp -- tun0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
36412 3741K LOGGING all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
128 6608 ACCEPT all -- tun0 * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 1077 packets, 287K bytes)
pkts bytes target prot opt in out source destination
Chain LOGGING (1 references)
pkts bytes target prot opt in out source destination
36412 3741K LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix "iptables dropped: "
Chain f2b-SSH (1 references)
pkts bytes target prot opt in out source destination
Вещи, которые я пробовал:
Firewalld замаскирован и остановлен. SELinux отключен. Для mssfix установлено значение 1430 (1470 - это MTU, с которым я успешно пингую VPN-шлюз - 40).
У вас есть какие-нибудь советы? Спасибо.
РЕДАКТИРОВАТЬ: я забыл упомянуть, что соединение прерывается через ~ 15 секунд. Счетчики iptables равны нулю (я их не сбрасывал). ss -nal4 показывает, что mariadb прослушивает IP-адрес интерфейса tun0.
Решено! Проблема заключалась в том, что я установил правило предварительной маршрутизации для запросов NAT db к другому db и, конечно же, я забыл об этом.
По этой причине трафик даже не дошел до цепочки INPUT.
По умолчанию Mariadb не разрешает удаленное ведение журнала. Вам следует взглянуть на свою конфигурацию, и я даже думаю, что базы данных также должны быть предоставлены таким образом, чтобы вы подключались к ним удаленно. Я был там.