Eu tenho um VPS onde configurei a VPN com sucesso. Eu me conecto com o cliente OpenVPN. A interface do servidor VPN é 10.8.0.1 e o cliente recebe 10.8.0. IP. E eu sou capaz de pingar 10.8.0.1. Eu também pareço ser capaz de fazer telnet para 10.8.0.1:80, 10.8.0.1:443, etc portas padrão com serviços de trabalho sobre eles, mas não 10.8.0.1:3306.
Esta é a conexão VPN impressa por ifconfig:
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:383 errors:0 dropped:0 overruns:0 frame:0
TX packets:358 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:29356 (28.6 KiB) TX bytes:149232 (145.7 KiB)
O MySQL não é vinculado a nenhum IP, por isso recebe conexões de qualquer lugar. Eu quero cortar sua visibilidade por IPTABLES.
Então adicionei essas regras a IPTABLES:
# allow connections from the vpn
iptables -A INPUT -s 10.8.0.0/24 -p tcp --dport 3306 -j ACCEPT
# allow local connections eg your scripts running locally
iptables -A INPUT -s 127.0.0.1 -p tcp --dport 3306 -j ACCEPT
# deny any other attempts of connecting to mysql
iptables -A INPUT -p tcp --dport 3306 -j DROP
Agora consigo conectar-me ao 127.0.0.1 do próprio servidor. Não consigo me conectar ao servidor pelo seu IP público. E eu não consigo me conectar a ele através do 10.8.0.1 (VPN IP).
Este é o meu IPTABLES completo:
[root@ddinvps mail]# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:1723
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
icmp_packets all -- 0.0.0.0/0 0.0.0.0/0
tcp_packets all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 10.8.0.0/24 0.0.0.0/0 tcp dpt:3306
ACCEPT tcp -- 127.0.0.1 0.0.0.0/0 tcp dpt:3306
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain icmp_packets (1 references)
target prot opt source destination
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 3
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 11
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
DROP icmp -- 0.0.0.0/0 0.0.0.0/0
Chain tcp_packets (1 references)
target prot opt source destination
ACCEPT all -- 127.0.0.1 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:26
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 10.3.124.200 0.0.0.0/0 tcp dpt:9102
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:993
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:10000
DROP tcp -- 0.0.0.0/0 0.0.0.0/0
DROP udp -- 0.0.0.0/0 0.0.0.0/0
Alguma idéia?