Bloğa geri dön

CentOS 7 üzerinde FirewallD ile Güvenlik Duvarı Kurulumu

CentOS 7 üzerinde FirewallD ile Güvenlik Duvarı Kurulumu

Giriş

Firewalld birçok Linux dağıtımı için mevcut olan bir güvenlik duvarı yönetim çözümüdür. Linux çekirdeği tarafından sağlanan iptables paket filtreleme sistemine bir arayüz görevi görür. Bu kılavuzda, sunucunuz için bir güvenlik duvarını nasıl yapılandıracağınızı öğreneceksiniz. Ayrıca size firewall-cmd yönetim aracıyla güvenlik duvarını yönetmenin temellerini de göstereceğiz.

Firewalld Temelleri

FirewallD, iptables'ın zincir ve kuralları yerine bölgeler (zones) ve hizmetler (services) kavramlarını kullanır. Yapılandırdığınız bölgelere ve hizmetlere bağlı olarak, sisteme gelen ve sistemden giden hangi trafiğe izin verilip verilmeyeceğini kontrol edebilirsiniz. FirewallD, firewall-cmd komut satırı aracı kullanılarak yapılandırılabilir ve yönetilebilir.

Güvenlik Duvarınızı Kurun ve Başlangıçta Çalışacak Şekilde Etkinleştirin

Çoğu Linux dağıtımında firewallD zaten kuruludur. Ancak, kendiniz kurmanız gerekiyorsa aşağıdaki sözdizimini yazın:

firewalld kurulduktan sonra hizmeti etkinleştirebilir ve sunucunuzu yeniden başlatabilirsiniz:

Ardından, sunucunuzu yeniden başlatın. Sunucuyu başarıyla yeniden başlattığınızda güvenlik duvarınız etkinleştirilecektir. Bundan sonra, hizmetin etkinleştirildiğini doğrulamak için aşağıdaki komutu kullanın:

check firewall state FirewallD

Çıktı, varsayılan güvenlik duvarı ayarının çalıştığını gösterir.

Varsayılanları Kontrol Etme

Bu komutu kullanarak sunucu tarafından seçilen bölgeyi kontrol edebilirsiniz:

check firewall default zone

Şunu yazarak aktif bölgeyi doğrulayın:

firewall active zones

Bu sözdizimini kullanarak genel (public) alana bağlı kuralları öğrenmek için varsayılan bölgenin yapılandırmasını yazdırın:

list all rules FirewallD

Çıktı, bu bölgenin hem varsayılan hem de aktif bölge olduğunu gösterir. Ayrıca eth0 ve eth1 arayüzlerinin bu bölgeye atandığını gösterir.

Alternatif Bölgeleri Kontrol Etme

Varsayılan ve aktif bölgelere ek olarak, keşfedebileceğiniz başka bölgeler de vardır. Mevcut tüm bölgeleri görmek için bu komutu girin:

firewall check other zones

Check the particular configuration assigned to a zone by adding –zone= parameter in the –list-all command:

check zone configuration FirewallD

 Arayüz Bölgesini Değiştirme

–change-interface seçeneğini kullanarak arayüz bölgesini kolayca değiştirebilirsiniz. Aşağıdaki komut eth1 arayüzünü çalışma alanına atayacaktır:

Şunu yazarak değişiklikleri doğrulayabilirsiniz:

changing firewall interface zones FirewallD

Varsayılan Bölgeyi Değiştirme

Varsayılan bölgeyi değiştirmek için, –set-default-zone seçeneğini ve ardından varsayılan olarak ayarlamak istediğiniz bölgenin adını kullanın. Örneğin, varsayılan bölgeyi değiştirmek için aşağıdaki komutu çalıştırmalısınız:

Ardından, değişiklikleri şununla doğrulayabilirsiniz:

firewall change default zone

Uygulamalarınız için Kurallar Ayarlama

