IP adresleri, bir ağdaki cihazları benzersiz olarak tanımlar. Portlar ise bir cihaz üzerindeki hizmetleri birbirinden ayırır. TCP ve IP protokolleri aracılığıyla iletişim ve veri alışverişine olanak sağlayarak internetin düzgün çalışmasında önemli bir rol oynarlar. Bu rehberde, Apache HTTP sunucusunun hangi IP adresi ve portta çalıştığını bulmak için kullanabileceğimiz komutlardan bahsedeceğiz.
1. lsof
Komutunu Kullanma
lsof
komutu, bir Linux sisteminde açık dosyalar, işlemler ve ağ bağlantıları arasındaki ilişkiyi gösterir. Bu, özellikle sorun giderme aşamalarında yardımcı olur ve kaynak kullanımını belirler. Özellikle dosya tanımlayıcıları ve ağ soketleri hakkında ayrıntılı bilgi sunar.
Komutun Kullanımı:
$ sudo lsof -i -P -n | grep apache2
Eğer CentOS gibi bazı dağıtımlarda çalışıyorsanız, apache2
yerine httpd
kullanmanız gerekebilir:
$ lsof -i -P -n | grep httpd
Bu komut, açık ağ bağlantılarını listeler ve sonuçları yalnızca Apache ile ilgili olanları gösterecek şekilde grep
ile filtreler. Örneğin:
apache2 1687 root 4u IPv6 25609 0t0 TCP *:80 (LISTEN)
Çıktıda yer alan *:80
, Apache’nin 80 numaralı port üzerinden tüm ağ arayüzlerinden gelen bağlantılara açık olduğunu gösterir. Buradaki *:80
ifadesi, Apache’nin yalnızca localhost ile sınırlı olmadığını, tüm mevcut ağ arayüzlerinden erişilebilir olduğunu belirtir.
Komutun Parametreleri:
-i
: Ağ bağlantılarına ait bilgileri gösterir.-P
: Port numaralarının isimlere çevrilmesini engeller.-n
: Ağ numaralarının hostname (makine adı) çözümlemesini yapmaz.
Bu parametrelerle, komut hızlı ve doğrudan IP adresi ve port bilgilerini gösterir.
2. netstat
Komutunu Kullanma
netstat
komutu, Linux işletim sisteminde ağ bağlantıları, yönlendirme tabloları ve arayüz istatistikleri hakkında bilgi sağlar. netstat
ile Apache’nin hangi IP adresi ve portu kullandığını öğrenebiliriz.
Aktif Bağlantıları İncelemek İçin:
$ sudo netstat -tlp
Bu komut, yalnızca dinleme durumundaki TCP bağlantılarını listeler. Çıktı şu şekildedir:
tcp6 0 0 [::]:http [::]:* LISTEN 1662/apache2
Burada Apache, hem IPv4 hem de IPv6 arayüzlerinde, HTTP portu üzerinden gelen bağlantılara açıktır. 0.0.0.0
ve [::]
adresleri, sunucunun herhangi bir ağ arayüzünden gelen bağlantıları kabul edecek şekilde yapılandırıldığını gösterir.
grep
ile Apache’ye Özel Filtreleme:
Belirli bir servis için çıktıyı filtrelemek için grep
komutunu kullanabiliriz:
$ sudo netstat -tlp | grep apache2
Bu komutla Apache’nin yalnızca aktif IPv6 bağlantılarını görebiliriz. Çıktıdaki [::]:http
ifadesi, Apache’nin tüm IPv6 arayüzlerinde 80 numaralı portu dinlediğini belirtir.
3. ss
Komutunu Kullanma
ss
, ağ soketleri hakkında bilgi sağlayan bir komuttur. ss
, modern Linux sistemlerinde netstat
’ın yerine kullanılan daha güncel bir araçtır.
Komut Kullanımı:
$ sudo ss -tlwnp | grep LISTEN
Bu komut, dinleme ve ham TCP soketleri hakkında ayrıntılı bilgi sunar. Çıktı şu şekildedir:
tcp LISTEN 0 511 :80 *: users:(("apache2",pid=10724,fd=4), ...)
Bu çıktıda *:80
ifadesi, Apache’nin tüm arayüzlerde port 80 üzerinden dinleme yaptığını gösterir. Apache’nin çoklu işlem veya çoklu iş parçacıklı modeli kullanarak gelen bağlantılarla başa çıktığını görebiliriz.
Parametrelerin Açıklaması:
-t
: TCP soketlerini gösterir.-l
: Sadece dinleme modundaki soketleri listeler.-w
: Ham soketleri gösterir.-n
: Host adlarını çözümlemez, adresleri sayısal olarak gösterir.-p
: Her soketle ilişkilendirilmiş işlem kimliklerini gösterir.
4. nmap
Komutunu Kullanma
nmap
, ağ keşfi ve güvenlik taramaları için güçlü bir açık kaynak aracıdır. Eğer sisteminizde nmap
yüklü değilse, aşağıdaki komut ile kurabilirsiniz:
$ sudo apt install nmap
Apache’nin IP ve Port Bilgilerini Görmek İçin:
$ sudo nmap -p 80 localhost
Çıktı şu şekildedir:
PORT STATE SERVICE
80/tcp open http
Buradaki açık 80 numaralı port, bir web sunucusunun çalıştığını gösterir.
5. apachectl
Komutu Kullanma
apachectl
, Apache’nin sanal ana bilgisayar yapılandırmasını gösterir. Bu komut ile Apache’nin hangi IP adreslerinde ve portlarda dinlediğini görebiliriz.
Kullanımı:
$ apachectl -S
Çıktı, Apache’nin tüm IP adresleri üzerinden, özellikle 127.0.1.1 üzerinde port 80’de dinleme yaptığını gösterir.
6. httpd.conf
Dosyasını İnceleme
Apache HTTP Sunucusu’nun ana yapılandırma dosyası olan httpd.conf
dosyasında, sunucunun davranışını özelleştirebilir ve sanal ana bilgisayarları yönetebilirsiniz. Apache’nin hangi IP adresi ve portu dinlediğini görmek için bu dosyayı inceleyebilirsiniz.
Bu komutlarla, Apache’nin ağ üzerindeki erişilebilirlik bilgilerini kolayca görebilirsiniz. Sunucu yöneticileri için bu bilgileri öğrenmek, özellikle sorun giderme ve güvenlik incelemelerinde oldukça faydalıdır.