RHEL 8 / CentOS 8 Üzerinde Local Firewall Yönetimi

Merhabalar,

Bu makalede RHEL 8 / CentOS 8 işletim sistemlerinde, basit anlamda local firewall yönetimiyle ilgili bilgiler aktarmayı hedefliyorum.

Firewalld, RHEL 8 / CentOS 8 sunucularda veya GNOME iş istasyonu üzerindeki bir güvenlik duvarını yönetmek için kullanılan, hem güçlü hem de kullanımı oldukça basit olan bir araçtır. Firewalld, önceden tanımlanmış hizmetleri kullanarak, açık veya kapalı Portları (bağlantı noktalarını) yönetmenin yanı sıra kullanıcı ya da yazılımlara özel portları da açıp kapatmanıza imkan sağlar. Bu makalede, bu işlemlerin nasıl yapılabileceğini inceleyeceğiz.

Genel olarak aşağıdaki konular hakkında bilgiler aktaracağım:

  • RHEL 8 / CentOS 8’de güvenlik duvarının durumu nasıl kontrol edilir?
  • RHEL 8 / CentOS 8’de güvenlik duvarı nasıl stop/start edilir?
  • RHEL 8 / CentOS 8’de güvenlik duvarı nasıl enable/disable edilir?
  • RHEL 8 / CentOS 8’de aktif, pasif ve default güvenlik zone’ları (güvenlik bölgeleri) nasıl görülebilir?
  • RHEL 8 / CentOS 8’de firewalld ile Portlar (bağlantı noktaları) nasıl açılır ve kapatılır?
  • RHEL 8 / CentOS 8’de Servisler nasıl açılır ve kapatılır?
  • Güvenlik duvarı yapılandırması nasıl yeniden yüklenir?

1. Güvenlik duvarının durumu nasıl kontrol edilir?

Minimal bir linux bile kurmuş olsanız, default olarak firewall yüklenmiş olarak gelir. Tüm işlemlere başlamadan önce, Linux local firewall durumunun nasıl kontrol edilebileceğini inceleyelim.

firewall-cmd –state

Bu komut, çok fazla detay bilgi vermeden, sadece çalışıp çalışmadığı hakkında bilgi vermekte.

Bir başka komut olarak, aşağıdaki komutla da bu kontrolü sağlayabiliz. Biraz daha detaylı bilgiye ulaşabiliyoruz.

systemctl status firewalld

Bu çıktıda, firewalld aktif olduğunu ve enable durumda olduğunu görebiliyoruz.

2.Güvenlik duvarı nasıl stop/start edilir?

Firewall durumunu kontrolü öğrendikten sonra, aklımıza gelebilecek en basit soru, nasıl stop/start edileceğidir sanırım. Firewalld bir service olarak çalıştığı için, linux üzerinde servisler için kullanılan systemctl komutlarını kullanıyoruz.

Öncelikle nasıl stop edileceğine ve stop sonrası, durumunu nasıl kontrol edeceğimize bakalım. Stop komutu ve hemen ardından servis durumunu kontrol komutunu ard arda kullanıyorum.

systemctl stop firewalld

systemctl status firewalld

Az önce öğrendiğimiz komutla da bakmayı ihmal etmeyelim 🙂

Şimdi de start edelim. Sonrasında da servisin durumunu yine kontrol edelim.

systemctl start firewalld

systemctl status firewalld

firewall-cmd –state

3.Güvenlik duvarı nasıl enable/disable edilir?

Durumunu kontrol ettikten sonra, belki hiç firewall kullanmak istemediğimizde, nasıl devreden çıkaracağımız sorusu aklımıza gelebilir. Yalnız burada şunu unutmayalım, devreden çıkarmadan önce firewall’u önce stop etmemiz gerekiyor. Disable etmiş olabiliriz fakat ilk açılışta yüklendiği için hala çalışıyor durumda olur. Stop-disable ederek tekrar servisin durumuna bakıyoruz.

