Πώς να εκτελέσετε το UniFi Controller στον Turris Omnia

Η Turris Omnia συναντά τον ελεγκτή δικτύου UniFi

Η επόμενη μου περιπέτεια με το δρομολογητή Turris Omnia ήταν η δημιουργία ενός δοχείου LXC για να τρέξει το UniFi Network Controller μέσα στον δρομολογητή. Η ιδέα είναι να (τελικά) αναβαθμίσω το wifi μου από το Qualcomm Atheros QCA9880 της Omnia σε σημεία πρόσβασης Ubiquiti UniFi.

Αποδεικνύεται ότι η διαδικασία είναι πολύ εύκολη και απλή αν ξέρετε τι να κάνετε. Οι πληροφορίες είναι λίγο διάσπαρτες σε διάφορα μέρη, γράφω αυτό το blog post για να παρέχουν έναν πλήρη και εύκολο στη συνέχεια οδηγό.

Ουσιαστικά, η διαδικασία έχει τρία βήματα:

  1. Προετοιμάστε το δρομολογητή για να εκτελέσετε το LXC
  2. Δημιουργήστε ένα νέο δοχείο LXC για να εκτελέσετε το UniFi Network Controller
  3. Εγκαταστήστε τον ελεγκτή δικτύου UniFi στο δοχείο

Ρύθμιση LXC

Εάν θέλετε να εκτελέσετε το LXC στο υλικό Turris, τότε πρέπει να εγκαταστήσετε επιπλέον αποθηκευτικό χώρο (μονάδα SSD mSATA). Διαφορετικά, μπορεί να καταστρέψετε την εσωτερική αποθήκευση flash του δρομολογητή σας! Όπως ειπώθηκε στα έγγραφα:

Η λειτουργία LXC στην εσωτερική αποθήκευση flash μπορεί να οδηγήσει σε γρήγορη υποβάθμιση και τελικά σε αποτυχία της αποθήκευσης. Αυτό μπορεί να ακυρώσει την εγγύησή σας.

Ήμουν τυχερός που έκανα μια παλιά μονάδα δίσκου mSATA 16GB η οποία ήρθε με τον αρχαίο φορητό υπολογιστή μου Lenovo E530. Βρισκόταν εδώ και χρόνια στο γραφείο μου, χαίρομαι που έχω βρει μια νέα χρήση γι 'αυτό. Εάν δεν έχετε εφεδρικό δίσκο mSATA, προχωρήστε και αγοράστε ένα - είναι αρκετά φθηνό σήμερα.

Τονωμένο χρόνο!

Η εγκατάσταση της μονάδας δίσκου mSATA απαιτεί λίγες αλλαγές στον τρόπο σύνδεσης του καλωδίου wifi της Omnia, αλλά τα βήματα είναι εκπληκτικά εύκολα. Ακολουθήστε τον επίσημο οδηγό βίντεο εδώ: https://www.youtube.com/watch?v=71_M2N3ga7s

fdisk

Ανάλογα με το πώς χωρίζεται η νέα μονάδα δίσκου σας, ίσως χρειαστεί να εκτελέσετε το fdisk για να αντικαταστήσετε τα υπάρχοντα διαμερίσματα με ένα νέο. Για παράδειγμα, η μονάδα μου χωρίστηκε σε δύο κατατμήσεις των 8GB που ήθελα να αντικαταστήσω με ένα μόνο διαμέρισμα λαμβάνοντας όλο το διαθέσιμο χώρο.

Η παλιά έκδοση των τεκμηρίων Turris παρέχει έναν οδηγό που συνέβαλε στην κοινότητα σχετικά με τη διαμέριση μονάδων δίσκου SSD mSATA, το βρήκα πολύ εύκολο να το ακολουθήσω: https://doc.turris.cz/doc/en/public/partition_a_disk

Σημειώστε ότι δεν χρειάζεται να μορφοποιήσετε το νέο διαμέρισμα, το Turris θα το φροντίσει στα επόμενα βήματα.

