Portlar ve Servisler
Ağ portlarının çalışma mantığını, yaygın TCP/UDP servislerini, dinleyen portların nasıl görüntülendiğini ve gereksiz servislerin nasıl güvenli şekilde kapatıldığını öğrenin.
1. Port Nedir?
Port, aynı IP adresi üzerinde çalışan farklı uygulama ve servisleri birbirinden ayıran mantıksal numaradır.
Bir ağ bağlantısı çoğunlukla IP adresi, port numarası ve taşıma protokolüyle tanımlanır.
192.168.1.10:443/TCP
IP adresi cihazı, port numarası ise o cihazdaki uygulamayı veya servisi belirtir.
2. Port Aralıkları
| Aralık | Ad | Kullanım |
|---|---|---|
| 0–1023 | Well-known ports | Standart sistem ve ağ servisleri |
| 1024–49151 | Registered ports | Uygulama ve üretici servisleri |
| 49152–65535 | Dynamic / Ephemeral ports | İstemci tarafı geçici bağlantılar |
3. TCP ve UDP Portları
Aynı port numarası TCP ve UDP üzerinde farklı servisler için kullanılabilir.
| Özellik | TCP | UDP |
|---|---|---|
| Bağlantı | Bağlantı odaklı | Bağlantısız |
| Güvenilirlik | Teslim ve sıralama kontrolü vardır | Teslim garantisi yoktur |
| Örnek | SSH, HTTP, HTTPS | DNS, NTP, VoIP |
4. Yaygın Well-Known Portlar
| Port | Protokol | Servis |
|---|---|---|
| 20/21 | TCP | FTP veri ve kontrol |
| 22 | TCP | SSH |
| 23 | TCP | Telnet |
| 25 | TCP | SMTP |
| 53 | TCP/UDP | DNS |
| 67/68 | UDP | DHCP |
| 69 | UDP | TFTP |
| 80 | TCP | HTTP |
| 110 | TCP | POP3 |
| 123 | UDP | NTP |
| 143 | TCP | IMAP |
| 161/162 | UDP | SNMP |
| 389 | TCP/UDP | LDAP |
| 443 | TCP | HTTPS |
| 445 | TCP | SMB |
5. Yaygın Registered Portlar
| Port | Servis |
|---|---|
| 1433 | Microsoft SQL Server |
| 1521 | Oracle Database |
| 2049 | NFS |
| 3306 | MySQL / MariaDB |
| 3389 | RDP |
| 5432 | PostgreSQL |
| 5900 | VNC |
| 6379 | Redis |
| 8080 | Alternatif HTTP / Proxy |
| 8443 | Alternatif HTTPS |
| 9200 | Elasticsearch HTTP |
| 27017 | MongoDB |
6. Ephemeral Portlar
İstemci bir sunucuya bağlanırken işletim sistemi geçici bir kaynak port seçer.
İstemci: 192.168.1.25:53124
Sunucu : 203.0.113.10:443
Burada 53124 geçici istemci portu, 443 ise sunucudaki HTTPS servis portudur.
7. Servis Nedir?
Servis, arka planda çalışan ve istemcilere belirli bir işlev sunan uygulamadır.
- SSH servisi uzak terminal erişimi sağlar.
- Nginx veya Apache web hizmeti sunar.
- MySQL veritabanı hizmeti sunar.
- DNS servisi alan adı çözümlemesi yapar.
8. Listening Port Nedir?
Bir servis bağlantı bekliyorsa ilgili port LISTEN durumunda görünür.
LISTEN 0 4096 0.0.0.0:22
Bu çıktı SSH servisinin tüm IPv4 arayüzlerinde 22 numaralı portu dinlediğini gösterebilir.
9. Bind Adresleri
| Bind adresi | Anlamı |
|---|---|
| 127.0.0.1 | Yalnızca yerel makineden erişilebilir. |
| 0.0.0.0 | Tüm IPv4 arayüzlerinde dinler. |
| ::1 | Yalnızca yerel IPv6 erişimi. |
| :: | Tüm IPv6 arayüzlerinde dinler. |
| 192.168.1.10 | Yalnızca belirtilen arayüz adresinde dinler. |
Servis yalnızca ihtiyaç duyulan ağ arayüzünde dinlemelidir.
10. ss ile Dinleyen Portları Görme
TCP ve UDP dinleyen portları ve süreçleri görmek için:
sudo ss -lntup
| Seçenek | Açıklama |
|---|---|
| -l | Dinleyen socketleri gösterir. |
| -n | Portları sayısal gösterir. |
| -t | TCP bağlantıları gösterir. |
| -u | UDP bağlantıları gösterir. |
| -p | İlgili süreci gösterir. |
11. Belirli Bir Portu Kontrol Etme
22 numaralı portu filtrelemek için:
sudo ss -lntp | grep ':22 '
443 numaralı port:
sudo ss -lntp | grep ':443 '
12. lsof ile Port ve Süreç Kontrolü
Belirli portu kullanan süreci görmek için:
sudo lsof -i :80
Kurulu değilse:
sudo apt install lsof -y
13. Servis Durumunu Kontrol Etme
SSH servisi:
sudo systemctl status ssh
Nginx servisi:
sudo systemctl status nginx
14. Servis Başlatma ve Durdurma
Servisi başlatmak için:
sudo systemctl start nginx
Durdurmak için:
sudo systemctl stop nginx
Yeniden başlatmak için:
sudo systemctl restart nginx
15. Açılışta Servis Yönetimi
Sistem açılışında otomatik başlatmak için:
sudo systemctl enable nginx
Otomatik başlatmayı kapatmak için:
sudo systemctl disable nginx
16. curl ile Servis Doğrulama
HTTP servisini kontrol etmek için:
curl -I http://127.0.0.1
HTTPS servisini kontrol etmek için:
curl -I https://alanadiniz.com
17. Netcat ile Port Kontrolü
Kendi sunucunuzda bir TCP portuna bağlantı testi yapmak için:
nc -vz 127.0.0.1 22
HTTPS portu:
nc -vz alanadiniz.com 443
18. Nmap ile Kendi Portlarını Doğrulama
Yalnızca kendi yerel sisteminiz için temel port kontrolü:
nmap 127.0.0.1
Belirli portlar:
nmap -p 22,80,443 127.0.0.1
Port taramasını yalnızca size ait veya açıkça izin verilmiş sistemlerde yapın.
19. Open, Closed ve Filtered Durumları
| Durum | Anlamı |
|---|---|
| open | Portta bağlantı kabul eden bir servis vardır. |
| closed | Cihaz erişilebilir ancak portta servis yoktur. |
| filtered | Firewall veya ağ cihazı sonucu engelliyor olabilir. |
| open|filtered | Portun açık veya filtreli olduğu kesin belirlenememiştir. |
20. UFW ile Port Yönetimi
UFW durumunu kontrol edin:
sudo ufw status numbered
HTTPS portuna izin vermek için:
sudo ufw allow 443/tcp
Belirli port kuralını kaldırmadan önce numaralı listeyi kontrol edin.
21. Belirli IP'ye Port İzni
Örneğin SSH erişimini yalnızca belirli yönetim IP'sine izinli hale getirmek için:
sudo ufw allow from 203.0.113.25 to any port 22 proto tcp
Örnek IP dokümantasyon amaçlıdır; gerçek yönetim IP'nizi kullanın.
22. Gereksiz Servisleri Kapatma
Çalışan servisleri listelemek için:
systemctl --type=service --state=running
Gereksiz bir servisi durdurup otomatik başlangıcını kapatmak için:
sudo systemctl stop servis-adi
sudo systemctl disable servis-adi
23. Veritabanı Portları ve Güvenlik
Veritabanı servisleri mümkünse doğrudan internete açık olmamalıdır.
- MySQL: 3306
- PostgreSQL: 5432
- Redis: 6379
- MongoDB: 27017
- Elasticsearch: 9200
Bu servisleri localhost, özel ağ veya VPN arkasında çalıştırmak daha güvenlidir.
24. Yönetim Servisleri
| Servis | Port | Öneri |
|---|---|---|
| SSH | 22/TCP | Anahtar tabanlı giriş ve IP kısıtı |
| RDP | 3389/TCP | VPN ve MFA arkasında |
| VNC | 5900/TCP | Doğrudan internete açılmamalı |
| Web yönetim paneli | Değişken | VPN, MFA ve IP kısıtı |
25. Docker Port Yayınlama
Docker'da port eşlemesi şu biçimdedir:
ports:
- "8080:80"
Bu yapı host üzerindeki 8080 portunu container içindeki 80 portuna bağlar.
Yalnızca localhost'a yayınlamak için:
ports:
- "127.0.0.1:8080:80"
26. Docker Portlarını Kontrol Etme
Çalışan container ve port eşlemeleri:
docker ps
Belirli container portları:
docker port container-adi
27. Servis Loglarını İnceleme
Systemd servisi logları:
sudo journalctl -u nginx --since "1 hour ago"
SSH logları:
sudo journalctl -u ssh --since "1 hour ago"
28. Port Çakışması
İki servis aynı IP ve port üzerinde aynı anda dinleyemez.
Port kullanımda hatasında:
sudo ss -lntp | grep ':8080 '
Ardından ilgili servisin yapılandırmasını veya port numarasını düzenleyin.
29. Port Sorun Giderme Sırası
- Servis çalışıyor mu?
- Doğru portta dinliyor mu?
- Doğru IP adresine bind edilmiş mi?
- Yerel bağlantı başarılı mı?
- Firewall kuralı izin veriyor mu?
- Router veya NAT yönlendirmesi gerekli mi?
- DNS doğru IP'ye gidiyor mu?
- Container port eşlemesi doğru mu?
30. Uygulamalı Laboratuvar
-
sudo ss -lntupile dinleyen portları listeleyin. - 22, 80 ve 443 portlarını ayrı ayrı filtreleyin.
-
İlgili servisleri
systemctl statusile kontrol edin. -
curl -Iile HTTP/HTTPS servisini doğrulayın. -
nc -vzile yerel port bağlantısını test edin. - UFW kurallarını görüntüleyin.
- Gereksiz bir test servisini durdurup portun kapandığını doğrulayın.
- Servisi yeniden başlatıp portun tekrar dinlediğini kontrol edin.
31. Güvenlik Kontrol Listesi
| Kontrol | Soru |
|---|---|
| Gereklilik | Bu servis gerçekten gerekli mi? |
| Bind | Yalnızca gerekli arayüzde mi dinliyor? |
| Firewall | Erişim gerekli IP'lerle sınırlı mı? |
| Kimlik doğrulama | Güçlü parola, anahtar veya MFA var mı? |
| Şifreleme | Trafik TLS veya VPN ile korunuyor mu? |
| Güncelleme | Servis güncel mi? |
| Loglama | Girişler ve hatalar izleniyor mu? |
32. Sonuç
Bu dokümanda port aralıkları, TCP ve UDP servisleri, well-known ve registered portlar, listening ve bind kavramları, ss, lsof, systemctl, curl, netcat, Nmap, UFW ve Docker port eşlemeleri ele alındı.
Güvenli bir sistemde yalnızca gerekli servisler çalışmalı, portlar doğru arayüzlerde dinlemeli ve erişim güvenlik duvarı ile sınırlandırılmalıdır.