Ubuntu VPS Güvenliğini Iptables Linux Güvenlik Duvarıyla Sağlama

  • Ana Sayfa
  • Makale
  • Ubuntu VPS Güvenliğini Iptables Linux Güvenlik Duvarıyla Sağlama

Sisteminize istemediğiniz kişilerin erişmesini engellemek isteyebilirsiniz. Bu noktada bazı kurallar belirleyerek sisteminizdeki bütün trafiği kontrol altına alabilmeniz mümkündür. İşlemin yerine getirilmesi sırasında Iptables Linux güvenlik duvarı kullanılmaktadır. Iptables Linux güvenlik duvarı ayarı sizlere sunucunuza sadece seçmiş olduğunuz trafiğin ulaşmasını sağlayacaktır. Sizlere yazımızda ise Ubuntu VBS güvenliğini sağlayacağınız evrede Linux güvenlik duvarı kullanma hakkında bilgi vereceğiz.

RHEL / CentOS işletim sistemi kullanmakta olan kişilerin sisteminde firewallD adında bir sistem kurulu olarak gelir. Iptables kullanma yoluna gidecek olan kişiler bu sistemi devre dışı bırakması gerekmektedir.

Sistemi Kullanmak İçin Neye İhtiyacımız Var?

Iptables kullanarak Ubuntu VPS güvenlik duvarı ayarlarınızı gerçekleştirebilmek için ihtiyacınız olan şeyler şu şekildedir:

  • Ubuntu 16.04 sisteminin çalışmasına izin vermekte olan bir VPS
  • SSH istemcisinin yer aldığı bir cihaz

En Temelde Iptables

Veriler internet üzerinden gönderileceği sırada paketler şeklinde aktarılmaktadır. Linux sisteminde yer almakta olan Kernel ise sizlere sisteminize gelen ve giden trafiği filtreleme imkanı sağlar. Iptables ise bu veri tablolarınızı yönetme noktasında komut satırı kullanmanızı sağlamakta olan bir uygulamadır. İsterseniz birçok tablo belirleyebilmeniz mümkündür. Her tablonun yapısında ise birden fazla zincir yer alabilmektedir. Burada belirlemiş olduğunuz kurallar ise kural konuşmuş olan paketlerde ne yapılacağını göstermektedir. Paket eşleşmelerinde paketlere bir hedef yani target verilmektedir. Target eşlenmesinin yerine getirilmesi sırasında ise bazı değerler verilmektedir. Bu değerler şu şekildedir:

  • Accept (kabul et): Bu komut paketin geçebileceği anlamına gelmektedir.
  • Drop (reddet): Bu komut paketin geçmesine izin verilmeyeceği anlamına gelmektedir.
  • Return (geri çevir): Belirtilen zincirin pas geçileceği anlamına gelirken çağrılmış olan zincirde bir sonraki kurala geçileceği anlamına gelmektedir.

Yazımızda sizlere güvenlik duvarını sağladığımız sırada ise filter sistemi ile bunu oluşturacağız. Filtreler tablosunda sizlere üç tane zincir yanı kural grubu sunulmaktadır. Bu zincirler ise şu şekildedir:

  • Input: Sunucunuza gelmekte olan paketlerin kontrollerini yerine getireceğiniz sırada bu zinciri kullanmanız gerekmektedir. Gelen bağlantıları incelerken protokol, port, kaynak IP adresi şeklinde engelleme işlemlerinizi yapabilmeniz mümkündür. Aynı zamanda bu şekilde izinler de verebilirsiniz.
  • Forward: Sunucuna gelen fakat başka bir yere yönlendirmek istediğiniz trafikleri belirteceğiniz sırada bu seçeneği kullanma yoluna gidebilirsiniz.
  • Output: Sunucunuzdan gitmekte olan paketleri filtreleyeceğiniz sırada bu filtreyi kullanabilmeniz mümkündür.

Adım 1: Iptables Linux Güvenlik Duvarının Kurulumunu Yapma

  • Iptables kurulumunun yapılması

Linux işletim sistemine sahipseniz Iptables kurulumu büyük ihtimalle sisteminizde otomatik olarak yer alacaktır. Yalnız Debian ya da Ubuntu sistemi kurulu olmayabilir. Bu durumda kurulumu gerçekleştirmek için kullanmanız gereken komut satırları şu şekildedir:

  • Sudo apt-get update
  • Sudo apt-get install iptables
  • Mevcut Iptables durumunun nasıl olduğunu kontrol etmelisiniz