Αποθήκευση plugin FTW

Με ένα νέο διαμέρισμα έτοιμο, ήρθε η ώρα να πείτε στον Turris να το χρησιμοποιήσει. Το Turris παρέχει ένα ωραίο γραφικό περιβάλλον για αυτό το κομμάτι, απλώς ακολουθήστε τα βήματα στα έγγραφα και μην ξεχάσετε να επανεκκινήσετε το δρομολογητή! https://docs.turris.cz/basics/foris/storage-plugin/storage-plugin/

Γεια σας LXC

Το επόμενο βήμα είναι η εγκατάσταση της υποδομής LXC. Το Foris (από τα UI διαμόρφωσης που παρέχει ο Turris Omnia) δεν παρέχει UI για εργασία με δοχεία LXC, αλλά σας επιτρέπει να εγκαταστήσετε όλα τα απαραίτητα πακέτα (και να τα κρατάτε ενημερωμένα). Μάθετε περισσότερα στα έγγραφα: https://docs.turris.cz/geek/lxc/lxc/

Παροχή δοχείου LXC

Η πρώτη απόφαση που πρέπει να κάνετε είναι να χρησιμοποιήσετε τη διανομή Linux. Αποδεικνύεται ότι αυτό είναι ένα κρίσιμο κομμάτι και αν το πάρετε λάθος, θα πρέπει να κάνετε εκ νέου όλα τα βήματα. Επιτρέψτε μου να εξηγήσω γιατί:

  • Το UniV Controller έκδοση 5.12 (πιο πρόσφατο) απαιτεί μια βάση δεδομένων MongoDB.
  • Το Turris Omnia διαθέτει 32bit dual-core ARMv7 CPU.
  • Οι εκδόσεις MongoDB 3.x και 4.x υποστηρίζουν μόνο ARM64.
  • Η έκδοση MongoDB 2.6 υποστηρίζει το ARM32, αλλά έχει φτάσει στο τέλος του κύκλου ζωής του τον Οκτώβριο του 2016 και το MongoDB δεν παρέχει πλέον εύκολα εγκατεστημένα πακέτα για διανομές Linux.

Ευτυχώς, το Ubuntu 16.04 LTS Xenial παρέχει πακέτα MongoDB 2.6 από το κουτί. Ενώ το 16.04 απέχει πολύ από το τελευταίο και μεγαλύτερο, είναι μια έκδοση LTS που υποστηρίζεται μέχρι τον Απρίλιο του 2021, με εκτεταμένη συντήρηση μέχρι τον Απρίλιο του 2024. Αυτό σημαίνει ότι δεν θα πρέπει να ανησυχείτε για αναβαθμίσεις για τα επόμενα τέσσερα χρόνια.

Δημιουργήστε ένα νέο δοχείο LXC

Στη διεπαφή διαμόρφωσης LuCI, ανοίξτε τη σελίδα "Υπηρεσίες> Δοχεία LXC" (https://192.168.1.1/cgi-bin/luci/admin/services/lxc). Εισαγάγετε το όνομα του νέου δοχείου και επιλέξτε το Ubuntu 16.04 LTS Xenial ως πρότυπο για χρήση.

Ενώ είναι δυνατή η εκκίνηση του νέου δοχείου από το LuCI, το GUI δεν επιλέγει αμέσως το νέο δοχείο (νομίζω ότι πρέπει πρώτα να επανεκκινήσετε το δρομολογητή). Ας μεταβούμε στο CLI για τα επόμενα βήματα.

Συνδεθείτε στο νέο σας κοντέινερ

Συνδεθείτε στο δρομολογητή σας μέσω ssh (ssh [email protected]). Από προεπιλογή, ο λογαριασμός root έχει τον ίδιο κωδικό πρόσβασης με αυτόν που έχετε ρυθμίσει για τη διεπαφή LuCI. Μπορείτε να αλλάξετε αυτόν τον κωδικό μέσω διεπαφής Foris στη διεύθυνση https://192.168.1.1/foris/config/main/password/.

Εκτελέστε τις ακόλουθες δύο εντολές για να ξεκινήσετε το νέο κοντέινερ και να συνδεθείτε με αυτό:

$ lxc-αρχή unifi $ lxc-attach -n unifi

Διορθώστε το όνομα κεντρικού υπολογιστή

Το δοχείο LXC είναι μια νέα εικονική μηχανή που γίνεται μια άλλη συσκευή στο οικιακό σας δίκτυο, θα λάβει τη διεύθυνση δικτύου από τον διακομιστή DHCP με τον ίδιο τρόπο που κάνουν άλλοι πελάτες (π.χ. ο υπολογιστής ή το κινητό σας τηλέφωνο).

Για λόγους άγνωστους για μένα, τα δοχεία LXC που δημιουργούνται από το LuCI χρησιμοποιούν το όνομα LXC_NAME ως όνομα κεντρικού υπολογιστή. Ας το διορθώσουμε!

Χρησιμοποιώντας τον αγαπημένο σας επεξεργαστή (το δικό μου είναι ViM), επεξεργαστείτε τα / etc / hostname και / etc / hosts για να αντικαταστήσετε την ανόητη συμβολοσειρά LXC_NAME με ένα πιο περιγραφικό όνομα (π.χ. unifi). Δείτε το https://forum.turris.cz/t/hostname-for-lxc-container/1232

Τελειώσαμε με τη διαμόρφωση του δοχείου από μέσα, μπορείτε να αποσυνδεθείτε από αυτό τώρα. (Αλλά κρατήστε τη σύνδεση με τον ίδιο τον δρομολογητή.)

Ενεργοποιήστε την αυτόματη εκκίνηση

Τα δοχεία που δημιουργήθηκαν πρόσφατα δεν ξεκινούν αυτόματα. Μετά την επανεκκίνηση του δρομολογητή (π.χ. σε περίπτωση διακοπής ρεύματος), το δοχείο απαιτεί χειροκίνητη επέμβαση για να το ξεκινήσει. Αυτό δεν είναι πρακτικό για τις υπηρεσίες που θέλουμε πάντα να είμαστε.

Ενεργοποιήστε την αυτόματη εκκίνηση του κοντέινερ ακολουθώντας τον επίσημο οδηγό στη διεύθυνση https://docs.turris.cz/geek/lxc/lxc#starting-the-container-at-boot

Κάνετε εύκολη την εύρεση του δοχείου LXC

Όπως ανέφερα προηγουμένως, το κοντέινερ είναι απλά ένας άλλος πελάτης δικτύου που έχει ρυθμιστεί μέσω DHCP. Από προεπιλογή, το DHCP εκχωρεί τις διευθύνσεις IP δυναμικά, πράγμα που σημαίνει ότι η διεύθυνση IP του κοντέινερ σας μπορεί να αλλάξει με την πάροδο του χρόνου. Αυτό δεν είναι πολύ πρακτικό - πρέπει να αναζητήσετε την τρέχουσα διεύθυνση IP του κοντέινερ πριν μπορέσετε να συνδεθείτε με αυτό.

Σας συνιστώ να εκχωρήσετε μια στατική μίσθωση DHCP με μια προσαρμοσμένη διεύθυνση IP για το κοντέινερ και να προσθέσετε μια καταχώρηση DNS για αυτήν τη διεύθυνση.

  1. Μεταβείτε στη διεύθυνση https://192.168.1.1/cgi-bin/luci/admin/network/dhcp, μεταβείτε στην επιλογή "Στατικές Μισθώσεις" και προσθέστε μια νέα εγγραφή. Ελέγξτε τη λίστα στην ενότητα "Active DHCP Leases" για να βρείτε τη διεύθυνση MAC του δοχείου LXC.
  2. Μεταβείτε στη διεύθυνση https://192.168.1.1/foris/config/main/dns/ και επιλέξτε "Ενεργοποίηση πελατών DHCP στο DNS". Επιλέξτε έναν τομέα ανώτατου επιπέδου που θα χρησιμοποιηθεί για τους τοπικούς οικοδεσπότες σας, π.χ. .lan για να αποκτήσετε το https: //unifi.lan/ ως διεύθυνση του δοχείου LXC.

Εγκαταστήστε τον ελεγκτή δικτύου UniFi

Αυτό γίνεται εκπληκτικά εύκολο! Ουσιαστικά, θα πρέπει να προσθέσετε Ubiquity repository πακέτου και στη συνέχεια να εκτελέσετε apt-get install unifi. Απλώς συνδέστε το δοχείο σας ξανά (χρησιμοποιώντας το lxc-attach) και ακολουθήστε τον επίσημο οδηγό Ubiquity: https://help.ubnt.com/hc/en-us/articles/220066768-UniFi-How-to-Install-and-Update -via-APT-on-Debian-ή-Ubuntu

Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τα σενάριο εγκατάστασης & ενημέρωσης all-in-one που παρέχεται από την κοινότητα UniFi εδώ: https://community.ui.com/questions/UniFi-Installation-Scripts-or-UniFi-Easy-Update-Script-or -UniFi-Lets-Encrypt-or-Ubuntu-16-04-18-04- / ccbc7530-dd61-40a7-82ec-22b17f027776 (Παρακαλώ σημειώστε ότι δεν το εκτέλεσα εγώ, δεν έχω ιδέα αν το σενάριο λειτουργεί της ρύθμισης.)

Σημαντικό: πρόκειται να εγκαταστήσετε και να εκτελέσετε την έκδοση MongoDB 2.6. Αυτή η έκδοση δεν υποστηρίζεται από το 2016, ενδέχεται να υπάρχουν γνωστές ευπάθειες ασφαλείας. Βεβαιωθείτε ότι ο διακομιστής βάσης δεδομένων δεν είναι εκτεθειμένος στο δίκτυό σας! Ευτυχώς, η προεπιλεγμένη ρύθμιση συνδέει το διακομιστή με το 127.0.0.1 μόνο . Όλα θα πρέπει να είναι καλά, αρκεί να μην αλλάξετε τη διαμόρφωση.

Προαιρετικά, μπορείτε να δημιουργήσετε ένα πιστοποιητικό HTTPS για να αποφύγετε τη χρήση ενός πιστοποιητικού TSL που εκδίδεται από το Ubiquity ή το σενάριο εγκατάστασης του πακέτου. Δείτε τα επίσημα έγγραφα εδώ: https://help.ubnt.com/hc/en-us/articles/212500127-UniFi-SSL-certificate-error-upon-opening-controller-page Δυστυχώς, αυτό δημιουργεί ένα αυτογραφόμενο πιστοποιητικό το οποίο δεν εμπιστεύεται τα προγράμματα περιήγησης, αλλά τουλάχιστον μπορείτε να είστε βέβαιοι ότι κανένας άλλος δεν έχει το ιδιωτικό κλειδί.

Και αυτό είναι! Τώρα μπορείτε να ανοίξετε το https: //unifi.lan: 8443 / στο πρόγραμμα περιήγησης και να προχωρήσετε με τη διαμόρφωση του ελεγκτή σας.

Στο μέλλον, μπορεί να θέλετε να αναβαθμίσετε τον ελεγκτή σε νεότερη έκδοση. Αυτό είναι εξαιρετικά εύκολο καθώς είναι η ίδια διαδικασία με την αναβάθμιση άλλων πακέτων Linux.

# Ενημερώστε τη βάση δεδομένων των διαθέσιμων πακέτων και εκδόσεων $ apt-get update
# Αναβαθμίστε όλα τα πακέτα στην τελευταία έκδοση τους $ apt-get upgrade