SSH VPS

Iptables Rehberi – Linux Güvenlik Duvarı ile Ubuntu VPS Güvenliği

Iptables Rehberi - Linux Güvenlik Duvarı ile Ubuntu VPS Güvenliği

Giriş

İstenmeyen kişilerin sisteme erişmesini öncelemek için kullanıcı tarafından belirlenen kurallarla sunucuya gelen ve giden trafiğin izlenmesi ve filtrelenmesinde Iptables Linux güvenlik duvarı kullanılır. Iptables kullanarak yalnızca seçili trafiği sunucunuza izin verecek kurallar belirleyebilirsiniz. Bu Iptables rehberinde web uygulamanızı nası Iptables ile güvene alabileceğinizi öğreneceksiniz.

Not: RHEL / CentOS işletim sistemlerinde firewallD adı verilen bir sistem zaten kuruludur. Eğer Iptables kullanmak istiyorsanız, öncelikle bunu devre dışı bırakmalısınız.

Nelere ihtiyacınız olacak?

Iptables rehberine başlamadan önce aşağıdakilere ihtiyacınız vardır:

SSH ve SSH komutları hakkında daha fazla bilgi edinmek isterseniz bu rehbere göz atın.

Iptables Temelleri

İnternet üzerinde tüm veri paketler halinde gönderilir. Linux kernel’i hem gelen hem de giden trafiğin paketlerini paket filtresi tablosu kullanarak filtrelemenize olanak veren bir arayüze sahiptir. Iptables bu tabloları kurmak, yönetmek ve incelemek için bir komut satırı uygulaması ve Linux güvenlik duvarıdır. Birden fazla tablo belirlenebilir. Her tablo birden fazla zincir içerebilir. Zincir kuralların bütünüdür. Her kural bir paketin paket kuralı ile uyduğunda o paketle ne yapılması gerektiğini içerir. Bir paket eşleştiğinde, ona bir TARGET (HEDEF) verilir. Target eşlenmesi için başka bir zincir veya aşağıdaki bazı özel değerler olabilir.

  • ACCEPT (KABUL ET): Paketin geçmesine izin verileceği anlamına gelir.
  • DROP (REDDET): Paketin geçmesine izin verilmeyeceği anlamına gelir.
  • RETURN (GERİ ÇEVİR): Şimdiki zincirin pas geçilmesi ve çağrıldığı zincirde bir sonraki kurala geçilmesi gerektiği anlamına gelir.

Bu rehberde varsayılan tablolardan biri olan filter ile çalışacağız. Filtreler tablosu üç zincire (kural gurubuna) sahiptir.

  • INPUT – Bu zincir sunucuya gelen paketleri kontrol etmek için kullanılır. Bağlantıları port, protokol ve kaynak IP adresi bazında engelleyebilir veya izin verebilirsiniz.
  • FORWARD – Bu zincir sunucuya gelen ama başka bir yere yönlendirilecek paketleri filtrelemek için kullanılır.
  • OUTPUT – Bu zincir sunucudan giden paketleri filtrelemek için kullanılır.

ip tables input forward ve outputAdım 1 – Iptables Linux Güvenlik Duvarı Kurulumu

1. Iptables kurulumu

Iptables neredeyse tüm Linux dağıtımlarında varsayılan olarak kurulu gelir. Ancak eğer Debian veya Ubuntu sisteminizde kurulu değilse, aşağıdaki satırları çalıştırarak kurabilirsiniz.

2. Mevcut Iptables durumunu kontrol etmek

Bu komut ile mevcut Iptables yapılandırmanızın drumunu kontrol edebilirsiniz. Burada -L seçeneği tüm kuralları göstermek için ve -v seçeneği ise daha geniş bir liste almak için kullanılıyor. Lütfen bu seçeneklerin büyük/küçük harf duyarlı olduğunu not ediniz.

Örnek çıktı:

Bu yukarıdaki komutun çıktısıdır. Burada, tüm zincirler (chain) varsayılan ACCEPT politikasına ayarlıdır. Şu anda zincirlerde herhangi bir kural bulunmamaktadır.

Bu rehberi daha öğretici kılmak için INPUT zincirini gelen trafiği filtrelemek için düzenleyeceğiz.

Adım 2 – Zincir Kuralları Belirlemek

Kural belirlemek onu zincire (listeye) eklemek demektir. Olağan seçeneklerle düzenlenmiş Iptables komutu şu şekildedir:

Burada -A sona eklemeyi(append) temsil ediyor. Zincir hangi zincire kurallarımızı eklemek istediğimizi gösteriyor. Interface ise hangi ağ arayüzündeki trafiği filtrelemek istediğimizi belirtiyor. Protocol de paketleri ağ protokolüne göre filtreleyecek kuralı belirtiyor. Aynı zamanda üzerinde trafiği filtrelemek için port, port numarası da belirtebilirsiniz.

