Sunucu Güvenliği : UFW – Uncomplicated firewall

Sunucu güvenliği konusunda portlar önemli. Zira sisteme veri alışverişinin büyük bir bölümünü portlar aracılığı ile yapıyor. Peki portları nasıl kontrol edeceğiz ve izinlerini nasıl düzenleyeceğiz ?

Linux için aslında bu büyük bir problem değil. Çünkü kurulduğu zaman tüm dışarı çıkışlar serbest, tüm içeri girişler kapalı şekilde kuruluyor. Linuxun bu işi yaptığı ana enstrümanı da yine kendisinin bir parçası IP Tables. IP tables linux çekirdeğinin etkileşimini modifiye edilebilen çeşitli kurallarla düzenliyor. Bunu da tabi ki IPv4 ve IPv6 için yapabiliyor.

Fakat IP tables sistemci değilseniz kullanması o kadar da kolay bir yapı değil. Bence bir yazılım geliştirici ve sistemcinin ayrılmaya başladığı noktalardan birisi IP Tables olabilir. Linux çekirdeği ve etrafındaki yapılar bence tam olarak sistemci işleri. Peki yazılım geliştiriciler için sistemci olmadan yapabilecekleri bir şeyler yok mu?

Linux kapsamında bildiğim en iyi cevap UFW. Açılımı Uncomplicated Firewall yani karışık olmayan ateş duvarı. Bu basit firewall tabi ki her zaman desteklediğim üzere bir terminal aracı. GUI ile kullanılıp kullanılmadığını bilmiyorum. Terminal içinde çalışmayan guilerden de uzak durmanızı tavsiye ediyorum. Unutmayın ki her grafik arayüz sizinle verinin arasına girecek başka bir yanıltıcı unsur, başka bir sistem yükü olacak. Bu sebeble komut yazmaktan korkmayın, bir gün arayüzlerle uğraşmaktan daha hızlı olacağını göreceksiniz.

Öğüt kısmını tamamladığıma göre gelelim UFW nasıl kullanılıyor kısmına. Ubuntu server kullanıcıları için şöyle başlayalım.

Kurulumdan hemen sonra başınız ağrıdığında yardımcı olsun diye reset atmayı görelim. Öğrenmek için yaptıklarınızı resetlemeniz kolay olsun.

UFW’yi aktif hale getirmek için;

diyoruz. Haliyle durdurmak için de dışable kullanılıyor.

Gelen ve giden trafikleri de toptan kontrol etmek mümkün. Fakat bunu yaparken sunucunuza kurduğunuz SSH bağlantısı üzerinde yapmadığınıza emin olun derim. Sonra bağlantınız koparsa tekrar kapattığınız portlara erişemezsiniz. Kendi bilgisayarınızda denemek daha iyi bir fikir.

ya da engellemek için allow yerine deny kullanıyorsunuz. Bu komutları bence hiç kullanmayın. Toptan bir iş neredeyse hiç yapılmamalı. Çünkü genellikle linuxda toplu uygulamaları geriye döndürmek zordur. Kazara toptan chmod değiştirmek gibi.

Tüm portları kapalı varsaydığımız için önce web sunucumuzun ( apaçhe veya nginx gibi ) ve ssh erişimizin erişime açıldığına emin olalım.

FTP de aynı şekilde açılabiliyor. Fakat ben FTP de kullanmanızı tavsiye etmiyorum. Bunun yerine scp ve rsynç komutlarını bir başka blogda anlatacağım.

Peki işler bu kadar basit mi? Hemen bitti mi ? Tabi ki hayır. Bu noktada biraz daha derine inelim. Örneğin SSH portumuzu sunucumuzu olası bir saldırıdan korumak için değiştirdiysek ne olacak ? Tabi ki bu komut çalışmıyor. UFW, SSH için yazılmış confiğe girip portu okuyarak bu işi yapmıyor. Default portu yani 22 nolu portu kullanıyor. Port açmak komut basit tabi.

bu şekilde 22 nolu portumuzu erişime açtık. İyi güzel de bu portlara kuralları tanımlayınca sonra nasıl göreceğiz ?

Karşınıza düzenlediği kuralları çıkartacaktır. Tabi sadece ufw statüs de çalışır ama numaralı listeme yaparsak kuralı numara ile silmemiz kolay olacaktır. Kural silmek demişken;

3 nolu tanımımızı sildik. Kuralları toptan silmek için reset atmanız gerektiğini söylemiştim.

Port ayalarında değişiklikler yaptıktan sonra UFW’yi reload etmeyi unutmayın.

UFW hakkında yeni tecrübe ve bilgiler edinirsem yine bu blog kapsamında paylaşacağım. Herkese iyi çalışmalar.

VPS ve Linux

Bir süredir Ubuntu linux kullanıyorum. Deneyimlerimi sıcak sıcak paylaşmak isterim. Bir kere linux kullanıcı dostu olmak yolunda ciddi yol almış. Sadece Ubuntu değil Mint Linux oldukça güzel sistemler. Ubuntu, başlagıç kullanıcıları için tavsiye edilse de server sürümü de mevcut. Onu da VPS üzerinde kullanıyorum. Gayet hızlı.

ubuntu

Linux’un bir güzel yanı derlenmemiş dosyaları çalıştırmak için Windows’da olduğu gibi ortam değişkeni tanımlanıza gerek yok. Dosyaya chmod izinlerinden çalıştırılabilir dosya özelliği atıyorsunuz oluyor  bitiyor.

Herşeyi elle ayarlama işini yapabilirsiniz ama bilgisayar kullanmanın genel kitle için internet kullanmaya dönüştüğü şu dönemde hiçbir şeyi  ayarlamadan internette girip rahatlıkla gezinebilirsiniz. Kurulumda çok kolay. Wubi ile Windows içinden Ubuntu kurabilirsiniz. Bir disk bölümü seçiyorsunuz o kendisi hallediyor işlemleri. Açılışta da Windows mu yoksa Ubuntu ile mi açacaksınız diye soruyor. Bunları detaylı yazmıyorum çünkü internette bir çok kaynak var bununla ilgili.

Linux ile uğraşmamın bir nedeni geliştirme ortamı olarak kullanmak. Eclipse ve Java tabanlı diğer uygulamalar inanın Windows ortamına göre çok çok hızlı ve kararlı. Pek çok plugin Eclipse kurulumlarında sorun verirken Linux içinde hızla hallettim. Eclipse için SVN ve SQL Explorer pluginlerini rahatlıkla ekleyip internetten biraz ingilizce kaynak araştırırak ayarlayabilirsiniz. PHP ve MySQL kurmak ise çok basit. Bir komut ile yapabiliyorsunuz. Hepsi bloglarda detaylı var.

Geliştirme ortamı dışında VPS kiralayıp Ubuntu Sever kurarak hosting masrafımı düşürmek istedim. Bu sırada ISPConfig ve Zpanel ile yönetim araçlarını buldum. İkisi de plesk ve cpanel gibi web control panelleri. Zpanel başlangıç için güzel. Fakat sadece Apache ile çalışıyor. Onun kütük dosyalarını işleyebiliyor. ISPConfig daha etraflıca birşey. Zira Nginx server ile de çalıştırabiliyorsunuz.

Ben açıkcası geç kalmışım. İşten güçten zaman ayırıp uğraşmıyordum. Şimdi tatilde linux ile uğraşma fırsatı bulunca keşke işi gücü bırakıp linux öğrenseymişim diyorum. Sizde mutlaka deneyin, Özellikle yazılım geliştirici iseniz windows açmak istemeyeceksiniz.