Πώς να απαριθμήσετε ανοιχτές θύρες στο Linux;

How List Open Ports Linux



Στη δικτύωση, μια θύρα είναι ένα ενδιαφέρον χαρακτηριστικό. Είναι ένας τρόπος για την επισκεψιμότητα δικτύου να προσδιορίσει την εφαρμογή ή την υπηρεσία προορισμού. Κάθε διαδικασία/υπηρεσία παίρνει τη μοναδική θύρα της. Μια θύρα θα συσχετίζεται πάντα με τη διεύθυνση IP του κεντρικού υπολογιστή μαζί με το πρωτόκολλο.

Αυτή είναι μια αγαπημένη μου μεταφορά για να περιγράψω τι είναι λιμάνι. Φανταστείτε ένα πλοίο φορτωμένο με φορτίο, το οποίο θα ταξιδέψει σε μια μακρινή χώρα. Ποιες πληροφορίες χρειάζονται για να φτάσετε σωστά στον προορισμό; Για λόγους απλότητας, ας πούμε ότι χρειάζεται τη χώρα (τη διεύθυνση IP) και το Λιμάνι το πλοίο θα αγκυροβολήσει.







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



Θύρες σε Linux

Οι λιμένες λειτουργούν ως τελικό σημείο επικοινωνίας. Είναι ένας αριθμός 16-bit (0 έως 65535 σε δεκαδικό). Ενώ το εύρος είναι μεγάλο, για ευκολία στη χρήση, οι θύρες κατηγοριοποιούνται σε τρεις κατηγορίες. Κάθε κατηγορία χαρακτηρίζεται ως το εύρος της τιμής θύρας:



  • 0 έως 1023: Αυτές είναι οι γνωστές θύρες, γνωστές και ως θύρες συστήματος, οι οποίες προορίζονται για διαδικασίες συστήματος που προσφέρουν μεγάλη ποικιλία υπηρεσιών δικτύου. Για να συνδεθεί με μια γνωστή θύρα, μια διαδικασία πρέπει να έχει προνόμια υπερχρήστη.
  • 1024 έως 49151: Αυτές είναι οι καταχωρημένες θύρες, γνωστές και ως θύρες χρήστη, που έχουν οριστεί από τον ΙΑΝΑ για συγκεκριμένες υπηρεσίες. Κατόπιν αιτήματος, μια διαδικασία μπορεί να έχει πρόσβαση σε αυτές. Στην περίπτωση των περισσότερων συστημάτων, δεν απαιτείται προνόμιο υπερχρήστη για τη χρήση αυτών των θυρών.
  • 49152 έως 65535: Αυτές είναι οι δυναμικές θύρες, γνωστές και ως ιδιωτικές θύρες. Αυτές οι θύρες δεν μπορούν να εγγραφούν στο IANA. Αυτές οι θύρες είναι ανοικτές για χρήση για ιδιωτικές ή προσαρμοσμένες υπηρεσίες και μπορούν επίσης να εκχωρηθούν αυτόματα ως εφήμερες θύρες (θύρες μικρής διάρκειας που χρησιμοποιούνται από την IP).

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





Λίστα ανοικτών θυρών

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

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



Οι ακόλουθες μέθοδοι παρουσιάζονται στο Ubuntu 20.04.1 LTS.

Λίστα πρωτοκόλλων και ανοικτών θυρών από /etc /services

Το αρχείο /etc /services περιέχει πληροφορίες σχετικά με τις τρέχουσες υπηρεσίες. Είναι ένα μεγάλο αρχείο, τόσο έτοιμο να ξεγελαστεί.

$Γάτα /και τα λοιπά/Υπηρεσίες| πιο λιγο

Λίστα ανοικτών θυρών χρησιμοποιώντας το netstat

Το εργαλείο netstat είναι ένα βοηθητικό πρόγραμμα για την εμφάνιση συνδέσεων δικτύου για TCP, πίνακες δρομολόγησης και διάφορες διεπαφές δικτύου. Προσφέρει επίσης στατιστικά στοιχεία πρωτοκόλλου δικτύου. Χρησιμοποιώντας το netstat, μπορούμε να παραθέσουμε όλες τις ανοιχτές θύρες του συστήματος.

Εκτελέστε την ακόλουθη εντολή netstat:

$netstat -ατου

Ας έχουμε μια γρήγορη ανάλυση όλων των σημαιών που χρησιμοποιήσαμε σε αυτήν την εντολή.

  • προς το : Λέει στο netstat να εμφανίσει όλες τις πρίζες
  • τ : Λέει στο netstat να αναφέρει τις θύρες TCP
  • u : Λέει στο netstat να εμφανίσει τις θύρες UDP

Ακολουθεί μια άλλη παραλλαγή της εντολής netstat:

$netstat -lntu

Υπάρχουν δύο νέες σημαίες που χρησιμοποιούνται στην εντολή. Τι εννοούν?

  • ο : Λέει στο netstat να εκτυπώσει μόνο τις υποδοχές ακρόασης
  • ν : Λέει στο netstat να εμφανίσει τον αριθμό θύρας

Για να εμφανίσετε το PID της διαδικασίας που χρησιμοποιεί θύρα, χρησιμοποιήστε τη σημαία -p:

$netstat -Intup

Λίστα ανοικτών θυρών χρησιμοποιώντας ss

Το εργαλείο ss είναι ένα βοηθητικό πρόγραμμα για διερεύνηση υποδοχών. Η χρήση του είναι παρόμοια με το netstat.

Για να απαριθμήσετε τις ανοιχτές θύρες, εκτελέστε την ακόλουθη εντολή ss:

$σσ-lntu

Οι σημαίες είναι παρόμοιες με το netstat. Οι λειτουργίες που περιγράφουν είναι επίσης αρκετά παρόμοιες.

  • ο : Λέει στο ss να εμφανίζει υποδοχές ακρόασης
  • ν : Σας λέει να μην προσπαθήσετε να επιλύσετε ονόματα υπηρεσιών
  • τ : Λέει στο ss να εμφανίζονται οι υποδοχές TCP
  • u : Λέει στο ss να εμφανίζει υποδοχές UDP

Λίστα ανοικτών θυρών χρησιμοποιώντας το lsof

Η εντολή lsof είναι να παραθέσετε ανοιχτά αρχεία. Ωστόσο, μπορεί επίσης να χρησιμοποιηθεί για την εμφάνιση των ανοιχτών θυρών.

Εκτελέστε την ακόλουθη εντολή lsof:

$lsof-Εγώ

Για να αποκτήσετε τις ανοιχτές θύρες ενός συγκεκριμένου πρωτοκόλλου (TCP, UDP, κ.λπ.), ορίστε το μετά τη σημαία -i, χρησιμοποιήστε:

$lsof-Εγώ <πρωτόκολλο>>

Λίστα ανοικτών θυρών χρησιμοποιώντας το nmap

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

Για να παραθέσετε τις ανοιχτές θύρες TCP, εκτελέστε την ακόλουθη εντολή nmap. Εδώ, η διεύθυνση IP είναι του κεντρικού υπολογιστή:

$sudo nmap -sT -Π-localhost

Εδώ, υπάρχουν δύο τμήματα του ορίσματος εντολής.

  • -sT : Αυτή η ενότητα ενημερώνει το nmap για σάρωση για θύρες TCP.
  • -Π- : Αυτό λέει στο nmap να σαρώσει και τις 65535 θύρες. Εάν δεν χρησιμοποιηθεί, τότε το nmap θα σαρώσει μόνο 1000 θύρες από προεπιλογή.

Εάν πρέπει να καταχωρίσετε τις ανοικτές θύρες UDP, εκτελέστε την ακόλουθη εντολή nmap:

$sudo nmap -του -Π-localhost

Για να αποκτήσετε και τις δύο ανοιχτές θύρες TCP και UDP, χρησιμοποιήστε την ακόλουθη εντολή:

$sudo nmap -PN -sT -του -Π-localhost

Λίστα ανοικτών θυρών χρησιμοποιώντας netcat

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

Η ακόλουθη εντολή netcat θα σαρώσει τη θύρα από 1 έως 1000. Η εντολή netcat θα εκτελέσει τη σάρωση στο πρωτόκολλο TCP από προεπιλογή:

$nc-Με localhost1-1000

Μπορεί επίσης να επεκταθεί σε ολόκληρη τη λίστα με τις πιθανές θύρες:

$nc-Με localhost1-65535

Ας έχουμε μια γρήγορη ανάλυση των σημαιών.

  • Με : Λέει στο netcat να σαρώσει μόνο για ανοιχτές θύρες χωρίς αποστολή δεδομένων
  • v : Λέει στο netcat να εκτελείται σε λεπτομερή λειτουργία

Για να λάβετε μόνο τις ανοιχτές θύρες από αυτήν τη λίστα, φιλτράρετε την έξοδο με grep για τον όρο που επιτεύχθηκε.

$nc-Με localhost0-65535 2> &1 | λαβήπέτυχε

Εάν θέλετε να εκτελέσετε τη σάρωση στο πρωτόκολλο UDP, προσθέστε τη σημαία -u.

$nc-Με -ulocalhost0-65535 2> &1 | λαβήπέτυχε

Τελικές σκέψεις

Όπως αποδείχθηκε, υπάρχουν πολλοί τρόποι σάρωσης για ανοιχτές θύρες στο Linux. Προτείνω να δοκιμάσετε όλες τις μεθόδους πριν αποφασίσετε ποια θα κυριαρχήσετε. Εάν χρησιμοποιείτε τακτικά ένα συγκεκριμένο εργαλείο όπως το netcat ή το nmap, τότε η εξοικείωση με τις σχετικές μεθόδους θα είναι η πιο επωφελής.

Καλή πληροφορική!