Sunucu İçin IP Tables Kuralları Hazırlama

Furko

Astsubay Başçavuş
Admin
Katılım
24 Kasım 2025
Mesajlar
982
Reaksiyon puanı
56

IP Tables Nedir ve Neden Hayati Öneme Sahiptir?​


IP Tables, Linux tabanlı işletim sistemlerinde ağ paketlerini filtrelemek ve yönlendirmek için kullanılan bir güvenlik duvarı (firewall) uygulamasıdır. Herhangi bir sunucunun dış dünyadan gelebilecek tehditlere karşı ilk savunma hattını oluşturur. İnternete açık her sunucu, kötü niyetli saldırılara, yetkisiz erişim denemelerine ve çeşitli siber tehditlere açıktır. Bu nedenle, IP Tables kurallarını doğru bir şekilde yapılandırmak, sunucunuzun güvenliğini sağlamanın temel adımlarından biridir. Yeterli koruma olmadan sunucunuzun veri bütünlüğü, erişilebilirliği ve gizliliği ciddi risk altında kalır. Güvenlik duvarı, yalnızca izin verilen trafiğin sunucuya ulaşmasını veya sunucudan ayrılmasını sağlayarak bir kapı görevlisi işlevi görür. Bu durum, potansiyel güvenlik açıklarını büyük ölçüde azaltır.

IP Tables'ın Temel Bileşenleri: Zincirler ve Politikalar​


IP Tables, belirli zincirler ve bu zincirler içinde tanımlanan kurallar aracılığıyla çalışır. Başlıca üç temel zincir bulunur: INPUT, OUTPUT ve FORWARD. INPUT zinciri, sunucuya gelen paketleri kontrol ederken, OUTPUT zinciri sunucudan çıkan paketleri yönetir. FORWARD zinciri ise sunucu üzerinden geçen (yönlendirilen) paketlerle ilgilenir. Her zincirin varsayılan bir politikası vardır; bu politika, hiçbir kuralın eşleşmediği paketlere ne yapılacağını belirler. Genellikle, güvenlik için INPUT ve FORWARD zincirlerinin varsayılan politikası DROP (paketleri sessizce yok etme) veya REJECT (paketleri reddetme ve gönderene bilgi verme) olarak ayarlanır. OUTPUT zincirinin politikası ise genellikle ACCEPT (kabul etme) olarak belirlenir. Bu, sunucunuzun varsayılan olarak yalnızca sizin açıkça izin verdiğiniz trafiğe yanıt vermesini sağlar.

Genel Sunucu Güvenliği İçin Başlangıç Kuralları​


Yeni bir sunucu kurarken veya mevcut bir sunucunun güvenliğini artırırken bazı temel IP Tables kuralları uygulanmalıdır. Öncelikle, mevcut tüm kuralları temizlemek ve zincirlerin varsayılan politikalarını DROP olarak ayarlamak iyi bir başlangıçtır. Ardından, SSH (port 22) gibi yönetim hizmetleri için belirli IP adreslerinden veya tüm ağdan gelen bağlantılara izin verilmelidir. Örneğin, belirli bir yönetim IP adresinden SSH erişimine izin vermek güvenliği önemli ölçüde artırır. Ayrıca, sunucunun yerel döngü (loopback) arayüzüne (127.0.0.1) tüm trafiğe izin veren kurallar eklemek sistemin düzgün çalışması için gereklidir. Ek olarak, sunucunun sağladığı web hizmetleri (HTTP/HTTPS, port 80/443) gibi diğer hizmetler için de gerekli portların açılmasına izin verilmelidir. Bununla birlikte, gereksiz tüm portlar kapalı kalmalıdır.

Gelen Bağlantıları Güvenle Yönetme Sanatı​


Sunucuya gelen bağlantılar, siber saldırıların en yaygın hedefidir. Bu nedenle, INPUT zinciri kurallarını dikkatle yapılandırmak büyük önem taşır. İlk kural genellikle halihazırda kurulmuş ve ilgili bağlantılara ait paketlere izin vermektir; bu sayede mevcut oturumlar kesintiye uğramaz. Ardından, yukarıda bahsedildiği gibi, SSH (genellikle 22. port) gibi yönetim portlarına sadece güvenilir IP adreslerinden veya belirli IP aralıklarından erişime izin verilmelidir. Bir diğer deyişle, yetkisiz erişim riskini en aza indirgemek için mümkün olduğunca kısıtlı bir erişim politikası izlenmelidir. Eğer sunucunuz bir web sitesi barındırıyorsa, 80 (HTTP) ve 443 (HTTPS) portlarına gelen bağlantılara izin vermeniz gerekir. FTP, veritabanı gibi ek hizmetler varsa, yalnızca ilgili portlar ve erişim kuralları tanımlanmalıdır.

Giden Bağlantıları Kontrol Altına Almanın Önemi​


Çoğu zaman sadece gelen trafiğe odaklanılsa da, sunucudan çıkan (outgoing) bağlantıları kontrol etmek de güvenlik için kritik öneme sahiptir. Bir saldırgan sunucunuzu ele geçirirse veya sunucunuz kötü amaçlı yazılımlar tarafından enfekte olursa, bu yazılımlar genellikle komuta ve kontrol sunucularıyla iletişim kurmaya çalışır. OUTPUT zinciri kuralları sayesinde, sunucudan çıkan trafiği kısıtlayarak bu tür iletişimleri engelleyebilirsiniz. Örneğin, sunucunuzun sadece DNS sorguları (port 53), HTTP/HTTPS istekleri (port 80/443) ve belirli güncellemeler için dış dünyaya bağlantı kurmasına izin verebilirsiniz. Başka bir deyişle, sadece ihtiyaç duyulan portlara giden trafiğe izin vererek olası veri sızıntılarını veya botnet faaliyetlerini büyük ölçüde sınırlayabilirsiniz. Bu durum, sunucunuzun bir saldırı aracı olarak kullanılmasını engellemek için önemli bir katmandır.

Hazırlanan Kuralları Kalıcı Hale Getirme Yöntemleri​


IP Tables kuralları varsayılan olarak geçicidir; yani sunucu yeniden başlatıldığında kaybolurlar. Bu nedenle, hazırladığınız güvenlik duvarı kurallarını kalıcı hale getirmek zorunludur. Çeşitli Linux dağıtımlarında bunu sağlamak için farklı yöntemler mevcuttur. Debian/Ubuntu tabanlı sistemlerde `iptables-persistent` paketi kullanılabilir. Bu paket, kuralları kaydetmenize ve sistem başlangıcında otomatik olarak yüklemenize olanak tanır. CentOS/RHEL gibi dağıtımlarda ise `iptables-services` paketiyle birlikte `service iptables save` komutu kullanılarak kurallar `/etc/sysconfig/iptables` dosyasına kaydedilir ve sistem açılışında otomatik olarak yüklenir. Bununla birlikte, bazı sistem yöneticileri, kuralları doğrudan bir betik dosyasına yazıp bu betiği sistem açılışında çalıştırmayı tercih eder. Her yöntemde amaç, kuralların sunucu yeniden başlatıldığında da etkin kalmasını sağlamaktır.

IP Tables Yönetiminde Sık Yapılan Hatalardan Kaçınmak​


IP Tables kurallarını yönetirken yapılan bazı yaygın hatalar, sunucu güvenliğini tehlikeye atabilir veya yönetimi zorlaştırabilir. En sık yapılan hatalardan biri, SSH erişimini yanlışlıkla engelleyerek sunucudan kendinizi kilitlemektir. Bu nedenle, özellikle uzaktan erişimde kuralları dikkatlice test etmek ve bir geri dönüş planı bulundurmak hayati önem taşır. Ek olarak, "ACCEPT all" kuralını gereksiz yere kullanmak veya varsayılan politikayı çok gevşek bırakmak da büyük bir güvenlik açığıdır. Başka bir deyişle, "Her şeyi kabul et" kuralı en son eklenmelidir ve yalnızca kesinlikle gerekli olduğunda kullanılmalıdır. Kuralların karmaşık ve iyi belgelenmemiş olması da yönetimi zorlaştırır; bu nedenle, kuralları basit tutmak ve her kuralın ne işe yaradığını açıklayan yorumlar eklemek iyi bir uygulamadır. Sonuç olarak, düzenli yedekleme ve testler, olası sorunları minimize etmenize yardımcı olur.
 
Gerçekten çok kapsamlı ve yerinde bir konu olmuş, eline sağlık! IP Tables hakkında merak edilen hemen her şeye değinmişsin, özellikle başlangıç seviyesindeki kullanıcılar için harika bir rehber. Sunucu güvenliğinin temelini oluşturan bu konuyu bu kadar detaylı ve anlaşılır bir şekilde ele alman çok değerli.

Özellikle "Giden Bağlantıları Kontrol Altına Almanın Önemi" kısmına bayıldım. Çoğu zaman sadece gelen trafiğe odaklanılıyor ama sunucunun dışarıya ne konuştuğunu denetlemek de en az o kadar mühim. Ayrıca, kuralları kalıcı hale getirme ve sık yapılan hatalar bölümü de çok değerli, kaç kere kendini SSH'ten kilitleyen arkadaş gördüm... Test etmeden uygulamamak ve bir geri dönüş planı bulundurmak gerçekten altın değerinde bir tavsiye.

Bu tür detaylı paylaşımlar forum için çok faydalı oluyor. Tekrar eline sağlık, emeklerine sağlık!
 
Geri
Üst Alt