Iptables komutları ve seçenekleri hakkında daha fazla bilgi için Iptables sayfasını kontrol edebilirsiniz.

1. Localhost üzerinde trafiğe izin vermek

Sunucu üzerindeki uygulamaların ve veritabanlarının aynı şekilde iletişim kurmasına devam etmesini istiyoruz.

Örnek çıktı:

Burada -A seçeneği INPUT zincirinin sonuna eklenmek, lo arayüzünde tüm bağlantılara izin vermek için kullanılmıştır. lo loopback interface anlamına gelir. Aynı makinedeki veritabanı veya web uygulaması arasındaki gibi localhost üzerindeki tüm iletişim için kullanılır.

2. HTTP, SSH ve SSL portuna bağlantılara izin vermek

Olağan HTTP (port 80), https (port 443) ve ssh (port 22) bağlantılarının aynen normalde olduğu gibi çalışmaya devam etmesini isteriz. Bu portlara izin vermek için aşağıdaki komutları çalıştırın. Aşağıdaki komutlarda protokolü -p seçeneği ile ve her protokolün ilgili olduğu portu -dport (destination port – hedef port) ile gösterdik.

Şimdi belirlenen port numaralarından gelen tüm TCP protokol bağlantıları kabul edilecek.

3. Kaynağına göre paketleri filtrelemek

Eğer kaynak IP adresine veya adres aralığına göre gelen trafiği kabul etmek veya reddetmek istiyorsanız, bunu -s seçeneği ile belirtebilirsiniz. Örneğin, 192.168.1.3 adresinden gelen paketleri kabul etmek için:

Benzer şekilde aynı IP adresinden gelen paketleri reddetmek için:

Eğer gelen paketleri reddetmek için IP aralığı belirtmek isterseniz,-m seçeneğini ve IP aralığını -src-range ile belirterek Iprange modülünü kullanabilirsiniz.

4. Diğer tüm trafiği reddetmek

Note: Kurallarınızı belirledikten sonra gelen diğer trafiğin tamamını reddetmek (DROP) önemlidir. Aksi durumda diğer tüm açık portlardan izin verilmemiş erişim kurulabilir.

Bu komut yukarıda belirtilen komutlarda belirlenen portlar dışındaki tüm trafiği reddeder.

Şimdi ayarladığınız kendi kurallarınızın tamamını şu komut ile kontrol edebilirsiniz:

5. Kuralları silmek

Eğer tüm kuralları silmek ve yeniden temiz bir sayfa açmak isterseniz, bu komutu kullanabilirsiniz:

Bu komut mevcut tüm kuralları siler. Eğer belirli bir kuralı silmek isterseniz bunu -D seçeneği ile yapabilirsiniz. Çncelikle kuralları numaralarıyla görmek için şu komutu girin:

Ardından kuralları numaralarıyla göreceksiniz.

Adım 3 – Değişiklikleri kalıcı hale getirmek

Oluşturduğumuz Iptables kuralları hafızada saklanır. Bu da her tekrar başlatma (reboot) sonrasında tekrar tanımlamamız anlamına gelir. Reboot sonrasında kuralların kalmasını sağlamak için Ubuntu/Debian sistemlerinde şu komutu kullanabilirsiniz:

Bu komut kuralları sistem yapılandırma dosyasına kaydeder ve her tekrar başlatmadan sonra sistem bu yapılandırma dosyasından Iptables kurallarını tekrar devreye alır. Kurallarda her değişiklik yaptığınızda bu komutu çalıştırmalısınız.

Koruma duvarını sıfırlamak için tüm kuralları silin ve değişiklikleri kaydedin:

Sonuç

Bu Iptables rehberinde yalnızca belirli port numaralarından gelen trafiğe izin vermek için Iptables Linux koruma duvarını kullandık. Kurallarımızın tekrar başlatma sonrasında kalıcı olmaları için kaydetmeyi de öğrendik. Bu Linux koruma duvarı istenmeyen paketleri reddedecek ancak dikkat etmelisiniz ki Iptables yalnızca IPv4 trafiğini kontrol edebilir. Eğer VPS planınızda IPv6 ağ yapısı aktifse, bu trafik için ip6tables ile kuralları tanımlamalısınız.

Yorum Ekle

Yorum göndermek için buraya tıklayın

Dünya çapında binlerce aboneye katılın

ve mükemmel fırsatlarla en yeni rehberler e-posta adresinize gelsin

Please wait...

Abone olduğunuz için teşekkürler!

Şimdi kazanmaya başlayın!

Hepsi bir arada web hosting & alan adı yalnızca

2
25 TL
/ay