systemctl stop firewalld
systemctl disable firewalld
firewall-cmd –state
systemctl status firewalld

Bakınız hem stopped durumda hem de disable görünmekte.

Şimdi tekrar enable edeceğiz. Bunu yaparken de az önce yaptığımızın tam tersini yaparak, önce enable, sonra da start komutunu kullanıyoruz.

systemctl enable firewalld

systemctl start firewalld

4.Aktif, Pasif ve Default güvenlik zone’ları (güvenlik bölgeleri) nasıl görülebilir?

Ön tanımlı olarak her linux işletim sisteminde, çeşitli zone’lar tanımlıdır. Sistemimizde hangi zone’lar olduğunu aşağıdaki komutla kontrol ediyoruz.

firewall-cmd –get-zones

Peki biz şu an hangi zone’dayız? Evet birden fazla zone var, fakat hangisi ya da hangilerinin aktif olarak kullanıldığını nasıl görebiliriz? Tabi ki aşağıdaki komutla… Bakınız mantık çerçevesinde düşünelim, önceki komutta get-zones kullanmıştık, şimdi get-active-zones dediğimizde ise, aktif kullanılan zone ya da zone’lar gösterilecektir. Konuşma diline oldukça yakın değil mi?

firewall-cmd –get-active-zones

Bu arada zone ya da zone’lar diyorum farkındaysanız. Yukarıdaki çıktıya baktığımızda, ilk ethernet kartımız için public zone atanmış durumda. Birden fazla ethernet kartı kullanırsak, bu kartlar için de zone tanımı yapabiliriz. Aslında bunu yaptığımız anda, biz bu sistemi bir firewall ya da router olarak kullanmaya başlamışız demektir. 🙂 İlerleyen makalelerimde, bu konuları da işleyeceğiz.

Son olarak Default zone bilgisini görmek istersek de aşağıdaki komutu kullanabiliriz.

firewall-cmd –get-default-zone

5.RHEL 8 / CentOS 8 Linux üzerinde portlar adım adım nasıl açılır?

RHEL 8 / CentOS 8 sistemindeki portları açmak oldukça basit bir prosedürdür. Şu ana kadar gördüğümüz tüm komutları kullanarak ve birkaç tane de üzerine ekleyerek, adım adım bu işlemleri yapalım.

1.Adım:

İlk önce, zaten açık olan bağlantı noktalarını veya enable durumdaki systemd servisleri kontrol edelim. Açmaya çalıştığınız port zaten kullanılabilir durumda olabilir. Eğer açık durumdaysa, yani izin verilmişse herhangi bir işlem yapmanıza da gerek yoktur.

firewall-cmd –list-all

Bakınız hiçbir işlem yapmazsanız, services satırında işaretlediğim servisler izinli durumda. Ayrıca bu kuralların, hangi zone ve ethernet arayüzü için uygulandığını da bu listede görebiliyoruz.

2.Adım:

Firewall üzerinde yapılandırmaya çalıştığınız servisin, önceden yapılandırılmış bir servis olarak mevcut olup olmadığını da aşağıdaki gibi kontrol ediyoruz. Aşağıdaki komut, tüm kullanıma hazır hizmetleri listeleyecektir.

firewall-cmd –get-services

Biz eğer bir servisi izinli hale getireceksek ve o servis bu listede ise, komutumuzda direkt olarak o ismi kullanabiliyoruz tanımlama yaparken.

3.Adım:

Yukarıda zone kontrolü yapmıştık hatırlarsanız. Şimdi izinli hale getirmek istediğimiz herhangi bir portun, hangi zone da açılabileceğini görmek için yine zone listeleme komutumuzu kullanalım.

firewall-cmd –get-zones

Çoğu durumda, firewall-cmd komutuna argüman olarak, açık bir şekilde bölge adı belirtmezsek, tüm işlemler, varsayılan zone olan public zone üzerinde yapılır.

