Είναι σημαντικό να ελέγχουμε τα ανοιχτά ports στο Linux για λόγους ασφαλείας. Αυτό μας βοηθά να δούμε αν υπάρχει κάποια υπηρεσία που χρησιμοποιεί κάποιο Port σύστημα μας ενώ δεν πρέπει. Στο παρόν άρθρο θα δούμε 3 τρόπους ελέγχου με τη χρήση των ανάλογων εφαρμογών.
Πως ελέγχω ports στο Linux με τη χρήση των ανάλογων εργαλείων;
Υπάρχουν διάφοροι τρόποι με τους οποίους μπορούμε να διαπιστώσουμε την ύπαρξη ανοιχτών ports στο Linux.
Έλεγχος ports με τη χρήση του netstat
Εντολή
netstat -tulpn | grep LISTEN
Output
[root@rhel ~]# netstat -tulpn | grep LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 904/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 866/master tcp6 0 0 :::80 :::* LISTEN 1086/httpd tcp6 0 0 :::22 :::* LISTEN 904/sshd tcp6 0 0 ::1:25 :::* LISTEN 866/master [root@rhel ~]#
Στο output της εντολής παρατηρούμε ότι φαίνονται όλα τα TCP και UDP ports. Στην περίπτωση που θέλουμε να φιλτράρουμε περισσότερο τα αποτελέσματα, μπορούμε εύκολα να το κάνουμε με τη χρήση του grep όπως είχαμε δει.
[root@rhel ~]# netstat -tulpn | grep LISTEN|grep 80 tcp6 0 0 :::80 :::* LISTEN 1086/httpd [root@rhel ~]#
Στο output βλέπουμε ότι το port 80 χρησιμοποιείται από την υπηρεσία httpd με PID (Process IDentification) 1086. Να θυμίσουμε επίσης ότι υπάρχει και το ss που παρέχει στατιστικά δικτύου.
Έλεγχος ανοιχτών ports με τη χρήση του lsof
Το lsof παρουσιάζει μια λίστα με ανοιχτά αρχεία. Παρόλα αυτά με τη χρήση συγκεκριμένων παραμέτρων, μπορούμε να δούμε τα ανοιχτά ports στο Linux. Εξ ορισμού (by default) δεν είναι εγκατεστημένο στο σύστημα μας, αλλά θα το βρούμε στα αποθετήρια όλων των γνωστών διανομών.
Για παράδειγμα στο ubuntu/debian το εγκαθιστούμε δίνοντας
sudo apt install lsof
Χρήση εντολής
lsof -i -P -n
Output
[root@rhel ~]# lsof -i -P -n COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME chronyd 513 chrony 1u IPv4 14330 0t0 UDP 127.0.0.1:323 chronyd 513 chrony 2u IPv6 14331 0t0 UDP [::1]:323 dhclient 548 root 6u IPv4 15326 0t0 UDP *:68 dhclient 548 root 20u IPv4 15315 0t0 UDP *:41668 dhclient 548 root 21u IPv6 15316 0t0 UDP *:23435 master 866 root 13u IPv4 16678 0t0 TCP 127.0.0.1:25 (LISTEN) master 866 root 14u IPv6 16679 0t0 TCP [::1]:25 (LISTEN) sshd 904 root 3u IPv4 17424 0t0 TCP *:22 (LISTEN) sshd 904 root 4u IPv6 17426 0t0 TCP *:22 (LISTEN) sshd 951 root 3u IPv4 17884 0t0 TCP 172.31.22.4:22->103.211.42.2:59572 (ESTABLISHED) sshd 954 ec2-user 3u IPv4 17884 0t0 TCP 172.31.22.4:22->103.211.42.2:59572 (ESTABLISHED) httpd 1086 root 4u IPv6 19036 0t0 TCP *:80 (LISTEN) httpd 1088 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN) httpd 1089 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN) httpd 1090 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN) httpd 1091 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN) httpd 1092 apache 4u IPv6 19036 0t0 TCP *:80 (LISTEN)
στην περίπτωση που θέλουμε περισσότερες πληροφορίες για το port 80 μπορούμε με τη χρήση της ακόλουθης εντολής.
[root@rhel~]# lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 1086 root 4u IPv6 19036 0t0 TCP *:http (LISTEN) httpd 1088 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN) httpd 1089 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN) httpd 1090 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN) httpd 1091 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN) httpd 1092 apache 4u IPv6 19036 0t0 TCP *:http (LISTEN)
Βλέπουμε ότι το port 80 χρησιμοποιείται από την υπηρεσία httpd με PID 1086
Έλεγχος με τη χρήση του nmap
Εδώ δε νομίζω ότι χρειάζονται ιδιαίτερες συστάσεις. Ίσως από τα διασημότερα εργαλεία, το οποίο έχει χρησιμοποιηθεί σε αρκετές ταινίες του Hollywood.
Το εγκαθιστούμε δίνοντας
sudo apt install nmap
Χρήση εντολής
nmap -sT -O localhost
Output
[root@ip-172-31-22-4 ~]# nmap -sT -O localhost Starting Nmap 6.40 ( http://nmap.org ) at 2017-09-15 13:59 UTC RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 RTTVAR has grown to over 2.3 seconds, decreasing to 2.0 Nmap scan report for localhost (127.0.0.1) Host is up (0.00023s latency). Other addresses for localhost (not scanned): 127.0.0.1 Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http Device type: general purpose Running: Linux 3.X OS CPE: cpe:/o:linux:linux_kernel:3 OS details: Linux 3.7 - 3.9 Network Distance: 0 hops OS detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 1.66 seconds [root@ip-172-31-22-4 ~]#
Στο παραπάνω output μπορούμε να ελέγξουμε πολύ εύκολα τα ανοιχτά ports.
Γεια σου Βασίλη,ωραίο το άρθρο.ευχαριστουμε