Εργασία εξ αποστάσεως στο γραφείο. RDP, Port Knocking, Mikrotik: απλό και ασφαλές

Λόγω της πανδημίας του ιού covid-19 και της γενικής καραντίνας σε πολλές χώρες, ο μόνος τρόπος για πολλές εταιρείες να συνεχίσουν να εργάζονται είναι η απομακρυσμένη πρόσβαση στους χώρους εργασίας μέσω του Διαδικτύου. Υπάρχουν πολλές σχετικά ασφαλείς μέθοδοι για απομακρυσμένη εργασία - αλλά δεδομένης της κλίμακας του προβλήματος, απαιτείται μια απλή μέθοδος για οποιονδήποτε χρήστη για απομακρυσμένη σύνδεση στο γραφείο και χωρίς την ανάγκη πρόσθετων ρυθμίσεων, επεξηγήσεων, κουραστικών διαβουλεύσεων και μακρών οδηγιών. Αυτή η μέθοδος είναι αγαπητή σε πολλούς διαχειριστές RDP (Remote Desktop Protocol). Η απευθείας σύνδεση στο χώρο εργασίας μέσω RDP λύνει ιδανικά το πρόβλημά μας, εκτός από μια μεγάλη μύγα - το να διατηρείτε τη θύρα RDP ανοιχτή για το Διαδίκτυο είναι πολύ επικίνδυνο. Επομένως, παρακάτω προτείνω μια απλή αλλά αξιόπιστη μέθοδο προστασίας.Εργασία εξ αποστάσεως στο γραφείο. RDP, Port Knocking, Mikrotik: απλό και ασφαλές

Δεδομένου ότι συναντώ συχνά μικρούς οργανισμούς όπου οι συσκευές Mikrotik χρησιμοποιούνται ως πρόσβαση στο Διαδίκτυο, παρακάτω θα δείτε πώς να το εφαρμόσετε στο Mikrotik, αλλά η μέθοδος προστασίας Port Knocking εφαρμόζεται εύκολα σε άλλες συσκευές υψηλότερης κατηγορίας με παρόμοιες ρυθμίσεις δρομολογητή εισόδου και τείχος προστασίας .

Συνοπτικά για το Port Knocking. Η ιδανική εξωτερική προστασία ενός δικτύου συνδεδεμένου στο Διαδίκτυο είναι όταν όλοι οι πόροι και οι θύρες είναι κλειστές από έξω από ένα τείχος προστασίας. Και παρόλο που ένας δρομολογητής με ένα τέτοιο ρυθμισμένο τείχος προστασίας δεν αντιδρά με κανέναν τρόπο στα πακέτα που έρχονται από έξω, τα ακούει. Επομένως, μπορείτε να διαμορφώσετε τον δρομολογητή έτσι ώστε όταν μια συγκεκριμένη (κωδική) ακολουθία πακέτων δικτύου λαμβάνεται σε διαφορετικές θύρες, αυτός (ο δρομολογητής) για την IP από την οποία προέρχονται τα πακέτα να διακόπτει την πρόσβαση σε ορισμένους πόρους (θύρες, πρωτόκολλα, και τα λοιπά.).

Τώρα στις επιχειρήσεις. Δεν θα κάνω μια λεπτομερή περιγραφή των ρυθμίσεων του τείχους προστασίας στο Mikrotik - το Διαδίκτυο είναι γεμάτο από πηγές υψηλής ποιότητας για αυτό. Στην ιδανική περίπτωση, το τείχος προστασίας αποκλείει όλα τα εισερχόμενα πακέτα, αλλά

/ip firewall filter
add action=accept chain=input comment="established and related accept" connection-state=established,related

Επιτρέπει την εισερχόμενη κίνηση από καθιερωμένες, σχετικές συνδέσεις.
Τώρα ρυθμίσαμε το Port Knocking στο Mikrotik:

/ip firewall filter
add action=drop chain=input dst-port=19000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=drop chain=input dst-port=16000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=add-src-to-address-list address-list="remote_port_1" address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="allow_remote_users" address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
move [/ip firewall filter find comment=RemoteRules] 1
/ip firewall nat
add action=dst-nat chain=dstnat comment="remote_rdp" src-address-list="allow_remote_users" dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389

Τώρα πιο αναλυτικά:

δύο πρώτοι κανόνες

/ip firewall filter
add action=drop chain=input dst-port=19000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=drop chain=input dst-port=16000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules

να απαγορεύουν τα εισερχόμενα πακέτα από διευθύνσεις IP που βρίσκονται στη μαύρη λίστα κατά τη σάρωση θυρών.

Τρίτος κανόνας:

add action=add-src-to-address-list address-list="remote_port_1" address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules

προσθέτει ip στη λίστα των κεντρικών υπολογιστών που έκαναν το σωστό πρώτο χτύπημα στη σωστή θύρα (19000).
Οι επόμενοι τέσσερις κανόνες είναι:

add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules

δημιουργήστε θύρες παγίδας για όσους θέλουν να σαρώσουν τις θύρες σας και αν εντοπιστούν τέτοιες προσπάθειες, προσθέστε τη διεύθυνση IP τους στη μαύρη λίστα για 60 λεπτά, κατά τη διάρκεια των οποίων οι δύο πρώτοι κανόνες δεν θα δώσουν σε αυτούς τους κεντρικούς υπολογιστές την ευκαιρία να χτυπήσουν τις σωστές θύρες.

Επόμενος κανόνας:

add action=add-src-to-address-list address-list="allow_remote_users" address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules

βάζει ip στην επιτρεπόμενη λίστα για 1 λεπτό (αρκετό για να δημιουργηθεί σύνδεση), αφού έγινε το δεύτερο σωστό χτύπημα στην επιθυμητή θύρα (16000).

Επόμενη εντολή:

move [/ip firewall filter find comment=RemoteRules] 1

μετακινεί τους κανόνες μας προς τα πάνω στην αλυσίδα επεξεργασίας του τείχους προστασίας, καθώς πιθανότατα θα έχουμε ήδη διαμορφωμένους διαφορετικούς κανόνες άρνησης που θα εμποδίζουν τους νέους μας να λειτουργούν. Ο πρώτος κανόνας στο Mikrotik ξεκινά από το μηδέν, αλλά στη συσκευή μου το μηδέν καταλαμβανόταν από έναν ενσωματωμένο κανόνα και ήταν αδύνατο να το μετακινήσω - το μετέθεσα στο 1. Επομένως, εξετάζουμε τις ρυθμίσεις μας - όπου μπορείτε να το μετακινήσετε και υποδείξτε τον επιθυμητό αριθμό.

Επόμενη ρύθμιση:

/ip firewall nat
add action=dst-nat chain=dstnat comment="remote_rdp_to_33" src-address-list="allow_remote_users" dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389

προωθεί μια αυθαίρετα επιλεγμένη θύρα 33890 στη συνηθισμένη θύρα RDP 3389 και την ip του υπολογιστή ή του τερματικού διακομιστή που χρειαζόμαστε. Δημιουργούμε τέτοιους κανόνες για όλους τους απαραίτητους εσωτερικούς πόρους, κατά προτίμηση ορίζοντας μη τυπικές (και διαφορετικές) εξωτερικές θύρες. Φυσικά, η ip των εσωτερικών πόρων πρέπει να είναι είτε στατική είτε σταθερή στον διακομιστή DHCP.

Τώρα το Mikrotik μας έχει ρυθμιστεί και χρειαζόμαστε μια απλή διαδικασία για να συνδεθεί ο χρήστης στο εσωτερικό μας RDP. Επειδή έχουμε κυρίως χρήστες Windows, δημιουργούμε ένα απλό αρχείο bat και το ονομάζουμε StartRDP.bat:

1.htm
1.rdp

αντίστοιχα το 1.htm περιέχει τον ακόλουθο κώδικα:

<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
нажмите обновить страницу для повторного захода по RDP
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">

περιέχει δύο συνδέσμους προς φανταστικές εικόνες που βρίσκονται στο my_router.sn.mynetname.net - παίρνουμε αυτή τη διεύθυνση από το σύστημα Mikrotik DDNS αφού την ενεργοποιήσουμε στο Mikrotik μας: μεταβείτε στο μενού IP-> Cloud - επιλέξτε το πλαίσιο ελέγχου DDNS Enabled, κάντε κλικ στο Apply και αντιγράψτε το όνομα dns του δρομολογητή μας. Αλλά αυτό είναι απαραίτητο μόνο όταν η εξωτερική ip του δρομολογητή είναι δυναμική ή χρησιμοποιείται διαμόρφωση με πολλούς παρόχους Διαδικτύου.

Η θύρα στον πρώτο σύνδεσμο: 19000 αντιστοιχεί στην πρώτη θύρα στην οποία πρέπει να χτυπήσετε, στη δεύτερη, αντίστοιχα, στη δεύτερη. Ανάμεσα στους συνδέσμους υπάρχει μια σύντομη οδηγία που δείχνει τι πρέπει να κάνουμε εάν ξαφνικά διακοπεί η σύνδεσή μας λόγω σύντομων προβλημάτων δικτύου - ανανεώνουμε τη σελίδα, η θύρα RDP μας ανοίγει ξανά για 1 λεπτό και η συνεδρία μας αποκαθίσταται. Επίσης, το κείμενο μεταξύ των ετικετών img σχηματίζει μια μικροκαθυστέρηση για το πρόγραμμα περιήγησης, η οποία μειώνει την πιθανότητα να παραδοθεί το πρώτο πακέτο στη δεύτερη θύρα (16000) - μέχρι στιγμής δεν έχουν υπάρξει τέτοιες περιπτώσεις σε δύο εβδομάδες χρήσης (30 Ανθρωποι).

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