Hizmetler için güvenlik duvarı istisnaları tanımlamak için gereken temel bilgileri gözden geçirelim:

Bölgelerinize Hizmet Ekleme

En basit yol, ihtiyacınız olan bağlantı noktalarını veya hizmetleri kullandığınız bölgelere eklemektir. Aynı şekilde, mevcut tüm hizmetleri görmek için –get-services seçeneğini kullanabilirsiniz:

firewall get services FirewallD

Bir bölge için servisi –add-service = parametresi ile etkinleştirebilirsiniz. Bu işlem varsayılan bölgeyi veya –zone = parametresi ile tanımlanan herhangi bir bölgeyi hedef alır. Varsayılan olarak, yalnızca mevcut güvenlik duvarı oturumu yapılandırılır. –permanent bayrağını etkinleştirerek kalıcı bir güvenlik duvarı yapılandırması oluşturabilirsiniz. Örneğin, normal HTTP trafiği sağlayan bir web sunucusu çalıştırıyorsanız, aşağıdaki komutu girerek bu oturum için “public” bölgemizdeki arayüzler için bu trafiğe izin verebilirsiniz:

Varsayılan bölgeyi değiştirmek istiyorsanız –zone = parametresini atlayabilirsiniz. İşlemin başarısını –list-all or –list-services işlemleriyle kontrol edebilirsiniz:

add service to zone

Her şeyin beklendiği gibi çalıştığını doğruladıktan sonra, büyük olasılıkla yeniden başlatmanın ardından servisinizin hala kullanılabilir olmasını sağlamak için kalıcı güvenlik duvarı kurallarını değiştirmek isteyeceksiniz. Aşağıdaki sözdizimini girerek “public” bölgemizde kalıcı olarak değişiklik yapabiliriz:

–list-services işlemine –permanent bayrağını ekleyerek bunun başarılı olup olmadığını kontrol edebilirsiniz. Tüm kalıcı işlemler için sudo kullanmalısınız:

–public” bölgeniz artık 80 numaralı bağlantı noktasında HTTP trafiğine izin veriyor. Aşağıdaki komutu kullanarak bunu mevcut oturuma ve kalıcı kural kümesine ekleyebilirsiniz:

Gereksinimlerinize uyan hiçbir servis yoksa, bu durumu ele almak için iki harika seçeneğiniz vardır:

  1. Bölgeleriniz için bir Port Açma

Özel uygulamanız için destek eklemenin en kolay yolu, her bölgede kullanılan portları açmaktır. Bu, açmanız gereken portlar için bir port veya port aralığı ve ilgili protokolü belirlemek kadar basittir. Örneğin, uygulamanız 5000 numaralı portta çalışıyorsa ve TCP kullanıyorsa, –add-port = parametresi ile bu oturum için “public” bölgesine ekleyebilirsiniz. Protokoller TCP veya UDP olabilir:

İşlemin başarılı olduğunu kontrol etmek için –list-ports işlemini kullanın:

Ayrıca, aralıktaki başlangıç ve bitiş portlarını bir tire işaretiyle ayırarak seri arayüz için bir aralık belirtebilirsiniz. Örneğin, uygulamanız 4990 ila 4999 arasındaki UDP portlarını kullanıyorsa, aşağıdakini yazarak bunları “public” içinde açabilirsiniz:

Test ettikten sonra, muhtemelen bunları kalıcı güvenlik duvarına eklemek isteyeceğiz. Bunu aşağıdakileri yazarak yapabilirsiniz:

adding ports to permanent firewall

  1. Bir Servis Tanımlama

Bir servis, ilişkili bir ad ve açıklamaya sahip bağlantı noktaları (portlar) topluluğudur. Servisleri yönetmek bağlantı noktalarını yönetmekten daha kolaydır, ancak başlangıçta biraz çalışma gerektirir. Başlamanın en kolay yolu, mevcut bir betiği (/ usr / lib / firewalld / services içindeki) /etc/firewalld/services dizinine kopyalamaktır. Örneğin, SSH servis tanımını “example” servis tanımında kullanmak üzere aşağıdaki gibi kopyalayabilirsiniz. XML uzantısı hariç dosya adı, güvenlik duvarı servisleri listesindeki servis adını belirler:

