Friday, November 14, 2014

Λυση για DNS σε OpenVPN

το προβλημα
Το προβλημα ειναι οτι καποιος σου παρεχει ενα λογαριασμο vpn και παρολο που συνδεεσαι κανονικα, τουλαχιστο σε Linux μηχανηματα δεν μπορεις να κανεις ping διευθυνσεις.

λιγη επεξηγηση
Αυτο συμβαινει γιατι ο client δεν κανει update το resolv.conf αρχειο. Το resolv.conf περιεχει τις διευθυνσεις που ο υπολογιστης θα ψαξει για μια συγκεκριμενη διευθυνση. Ειναι υπευθυνο λοιπον για να μετατρεπει ip σε διευθυνσεις. Κατι που μπορεις να κάνεις manual περνοντας την ip απο το conf αρχειο που εχεις για τον client στο vpn ή να ακολουθήσεις μερικα απλα βηματα, που περιγραφονται παρακατω.


Η λογικη ειναι να τρεξεις βαλεις ενα script μεσα στον client για να κανει αυτη τη δουλεια οταν ανοιγει το tunnel και ενα script για να επαναφερει το resolv.con οταν κλεινει το tunnel.

η λυση
Στην αναζητηση βρηκα πολλα script. Καποια ομως ειχαν καποιες εξαρτησεις και επρεπε να εγκαταστησεις καποιο προγραμμα, οπως το openresolv. Το οποιο ομως δεν υπαρχει σε ολα τα repository καθε διανομης. Η λυση λοιπον βρισκεται σε ενα repository στο github. Πηγαινουμε στο https://github.com/gronke/OpenVPN-linux-push/ και το κατεβαζουμε. Κανουμε copy τα δυο αρχεια up.sh και down.sh στο /etc/openvpn φακελο και ανοιγουμε τον client.conf ή client.ovpn σε καποιο editor για να προσθεσουμε τρεις γραμμες στο τελος.

script-security 2
up /etc/openvpn/up.sh
down /etc/openvpn/down.sh
Τα δυο script πρεπει να τρεχουν με την παραμετρο  script-security 2 που αν την αγνοησετε μεσα στο αρχειο, θα πρεπει να την δωσετε manual οταν θα τρεξετε το openvpn. Χρειαζετε για το openvpn θα τρεξει δυο εξωτερικα scripts.

Αυτό ήταν.