3.2. Çekirdeği Yeniden Derleme

GENERIC kernelda IPFW yer almadığı için, çekirdeğe IPFWyi ekleyip yeniden derlemeliyiz. Çekirdek dosyası kullanılan donanımın mimarisine göre değişiklik göstermektedir. Çekirdek dosyasının olduğu klasör: /usr/src/sys/<MİMARİ>/conf/ tur. Buradaki GENERIC dosyasını firewall ismiyle kopyalayalım.

# cd /usr/src/sys/i386/conf
# cp GENERIC firewall
Çekirdek dosyasına bir takım satırlar eklemeliyiz. Eklenecek satırlar:
options IPFIREWALL                      #Firewall'ı aktif eder
options IPFIREWALL_VERBOSE              #Log tutma (syslogd)
options IPFIREWALL_VERBOSE_LIMIT=200    #Kural başına düşen log limiti
options IPFIREWALL_FORWARD              #Transparent Forwarding desteği (Transparent Proxy için gerekli)
options IPFIREWALL_FORWARD_EXTENDED     #Geliştirilmiş Transparent Forwarding desteği
options IPFIREWALL_DEFAULT_TO_ACCEPT    #Standart kuralı izin ver olarak ayarlar.
options IPDIVERT                        #Nat vb. Divet Soketlerini kullanan programlar için gerekli.
options DUMMYNET                        #Traffic Shaper. Band genişliği ve kuyruk(queue) ayarları için gereklidir.
options IPSTEALTH                       #Bu firewalldan geçen paketlerin TTL'lerinin değiştirmeden geçmesini sağlar.
                                        # Firewall'u traceroute gibi araçlardan gizlemek için gereklidir.
options TCP_DROP_SYNFIN                 #SYN+FIN Paketlerini düşür
Çekirdek dosyasına yukarıdaki satırları ekledikten sonra, aşağıdaki şekilde çekirdeği derleyebiliriz:
# cd /usr/src
# make buildkernel KERNCONF=firewall
# make installkernel KERNCONF=firewall


Uyarı Eğer KernelSecurityLevel 2 veya daha yüksek ise make installkernel işlemini Single User Modeda yapmalısınız.