UFW Uncomplicated Firewall, iptables güvenlik duvarı yapılandırmasını basitleştirilmesine yöneliktir. iptables sağlam ve aynı zamanda esnek bir araçtır ancak yeni başlayanlar ve orta düzey Linux kullanıcıları için kullanımı zor olabilir. Eğer ağ güvenliğinizi yapılandırmak için hangi aracı kullanacağınızdan emin değilseniz, UFW sizin için en doğru seçim.
Bu eğitimde Ubuntu 14.04 sunucu üzerine UFW güvenlik duvarı nasıl kurulur anlatacağız.
Eğitime başlamadan önce, Eğer Ubuntu sunucunuza root olarak bağlandıysanız sudo komutunu kullanmanıza gerek yoktur.
UFW, Ubuntu kurulumunda varsayılan olarak yüklenen bir araçtır. Ancak daha önce kaldırılmış ise öncelikle kurulumu tekrar gerçekleştirmek gerekiyor, bunun için aşağıdaki komutu kullanabilirsiniz.
sudo apt-get install UFW
Ubuntu sunucunuzun IPv6 desteklemek üzere yapılandırılmış olduğundan emin olun. Bunu kontrol etmek için nano editörünü kullanacağız:
sudo nano /etc/default/UFW
Karşınıza gelen sayfada "IPv6=" satırını bulun ve "IPv6=no" şeklinde ise aşağıdaki gibi değiştirin
IPV6=yes
ve kaydederek çıkış yapın. UFW etkinleştirildiğinde, IPv4 ve IPv6 güvenlik duvarı kurallarını yapılandırabilirsiniz.
UFW Durum ve Kural Kontrolü
Bu komutla UFW durumunu kontrol edebilirsiniz.
sudo UFW status verbose
Karşınıza böyle bir ekran geliyorsa eğer, bunun nedeni UFW güvenlik duvarının varsayılan olarak pasif ayarlı olmasıdır.
Output:
Status: inactive
UFW güvenlik duvarı aktif ise, tüm kuralları listeleyen detaylı bir durum ekranıyla karşılaşırsınız. Örneğin SSH 22 portuna gelen isteklere izin verilmiş ise aşağıdaki gibi bir ekran karşınıza çıkacaktır.
UFW güvenlik duvarının yapılandırmasını listelemek için bu komutu kullanılır.
Output:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
UFW etkinleştirmeden önce, SSH portunun gelen bağlantılara izin verilecek şekilde yapılandırılmış olduğundan emin olmalısınız, aksi taktirde güvenlik duvarını aktif ettiğinizde SSH kuralı tanımlanmadıysa sunucunuza SSH üzerinden bağlanamazsınız.
Şimdi UFW varsayılan ayarlarını isteğimize göre düzenlemeye başlayabiliriz.
UFW varsayılan olarak gelen istekleri engellemek ve giden tüm isteklere ise izin verecek şekilde yapılandırılmıştır. Bu nedenle sunucunuzda bulunan herhangi bir uygulamaya erişim mümkün olmayacaktır.
Bu yazımızı takip ederek UFW güvenlik duvarınızın varsayılan ayarlarını düzenleyebilirsiniz.
sudo ufw default deny incoming
sudo ufw default allow outgoing
Yukarıdaki komutlar sunucunuza dışarıdan gelen istekleri reddetmek ve sunucunuz üzerinden giden isteklere izin vermek için kullanılan yapılandırma komutlarıdır. Bu şekilde bir yapılandırma kişisel bir bilgisayar kullanımına uygun bir yapılandırmadır. Ancak sunucuların genellikle dışarıdan gelen isteklere yanıt verecek şekilde yapılandırılması gerektiğinden, UFW güvenlik duvarımızı amacımıza göre yapılandırmalıyız.
SSH bağlantılarına izin vermek
UFW güvenlik duvarımız etkinleştirildiğinde ayarlarının varsayılan olarak gelen tüm istekleri reddetmek üzere ayarlandığını biliyoruz, bu nedenle öncelikle sunucunuza uzaktan bağlanmak ve sunucunuzu yönetmek için SSH bağlantılarına izin vermeniz gerekmektedir. Bunun için yapmamız gereken SSH portu üzerinden gelen bağlantı isteklerine izin verecek şekilde yapılandırıp, kurallımızı oluşturacağız.
Sunucunuza gelen SSH bağlantılarına izin vermek için UFW yapılandırılmasında aşağıdaki komutu kullanmanız gerekmektedir.
sudo ufw allow ssh
Bu komut UFW güvenlik duvarında SSH portu olan 22 numaralı port üzerinden gelen tüm isteklere izin verecek şekilde yapılandırmanızı sağlayacak kuralı oluşturur ve bu yapılandırma kurallarını /etc/services dosyası içerisine yazar.
Aşağıdaki örnekte görüldüğü gibi dilerseniz komutu servis ismi yerine port numarasını belirterek de kullanabilirsiniz, her iki şekilde de aynı kuralı oluşturacaktır.
sudo ufw allow 22
İsterseniz SSH servisine farklı bir port üzerinden de bağlantı erişimine izin verebilirsiniz. Eğer SSH servisinizi 2222 portunu kullanmak üzere konfigüre ettiyseniz, aşağıdaki örnekte olduğu gibi SSH servisinizi 2222 portu üzerinden erişime açabilirsiniz.
sudo ufw allow 2222
Artık güvenlik duvarımızı SSH bağlantılarına izin verecek şekilde yapılandırdık, şimdi güvenlik duvarımızı aktif edebiliriz.
UFW güvenlik duvarını aktif etmek için aşağıdaki komut kullanılır.
sudo ufw enable
Ekrana gelen soruyu "y" diyerek geçiyoruz.
Güvenlik duvarınız artık etkin SSH 22 portunuz ve UFW aktif. Şimdi UFW güvenlik duvarınızın durum ve yapılandırma kurallarını listelemek için sudo ufw status verbose komutunu kullanabiliriz.
Şimdi sizin için gerekli olan hizmetleri yapılandırma ile ilgili birkaç örnek daha göstereceğiz. Eğer tüm gelen bağlantılara izin vermek istediğiniz bir servis bunları uygulayabilirsiniz.
HTTP port 80
Sunucunuzu şifresiz web sunucusu olarak yapılandırmak için HTTP portunuza gelen isteklere izin vermelisiniz.
sudo ufw allow http
Bunun yerine HTTP port numarası 80'i de kullanabilirsiniz.
sudo ufw allow 80
Sunucunuzu şifreli web sunucusu olarak yapılandırmak istiyorsanız HTTPS portuna gelen isteklere izin vermelisiniz.
sudo ufw allow https
Bunun yerine HTTPS protokolü port numarası 443'ü kullanabilirsiniz.
sudo ufw allow 443
Şifresiz dosya transferleri için kullanılan FTP portunuza gelen isteklere bu komutla izin verebilirsiniz.
sudo ufw allow ftp
Bunun yerine port numarasını 21 kullanmak istiyorsanız, bu komutu kullanın.
sudo ufw allow 21/tcp
Bazı uygulamalar birden çok port aralığını kullanır. UFW güvenlik duvarınızı belirli port aralıklarına izin verecek şekilde yapılandırabilirsiniz. Bunun için port aralıklarını ve protokolü belirtmelisiniz.
sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp
Sunucunuza belirli bir IP adresinden gelen isteklere izin vermek için aşağıdaki komutu kullanabilirsiniz.
sudo ufw allow from 15.15.15.51
UFW güvenlik duvarınızı yapılandırmak için kuralları nasıl oluşturulacağını öğrendik. Şimdi oluşturulan kuralları nasıl sileceğinize göz atalım.
Güvenlik duvarı kurallarını nasıl silineceği bilmek, nasıl oluşturulması gerektiği kadar önemlidir. Kural oluştururken 2 farklı şekilde de oluşturabiliyorduk, silme işlemi de yine iki farklı şekilde yapılabilir.
Eğer güvenlik duvarınızdan kural silmek istiyorsanız bunun için öncelikle status numbered komutuyla kuralların bir listesini almalısınız. Aşağıda görüldüğü gibi her bir kuralın yanında numaralar görülmektedir.
sudo ufw status numbered
Numbered Output:
Status: active
To Action From
-- ------ ----
[ 1] 22 ALLOW IN 15.15.15.0/24
[ 2] 80 ALLOW IN Anywhere
Örneğin [2] numaralı kuralı silmeye karar verdik, bunun için aşağıdaki komutu kullanabilirsiniz.
sudo ufw delete 2
Kuralı silmek istediğinizden eminmisiniz sorusuna "y" yanıtını vererek kuralı siliyoruz.
Bir diğer silme yöntemi ise protokol adı ya da port numarası ile silme yöntemidir.
sudo ufw delete allow http
sudo ufw delete allow 80
Eğer herhangi bir nedenle UFW güvenlik duvarını kapatmanız gerekiyorsa aşağıdaki komutla UFW'yi devre dışı bırakabilirsiniz.
sudo ufw disable
Tekrar aktif etmek istediğinizde, UFW ile oluşturulan tüm kurallarınız yeniden aktif olacaktır. Bunun için sudo UFW enable komutunu kullanmanız yeterli olacaktır.
Herhangi bir kural oluşturduğunuzda kuralın geçerli olabilmesi için UFW güvenlik duvarının yeniden başlatılması gerekebilir, bunun için aşağıdaki komutu kullanmalısınız.
sudo ufw reset
Güvenlik duvarınız artık hazır, SSH ve HTTP bağlantılarına izin verecek şekilde yapılandırıldı. Bundan sonra UFW güvenlik duvarınızı nasıl yapılandırabileceğinizi ve sunucunuzu nasıl daha güvenli hale getirebileceğinizi öğrendiniz.