Android

Πώς να ελέγξετε (σαρώσετε) τις ανοιχτές θύρες στο linux

40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #3

40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #3

Πίνακας περιεχομένων:

Anonim

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

Αυτό το άρθρο περιγράφει διάφορες προσεγγίσεις για να μάθετε ποιες θύρες ανοίγουν προς τα έξω στο σύστημα Linux.

Τι είναι το Open Port

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

Σε γενικές γραμμές, μια ανοικτή θύρα είναι μια θύρα δικτύου που δέχεται εισερχόμενα πακέτα από απομακρυσμένες τοποθεσίες.

Για παράδειγμα, εάν εκτελείτε διακομιστή ιστού που ακούει στις θύρες 80 και 443 και οι θύρες αυτές είναι ανοιχτές στο τείχος προστασίας, οποιοσδήποτε (εκτός από τα αποκλεισμένα ips) θα έχει πρόσβαση σε ιστότοπους που φιλοξενούνται στον διακομιστή ιστού σας χρησιμοποιώντας το πρόγραμμα περιήγησης. Στην περίπτωση αυτή, και τα 80 και τα 443 είναι ανοιχτές θύρες.

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

Ελέγξτε τις ανοιχτές θύρες με το nmap

Το Nmap είναι ένα ισχυρό εργαλείο σάρωσης δικτύου που μπορεί να σαρώσει μεμονωμένους κεντρικούς υπολογιστές και μεγάλα δίκτυα. Χρησιμοποιείται κυρίως για ελέγχους ασφαλείας και δοκιμές διείσδυσης.

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

Η ακόλουθη εντολή που εκδίδεται από την κονσόλα καθορίζει ποια θύρα ακούν για συνδέσεις TCP από το δίκτυο:

sudo nmap -sT -p- 10.10.8.8

Το -sT δηλώνει το nmap για τη σάρωση για θύρες TCP και -p- για σάρωση για όλες τις 65535 θύρες. Εάν το -p- δεν χρησιμοποιείται, το nmap θα σαρώσει μόνο 1000 θύρες.

Starting Nmap 7.60 (https://nmap.org) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds

Η παραπάνω έξοδος δείχνει ότι μόνο οι θύρες 22 , 80 και 8069 ανοίγουν στο σύστημα στόχου.

Για να πραγματοποιήσετε σάρωση για θύρες UDP, χρησιμοποιήστε -sU αντί -sT :

sudo nmap -sU -p- 10.10.8.8

Για περισσότερες πληροφορίες, επισκεφτείτε τη σελίδα man nmap και διαβάστε για όλες τις άλλες δυνατές επιλογές αυτού του εργαλείου.

Ελέγξτε τις ανοιχτές θύρες με το netcat

Το Netcat (ή nc ) είναι ένα εργαλείο γραμμής εντολών που μπορεί να διαβάζει και να γράφει δεδομένα σε συνδέσεις δικτύου χρησιμοποιώντας τα πρωτόκολλα TCP ή UDP.

Με το netcat μπορείτε να σαρώσετε μία μόνο θύρα ή μια περιοχή θύρας.

Για παράδειγμα, για να σαρώσετε για ανοιχτές θύρες TCP σε απομακρυσμένο μηχάνημα με διεύθυνση IP 10.10.8.8 στην περιοχή 20-80 , θα χρησιμοποιούσατε την ακόλουθη εντολή:

nc -z -v 10.10.8.8 20-80

Η επιλογή -z λέει στον nc να σαρώνει μόνο για ανοιχτές θύρες, χωρίς να στέλνει δεδομένα και το -v είναι για πιο λεπτομερείς πληροφορίες.

Η έξοδος θα φαίνεται κάπως έτσι:

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded!… Connection to 10.10.8.8 80 port succeeded!

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded

Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!

Για να σαρώσετε τις θύρες UDP, περάστε την επιλογή -u στην εντολή nc :

nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded

Ελέγξτε τις ανοιχτές θύρες χρησιμοποιώντας τη συσκευή Pseudo Bash

Ένας άλλος τρόπος για να ελέγξετε αν μια συγκεκριμένη θύρα είναι ανοιχτή ή κλειστή είναι η χρήση της συσκευής /dev/udp/.. Bash shell /dev/tcp/.. ή /dev/udp/..

Κατά την εκτέλεση μιας εντολής σε μια ψευδο-συσκευή /dev/$PROTOCOL/$HOST/$IP , το Bash θα ανοίξει μια σύνδεση TCP ή UDP στον καθορισμένο κεντρικό υπολογιστή στην καθορισμένη θύρα.

Η ακόλουθη εντολή if..else θα ελέγξει αν είναι ανοιχτή η θύρα 443 στο kernel.org :

if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi

Port is open

Πώς λειτουργεί ο κώδικας παραπάνω;

Το προεπιλεγμένο χρονικό όριο κατά τη σύνδεση σε μια θύρα χρησιμοποιώντας μια συσκευή ψευδο είναι τεράστια, οπότε χρησιμοποιούμε την εντολή timeout για να σκοτώσουμε την εντολή δοκιμής μετά από 5 δευτερόλεπτα. Εάν η σύνδεση είναι εγκατεστημένη στη θύρα kernel.org 443 η εντολή δοκιμής θα επανέλθει στην πραγματικότητα.

Μπορείτε επίσης να χρησιμοποιήσετε τον βρόχο for για να ελέγξετε για μια περιοχή θύρας:

for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done

Η έξοδος θα φαίνεται κάπως έτσι:

port 22 is open port 80 is open

συμπέρασμα

Σας έχουμε δείξει πολλά εργαλεία που μπορείτε να χρησιμοποιήσετε για να σαρώσετε για ανοιχτές θύρες. Υπάρχουν επίσης άλλα βοηθητικά προγράμματα και μέθοδοι για τον έλεγχο για ανοιχτές θύρες, για παράδειγμα, μπορείτε να χρησιμοποιήσετε την υπομονάδα socket Python, curl , telnet ή wget .

τερματικό