4.Adım:

Bu adımda Port veya bir servisi açmaya başlıyoruz. Firewall’da yapılandırmak istediğiniz hizmet, Adım 2’de alındığı gibi önceden yapılandırılmış bir özellik olarak mevcutsa, bağlantı noktasını açmak için sadece adını kullanmamız yeterlidir.

Örneğin, public zone için HTTP hizmet portunu açalım: Aşağıdaki ilk komutu kullanırsanız, geçici olarak bu servis açılır ve firewall reload ya da sunucu reboot sonrası bu ayarlar kaybolur. Yani geçici ayar yapılır ilk komut ile…

firewall-cmd –zone=public –add-service=http

Eğer kalıcı olarak açmak isterseniz, –permanent parametresini kullanmanız gerekmektedir.

firewall-cmd –zone=public –permanent –add-service=http

Açmak istediğiniz bağlantı noktasının önceden yapılandırılmış hizmetlerin bir parçası olmaması durumunda, –add-port seçeneğini kullanıyoruz. Örneğin, Public bölge için 8080 numaralı TCP portunu, kalıcı olacak şekilde açalım:

firewall-cmd –zone=public –permanent –add-port 8080/tcp

5.Adım:

Firewall üzerinde yaptığımız her ayardan sonra, firewall ayarlarını yeniden yüklememiz gerekiyor. Bağlantı noktasını veya hizmetleri açtıktan sonra, ayarlarımızı yeniden yüklemek için aşağıdaki komutu kullanıyoruz.

firewall-cmd –reload

6.Adım:

Artık istediğimiz portun ya da hizmetin başarıyla açılıp açılmadığını kontrol edebiliriz.

firewall-cmd –list-all

Böylece hem bir servisin hem de bir portun nasıl açılacağını tek bir başlık altında görmüş olduk.

6.RHEL 8 / CentOS 8 Linux’ta portlar adım adım nasıl kapatılır?

RHEL 8 / CentOS 8 linux sistemlerde, portları veya hizmetleri kapatmak da oldukça basit bir prosedürdür. Az önceki işlemlere çok benzer işlemler yapacağız.

1.Adım:

İlk önce, zaten açık olan bağlantı noktalarını veya hizmetleri kontrol ediyoruz. Kapatmak istediğiniz bölgenin, protokolün yanı sıra bağlantı noktası veya hizmeti de not alın.

firewall-cmd –list-all

2.Adım:

Port veya servisi kapatma işlemini yapıyoruz. Aşağıdaki komut Public bölgede http hizmetini kapatacaktır. Farkettiyseniz, servis açmak için –add-service=http kullanmışken, kapatmak için ise –remove-service=http parametresini kullandık.

firewall-cmd –zone=public –permanent –remove-service http

Belirli bir portu kapatmak istemeniz durumunda –remove-port seçeneğini kullanıyoruz. Örneğin TCP 8080 portunu kapatalım:

firewall-cmd –zone=public –permanent –remove-port 8080/tcp

3.Adım:

Yaptığımız tüm ayarlardan sonra, firewall ayarlarını yeniden yüklememiz gerekiyordu. Aşağıdaki komutla, ayarları yeniden yüklüyoruz.

firewall-cmd –reload

4.Adım:

Bu adımda ise, kapatmak istediğimiz port veya hizmetin başarıyla kapatıldığını doğrulayalım.

firewall-cmd –list-all

Bakınız http servisi ve 8080 portunu tekrar kapatmış olduk.

Böylece basit anlamda, linux üzerindeki local firewall üzerinde, ne gibi ayarlar yapabileceğimizi görmüş olduk. İlerleyen makalelerimde, birden fazla ethernet kartı da bağlayarak zone’ların nasıl oluşturulacağını, firewall kurallarının nasıl yazılacağını da ileri seviye ayarlarla birlikte inceleyeceğiz.

Yararlı olması dileğiyle.

Yusuf İşleyen