CSF Firewall DHCP UDP 67/68 Port Sorunu ve Kalıcı Çözümü

Linux sunucularda CSF (ConfigServer Security & Firewall) kullanırken bazen DHCP ile ilgili beklenmeyen network sorunları yaşanabilir.

Sunucu ilk açılışta IP adresini alabilir ve bağlantı sorunsuz çalışabilir. Ancak DHCP lease süresi yenilenmesi gerektiğinde firewall DHCP trafiğini engellerse bağlantı kopmaları veya IP yenileme problemleri meydana gelebilir.

Bu yazıda CSF üzerinde DHCP iletişimini güvenli şekilde izinli hale getirmeyi, doğru csfpost.sh dosyasını bulmayı ve yapılan ayarları kontrol etmeyi anlatacağız.


DHCP UDP 67 ve UDP 68 Portları Ne İçin Kullanılır?

DHCP protokolü iki temel UDP portu kullanır:

GörevPort
DHCP ServerUDP 67
DHCP ClientUDP 68

Normal DHCP iletişimi:

DHCP Client
UDP 68
     |
     |
UDP 67
DHCP Server

şeklindedir.

Sunucu DHCP lease yenileme sırasında:

Client:
Kaynak Port : 68
Hedef Port : 67


Server:
Kaynak Port : 67
Hedef Port : 68

iletişimini gerçekleştirir.


DHCP Sorununun Belirtileri

CSF tarafından DHCP trafiği engellendiğinde genellikle şu belirtiler görülür:

  • Sunucu reboot sonrası çalışır.
  • IP adresi ilk açılışta alınır.
  • Bir süre sonra DHCP lease yenileme başarısız olur.
  • Network bağlantısı kesilebilir.
  • NetworkManager loglarında DHCP timeout görülebilir.

Kontrol etmek için:

journalctl -u NetworkManager | grep -Ei "dhcp|lease"

Başarılı bir DHCP işlemi örneği:

dhcp4: state changed new lease

şeklinde görünür.


En Kritik Nokta: Önce csfpost.sh Dosya Yolunu Kontrol Edin

CSF üzerinde yapılan en yaygın hata, yanlış dosyayı düzenlemektir.

Birçok kullanıcı direkt olarak:

/etc/csf/csfpost.sh

dosyasını değiştirir.

Ancak bazı kurulumlarda CSF öncelikle şu dosyayı kullanır:

/usr/local/csf/bin/csfpost.sh

Bu nedenle ilk yapılması gereken aktif dosyanın bulunmasıdır.

Kontrol:

grep -R "csfpost.sh" /etc/csf /usr/local/csf /usr/sbin 2>/dev/null

CSF çalışma sırası genellikle:

1. /usr/local/csf/bin/csfpost.sh
2. /etc/csf/csfpost.sh

şeklindedir.

Eğer:

/usr/local/csf/bin/csfpost.sh

mevcutsa, /etc/csf/csfpost.sh içine eklenen kurallar çalışmayabilir.

Bu nedenle firewall ayarlarında değişiklik yapmadan önce mutlaka gerçek kullanılan dosya kontrol edilmelidir.


Aktif csfpost.sh Dosyasını Kontrol Etme

Şu komut ile kontrol edilebilir:

ls -l /usr/local/csf/bin/csfpost.sh /etc/csf/csfpost.sh 2>/dev/null

Örneğin:

-rwx------ root root /usr/local/csf/bin/csfpost.sh

görülüyorsa kullanılacak dosya:

/usr/local/csf/bin/csfpost.sh

olacaktır.


DHCP Portlarını Güvenli Şekilde Açmak

UDP 67 ve UDP 68 portlarını tüm internete açmak önerilmez.

Yanlış yapılandırma:

WAN -> UDP 67 açık
WAN -> UDP 68 açık

Bu gereksiz bir erişim alanı oluşturur.

Daha doğru yöntem:

  • Sadece DHCP sunucusuna izin vermek.
  • Genel internet erişimini kapalı bırakmak.

Örnek:

iptables -I OUTPUT -p udp -d DHCP_SERVER_IP --sport 68 --dport 67 -j ACCEPT

iptables -I INPUT -p udp -s DHCP_SERVER_IP --sport 67 --dport 68 -j ACCEPT

Burada:

DHCP_SERVER_IP

yerine altyapınızın gerçek DHCP sunucu adresi yazılmalıdır.


csfpost.sh İçinde Kalıcı Hale Getirme

Kuralın reboot sonrası kaybolmaması için aktif kullanılan:

csfpost.sh

dosyasına eklenmelidir.

Örnek:

#!/bin/bash

iptables -I OUTPUT -p udp -d DHCP_SERVER_IP --sport 68 --dport 67 -j ACCEPT

iptables -I INPUT -p udp -s DHCP_SERVER_IP --sport 67 --dport 68 -j ACCEPT

Dosya izinleri:

chmod 700 /path/to/csfpost.sh

CSF Yeniden Yükleme

Değişikliklerden sonra:

csf -r

çalıştırılır.

Ardından kurallar kontrol edilir.


Firewall Kural Kontrolü

OUTPUT kontrol:

iptables -S OUTPUT | grep -E "sport 68|dport 67"

Beklenen:

udp --sport 68 --dport 67 ACCEPT

INPUT kontrol:

iptables -S INPUT | grep -E "sport 67|dport 68"

Beklenen:

udp --sport 67 --dport 68 ACCEPT

Reboot Sonrası Kesin Test

Sunucu yeniden başladıktan sonra:

NetworkManager durumu:

systemctl status NetworkManager

Beklenen:

Active: active (running)

DHCP Log Kontrolü:

journalctl -u NetworkManager -b | grep -Ei "dhcp|lease"

Başarılı sonuç:

dhcp4: state changed new lease

Route Kontrolü:

ip route

DHCP üzerinden gelen varsayılan route görünmelidir.


iptables ve nftables Kontrolü

Yeni Linux sistemlerinde:

iptables -V

çıktısı:

iptables v1.8.x (nf_tables)

olabilir.

Bu durumda iptables komutları nftables altyapısını kullanır.

Kontrol:

nft list ruleset | grep -E "67|68"

yapılabilir.


Sık Yapılan Hata

Yanlış dosyayı değiştirmek

En sık karşılaşılan problem:

/etc/csf/csfpost.sh

dosyasına kural eklenir ancak CSF:

/usr/local/csf/bin/csfpost.sh

dosyasını çalıştırdığı için hiçbir değişiklik uygulanmaz.

Sonuç:

  • Firewall değişti sanılır.
  • Saatlerce test yapılır.
  • DHCP sorunu devam eder.

Bu nedenle ilk kontrol her zaman:

CSF hangi csfpost.sh dosyasını kullanıyor?

olmalıdır.


Son Sözler:

CSF üzerinde DHCP kaynaklı network sorunlarını çözmenin ana noktası sadece UDP 67 ve 68 portlarını açmak değildir.

Doğru yöntem:

  1. Önce aktif csfpost.sh dosyasını tespit etmek.
  2. DHCP trafiğini sadece gerçek DHCP sunucusuna izin verecek şekilde sınırlandırmak.
  3. Kuralları CSF’nin kalıcı çalıştırdığı dosyaya eklemek.
  4. Firewall kurallarını kontrol etmek.
  5. Reboot sonrası DHCP lease yenilemesini test etmek.

UDP 67 ve 68 portlarını tamamen internete açmak yerine sadece gerekli DHCP sunucusu ile sınırlandırmak hem güvenliği korur hem de DHCP yenileme problemlerini çözer.

Özellikle cloud ve dedicated sunucularda CSF kullanan yöneticiler için “önce doğru csfpost.sh dosyasını bul” adımı, gereksiz zaman kaybını önleyen en önemli kontroldür.

Scroll to Top