FreeBSD 11.0, τείχος προστασίας και openvpn, ένας απλός τρόπος
#1
Το άρθρο αυτό προορίζεται σε άτομα που έχουν μια σχετική τριβή με λίνουξ ή bsd. Αν ο χρήστης είναι αρχάριος (μέχρι χθες χρησιμοποιούσε windows ) θα δυσκολευτεί πάρα πολύ. Ο σκοπός μας είναι σε ένα απλό σύστημα χωρίς απομακρυσμένη διαχείρηση που θα μπορούσε να είναι σε ένα αυτόνομο μηχάνημα ή σε μια εικονική μηχανή με γεφύρωση δικτύου, να εγκαταστήσουμε ένα βασικό τείχος προστασίας καθώς και η προσαρμογή του openvpn επειδή αυτό είναι πολύ σύνηθες σε παρόχους VPN υπηρεσιών.

Η Επιλογή firewall και τρόπου σύνδεσης επιλέχθηκαν έτσι γιατί θεώρησα οτι είναι ο ευκολότερος και ταχύτερος συνδιασμός των δύο που να λειτουργεί. Έμπειροι χρήστες φυσικά ξέρουν και μπορούν να προσαρμόσουν το pf ή να κάνουν flush και να εισάγουν χειροκίνητα τους όρους τους στο ipfw.

Αρχικά πρέπει να βρούμε όλους τους τεχνικούς όρους του παρόχου VPN. Θα χρειαστούμε τους DNS server του παρόχου, ειδικότερα του διακομιστή που πρόκειται να εγκαταστήσουμε. Καλό είναι να επιλέξουμε διακομιστή αφού πρώτα τον δοκιμάσουμε για πιστότητα και ταχύτητα σε λίνουξ όπου μας είναι πιο εύκολο. Έπειτα θα χρειαστούμε τα ca.crt user.crt user.key ta.key.

Συνήθως ο τρόπος σύνδεσης είναι μέσω UDP, θεωρητικά καλύτερο αλλά είναι δυνατό για συγκεκριμένους λόγους να χρειαζόμαστε TCP ρύθμιση. Θα πρέπει να ξέρουμε την θύρα που γίνεται αυτή η σύνδεση.
Αν υπάρχει δυνατότητα να κατεβάσουμε το αρχείο διακομιστηςχψζ.ovpn οι περισσότερες πληροφορίες υπάρχουν εκεί όταν το ανοίξουμε μ' ένα επεξεργαστή κειμένου π.χ leafpad.Μπορεί να δούμε κάτι τέτοιο δηλαδή:

Παράθεση:arxeio xxxxx.ovpn
client
dev tun
proto udp
remote xxx.xxx.xxx.xxx yyy
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
comp-lzo no
route-delay 5
verb 3
explicit-exit-notify 5
ca "ca.crt"
cert "user.crt"
key "user.key"
tls-auth "ta.key" 1

xxx.xxx.xxx.xxx ο εν λόγω διακομιστής, yyy η εν λόγω θύρα.

Δυστυχώς(αυτό φυσικά είναι πολύ αμφισβητίσιμο) το FreeBSD δεν έχει network manager ώστε να αλλάζουμε με 2-3 κλικ τον διακομιστή που θέλουμε. Εδώ επέλεξα να γίνεται σύνδεση κατά την εκκίνηση του συστήματος σε συγκεκριμένο διακομιστή γιατί θεώρησα οτι είναι το ευκολότερο για νέους χρήστες. Οι έμπειροι χρήστες μπορούν να χρησιμοποιούν διαφορετικούς διακομιστές.
sudo pkg install openvpn
Προσθέτουμε το πακέτο openvpn και βεβαιωνόμαστε οτι υπάρχουν στο συστήμά μας τα easy-rsa και lzo2
Κώδικας:
sudo leafpad /etc/rc.conf
Προσθέτουμε και ενεργοποιούμε το τείχος προστασίας

Παράθεση:firewall_enable="YES"
firewall_quiet="YES"
firewall_type="workstation"
firewall_allowservices="any"
firewall_logdeny="YES"