Bu noktada, kopyalanan dosyadaki tanımı düzenleyebilirsiniz:

İlk olarak, dosya kopyaladığınız SSH tanımını içerir:

Bu tanımın çoğu meta verilerden oluşur. <short> etiketlerindeki kısa servis adını değiştirmelisiniz. Bu, okunabilir bir servis adıdır. “example” servisimiz için TCP için 7777 ve UDP için 8888 numaralı bağlantı noktasını açmamız gerektiğini varsayalım. i tuşuna basarak INSERT moduna girip mevcut tanımı değiştirebilirsiniz:

Ardından, ESC tuşuna basın ve dosyayı kaydedip kapatmak için :x yazın. Sonrasında, yeni servisinize erişebilmek amacıyla güvenlik duvarınızı yeniden başlatmak için aşağıdaki komutu yazın;

Bundan sonra, kullanılabilir servislerin listesini görmek için aşağıdaki komutu kullanın:

get services

Bu servis artık bölgenizde (zone) kullanılabilir.

Bölgelerinizi Oluşturma

Önceden tanımlanmış bölgeler çoğu kullanıcı için muhtemelen yeterli olsa da, işlevlerini daha tam olarak açıklayan kendi bölgelerinizi tanımlamak yararlı olabilir.

Bir bölge eklerken, bunu kalıcı güvenlik duvarı ayarlarınıza ekleyin. Ardından, ayarları oturumunuza getirmek için yeniden yükleyebilirsiniz. Örneğin, daha önce tartışılan iki bölgeyi şunu yazarak oluşturabilirsiniz:

Bu komutu kullanarak kalıcı yapılandırmanızda mevcut olduklarını doğrulayabilirsiniz:

firewall zones

Bu yeni bölgeleri aktif yapılandırmaya getirmek için güvenlik duvarını yeniden yükleyin:

Artık bölgelerinize uygun servisleri ve portları atayabilirsiniz. Örneğin, “publicweb” bölgesi için SSH, HTTP ve HTTPS servislerini eklemek isteyebilirsiniz:

list public web zone

 

Ayrıca, bu komutu kullanarak “privateDNS” bölgenize DNS servisini ekleyebilirsiniz:

list privateDNS zone FirewallD

Ardından, test etmek için arayüzlerinizi bu yeni bölgelerle değiştirebilirsiniz:

Çalışıp çalışmadığını görmek için yapılandırmayı test edin. Eğer bu değerler sizin için uygunsa, aynı kuralları kalıcı yapılandırmaya eklemelisiniz. Bunu, kuralları —permanent göstergesiyle yeniden uygulayarak yapabilirsiniz:

 

Bu kuralları kalıcı olarak uyguladıktan sonra, ağınızı yeniden başlatabilir ve güvenlik duvarı servisinizi yeniden yükleyebilirsiniz:

Bölgelerin doğru şekilde atandığını kontrol edin:

check active zones FirewallD

Ayrıca, her iki bölgenin de doğru servise sahip olduğundan emin olun:

Bölgelerinizden birini diğer arayüzler için varsayılan olarak ayarlamak istiyorsanız, bu davranışı şu komutu kullanarak –set-default-zone= parametresiyle yapılandırmalısınız:

Sonuç

Bu noktada, kendi bölgelerinizi başarıyla oluşturdunuz. Günlük kullanım için CentOS sisteminizde firewalld servisini yönetme konusunda temel bir anlayışa sahip olmalısınız. firewalld servisini iyi kavramak, onun gücünden ve esnekliğinden tam olarak yararlanmanızı sağlar.

Keyifli çalışmalar!

 

author

Akshay Nagpal

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.