چک کردن پورت ها در لینوکس
چک کردن پورت ها و بررسی پورت هایی که در حال استفاده توسط نرم افزار های بر روی سیستم عامل می باشد از وظایف مدیر سرور برای جلوگیری از بروز مشکلات امنیتی می باشد.چرا که بکدور ها و برخی بد افزار ها پورتی را بر روی سیستم عامل باز می کنند تا نفوذگر بتوان از طریق آن پورت به سیستم عامل وصل شود و خرابکاری کند.
حالت های پورت ها می تواند open، filtered، closed و unfiltered باشد که در صورتی که نرم افزاری بر روی پورتی در حال فعالیت (listening for connections/packets) باشد حالت آن را Open (باز) در نظر می گیرند.
در این مقاله ما به لیست کردن پورت های باز و یا پیدا کردن پورت های باز در لینوکس و همچنین نام نرم افزار هایی که در حال استفاده از آن ها می باشند با استفاده از ابزار netstat می پردازیم، با ما همراه باشید.
Netstat چیست ؟
Netstat ابزاری به صورت خط فرمان می باشد که به صورت گسترده برای نمایش اطلاعات شبکه سیستم عامل مانند نمایش اتصالات شبکه (ورودی و خروجی)، جداول مسیریابی، تعداد کارت شبکه ها و غیره استفاده می شود.
Netstat بر روی انواع سیستم عامل ویندوز و لینوکس به صورت پیش فرض موجود می باشد.
چاپ پورت های باز با استفاده از Netstat
با اجرای دستور زیر، netstat برای ما پورت های در حال استفاده توسط نرم افزار ها را برای ما در خروجی نمایش می دهد :
1 | netstat -ltup |
خروجی :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 localhost:rndc 0.0.0.0:* LISTEN 1830/named tcp 0 0 0.0.0.0:smtp 0.0.0.0:* LISTEN 545/exim tcp 0 0 0.0.0.0:26 0.0.0.0:* LISTEN 545/exim tcp 0 0 0.0.0.0:https 0.0.0.0:* LISTEN 27234/nginx: master tcp 0 0 0.0.0.0:pcsync-https 0.0.0.0:* LISTEN 8161/httpd tcp 0 0 0.0.0.0:tsrmagt 0.0.0.0:* LISTEN 1740/cpdavd - accep tcp 0 0 0.0.0.0:tpcsrvr 0.0.0.0:* LISTEN 1740/cpdavd - accep tcp 0 0 0.0.0.0:idware-router 0.0.0.0:* LISTEN 1740/cpdavd - accep tcp 0 0 0.0.0.0:19584 0.0.0.0:* LISTEN 2032/./checkstatus tcp 0 0 0.0.0.0:autodesk-nlm 0.0.0.0:* LISTEN 1740/cpdavd - accep tcp 0 0 0.0.0.0:imaps 0.0.0.0:* LISTEN 1467/dovecot tcp 0 0 0.0.0.0:infowave 0.0.0.0:* LISTEN 1659/cpsrvd tcp 0 0 localhost:decbsrv 0.0.0.0:* LISTEN 1710/cPhulkd - proc tcp 0 0 0.0.0.0:pop3s 0.0.0.0:* LISTEN 1467/dovecot tcp 0 0 0.0.0.0:radsec 0.0.0.0:* LISTEN 1659/cpsrvd tcp 0 0 0.0.0.0:gnunet 0.0.0.0:* LISTEN 1659/cpsrvd tcp 0 0 0.0.0.0:eli 0.0.0.0:* LISTEN 1659/cpsrvd tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN 1651/mysqld tcp 0 0 0.0.0.0:submission 0.0.0.0:* LISTEN 545/exim tcp 0 0 0.0.0.0:pop3 0.0.0.0:* LISTEN 1467/dovecot tcp 0 0 localhost:783 0.0.0.0:* LISTEN 29456/perl tcp 0 0 0.0.0.0:imap 0.0.0.0:* LISTEN 1467/dovecot tcp 0 0 0.0.0.0:nbx-ser 0.0.0.0:* LISTEN 1659/cpsrvd tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN 464/rpcbind tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN 27234/nginx: master tcp 0 0 0.0.0.0:webcache 0.0.0.0:* LISTEN 8161/httpd tcp 0 0 0.0.0.0:nbx-dir 0.0.0.0:* LISTEN 1659/cpsrvd tcp 0 0 0.0.0.0:urd 0.0.0.0:* LISTEN 545/exim tcp 0 0 0.0.0.0:aries-kfinder 0.0.0.0:* LISTEN 1486/sshd tcp 0 0 mains.nuketeam.o:domain 0.0.0.0:* LISTEN 1830/named tcp 0 0 localhost:domain 0.0.0.0:* LISTEN 1830/named tcp 0 0 0.0.0.0:ftp 0.0.0.0:* LISTEN 1440/pure-ftpd (SER tcp6 0 0 [::]:smtp [::]:* LISTEN 545/exim tcp6 0 0 [::]:26 [::]:* LISTEN 545/exim tcp6 0 0 [::]:pcsync-https [::]:* LISTEN 8161/httpd tcp6 0 0 [::]:imaps [::]:* LISTEN 1467/dovecot tcp6 0 0 [::]:pop3s [::]:* LISTEN 1467/dovecot tcp6 0 0 [::]:submission [::]:* LISTEN 545/exim tcp6 0 0 [::]:pop3 [::]:* LISTEN 1467/dovecot tcp6 0 0 localhost:783 [::]:* LISTEN 29456/perl tcp6 0 0 [::]:imap [::]:* LISTEN 1467/dovecot tcp6 0 0 [::]:sunrpc [::]:* LISTEN 464/rpcbind tcp6 0 0 [::]:webcache [::]:* LISTEN 8161/httpd tcp6 0 0 [::]:urd [::]:* LISTEN 545/exim tcp6 0 0 [::]:aries-kfinder [::]:* LISTEN 1486/sshd tcp6 0 0 [::]:munin [::]:* LISTEN 6085/perl tcp6 0 0 [::]:ftp [::]:* LISTEN 1440/pure-ftpd (SER udp 0 0 localhost:323 0.0.0.0:* 506/chronyd udp 0 0 0.0.0.0:idxp 0.0.0.0:* 464/rpcbind udp 0 0 mains.nuketeam.o:domain 0.0.0.0:* 1830/named udp 0 0 localhost:domain 0.0.0.0:* 1830/named udp 0 0 0.0.0.0:sunrpc 0.0.0.0:* 464/rpcbind udp6 0 0 localhost:323 [::]:* 506/chronyd udp6 0 0 [::]:idxp [::]:* 464/rpcbind udp6 0 0 [::]:sunrpc [::]:* 464/rpcbind |
توضیحات دستور :
-l : تمامی listening socket ها را نمایش می دهد.
-t : اتصالات TCP را نمایش می دهد.
-u : اتصالات UDP را نمایش می دهد.
-p : نام نرم افزاری که بر روی آن پورت فعالیت می کند را چاپ می کند.
در خروجی دستور بالا همانطور که مشاهده می کنید netstat شماره پورت را چاپ نکرده است و فقط نام سرویس را به جای شماره پورت چاپ کرده است، برای چاپ پورت به جای نام سرویس -n را به دستور اضافه می کنیم پس :
1 | netstat -lntup |
خروجی :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1830/named tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 545/exim tcp 0 0 0.0.0.0:26 0.0.0.0:* LISTEN 545/exim tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 27234/nginx: master tcp 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN 8161/httpd tcp 0 0 0.0.0.0:2077 0.0.0.0:* LISTEN 1740/cpdavd - accep tcp 0 0 0.0.0.0:2078 0.0.0.0:* LISTEN 1740/cpdavd - accep tcp 0 0 0.0.0.0:2079 0.0.0.0:* LISTEN 1740/cpdavd - accep tcp 0 0 0.0.0.0:19584 0.0.0.0:* LISTEN 2032/./checkstatus tcp 0 0 0.0.0.0:2080 0.0.0.0:* LISTEN 1740/cpdavd - accep tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 1467/dovecot tcp 0 0 0.0.0.0:2082 0.0.0.0:* LISTEN 1659/cpsrvd tcp 0 0 127.0.0.1:579 0.0.0.0:* LISTEN 1710/cPhulkd - proc tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 1467/dovecot tcp 0 0 0.0.0.0:2083 0.0.0.0:* LISTEN 1659/cpsrvd tcp 0 0 0.0.0.0:2086 0.0.0.0:* LISTEN 1659/cpsrvd tcp 0 0 0.0.0.0:2087 0.0.0.0:* LISTEN 1659/cpsrvd tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1651/mysqld tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 545/exim tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 1467/dovecot tcp 0 0 127.0.0.1:783 0.0.0.0:* LISTEN 29456/perl tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1467/dovecot tcp 0 0 0.0.0.0:2095 0.0.0.0:* LISTEN 1659/cpsrvd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 464/rpcbind tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 27234/nginx: master tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 8161/httpd tcp 0 0 0.0.0.0:2096 0.0.0.0:* LISTEN 1659/cpsrvd tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 545/exim tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1486/sshd tcp 0 0 82.102.10.91:53 0.0.0.0:* LISTEN 1830/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1830/named tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1440/pure-ftpd (SER tcp6 0 0 :::25 :::* LISTEN 545/exim tcp6 0 0 :::26 :::* LISTEN 545/exim tcp6 0 0 :::8443 :::* LISTEN 8161/httpd tcp6 0 0 :::993 :::* LISTEN 1467/dovecot tcp6 0 0 :::995 :::* LISTEN 1467/dovecot tcp6 0 0 :::587 :::* LISTEN 545/exim tcp6 0 0 :::110 :::* LISTEN 1467/dovecot tcp6 0 0 ::1:783 :::* LISTEN 29456/perl tcp6 0 0 :::143 :::* LISTEN 1467/dovecot tcp6 0 0 :::111 :::* LISTEN 464/rpcbind tcp6 0 0 :::8080 :::* LISTEN 8161/httpd tcp6 0 0 :::465 :::* LISTEN 545/exim tcp6 0 0 :::7570 :::* LISTEN 1486/sshd tcp6 0 0 :::4949 :::* LISTEN 6085/perl tcp6 0 0 :::21 :::* LISTEN 1440/pure-ftpd (SER udp 0 0 127.0.0.1:323 0.0.0.0:* 506/chronyd udp 0 0 0.0.0.0:603 0.0.0.0:* 464/rpcbind udp 0 0 82.102.10.91:53 0.0.0.0:* 1830/named udp 0 0 127.0.0.1:53 0.0.0.0:* 1830/named udp 0 0 0.0.0.0:111 0.0.0.0:* 464/rpcbind udp6 0 0 ::1:323 :::* 506/chronyd udp6 0 0 :::603 :::* 464/rpcbind udp6 0 0 :::111 :::* 464/rpcbind |
همانطور که مشاهده می کنید در ستون Local Address، شماره ی پورت ها نیز چاپ شده است.
از آنجایی که سرویس های بر روی سرور ممکن است زیاد باشد خروجی این دستور طولانی می شود که می توان با استفاده از grep آن را کمی محدود تر کرد :
برای مثال ما می خواهیم پورتی که انجین ایکس بر روی آن در حال فعالیت می باشد را پیدا کنیم که به صورت زیر عمل می کنیم :
1 | netstat -lntup | grep "nginx" |
خروجی :
1 2 | tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 27234/nginx: master tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 27234/nginx: master |
و یا می خواهیم نرم افزاری که بر روی پورت 8080 در حال فعالیت می باشد را پیدا کنیم :
1 | netstat -lntup | grep ":80" |
خروجی :
1 2 | tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 8161/httpd tcp6 0 0 :::8080 :::* LISTEN 8161/httpd |
[line]
تیم فنی آلما هاست، در تمام ایام سال به صورت 24 ساعته در خدمت شما هستند تا برای خرید سرور اختصاصی آنتی دیداس شما را یاری کنند و جدیدترین آفر های موجود را برای شما متناسب با نیازتان ارائه کنند. برای دریافت آخرین آفر های ویژه و تخفیف های ما، می توانید از طریق تیکت با ما در ارتباط باشید تا آفر های موجود را بر اساس نیاز شما برایتان ارسال کنیم.
پرتال کاربری آلما هاست ( پاسخگویی 24 ساعته ) : پورتال مشتریان آلما هاست