View previous topic :: View next topic |
Author |
Message |
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Wed Feb 24, 2010 9:44 am Post subject: MySQL: non riesco ad accedere tramite la OpenVPN |
|
|
Salve a tutti,
ho un problema con il server MYSQL e la OpenVPN.
Ho lasciato il parametro bind-address appositamente commentato nel file my.cnf, così in questo modo riesco a connettermi al server MySQL sia digitando l'IP 127.0.0.1 sia digitando l'IP che mi viene assegnato dal router.
Quindi, il server è accessibile da tutti i PC che sono in LAN con il server.
Faccio presente che l'accesso avviene tramite un software gestionale che ho fatto io in java.
Ho provato anche a inserire una regola iptables apposita ma non funziona.
Il problema è che se si prova ad accedere utilizzando l'IP della VPN, l'accesso non è consentito. Perché? _________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
Peach Advocate
Joined: 08 Mar 2003 Posts: 3686 Location: London, UK
|
Posted: Wed Feb 24, 2010 7:42 pm Post subject: |
|
|
come hai configurato ovpn? _________________ Gentoo user since 2004.
"It's all fun and games, until someone loses an eye" - mom |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
Peach Advocate
Joined: 08 Mar 2003 Posts: 3686 Location: London, UK
|
Posted: Wed Feb 24, 2010 8:13 pm Post subject: |
|
|
fbcyborg wrote: | Cosa vuoi sapere esattamente?
Ti posso postare il file /etc/openvpn/server.conf, ma non so quanto ti possa essere d'aiuto. |
scusa, volevo sapere se l'hai configurato come bridge o come tunnel _________________ Gentoo user since 2004.
"It's all fun and games, until someone loses an eye" - mom |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
Peach Advocate
Joined: 08 Mar 2003 Posts: 3686 Location: London, UK
|
Posted: Fri Feb 26, 2010 8:07 pm Post subject: |
|
|
fbcyborg wrote: | Nel file di configurazione ho inserito "dev tun" quindi come tunnel. Inoltre per conferma, l'interfaccia che viene tirata su, è tun0. |
ok quindi stai usando un altro ip su un'altra sottorete per collegarti alla macchina.
ora sul server dovresti controllare che effettivamente il server mysql sia in ascolto su "qualsiasi indirizzo":
Code: | # netstat -ltn | grep 3306 |
dato che mysql sta su porta 3306.
Prima di usare la tua interfaccia proverei a fare dei tentativi di connessione "manuali" e vedere se funzionano senza problemi.
Quindi una volta connesso via openvpn ti provi prima a collegare via ssh al server (sull'ip ovpn) e provi a collegarti localmente:
Code: | # mysql -u root -p -h localhost |
poi senza collegarti via ssh provi la connessione remota sulla vpn
Code: | # mysql -u root -p -h <ip_ovpn> |
se tutto funziona senza problemi, allora conviene fare un po' di tcpdump sul server su tun0 per vedere che succede e perché non va. _________________ Gentoo user since 2004.
"It's all fun and games, until someone loses an eye" - mom |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Fri Feb 26, 2010 8:22 pm Post subject: |
|
|
Peach wrote: |
ok quindi stai usando un altro ip su un'altra sottorete per collegarti alla macchina.
ora sul server dovresti controllare che effettivamente il server mysql sia in ascolto su "qualsiasi indirizzo":
Code: | # netstat -ltn | grep 3306 |
dato che mysql sta su porta 3306. |
OK, in realtà questa cosa l'avevo già fatta ed ecco cosa mi viene fuori:
Code: | tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN |
Quindi sembrerebbe tutto OK su questo punto di vista.
Peach wrote: |
Prima di usare la tua interfaccia proverei a fare dei tentativi di connessione "manuali" e vedere se funzionano senza problemi.
Quindi una volta connesso via openvpn ti provi prima a collegare via ssh al server (sull'ip ovpn) e provi a collegarti localmente:
Code: | # mysql -u root -p -h localhost |
| Nessun problema a connettermi così. Peach wrote: |
poi senza collegarti via ssh provi la connessione remota sulla vpn
Code: | # mysql -u root -p -h <ip_ovpn> |
| Inserisco la password e non succede niente. Rimane bloccato senza dare di nuovo la shell. Peach wrote: |
se tutto funziona senza problemi, allora conviene fare un po' di tcpdump sul server su tun0 per vedere che succede e perché non va. |
EDIT: dopo un po' sputa fuori:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.139.1' (110)
Grazie per l'aiuto! _________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
Peach Advocate
Joined: 08 Mar 2003 Posts: 3686 Location: London, UK
|
Posted: Fri Feb 26, 2010 8:55 pm Post subject: |
|
|
dimenticavo di chiederti.. che regola hai aggiunto al fw?
possibile che sia da ricercare lì il problema. _________________ Gentoo user since 2004.
"It's all fun and games, until someone loses an eye" - mom |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Tue Mar 09, 2010 4:05 pm Post subject: |
|
|
Ancora non riesco a capire perché da remoto non riesco a collegarmi al mio server mysql tramite la vpn.
Se in locale faccio
Code: | mysql -u root -h 192.168.139.1 -p |
dove 192.168.139.1 è l'ip del server openvpn, riesco a connettermi. Ma se lo faccio da un client openvpn, sta sempre le ore in attesa e poi risputa fuori quel messaggio di errore di prima.
Mi era venuto lo scrupolo di verificare che l'utente root potesse connettersi da qualsiasi host ovvero che ci fosse il "%" per quanto riguarda "host", ma anche mettendo il "%" non mi fa connettere da remoto.
E' assurdo! _________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
Peach Advocate
Joined: 08 Mar 2003 Posts: 3686 Location: London, UK
|
Posted: Tue Mar 09, 2010 8:19 pm Post subject: |
|
|
fbcyborg wrote: | Ancora non riesco a capire perché da remoto non riesco a collegarmi al mio server mysql tramite la vpn.
Se in locale faccio
Code: | mysql -u root -h 192.168.139.1 -p |
dove 192.168.139.1 è l'ip del server openvpn, riesco a connettermi. Ma se lo faccio da un client openvpn, sta sempre le ore in attesa e poi risputa fuori quel messaggio di errore di prima.
Mi era venuto lo scrupolo di verificare che l'utente root potesse connettersi da qualsiasi host ovvero che ci fosse il "%" per quanto riguarda "host", ma anche mettendo il "%" non mi fa connettere da remoto.
E' assurdo! |
l'idea di base dovrebbe essere quella di mettere in ascolto un dumper di pacchetti tcp e vedere se arriva effettivamente, imho è un problema di routing dei pacchetti dal server al dispositivo tun0.
ti posso consigliare di usare wireshark (tcpdump è un'altra soluzione).
dimmi se ci sono altre cose che ti servono sapere... _________________ Gentoo user since 2004.
"It's all fun and games, until someone loses an eye" - mom |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
Peach Advocate
Joined: 08 Mar 2003 Posts: 3686 Location: London, UK
|
Posted: Tue Mar 09, 2010 9:22 pm Post subject: |
|
|
fbcyborg wrote: | Sto provando con wireshark.
Mi sono messo in ascolto sull'interfaccia della VPN, ed escono delle righe.
Che tipo di informazione ti posso fornire? Quello che leggo non mi sembra molto significativo.
Forse dovrei impostare qualche opzione di cattura particolare?
EDIT: anche con tcpdump vedo che le richieste arrivano, ma nulla di significativo. |
teoricamente dovresti vederti la sequenza del 3 way handshake passare con numero di sequenza incrementale (syn, syn ack, ack)
prova a metterti in ascolto su lo e fai la connessione così vedi quali pacchetti aspettarti poi rifai lo stesso lavoro su tun0 _________________ Gentoo user since 2004.
"It's all fun and games, until someone loses an eye" - mom |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Tue Mar 09, 2010 9:46 pm Post subject: |
|
|
Questo è quello che vedo quando mi collego da localhost:
Code: | No. Time Source Destination Protocol Info
1 0.000000 127.0.0.1 127.0.0.1 TCP 51215 > mysql [SYN] Seq=0 Win=32792 Len=0 MSS=16396 TSV=5231322 TSER=0 WS=7
2 0.000006 127.0.0.1 127.0.0.1 TCP mysql > 51215 [SYN, ACK] Seq=0 Ack=1 Win=32768 Len=0 MSS=16396 TSV=5231322 TSER=5231322 WS=7
3 0.000018 127.0.0.1 127.0.0.1 TCP 51215 > mysql [ACK] Seq=1 Ack=1 Win=32896 Len=0 TSV=5231322 TSER=5231322
4 0.000160 127.0.0.1 127.0.0.1 MySQL Server Greeting proto=10 version=5.0.84-log
5 0.000184 127.0.0.1 127.0.0.1 TCP 51215 > mysql [ACK] Seq=1 Ack=61 Win=32896 Len=0 TSV=5231322 TSER=5231322
6 0.000218 127.0.0.1 127.0.0.1 MySQL Login Request user=root db=mydatabase
7 0.000237 127.0.0.1 127.0.0.1 TCP mysql > 51215 [ACK] Seq=61 Ack=75 Win=32768 Len=0 TSV=5231322 TSER=5231322
129 0.051311 127.0.0.1 127.0.0.1 TCP 51215 > mysql [ACK] Seq=1057 Ack=14096 Win=49536 Len=0 TSV=5231335 TSER=5231325 |
Mentre invece se tento il collegamento da un client della vpn:
Code: | No. Time Source Destination Protocol Info
1 0.000000 192.168.139.5 192.168.139.1 TCP 37140 > mysql [SYN] Seq=0 Win=5840 Len=0 MSS=1084 TSV=4294933971 TSER=0 WS=7
2 2.999070 192.168.139.5 192.168.139.1 TCP 37140 > mysql [SYN] Seq=0 Win=5840 Len=0 MSS=1084 TSV=4294934721 TSER=0 WS=7
3 8.999577 192.168.139.5 192.168.139.1 TCP 37140 > mysql [SYN] Seq=0 Win=5840 Len=0 MSS=1084 TSV=4294936221 TSER=0 WS=7
4 21.002553 192.168.139.5 192.168.139.1 TCP 37140 > mysql [SYN] Seq=0 Win=5840 Len=0 MSS=1084 TSV=4294939221 TSER=0 WS=7
5 45.002794 192.168.139.5 192.168.139.1 TCP 37140 > mysql [SYN] Seq=0 Win=5840 Len=0 MSS=1084 TSV=4294945221 TSER=0 WS=7
6 93.007009 192.168.139.5 192.168.139.1 TCP 37140 > mysql [SYN] Seq=0 Win=5840 Len=0 MSS=1084 TSV=4294957221 TSER=0 WS=7 |
Non riesco a ricavarne informazioni utili, a parte il fatto che è evidente che mentre nel primo caso la connessione avviene mentre nel secondo caso no! _________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
Peach Advocate
Joined: 08 Mar 2003 Posts: 3686 Location: London, UK
|
Posted: Tue Mar 09, 2010 11:25 pm Post subject: |
|
|
quello che puoi ricavare è che nel primo caso hai il 3way handshake
nel secondo caso la comunicazione è monodirezionale, dal client al server ma non viceversa
sarebbe a dire che il server riceve i pacchetti ma non sa a chi mandarli.
ora io non sono un esperto di iptables e l'unico setup che ho fatto ho usato shorewall, che non è altro che una interfaccia di astrazione su iptables (genericamente va bene per configurazioni semplici perché tende ad essere un pelo verboso)
in ognicaso, su shorewall quando si tira su un tunnel (tunX) come nel caso di openvpn, occorre specificare il device per avere l'instradamento corretto dei pacchetti verso il tunnel.
Come con comandi iptables si possa fare è al di fuori della mia conoscenza.
A questo punto potrei suggerirti, prima di impazzirci dietro, di guardare l'ottima documentazione sul sito di openvpn, ci dovrebbero essere un po' di soluzioni/howto a riguardo.
let me know
[edit] hai mai considerato di configurare openvpn per roadwarrior?
http://en.gentoo-wiki.com/wiki/Road_Warriors_with_OpenVPN _________________ Gentoo user since 2004.
"It's all fun and games, until someone loses an eye" - mom |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Wed Mar 10, 2010 10:34 am Post subject: |
|
|
Dunque,
premesso che non capisco il motivo per cui se c'è di mezzo la vpn io debba mettere mano a iptables, non penso che sia un problema di firewall e/o di instradamento.
Non si spiegherebbe perché (altrimenti) non ho alcun problema con il server web, quello ftp, e diversi altri. Funziona anche samba, per la cronaca, e tutto questo senza una linea di iptables.
Neanche io purtroppo sono un esperto di iptables, anche se qualche regola di instradamento la dovrei saper fare, visto che me ne sono servito in altre occasioni.
Road Warriors non l'avevo mai considerato perché non ne ero a conoscenza. A tal proposito comunque preferirei non cambiare le cose, perché ho questo server aziendale sul quale ho installato la VPN e non vorrei rischiare di perderci una giornata per cambiare le cose.
Se non ho capito male questo Road Warriors fa in modo che i client della VPN abbiano la stessa classe di IP della subnet reale. È così? _________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
Peach Advocate
Joined: 08 Mar 2003 Posts: 3686 Location: London, UK
|
Posted: Wed Mar 10, 2010 2:04 pm Post subject: |
|
|
fbcyborg wrote: | Se non ho capito male questo Road Warriors fa in modo che i client della VPN abbiano la stessa classe di IP della subnet reale. È così? |
si, infatti il rischio e' di avere una classe LAN "generica" di quelle molto usate, e avere un conflitto di gateway che ti blocca tutto. e' uno dei pochi motivi per cui uso anche io la soluzione che stai usando tu.
Ok, la cosa che non sapevo e' che cmq tutti gli altri servizi funzionavano correttamente.
Quindi occhio e croce il problema sembra effettiavamente essere mysql... e se effettivamente il bind-address e' commentato e netstat lo mostra in attesa su tutti gli indirizzi... l'unica a sto punto sarebbe ricompilarlo con flag debug e loggare il tutto (la conf per i parametri sono in my.cnf)
che dici? _________________ Gentoo user since 2004.
"It's all fun and games, until someone loses an eye" - mom |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Wed Mar 10, 2010 2:22 pm Post subject: |
|
|
Nonostante io abbia abilitato il debug in my.cnf (e ovviamente ricompilato con la flag use debug attiva), in nessuno dei seguenti tre log succede nulla, al tentativo di connessione:
mysqld.err mysql.err mysql.log.
La riga di my.cnf che ho decommentato è:
Code: | debug = d:t:i:o,/tmp/mysqld.trace |
Neanche in /tmp/mysqld.trace riesco a vedere nulla.
Sto provando con "tail -0f /tmp/mysqld.trace" al momento del tentativo di connessione ma non esce nulla.
Allora è un problema di VPN? _________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
Peach Advocate
Joined: 08 Mar 2003 Posts: 3686 Location: London, UK
|
Posted: Wed Mar 10, 2010 5:45 pm Post subject: |
|
|
fbcyborg wrote: | Mi correggo: se provo a fare il port redirect della 3306 verso l'IP interno alla LAN dove c'è il server mysql, riesco ad accedere.
Quindi sembrerebbe essere proprio un problema di openvpn! |
e se metti esplicitamente in ascolto mysql sull'ip del tunnel? _________________ Gentoo user since 2004.
"It's all fun and games, until someone loses an eye" - mom |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
|
Back to top |
|
|
Peach Advocate
Joined: 08 Mar 2003 Posts: 3686 Location: London, UK
|
Posted: Wed Mar 10, 2010 6:17 pm Post subject: |
|
|
fbcyborg wrote: | C'avevo provato, non funziona! |
eh allora openvpn..
il punto e' questo, samba lavora su un altro livello
mi domando, puoi fare il dump dei pacchetti tpc di una connessione al webserver e vedere se c'e' il 3way? _________________ Gentoo user since 2004.
"It's all fun and games, until someone loses an eye" - mom |
|
Back to top |
|
|
fbcyborg Advocate
Joined: 16 Oct 2005 Posts: 3056 Location: ROMA
|
Posted: Wed Mar 10, 2010 6:24 pm Post subject: |
|
|
Scusa, prima di fare questa cosa, possiamo confrontare la mia configurazione del server vpn con la tua?
Ecco il file server.conf:
Code: | port 59000
proto tcp
dev tun
mode server
ca /usr/share/openvpn/easy-rsa/keys/ca.crt
cert /usr/share/openvpn/easy-rsa/keys/server.crt
key /usr/share/openvpn/easy-rsa/keys/server.key
dh /usr/share/openvpn/easy-rsa/keys/dh1024.pem
server 192.168.139.0 255.255.255.0 # for example 192.168.141.0
client-to-client
ifconfig-pool-persist ipp.txt
client-config-dir ccd
keepalive 10 120
tls-auth ta.key 0
tun-mtu 1500
tun-mtu-extra 32
mssfix 1200
duplicate-cn
comp-lzo
crl-verify /etc/openvpn/crl.pem
max-clients 100
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
log-append /var/log/openvpn.log
verb 3
|
_________________ [HOWTO] Come criptare la /home usando cryptsetup e luks
[HOWTO] Abilitare il supporto al dom0 XEN su kernel 3.X
Help answer the unanswered |
|
Back to top |
|
|
|