Περιορίζουμε το μέγεθος καταγραφών για επίμονους επίδοξους πρωκτολόγους προσθέτωντας
Παράθεση:net.inet.ip.fw.verbose_limit=5
στο /etc/sysctl.conf .

Για να ρυθμίσουμε το openvpn στο σύστημα προσθέτουμε δυο φακέλους στο /usr/local/etc
Κώδικας:
sudo mkdir /usr/local/etc/openvpn
και
Κώδικας:
sudo mkdir /usr/local/etc/openvpn/keys
όπου μεταφέρουμε τα κλειδιά μας από το φάκελο που τα έχουμε, ας πούμε "Λήψεις".

Στο /usr/local/etc/openvpn προσθέτουμε το αρχείο client.conf από το /usr/local/share/examples/openvpn/sample-config-files/ και το μετονομάζουμε σε openvpn.conf

Στο /usr/local/etc/openvpn/keys προσθέτουμε όλα τα κλειδιά-διαπιστευτήρια στα οποία αναφερθήκαμε αρχικά.
Είναι δυνατό να προστεθεί εκεί και το αρχείο χχχχ.ovpn.

Κάνουμε επεξεργασία του openvpn.conf(πρώην client.conf) -> sudo leafpad /usr/local/etc/openvpn/openvpn.conf χρησιμοποιώντας όλες τις πληροφορίες που συλλέξαμε αλλά και βλέπουμε όταν ανοίγουμε με κειμενογράφο το χχχχχ.ovpn δλδ client, tun, remote ..διακομιστής....θύρα κλπ όπου μεγάλη προσοχή στη σωστή τοποθεσία των ca.crt, user.crt, user.key π.χ

Παράθεση:ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/user.crt
key /usr/local/etc/openvpn/keys/user.key

Φυσικά καλύτερα είναι να διαλέγουμε διακομιστές και παρόχους με remote-cert-tls server, οπότε στην επεξεργασία επιλέγουμε και ελέγχουμε να υπάρχει το

Παράθεση:# then every client must also have the key.
tls-auth /usr/local/etc/openvpn/keys/ta.key 1

Αφαιρούμε σε όσες γραμμές χρειάζεται το ; όπως σε άλλα αρχεία αφαιρούμε το # για να ενεργοποιήσουμε την επιλογή.
Προσοχή επίσης στη σύνταξη του διακομιστή
Παράθεση:remote <openvpn-server ip> 1194 --> remote xxx.xxx.xxx.xxx yyyy
Έπειτα φροντίζουμε να προσθέσουμε στην εκκίνηση του συστήματος την ενεργοποίηση του openvpn με
Κώδικας:
sudo leafpad /etc/rc.conf
και
Παράθεση:openvpn_enable="YES"
openvpn_if="tun"

είτε με τις εντολές(εγώ προτιμώ το πρώτο ώστε πάντα να τσεκάρω το σύνολο των εντολών εκκίνησης )

Κώδικας:
sudo sysrc openvpn_enable="YES"

sudo sysrc openvpn_if="tun"

Μπορούμε να ενεργοποιήσουμε αρχεία καταγραφών, σημαντικά πολλές φορές για αποσφαλμάτωση και άλλα προβλήματα.
Κώδικας:
sudo leafpad /etc/syslog.conf
και προσθέτουμε πριν το πριν το !*:

Παράθεση:!openvpn
*.* /var/log/openvpn.log

Ενώ για log rotation
Κώδικας:
sudo leafpad /etc/newsyslog.conf
και προσθέτουμε με προσοχή στο κατάλληλο μέρος, και όχι στο τέλος, αν θέλουμε το σωστό τρόπο στα άλλα logs τη γραμμή :
Κώδικας:
/var/log/openvpn.log                    600  30    *    @T00  ZC
Τελευταία και όχι χωρίς σημασία η εισαγωγή των DNS server, sudo leafpad /etc/resolv.conf
και προσθέτουμε τους διακομιστές ονομάτων του παρόχου, που αντιστοιχούν βέβαια στο διακομιστή με τον οποίο μπαίνουμε στο διαδίκτυο.
Με αυτό τον τρόπο εύκολα όταν δε θέλουμε να χρησιμοποιήσουμε VPN μια μια απλή αλλαγή ξαναχρησιμοποιούμε την απλή συνδεσή μας στο διαδίκτυο παρακάμπτωντας το VPN.
Εγώ χρησιμοποιώ τα 208.67.222.222 και 208.67.220.220 για απλή περιήγηση