screen mode id:i:2
use multimon:i:1
.....
connection type:i:6
networkautodetect:i:0
.....
disable wallpaper:i:1
.....
full address:s:my_router.sn.mynetname.net:33890
.....
username:s:myuserlogin
domain:s:mydomain

από τις ενδιαφέρουσες ρυθμίσεις εδώ είναι η χρήση multimon: i: 1 - αυτό περιλαμβάνει τη χρήση πολλαπλών οθονών - ορισμένοι το χρειάζονται, αλλά οι ίδιοι δεν θα σκεφτούν να το ενεργοποιήσουν.

τύπος σύνδεσης: i: 6 και δίκτυο αυτόματης ανίχνευσης: i: 0 - αφού η πλειονότητα του Διαδικτύου είναι πάνω από 10 Mbps, ενεργοποιήστε τον τύπο σύνδεσης 6 (τοπικό δίκτυο 10 Mbps και άνω) και απενεργοποιήστε την αυτόματη ανίχνευση δικτύου, γιατί εάν από προεπιλογή (αυτόματο) , τότε ακόμη και μια σπάνια μικρή καθυστέρηση δικτύου ρυθμίζει αυτόματα τη συνεδρία μας σε αργή ταχύτητα για μεγάλο χρονικό διάστημα, γεγονός που μπορεί να δημιουργήσει αισθητές καθυστερήσεις στην εργασία, ειδικά σε προγράμματα γραφικών.

απενεργοποίηση ταπετσαρίας: i: 1 - απενεργοποιήστε την εικόνα της επιφάνειας εργασίας
username:s:myuserlogin - καθορίζουμε τη σύνδεση χρήστη, αφού σημαντικό μέρος των χρηστών μας δεν γνωρίζει τη σύνδεσή τους
domain:s:mydomain - καθορίστε το όνομα τομέα ή υπολογιστή

Αλλά αν θέλουμε να απλοποιήσουμε το έργο μας για τη δημιουργία μιας διαδικασίας σύνδεσης, τότε μπορούμε επίσης να χρησιμοποιήσουμε το PowerShell - StartRDP.ps1

Test-NetConnection -ComputerName my_router.sn.mynetname.net -Port 19000
Test-NetConnection -ComputerName my_router.sn.mynetname.net -Port 16000
mstsc /v:my_router.sn.mynetname.net:33890

Επίσης λίγα λόγια για το πρόγραμμα-πελάτη RDP στα Windows: Η MS έχει κάνει πολύ δρόμο στη βελτιστοποίηση του πρωτοκόλλου και των τμημάτων του διακομιστή και του πελάτη, έχει εφαρμόσει πολλές χρήσιμες λειτουργίες - όπως εργασία με υλικό 3D, βελτιστοποίηση της ανάλυσης οθόνης για την οθόνη σας, πολλαπλές οθόνες, και ούτω καθεξής. Αλλά φυσικά, όλα υλοποιούνται σε λειτουργία συμβατότητας προς τα πίσω και εάν ο πελάτης είναι Windows 7 και ο απομακρυσμένος υπολογιστής είναι Windows 10, τότε το RDP θα λειτουργήσει χρησιμοποιώντας την έκδοση πρωτοκόλλου 7.0. Αλλά το πλεονέκτημα είναι ότι μπορείτε να ενημερώσετε τις εκδόσεις RDP σε πιο πρόσφατες εκδόσεις - για παράδειγμα, μπορείτε να αναβαθμίσετε την έκδοση πρωτοκόλλου από 7.0 (Windows 7) σε 8.1. Επομένως, για τη διευκόλυνση των πελατών, είναι απαραίτητο να αυξήσετε όσο το δυνατόν περισσότερο τις εκδόσεις του τμήματος διακομιστή, καθώς και να αποθέσετε συνδέσμους για αναβάθμιση σε νέες εκδόσεις προγραμμάτων-πελατών πρωτοκόλλου RDP.

Ως αποτέλεσμα, έχουμε μια απλή και σχετικά ασφαλή τεχνολογία για απομακρυσμένη σύνδεση σε υπολογιστή που λειτουργεί ή τερματικό διακομιστή. Αλλά για μια πιο ασφαλή σύνδεση, η μέθοδος Port Knocking μπορεί να γίνει πιο δύσκολη η επίθεση κατά πολλές τάξεις μεγέθους, προσθέτοντας θύρες για έλεγχο - μπορείτε να προσθέσετε 3,4,5,6 ... μια θύρα σύμφωνα με την ίδια λογική , και σε αυτήν την περίπτωση μια άμεση εισβολή στο δίκτυό σας θα είναι σχεδόν αδύνατη.

Κενά αρχεία για τη δημιουργία απομακρυσμένης σύνδεσης με το RDP.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο