Είναι το 2017, και η χρήση ενός VPN έχει γίνει μια μη-brainer. Ανάμεσα στα φορτία των εξωτερικών ανησυχιών για την προστασία της ιδιωτικής ζωής και του δικού σας ISP που μπορεί να πουλήσει το ιστορικό περιήγησής σας, πραγματικά δεν υπάρχει λόγος να μην χρησιμοποιείτε ένα.
Σίγουρα, μπορείτε να πληρώσετε μία από τις εκατοντάδες των υπηρεσιών VPN εκεί έξω, αλλά για άλλη μια φορά βασίζεστε σε κάποιον άλλο με τα δεδομένα σας. Οι περισσότεροι είναι μεγάλοι, στην πραγματικότητα, αλλά αν θέλετε τον πλήρη έλεγχο, μπορείτε να δημιουργήσετε το δικό σας VPN σε ένα Vvual P rivate S erver (VPS) ή να νοικιάσετε το δικό σας ιδιωτικό διακομιστή, αν αισθάνεστε σαν να είσαστε πραγματικά σκληροπυρηνικοί μαζί του.
Το μόνο που χρειάζεστε για να δημιουργήσετε ένα VPN είναι το λογισμικό ανοιχτού κώδικα OpenVPN και το Linux (ή το BSD). Η διαμόρφωση μπορεί να εμπλέκεται, αλλά δεν είναι αδύνατο με κάποιον που έχει ακόμη και βασικές δεξιότητες Linux να απομακρύνει μια διανομή όπως το Ubuntu.
Για αυτόν τον οδηγό, θα χρειαστείτε ένα VPS που τρέχει το Ubuntu. Μπορείτε να επιλέξετε ένα πολύ εύκολα από κάποιον όπως το DigitalOcean ή το Linode . Ακολουθήστε τους βασικούς οδηγούς ασφαλείας για να προετοιμαστείτε. Βεβαιωθείτε ότι δεν κάνετε βασικά λάθη, όπως να επιτρέπετε πρόσβαση root μέσω SSH.
Επίσης, να έχετε υπόψη σας ότι πρόκειται να κάνετε ολόκληρη αυτή τη ρύθμιση στη γραμμή εντολών μέσω του SSH στο VPS σας. Δεν υπάρχει τίποτα που απαιτεί ένα τρελό ποσό για τη γνώση του Linux, αλλά να είστε έτοιμοι να πληκτρολογείτε αντί για κλικ.
Λάβετε αυτό που χρειάζεστε
Γρήγοροι σύνδεσμοι
- Λάβετε αυτό που χρειάζεστε
- Ρύθμιση του τείχους προστασίας
- Βρείτε τη διασύνδεση
- Βασικά στοιχεία του Iptables
- Ρυθμίστε τους κανόνες σας
- Loopback
- Ping
- SSH
- OpenVPN
- DNS
- HTTP / S
- NTP
- ΒΑΡΕΛΙ 252 ΓΑΛΟΝΙΩΝ
- Ξύλευση
- Απορρίψτε τα υπόλοιπα
- NAT Masquerading
- Προώθηση της κυκλοφορίας IPv4
- Διακοπή όλων των συνδέσεων IPv6
- Εισαγωγή και αποθήκευση σε Iptables
Πακέτα Ubuntu και διανέμει το OpenVPN στα αποθετήρια του. Απλώς πρέπει να χρησιμοποιήσετε το apt για να το εγκαταστήσετε. Θα χρειαστείτε επίσης το εργαλείο για τη δημιουργία κλειδιών κρυπτογράφησης. Τοποθετήστε και τα δύο.
$ sudo apt εγκαταστήστε το openvpn easy-rsa
Ρύθμιση του τείχους προστασίας
Στη συνέχεια, πρέπει να φροντίσετε το τείχος προστασίας. Είναι ένα σημαντικό κομμάτι για να διατηρείτε το VPN σας ασφαλή και αποτρέψτε τόσο τη διαρροή δεδομένων όσο και την ανεπιθύμητη πρόσβαση.
Το Iptables είναι το κύριο τείχος προστασίας για το Linux και είναι η καλύτερη επιλογή για τον έλεγχο της πρόσβασης στις θύρες του Ubuntu. Θα το έχετε ήδη εγκαταστήσει, ώστε να μπορείτε να ξεκινήσετε τη ρύθμιση των κανόνων του τείχους προστασίας.
Βρείτε τη διασύνδεση
Πριν αρχίσετε να γράφετε κανόνες σε iptables, μάθετε ποια διασύνδεση έχει ο διακομιστής σας με το Διαδίκτυο. Εκτελέστε ifconfig για να εμφανίσετε τις διεπαφές δικτύου σας. Αυτός που έχει inet addr: η αντιστοιχία της διεύθυνσης IP με την οποία είστε συνδεδεμένος είναι η σωστή διεπαφή.
Βασικά στοιχεία του Iptables
Συνήθως δεν είναι καλή ιδέα να αντιγράφετε και να επικολλήσετε τυχαία τα πράγματα στο τερματικό από το Internet. Αυτό ισχύει ιδιαίτερα όταν πρόκειται για θέματα ασφαλείας. Έτσι, πάρτε κάποιο χρόνο εδώ για να μάθετε λίγο για τους κανόνες του iptables πριν ξεκινήσετε να τις εισάγετε.
Ρίξτε μια ματιά σε αυτό το παράδειγμα ενός κανόνα iptables.
-A INPUT -i eth0 -p tcp -m κατάσταση-κράτος ESTABLISHED -αποστολή 443 -j ACCEPT
Εντάξει, έτσι -Α σημαίνει ότι πρόκειται να προσθέσετε έναν νέο κανόνα. Στη συνέχεια, η ΕΙΣΟΔΟΣ σημαίνει ότι θα αφορά την είσοδο στον διακομιστή σας. Υπάρχει επίσης ένα OUTPUT. Η σημαία -i λέει στο iptables ποια διεπαφή είναι αυτός ο κανόνας. Μπορείτε να καθορίσετε ποιο πρωτόκολλο είναι ο κανόνας για το -p. Αυτός ο κανόνας χειρίζεται το tcp. -m καθορίζει μια προϋπόθεση ότι μια σύνδεση πρέπει να ανταποκρίνεται. Σε αυτή την περίπτωση πρέπει να ταιριάζει με την κατάσταση που έχει καθοριστεί. Φυσικά, τότε η κατάσταση ορίζει μια κατάσταση, στην περίπτωση αυτή μία ΣΥΓΚΕΝΤΡΩΣΗ σύνδεσης. Το επόμενο μέρος λέει στο iptables ποια είναι η θύρα αυτού του κανόνα. Είναι θύρα 443, η θύρα HTTPS, εδώ. Η τελευταία σημαία είναι -j. Πρόκειται για το "άλμα", και λέει στο iptables τι πρέπει να κάνει με τη σύνδεση. Εάν αυτή η σύνδεση πληρούσε όλες τις απαιτήσεις του κανόνα, το iptables θα το αποδεχόταν.
Ρυθμίστε τους κανόνες σας
Έτσι, θα πρέπει να έχετε μια γενική ιδέα πώς λειτουργούν οι κανόνες iptables τώρα. Το υπόλοιπο τμήμα αυτού του τμήματος θα σας πει πώς να ρυθμίσετε τους κανόνες σας κομμάτι ανά τεμάχιο.
Ο καλύτερος τρόπος για να δημιουργήσετε ένα σύνολο κανόνων iptables είναι να δημιουργήσετε ένα αρχείο που να περιέχει όλα αυτά. Στη συνέχεια, μπορείτε να τα εισαγάγετε όλα σε iptables ταυτόχρονα. Ο καθορισμός κανόνων ένας-ένας μπορεί να προκαλέσει σύγχυση, ειδικά αν ξεκινάτε από την αρχή ένα νέο σύνολο κανόνων.
Δημιουργήστε ένα αρχείο στον κατάλογο / tmp για να δημιουργήσετε τους κανόνες σας.
$ vim / tmp / ipv4
Εκκινήστε το αρχείο με φίλτρο *. Αυτό λέει στο iptables ότι τα ακόλουθα θα είναι κανόνες για το φιλτράρισμα πακέτων.
Loopback
Το πρώτο τμήμα των κανόνων κλειδώνει τη διασύνδεση loopback. Δηλώνουν στο iptables ότι ο διακομιστής πρέπει να δέχεται κυκλοφορία από τον εαυτό του στη διεπαφή loopback. Θα πρέπει επίσης να απορρίψει την κυκλοφορία που προέρχεται από τον εαυτό της που δεν προέρχεται από loopback.
-A INPUT -i lo -j ΑΠΟΔΕΙΞΤΕ-ΕΙΣΟΔΟΣ! -i lo -s 127.0.0.0/8 -j ΑΠΑΝΤΗΣΗ -A OUTPUT -o lo -j ΑΠΟΛΑΥΣΤΕ
Ping
Στη συνέχεια, αφήστε το ping. Θα πρέπει να είστε σε θέση να ping διακομιστή σας για να βεβαιωθείτε ότι είναι σε απευθείας σύνδεση σε περίπτωση που είναι ανύπαρκτη διαφορετικά. Σε αυτή την περίπτωση, επιτρέπονται μόνο αιτήσεις echo και ο διακομιστής θα επιτρέψει να αποστείλει την έξοδο ICMP.
-A INPUT -p icmp -m κατάσταση -σταμία ΝΕΟ -κύκλου τύπου 8 -j ACCEPT -A INPUT -p icmp -m κατάσταση -state ESTABLISHED, ΣΧΕΤΙΖΕΤΑΙ -j ACCEPT -A OUTPUT -p icmp -j ACCEPT
SSH
Χρειάζεστε SSH. Αυτός είναι ο μόνος τρόπος για να φτάσετε στον διακομιστή σας. Οι κανόνες SSH είναι συγκεκριμένοι για τη διεπαφή σας στο διαδίκτυο, οπότε βεβαιωθείτε ότι αντικαταστήσετε το eth0 για όποια διεπαφή χρησιμοποιεί ο διακομιστής σας.
Μπορεί επίσης να είναι καλή ιδέα να αλλάξετε τις συνδέσεις SSH από τη θύρα 22, αφού αυτή είναι η προεπιλογή που θα προσπαθήσουν οι δυνητικοί εισβολείς. Αν το κάνετε, βεβαιωθείτε ότι έχετε αλλάξει και στους κανόνες του iptables.
-A INPUT -i eth0 -p tcp -m κατάσταση - κατάσταση ΝΕΑ, ESTABLISHED --δέντα 22 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m κατάσταση -state ESTABLISHED -αποστολή 22 -j ACCEPT
OpenVPN
Αυτό το επόμενο κομμάτι επιτρέπει την κίνηση προς και από τον εξυπηρετητή OpenVPN μέσω του UDP.
-A INPUT -i eth0 -p udp -m κατάσταση -state ΝΕΑ, ESTABLISHED -διαφορά 1194 -j ACCEPT -A OUTPUT -o eth0 -p udp -m κατάσταση -state ESTABLISHED -ποστήριξη 1194 -j ACCEPT
DNS
Τώρα, επιτρέψτε συνδέσεις DNS μέσω UDP και TCP. Θέλετε το VPN σας να χειρίζεται το DNS, όχι τον ISP σας. Αυτό είναι μέρος του λόγου για τον οποίο δημιουργείτε ένα VPN στην πρώτη θέση.
-A INPUT -i eth0 -p udp -m κατάσταση -state ESTABLISHED -αποδοχή 53 -j ACCEPT -A OUTPUT -o eth0 -p udp -m κατάσταση -state ΝΕΑ, ESTABLISHED -δέντα 53 -j ACCEPT -A INPUT -i eth0 -p tcp -m κατάσταση - κράτος ESTABLISHED --sport 53 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m κατάσταση -state ΝΕΑ, ESTABLISHED -dport 53 -j ACCEPT
HTTP / S
Για να μπορέσει το Ubuntu να ενημερωθεί, πρέπει να προσθέσετε ένα σύνολο κανόνων που θα επιτρέπουν την εξερχόμενη σύνδεση των HTTP και HTTPS. Σημειώστε ότι αυτοί οι κανόνες επιτρέπουν στον διακομιστή να εκκινήσει συνδέσεις HTTP, επομένως δεν μπορείτε να το χρησιμοποιήσετε ως διακομιστή ιστού ή να συνδεθείτε σε αυτόν μέσω της θύρας 80 ή της θύρας 443
-A εισόδου -i eth0 -p tcp -m κατάσταση -state ESTABLISHED -για 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m κατάσταση -state ESTABLISHED -αποστολή 443 -j ACCEPT -A OUTPUT - o eth0 -p tcp -m κατάσταση - κράτος ΝΕΑ, ESTABLISHED --δέντα 80 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m κατάσταση -state ΝΕΑ, ESTABLISHED -δέντα 443 -j ACCEPT
NTP
Για να διατηρήσετε σωστά το ρολόι του διακομιστή σας, θα χρειαστείτε NTP. Το NTP επιτρέπει στον διακομιστή σας να συγχρονίζεται με τους Timeservers σε όλο τον κόσμο. Έχοντας ένα εσφαλμένο ρολόι στο διακομιστή σας μπορεί να προκαλέσει προβλήματα σύνδεσης, έτσι η εκτέλεση του NTP είναι μια καλή ιδέα. Για άλλη μια φορά, πρέπει να αποδεχτείτε τις εξερχόμενες και ήδη καθιερωμένες συνδέσεις.
-A INPUT -i eth0 -p udp -m κατάσταση -state ESTABLISHED -ποστήριξη 123 -j ACCEPT -A OUTPUT -o eth0 -p udp -m κατάσταση -state ΝΕΑ, ESTABLISHED -η εισαγωγή 123 -j ACCEPT
ΒΑΡΕΛΙ 252 ΓΑΛΟΝΙΩΝ
Ξεμπλοκάρετε τη διεπαφή TUN την οποία χρησιμοποιεί το OpenVPN για την κυκλοφορία σήραγγας.
-A εισόδου -i tun0 -j ΑΠΟΔΟΧΗ -A ΠΡΟΩΘΗΣΗ -i tun0 -j ACCEPT -A OUTPUT -o tun0 -j ACCEPT
Πρέπει να επιτρέψετε στο TUN να προωθεί την επισκεψιμότητα στην κανονική διεπαφή σας για το VPN. Θα βρείτε αυτή τη διεύθυνση IP στη διαμόρφωση OpenVPN. Αν το αλλάξετε στη διαμόρφωση, αλλάξτε και στους κανόνες σας.
-A προωθώντας -i tun0 -o eth0 -s 10.8.0.0/24 -j ΑΠΟΔΟΧΗ -A ΠΡΟΩΘΗΣΗ -m κατάσταση -state ESTABLISHED, ΣΧΕΤΙΚΗ -j ΑΠΟΔΟΧΗ
Ξύλευση
Είναι καλή ιδέα να διατηρείτε τα αρχεία καταγραφής όλων όσων απορρίπτονται από το iptables. Στην περίπτωση αυτή, σημαίνει κάτι που δεν ταιριάζει σε κανέναν από αυτούς τους κανόνες. Τα αρχεία καταγραφής σάς επιτρέπουν να δείτε αν υπάρχει κακόβουλη δραστηριότητα ή οποιαδήποτε προσπάθεια να κάνετε κάτι κακό στον διακομιστή σας.
-A INPUT -m όριο -limit 3 / min -j LOG -log-πρόθεμα "iptables_INPUT_denied:" -log-επίπεδο 4
-A προωθητικό όριο -m όριο -limit 3 / min -j LOG -log-πρόθεμα "iptables_FORWARD_denied:" -log-επίπεδο 4
-A OUTPUT -m όριο -limit 3 / min -j LOG -log-πρόθεμα "iptables_OUTPUT_denied:" -log-επίπεδο 4
Απορρίψτε τα υπόλοιπα
Τέλος, πρέπει να μπλοκάρετε οτιδήποτε δεν ταιριάζει στους κανόνες σας. Αυτός είναι πραγματικά ο σκοπός της ύπαρξης ενός τείχους προστασίας στην πρώτη θέση.
-A ΕΙΣΟΔΟΣ -j REJECT -A ΕΙΣΑΓΩΓΗ -j REJECT -A OUTPUT -j REJECT
Κλείστε το αρχείο με το COMMIT για να πείτε στο iptables να δεσμεύσει όλους τους κανόνες.
NAT Masquerading
Χρειάζεστε τις συνδέσεις από το VPN για να φανεί ότι προέρχονται από τον ίδιο τον εξυπηρετητή. Αυτό το κομμάτι δεν μπορεί να συμπεριληφθεί στο κανονικό αρχείο iptables επειδή χρησιμοποιεί διαφορετικό πίνακα. Αυτό είναι εντάξει, όμως, είναι μόνο μία γραμμή.
$ sudo iptables -t nat -A ΑΠΑΝΤΗΣΗ -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Προώθηση της κυκλοφορίας IPv4
Θα χρειαστεί να ενεργοποιήσετε την προώθηση της ροής IPv4, ώστε να μπορεί να περάσει ανάμεσα στο VPN και την πραγματική διεπαφή δικτύου του διακομιστή σας. Ανοίξτε το /etc/sysctl.d/99-sysctl.conf με το sudo.
Βρείτε την παρακάτω γραμμή και αποσυνδέστε την από την κατάργηση του #.
Διακοπή όλων των συνδέσεων IPv6
Λυπούμαστε, δεν έχετε τελειώσει ακόμα με το iptables. Πρέπει να αποκλείσετε κάθε κίνηση IPv6. Αυτός ο διακομιστής OpenVPN θα υποστηρίζει μόνο το IPv4, το οποίο είναι καλό, αφού δεν πρόκειται να αντιμετωπίσετε μια κατάσταση όπου χρειάζεστε IPv6. Ως αποτέλεσμα, οποιεσδήποτε συνδέσεις IPv6 ενδέχεται να διαρρεύσουν πληροφορίες, κάτι που είναι το αντίθετο από αυτό που θέλετε όταν χρησιμοποιείτε ένα VPN.
Πριν ορίσετε τους κανόνες για το iptables, πρέπει να απενεργοποιήσετε το IPv6 παντού στο σύστημα.
Προσθέστε τις ακόλουθες γραμμές στο /etc/sysctl.d/99-sysctl.conf. Αν το κλείσατε από την προηγούμενη ενότητα, ανοίξτε ξανά το με sudo.
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.eth0.disable_ipv6 = 1
Ενεργοποιήστε τις αλλαγές σας.
$ sudo sysctl -p
Παρατηρήστε όλες τις γραμμές IPv6 στον / etc / hosts. Θα χρειαστείτε και το sudo εδώ.
# :: 1 ip6-localhost ip6-loopback # fe00 :: 0 ip6-localnet # ff00 :: 0 ip6-mcastprefix # ff02 :: 1 ip6-allnodes # ff02 :: 2 ip6-allrouters
Επιτέλους, μπορείτε να γράψετε τους κανόνες IPv6 iptables. Δημιουργήστε ένα αρχείο για αυτά στο / tmp / ipv6.
* φίλτρο -A ΕΙΣΟΔΟΣ -j REJECT -A ΕΙΣΑΓΩΓΗ -j REJECT -A OUTPUT -j REJECT COMMIT
Βλέπετε, είναι απλά. Απορρίψτε τα πάντα.
Εισαγωγή και αποθήκευση σε Iptables
Πρέπει να εισαγάγετε αυτούς τους κανόνες προκειμένου να κάνουν οτιδήποτε. Έτσι, τώρα είναι η ώρα να το κάνουμε αυτό.
Αρχίστε να ξεκαθαρίζετε όλα όσα υπάρχουν. Δεν θέλετε να παρεμποδίζονται οι παλιοί κανόνες.
$ sudo iptables -F&& sudo iptables -X
Εισαγάγετε τους δύο κανόνες IPv4 και IPv6.
$ sudo iptables-επαναφορά </ tmp / ipv4 $ sudo ip6tables-restore </ tmp / ipv6
Πιθανότατα δεν θέλετε να το κάνετε ξανά. Έτσι, θα χρειαστείτε ένα νέο πακέτο για να αποθηκεύσετε τους κανόνες σας μόνιμα.
$ sudo apt εγκαθιστώντας το iptables-επίμονο
Κατά τη διάρκεια της εγκατάστασης, το πακέτο θα σας ζητήσει να αποθηκεύσετε τους ισχύοντες κανόνες. Απάντηση "Ναι".
Αν κάνετε αλλαγές αργότερα, μπορείτε επίσης να ενημερώσετε τις αποθηκευμένες διαμορφώσεις σας.
$ sudo netfilter service-persistent save
Χρειάστηκε λίγο, αλλά το τείχος προστασίας είναι έτοιμο να πάει. Στην επόμενη σελίδα, πρόκειται να αντιμετωπίσουμε τη δημιουργία των απαραίτητων κλειδιών κρυπτογράφησης.
Κάντε κλικ εδώ: Επόμενη σελίδα