Κάνουμε επανεκκίνηση του συστήματος και πλέον έχουμε VPN ενεργοποιημένο συν τείχος προστασίας. Καλό είναι βέβαια να ελέγξετε με υπηρεσίες όπως το https://ipleak.com/full-report/
Προτείνω αυτό ώστε ταυτόχρονα να δούμε ότι υπάρχουν πολλά ακόμα που πρέπει να ρυθμιστούν στο φυλλομετρητή ώστε να είμαστε πιο καλυμμένοι.

Η ομάδα και η κοινότητα του FreeBSD έχουν δεσμευτεί για υποστήριξη της σειράς 11 μέχρι και πέντε χρόνια. Μήπως είναι καιρός να του δώσουμε περισσότερη σημασία; Άλλωστε πάντα ήταν αξιοθαύμαστο για τη σταθερότητά του και την ασφάλειά του.

Παρακαλώ όσους έχουν βρει λάθη ή έχουν να προτείνουν κάτι να σχολιάσουν.
Αν εκδηλωθεί επίσης ενδιαφέρον στο forum, όταν βρω χρόνο θα κάνω ένα άρθρο για το πως να γίνει εγκατάσταση του FreeBSD 11 με xfce4, καθώς και απλούς τρόπους για τείχος προστασίας ή εντολές χρήσης.
  Απάντηση
#2
Παρακαλώ μια βοήθεια από τους διαχειριστές.
Η γραμμή /var/log/openvpn.log 600 30 * @T00 ZC είναι κανονικά
/var/log/openvpn.log 600 30 * @T00 ZC
Πώς να το κάνω να φαίνεται ακριβώς μετά τη μορφοποίηση στο άρθρο να μην χαθούν τα κενά ? Ώστε οι άπειροι χρήστες να βοηθηθούν οπτικά και να βάλουν τη γραμμή κάτω από τις αντίστοιχες.
  Απάντηση
#3
Μια βοήθεια αν μπορείτε! Η γραμμή /var/log/openvpn.log 600 30 * @T00 ZC έχει πολλά κενά που χάνονται όταν γίνεται η δημοσίευση. Πως μπορώ να το κάνω να παραμείνει όπως το δίνω;
  Απάντηση
#4
Pragma_linux, post: 25719, member: 1793 είπε κι ελάλησε:Μια βοήθεια αν μπορείτε! Η γραμμή /var/log/openvpn.log 600 30 * @T00 ZC έχει πολλά κενά που χάνονται όταν γίνεται η δημοσίευση. Πως μπορώ να το κάνω να παραμείνει όπως το δίνω;
OK.Έγινε! Ευχαριστώ για τη βοήθεια
  Απάντηση
#5
Pragma_linux, post: 25719, member: 1793 είπε κι ελάλησε:Μια βοήθεια αν μπορείτε! Η γραμμή /var/log/openvpn.log 600 30 * @T00 ZC έχει πολλά κενά που χάνονται όταν γίνεται η δημοσίευση. Πως μπορώ να το κάνω να παραμείνει όπως το δίνω;
Τη βάζω και εδώ την απάντηση ώστε να είναι πλήρες το ποστ, σε περίπτωση που και κάποιος άλλος έχει την ίδια απορία:

Βάζεις την γραμμή που θέλεις να παραμείνει ως έχει
- με μορφοποίηση code («Κώδικας»), ξέρεις το προτελευταίο κουμπάκι στην 2η σειρά εργαλείων του έντιτορ (αριστερά και πριν από το «Παράθεση» / «Quote».
πχ: Η πρόταση ήταν αυτή που (άμα τη δημοσιεύσει της) η μορφοποίηση «Παράθεση» / «Quote» σου έτρωγε τα κενά και φαινόταν έτσι:
Παράθεση:/var/log/openvpn.log 600 30 * @T00 ZC

Ας το δοκιμάσουμε μαζί (θα βάλω κι εγώ τυχαία κενά, για να δούμε αν θα παραμείνουν τα κενά που υπήρχαν ενδιάμεσα και που χάθηκαν με την δημοσίευση).
Με μορφοποίηση «Κώδικας»: (βάζω τυχαία κενά ανάμεσα (εγώ βάζω 2 φορές -πολλά μαζεμένα- κενά, η 1η είναι μετά το «log», και η 2η μετά το «T00») - οπότε μετά εσύ το διορθώνεις, με τα σωστά κενά, στο post σου):

Κώδικας:
/var/log/openvpn.log        600 30 * @T00      ZC)

Και τα κενά διατηρούνται.
 Σοβαρότητα (λέμε τώρα…), διαφάνεια (ΤΩΡΑ!) και Ελεύθερη πρόσβαση σε όλα.
  Απάντηση
#6
Βρήκα και εγώ το χρόνο λοιπόν να βάλω το 11.1 release και αφότου έκανα τις παραπάνω ρυθμίσεις δεν είχα το επιθυμητό αποτέλεσμα. Μπήκα λοιπόν στα φόρουμ και άρχισα να διαβάζω για patch, fix και τρεχαγύρευε. Επειδή δεν είμαι και πολύ διαβασμένος στα περί πληροφορικής και επειδή δεν έχω και το χρόνο, προς στιγμήν είπα να πάθω πανικό, να το κλείσω και να πάω να δω το Supergirl που με αρέσει πολύ. Αλλά λέω "κάτσε ρε μεγάλε, χαλαρά, δες τι γράφει το openvpn.log". Έγραφε ότι κάτι τα permissions των κλειδιών, ότι κάτι δεν έκανε resolve τον remote server. Καλά λέω:
Κώδικας:
ping -a τατσιμικτσικότσι.κομ
και παίρνω την ΙΡ του remote server, δλδ τον remote server σε νούμερα 123.645.987.2 σα να λέμε.
Μετά αλλάζω τα permissions στο φάκελο με τα κλειδιά στον σουπερχρήστη, την αυτού Μεγαλειότητά μου και κάνω επανεκκίνηση. Όλα δουλέψαν καλά και η beastie δε μ'έβγαλε την πίστη...Πάλι τυχερός ο παππούς με το FreeBSD. Δε ξέρω τι έγινε ακριβώς και δε κατάλαβα τι δε πάει καλά στα οικιακά-ιδιωτικά VPN αλλά στο δικό μου δούλεψε με αυτό το τρόπο. Χωρίς πάτσες και φιξάκια και άλλα κόλπα. Ελπίζω να βοηθήσω κάποιον περισσότερο άπειρο από εμένα αν συναντήσει το ίδιο πρόβλημα.
Κώδικας:
[01:00:26][mortis@bsdaki:~]$ uname -a
FreeBSD bsdaki 11.1-RELEASE-p4 FreeBSD 11.1-RELEASE-p4 #0: Tue Nov 14 06:12:40 UTC 2017    root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64
[01:00:45][mortis@bsdaki:~]$ openvpn --version
OpenVPN 2.4.4 amd64-portbld-freebsd11.0 [SSL (OpenSSL)] [LZO] [LZ4] [MH/RECVDA] [AEAD] built on Nov 16 2017
library versions: OpenSSL 1.0.2k-freebsd  26 Jan 2017, LZO 2.10
Originally developed by James Yonan
Copyright (C) 2002-2017 OpenVPN Technologies, Inc. <sales@openvpn.net>
  Απάντηση


Πάμε στο Forum:


Πλάσματα σουλατσάρουν στο νήμα: 1 Επισκέπτης(ες)