Sizlere vereceğimiz komutu kullanarak Iptables yapılandırmanızı kontrol etme yoluna gidebilmeniz mümkündür. Komut satırında yer almakta olan –L bütün kuralları gösterirken –v seçeneği ise sizler daha geniş çaplı bir liste oluşturabilme imkanı sağlamaktadır. Komut satırında yer almakta olan bu harfler büyük küçük harf duyarlı şekilde yer almaktadır. Iptables durumunuzun nasıl olduğunu kontrol edebilmek için şu kod satırını kullanabilirsiniz:

  • Sudo iptables –L –v

Komutları girmenizin ardından karşınıza çıkabilecek örnek çıktı ise şu şekilde olacaktır:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Girmiş olduğunuz komutların çıktısı bu şekildedir. Çıktıda yer almakta olan bütün zincirler ise belirtmiş olduğumuz ACCEPT politikasına ayarlanmış konumdadır. Bu çıktıda yer alan zincirlerde herhangi bir kural yer almıyor. Adımları daha iyi şekilde öğrenebilmeniz için ise INPUT zinciriyle değiştirme yoluna gideceğiz.

Adım 2: Zincir Kurallarını Belirlemek

Bir kural belirlenmesi o kuralın zincire eklendiği anlamına gelmektedir. Genel karşımıza çıkan seçeneklerde belirlenmiş olan iptables komutu ise şu şekilde sunulmaktadır:

  • Sudo iptables –A –i <interface> -p <protocol (tcp/udp) > -s <source> --dport <port no.> -j <target>

Komut satırında yer almakta olan –A harfi komut dizininde append yani sona eklemeyi temsil etmektedir. Zincir ise kurallarımızı eklemek istediğimiz zinciri bizlere göstermektedir. Interface komutu ise trafiğine filtre eklemek istediğimiz ağ trafiğini göstermektedir. Protocol komutuyla beraber ağ protokolüne göre filtreleme kuralları belirleyebiliyoruz. Burada trafiğini filtrelemek istediğiniz bir port veya port numarası bulunuyorsa bunu belirtebilmeniz de mümkündür.

  • Localhost sayesinde sistem trafiğine izin verme

Sunucunuzun üzerinde yer almakta olan uygulamaların ve veritabanlarınızın aynı şekilde iletişim kurmaya devam etmesini istediğiniz takdirde girmeniz gereken komut satırı şu şekildedir:

  • Sudo iptables –A INPUT –i lo –j ACCEPT

Komutu girdikten sonra karşınıza çıkacak olan çıktı şu şekilde olacaktır:

Chain INPUT (policy ACCEPT 7 packets, 488 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- lo any anywhere anywhere

Çıktıda yer almakta olan –A seçeneği INPUT zincirinde sona eklemek için kullanılırken lo ise arayüzde yer almakta olan bütün bağlantılara izin verildiğini göstermektedir. Lo’nun açılımı loopback Interface şeklindedir. Aynı makinede yer almakta olan web uygulamaları ya da veritabanı arasındaki gibi localhost kullanılarak bütün iletişimin gerçekleşmesi için kullanılabilmektedir.

  • SSH, HTTP ve SSL portlarının bağlantılarına izin verme

Kullanılmakta olan http, SSH ve SSL portlarının bağlantılarına aynı şekilde devam etmelerini sağlayabilmeniz mümkündür. Bu bağlantıların port numaraları ise şu şekildedir:

  • HTTP: port 80
  • HTTPS: port 443
  • SSH: port 22

Bu portların çalışmalarına izin vermek istediğiniz sırada sizlere aşağıda belirtmiş olduğumuz komutları girmeniz gerekmektedir. Komut satırlarında protokolleri –p seçeneğiyle protokollerin bağlı olmuş olduğu portları ise –dport seçeneğiyle gösterdik. İşlemleri yapmanız için uygulamanız gereken komutlar şu şekildedir:

  • Sufo iptables –A INPUT –p tcp –dport 22 –j ACCEPT
  • Sufo iptables –A INPUT –p tcp –dport 80 –j ACCEPT
  • Sufo iptables –A INPUT –p tcp –dport 443 –j ACCEPT

Bu komutların girilmesiyle beraber port numaralarından sisteminize gelen bütün TCP protokollerini kabul edebilirsiniz.

  • Gelen kaynağa göre paketlerde filtreleme yapma

Sisteminize gelen trafiği IP adresine göre ya da adres aralığına göre kabul etmek veya reddetmek istediğiniz takdirde bu durumu –s seçeneği ile belirtmeniz gerekmektedir. Örneğimizde sizlere 192.168.1.2 adresi üzerinden gelmekte olan paketleri nasıl kabul edeceğinizi göstereceğiz. Bu adresten gelen paketleri kabul etmeniz için girmeniz gereken komut dosyası şu şekildedir:

  • Sudo iptables –A INPUT –s 192.168.1.2 –j ACCEPT

Bu adresten gelmekte olan paketleri reddetmek istediğiniz sırada girmeniz gereken komut satırı şöyledir:

  • Sudo iptables –A INPUT –s 192.168.1.2 –j DROP

Gelen trafiği reddetmek istediğiniz noktada IP aralığı belirleyebilmeniz de mümkündür. Burada –m seçeneğini kullanarak IP aralığını ise –src-range ile belirtip Iprange modülünü kullanmalısınız. Örnek kullanım ise şu şekildedir:

  • Sudo iptables –A INPUT iprange –src-range 192.168.1.200-192.168.1.300 –j DROP
  • Gelen diğer bütün trafikleri reddetme

Sistemde kurallarınızı tam olarak belirledikten sonra ise gelen bütün trafiği reddetmeniz mümkündür. Bunu da DROP komutuyla yerine getirebilirsiniz. Bunu gerçekleştirmediğiniz takdirde ise bütün açık olan portlardan sisteminize girişe izin vermiş olursunuz. Bu trafiği reddetmek için kullanabileceğiniz komut şu şekildedir:

  • Sudo iptables –A INPUT-j DROP

Bu komutu girdiğiniz zaman ise yukarıda belirtmiş olduğumuz portlar dışında nereden trafik geliyorsa bu trafik ret edilir. Ayarlamış olduğunuz kuralları kontrol etmek istediğiniz sırada ise girmeniz gereken komut şu şekildedir:

  • Sudo iptables –L –v
  • Kuralları silme işlemi

Sisteminizde girmiş olduğunuz bütün kuralları silerek tamamen yeni bir sayfa açmak istediğiniz noktada ise kullanmanız gereken komut şu şekildedir:

  • Sudo iptables –F

Girmiş olduğunuz bu komutla beraber girmiş olduğunuz bütün kurallar silinmektedir. Sadece belirli bir kural silmek isteyen kişiler ise bunu yerine getirecekleri sırda –D seçeneğinden faydalanması gerekir. Bunu gerçekleştireceğiniz sırada kuralların numarasını girmek için girmeniz gereken komut satırı şu şekildedir:

  • Sudo iptables –L –line-numbers

Bu komutu girmenizle beraber bütün kuralları numaralarıyla beraber görebilmeniz mümkündür.

Adım 3: Yapılan Değişiklikleri Kalıcı Hale Getirme

Oluşturmuş olduğunuz bütün iptables kuralları sisteminizin hafızasında yer almaktadır. Bu durum sisteminizi her tekrar başlatmanızda komutları tekrar girmenize sebep olmaktadır. Reboot yaptıktan sonra kulların kalıcı hale gelmesi adına şu komutu kullanma yoluna gidebilmeniz mümkündür:

  • Sudo / sbin/iptables-save

Bu komutun kullanılmasıyla beraber belirlediğiniz bütün kurallar sistem yapılandırma dosyanıza kaydedilmektedir. Sisteminizi yeniden başlattığınız zaman ise bu dosyadan otomatik olarak kurallar çekilmektedir. Yalnız kurallarda yapacağınız bütün değişimlerden sonra bu komutu çalıştırmanız çok önemlidir. Koruma duvarını sıfırlamak istediğiniz sırada ise bütün kuralları silerek değişikliklerinizi şu komutlarla kaydetmelisiniz:

  • Sudo iptables –F
  • Sudo /sbin/iptables-save

Bir cevap yazın

Language »