Linux veya Unix benzeri işletim sistemleri altında bir portun kullanımda olup olmadığını nasıl anlayabilirim? Serverın network kartında/kartlarında hangi bağlantı noktalarının kullanıldığını doğrulamanız önemlidir. İzinsiz girişleri tespit etmek için açık portlara dikkat etmeniz gerekir. İzinsiz giriş dışında, sorun giderme amacıyla, bir portun sunucularınızda farklı bir uygulama tarafından zaten kullanımda olup olmadığını kontrol etmeniz gerekebilir. Örneğin Apache ve Nginx sunucusunu aynı sistem üzerine kurabilirsiniz. Bu nedenle Apache veya Nginx’in 80/443 numaralı TCP bağlantı noktasını kullanıp kullanmadığını bilmek gerekir. Kullanımdaki bağlantı noktalarını kontrol etmek ve bağlantı noktasını kullanan uygulamayı görüntülemek için lsof ve netstat araçları en çok kullanılan araçlardandır.
1. lsof komutu
lsof -i -P -n
lsof -i -P -n | grep LISTEN # Sadece "Listen" portları listeler.
Örnek çıktı
❯ lsof -i -P -n | grep LISTEN
systemd-r 549 systemd-resolve 13u IPv4 20972 0t0 TCP 127.0.0.53:53 (LISTEN)
nginx 739 root 11u IPv4 24520 0t0 TCP *:80 (LISTEN)
nginx 739 root 12u IPv6 24521 0t0 TCP *:80 (LISTEN)
nginx 739 root 13u IPv4 24522 0t0 TCP *:22222 (LISTEN)
nginx 739 root 14u IPv4 24523 0t0 TCP *:443 (LISTEN)
nginx 739 root 15u IPv6 24524 0t0 TCP *:443 (LISTEN)
nginx 741 www-data 11u IPv4 24520 0t0 TCP *:80 (LISTEN)
nginx 741 www-data 12u IPv6 24521 0t0 TCP *:80 (LISTEN)
nginx 741 www-data 13u IPv4 24522 0t0 TCP *:22222 (LISTEN)
nginx 741 www-data 14u IPv4 24523 0t0 TCP *:443 (LISTEN)
nginx 741 www-data 15u IPv6 24524 0t0 TCP *:443 (LISTEN)
nginx 742 www-data 11u IPv4 24520 0t0 TCP *:80 (LISTEN)
nginx 742 www-data 12u IPv6 24521 0t0 TCP *:80 (LISTEN)
nginx 742 www-data 13u IPv4 24522 0t0 TCP *:22222 (LISTEN)
nginx 742 www-data 14u IPv4 24523 0t0 TCP *:443 (LISTEN)
nginx 742 www-data 15u IPv6 24524 0t0 TCP *:443 (LISTEN)
sshd 1065 root 3u IPv4 1215778 0t0 TCP *:22 (LISTEN)
sshd 1065 root 4u IPv6 1215780 0t0 TCP *:22 (LISTEN)
netdata 1122 netdata 5u IPv4 28641 0t0 TCP *:19999 (LISTEN)
netdata 1122 netdata 6u IPv6 28642 0t0 TCP *:19999 (LISTEN)
netdata 1122 netdata 89u IPv4 28964 0t0 TCP 127.0.0.1:8125 (LISTEN)
mariadbd 23070 mysql 24u IPv6 1217922 0t0 TCP 127.0.0.1:3306 (LISTEN)
sshd 48205 root 9u IPv6 4611170 0t0 TCP [::1]:6010 (LISTEN)
sshd 48205 root 10u IPv4 4611171 0t0 TCP 127.0.0.1:6010 (LISTEN)
php-fpm7. 59769 root 7u IPv4 808985 0t0 TCP 127.0.0.1:9174 (LISTEN)
Çıktıdaki, bir satırı inceleyelim.
Uygulamanın Adı Kullanıcı Kullanılan Port
mariadbd 23070 mysql 24u IPv6 1217922 0t0 TCP 127.0.0.1:3306 (LISTEN)
2. Netstat yada SS komutu
netstat -tulpn | grep LISTEN
netstat komutu yeni linux kernelin de desteklenmediği için ss komutunu kullanmanız gerekir.
ss -tulw
ss -tulwn
ss -tulwn | grep LISTEN # Sadece "Listen" portları listeler.
Örnek Çıktı
❯ ss -tulp | grep LISTEN
tcp LISTEN 0 511 0.0.0.0:22222 0.0.0.0:* users:(("nginx",pid=742,fd=13),("nginx",pid=741,fd=13),("nginx",pid=739,fd=13))
tcp LISTEN 0 511 0.0.0.0:http 0.0.0.0:* users:(("nginx",pid=742,fd=11),("nginx",pid=741,fd=11),("nginx",pid=739,fd=11))
tcp LISTEN 0 4096 127.0.0.53%lo:domain 0.0.0.0:* users:(("systemd-resolve",pid=549,fd=13))
tcp LISTEN 0 32768 127.0.0.1:9174 0.0.0.0:* users:(("php-fpm7.4",pid=59769,fd=7))
tcp LISTEN 0 128 127.0.0.1:6010 0.0.0.0:* users:(("sshd",pid=48205,fd=10))
tcp LISTEN 0 511 0.0.0.0:https 0.0.0.0:* users:(("nginx",pid=742,fd=14),("nginx",pid=741,fd=14),("nginx",pid=739,fd=14))
tcp LISTEN 0 4096 127.0.0.1:8125 0.0.0.0:* users:(("netdata",pid=1122,fd=89))
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1065,fd=3))
tcp LISTEN 0 4096 0.0.0.0:19999 0.0.0.0:* users:(("netdata",pid=1122,fd=5))
tcp LISTEN 0 70 [::ffff:127.0.0.1]:mysql *:* users:(("mariadbd",pid=23070,fd=24))
tcp LISTEN 0 511 [::]:http [::]:* users:(("nginx",pid=742,fd=12),("nginx",pid=741,fd=12),("nginx",pid=739,fd=12))
tcp LISTEN 0 128 [::1]:6010 [::]:* users:(("sshd",pid=48205,fd=9))
tcp LISTEN 0 511 [::]:https [::]:* users:(("nginx",pid=742,fd=15),("nginx",pid=741,fd=15),("nginx",pid=739,fd=15))
tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1065,fd=4))
tcp LISTEN 0 4096 [::]:19999 [::]:* users:(("netdata",pid=1122,fd=6))
Kullanılan parametreleri inceleyelim.
-t : Sadece TCP kullanan portları göster.
-u : Sadece UDP kullanan portları göster.
-l : Sadece Listen bağlantıları göster.
-p : Portu kullanan uygulamanın adını ve PID numarasını göster.