Bilgi Bankası Profitserver hizmetiyle çalışmak için basit talimatlar
Ana Bilgi Bankası Linux'ta Güvenlik Duvarını Yapılandırma

Linux'ta Güvenlik Duvarını Yapılandırma


Linux'taki Güvenlik Duvarı, bir bilgisayar sistemini güvence altına almada hayati bir rol oynar. Sistemi yetkisiz erişimlerden, saldırılardan ve diğer tehditlerden korumak için ağ trafiğini kontrol eden ve filtreleyen bir bariyer görevi görür. Doğru şekilde yapılandırılmış bir Güvenlik Duvarı olmadan, sunucu çeşitli siber saldırı türlerine karşı savunmasız olabilir ve bu da veri güvenliği ve gizliliği açısından ciddi sonuçlara yol açabilir.

Bu makalede, Linux Güvenlik Duvarını yapılandırmak için iki ana araca bakacağız: Firewalld ve iptables. Özellikleri, işlevselliği ve avantajları hakkında karşılaştırmalı bir analiz yapacağız. Ek olarak, bu araçların her birini kurmak ve kullanmak için ayrıntılı talimatlar sağlayacağız ve Linux platformunda bir Güvenlik Duvarı ile sisteminizi güvence altına almak için en iyi uygulamaları tartışacağız. Tüm eylemler bir sanal sunucu Kök erişimli.

Linux'ta güvenlik duvarını yapılandırma

Güvenlik duvarıd (Firewall Daemon) Linux işletim sistemlerindeki güvenlik duvarını yönetmek için bir programdır. Güvenlik duvarı kurallarını yapılandırmak, ağ uygulamalarının bağlantılarına izin vermek veya engellemek için bir kullanıcı arayüzü sağlar. Çoğu sunucu dağıtımında varsayılan olarak önceden kuruludur. Firewalld önceden kurulu değilse, dağıtımın resmi depolarından bağımsız olarak kurulabilir.

Red Hat sistemleri (RHEL, CentOS, Fedora gibi) için kurulum şu komutla gerçekleştirilir:

yum install firewalld

Debian/Ubuntu için:

apt-get install firewalld

Kurulumdan sonra şu komutla hemen başlatılabilir ve etkinleştirilebilir:

systemctl start firewalld

Daha sonra servisi başlangıca eklemeniz gerekiyor:

systemctl enable firewalld
Linux otomatik yüklemeye güvenlik duvarı ekleme

Bu noktada, ufw'yi devre dışı bırakmanızı öneririz, çünkü bu aracın firewalld veya iptables ile eş zamanlı kullanımı önerilmez. Durumu kontrol edin:

systemctl status ufw
Ufw linux'u kontrol ediyorum

Durdurmak için şu komutu girin:

systemctl stop ufw

Tamamen devre dışı bırakmak için:

ufw disable

Bu işlemlerden sonra artık firewalld'ı yapılandırma aşamasına geçebilirsiniz.

Öncelikle güven bölgelerini tanımlamak gerekir. Firewalld, ağ arayüzleri için güven düzeyini belirlemek için bölge kavramını kullanır. Her arayüze bir bölge atanır ve güvenlik duvarı kuralları bölgeye göre uygulanır. Kullanılabilir tüm bölgelerin listesi şu komutla açılır:

firewall-cmd --get-zones

Genellikle 4 ana bölge kullanılır:

  1. Açık Alan: Bu bölge güvenli olmadığını düşündüğünüz ağlar içindir;
  2. Özel Etkinlik: Ev ağları veya diğer güvenilir ağ bağlantıları için geçerlidir;
  3. İç: Bir kuruluş veya şirket ağı içindekiler gibi dahili ağlar için kullanılır;
  4. DMZ:Bu bölge genellikle internet üzerinden erişilebilen sunucuların yerleştirildiği yerdir.

Ancak bu sadece bir örnek. Aşağıdaki komutu kullanarak kendi bölgenizi ekleyebilirsiniz:

firewall-cmd --permanent --new-zone=nameyourzone

Ekledikten sonra yeniden yükleme yapılması gerekiyor:

firewall-cmd --reload

Bir bölgeyi silmek için benzer bir yöntem kullanılır

firewall-cmd --permanent --delete-zone=nameyourzone

Bölgeleri tanımladıktan sonra, ihtiyaç duyulan servisler ve portlar için trafiğe izin vermek gerekir. Belirli bir servise izin vermek için şu komutu kullanın:

firewall-cmd --zone=public --add-service=name

Nerede isim hizmetin adıdır. Örneğin, Apache için trafiğe izin vermek için:

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

İzin verilen portları tanımlamak için şu komutu kullanın:

firewall-cmd --zone=public --add-port=number/protocol

Örneğin, SSH için standart 22 portu şu şekilde görünecektir:

firewall-cmd --zone=public --add-port=22/tcp

Bu aşamada, ana kurallar zaten oluşturulmuştur. Sonra, trafiğin kaynağa, hedefe, bağlantı noktasına ve diğer ölçütlere bağlı olarak nasıl işleneceğini belirleyin. Bir kural eklemek için ( halka açık (örneğin bölge):

firewall-cmd --zone=public rule

Örneğin, herhangi bir kaynaktan gelen trafiğin 80 (HTTP) portuna gelmesine izin vermek için:

firewall-cmd --zone=public --add-port=80/tcp --permanent

Bir kuralı kaldırmak için:

firewall-cmd --permanent --remove-rule=rule_specification

Nerede kural kuralın türüdür (örneğin, port, hizmet, zengin kural, vb.) ve kural_belirtimi kuralın kendisinin belirtilmesidir.

Firewalld yapılandırmasında değişiklikler yaptıktan sonra, bunları kaydedip uygulamak gerekir. Değişiklikleri kaydetmek için şu komutu kullanın:

firewall-cmd --runtime-to-permanent

Değişiklikleri uygulamak için:

firewall-cmd --reload

Kurulumu tamamladıktan sonra, tüm kuralların listesini açarak seçili parametreleri doğrulayabilirsiniz:

firewall-cmd --list-all
güvenlik duvarı Linux kuralları

Herhangi bir sorun çıkarsa, şu komutla Firewalld kayıtlarını kontrol edin:

journalctl -u firewalld

Not: Bağlantıyı kurmak için yalnızca genel algoritmayı ele aldık. Araç kapsamlı işlevselliğe sahiptir. Mevcut tüm seçenekler hakkında tam bilgi için şunu kullanabilirsiniz: resmi belgeler veya yardımı aç:

firewall-cmd --help

Linux'ta iptables'ı yapılandırma

Firewalld'ın aksine, iptables Linux'ta güvenlik duvarını yönetmek için daha eski ama hala yaygın olarak kullanılan bir araçtır. Linux çekirdek düzeyinde paket filtreleme kurallarına daha doğrudan ve esnek bir yaklaşım sağlar. Ancak, iptables Firewalld'a kıyasla daha gelişmiş bilgi ve deneyim gerektirir ve bu da onu yeni başlayanlar için daha az erişilebilir hale getirir. Aracın önceden yüklenmiş sürümünü şu komutla kontrol edin:

iptables -V

Araç kurulu değilse, kurulması gerekecektir. Ubuntu, Debian'a kurulum için komut:

apt install iptables

Red Hat sistemleri için (örneğin CentOS, Fedora):

yum install iptables

Kurulum sonrası aktivasyon komutu:

systemctl start iptables

Başlangıca eklemek için şunu çalıştırın:

systemctl enable iptables

Iptables yapılandırmasına başlamadan önce, nasıl çalıştığını anlamak önemlidir. Bu, programın sözdizimiyle sağlanır. Aşağıdaki gibi görünür:

iptables -t table action chain additional_parameters

Her bir maddeyi daha derinlemesine inceleyelim.

Iptables'ın dört ana tablosu vardır: filtre, nat, mangle ve rawHer biri belirli tipteki paketleri işlemek için tasarlanmıştır ve kendi kural zincirlerine sahiptir:

  1. filtre: Bu, paket filtreleme kurallarını içeren en sık kullanılan tablodur. Paketlere izin verilip verilmeyeceğine karar vermek için kullanılır.
  2. nat: Bu tablo paketlerdeki ağ adreslerini ve portları değiştirmek için kullanılır. Genellikle maskelemeyi (NAT) ayarlamak için kullanılır.
  3. bozmak: Bu tabloda, paket başlıklarını değiştirebilirsiniz. İşaretleme gibi özel paket işlemleri için kullanılır.
  4. çiğ: Bu tablo, bağlantı izleme sisteminden geçmeden önce uygulanacak kuralları yapılandırmak için kullanılır. Genellikle, belirli adreslerden gelen paketleri düşürmek gibi izleme sistemi tarafından değiştirilmemesi gereken kuralları ayarlamak için kullanılır.

Her tablo bir zincir kümesi içerir. Zincirler, sırayla kontrol edilen bir dizi kuraldır. Üç önceden tanımlanmış zincir vardır:

  1. GİRİŞ (gelen)Bu zincirdeki kurallar gelen paketlerle ne yapılacağını belirler.
  2. ÇIKTI (giden)Bu zincir, bilgisayarınızın ağdaki diğer cihazlara veya bilgisayarlara gönderdiği tüm paketler için geçerlidir.
  3. İLERİ (yönlendirme)Bu zincirdeki kurallar iletilen paketlerle ne yapılacağını belirtir.

Son olarak, her zincir bir eyleme (hedefe) sahiptir. Pratikte, 5 ana eylem kullanılır:

  1. KABUL: Paketin güvenlik duvarından geçmesine izin verin.
  2. DAMLA: Paketi reddedin ve herhangi bir yanıt almadan atın.
  3. REDDET: Paketi reddedin ve göndericiye bir ICMP hata mesajı gönderin.
  4. LOG: Paketi sistem günlüğüne kaydedin ve başka bir eylem gerçekleştirin (örneğin, KABUL ET veya BIRAK).
  5. DÖNÜŞ: Mevcut zincirdeki kuralları kontrol etmeyi bırak ve çağıran zincire geri dön (eğer varsa).

Kurulumu başlatmak için mevcut kuralların listesini şu komutla açın:

iptables -L
Linux'ta Güvenlik Duvarını Yapılandırma

Iptables'ı yapılandırmak için bir rehber olarak, en sık kullanılan komutların pratik örneklerine bakalım. Kolaylık olması açısından, örnekleri belirli zincire bağlı olarak 3 gruba ayıracağız.

zincir GİRİŞ:

  1. TCP protokolü üzerinden 80 numaralı porttan gelen trafiğe izin ver:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. 22 numaralı porttan UDP protokolü üzerinden gelen trafiğe izin verin:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Belirli bir IP adresinden gelen trafiği engelleyin:

iptables -A INPUT -s 192.168.1.100 -j DROP

zincir ÇIKTI:

  1. TCP protokolü üzerinden 443 numaralı porttan giden trafiğe izin ver:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. 80 numaralı porttan UDP protokolü üzerinden giden trafiğe izin verin:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Belirli bir porta giden trafiği engelleyin (örneğin, 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

zincir İLERİ:

  1. Belirli bir IP adresi aralığından iletilen trafiği engelle:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Belirli bir ağ arayüzünden gelen paketlerin iletilmesini engelleyin:

iptables -A FORWARD -i eth1 -j DROP

3. Belirli bir port için eş zamanlı bağlantı sayısını sınırlayın (bu örnekte, 10 numaralı portta dakikada 80 bağlantı):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Gördüğünüz gibi, her ayrı durumda ek bir argüman (komut) kullanılır. Olası argümanların tam listesini ve aracın işlevselliği için genel desteği almak için şunu girin:

iptables -h
iptables linux kurulum komut listesi

Ayarların doğru olduğundan emin olmak için, kuralların listesini görüntülemek üzere komutu tekrar girin:

iptables -L
iptables linux kurallarını kontrol etme

Belirli bir kuralı silmek için şu komutu kullanın:

iptables -D chain rule_number

Örneğin, INPUT zincirinden 1 numaralı kuralı silmek istiyorsanız, komut şu şekilde görünecektir:

iptables -D INPUT 1

Tüm kuralları tek komutla silmek için:

iptables -F

Önemli not: iptables kuralları sistem veya servis yeniden başlatıldıktan sonra otomatik olarak kaydedilmez. Kuralları kaydetmek için, bir yapılandırma dosyasına eklenmeleri ve yeniden başlatıldıktan sonra geri yüklenmeleri gerekir. iptables-kaydet ve iptables-geri yükleme utilities bu konuda yardımcı olabilir. Kuralları kaydetmek için şu komutu girin:

iptables-save > /etc/iptables/rules.v4

Bu, geçerli iptables kurallarını rules.v4 dosyasına kaydeder. Yeniden başlatmanın ardından geri yüklemek için şunu girin:

iptables-restore < /etc/iptables/rules.v4

Bu komut rules.v4 dosyasındaki kuralları geri yükler.

Sonuç

Linux'ta Firewall'u Firewalld veya iptables kullanarak yapılandırmak, sunucu güvenliğini sağlamanın önemli bir yönüdür. Her iki araç da ağ trafiğini yönetmek ve sistemi yetkisiz erişim ve siber saldırılardan korumak için güvenilir araçlar sunar. Firewalld ve iptables arasındaki seçim, farklı işlevsellikleri ve güçlü yönleri göz önünde bulundurularak kullanıcının belirli ihtiyaçlarına ve tercihlerine bağlıdır.

❮ Önceki makale Linux Kullanıcıları: Yönetim ve İzinler
Sonraki makale ❯ Sunucu Yük Tanılaması

VPS hakkında bize sorun

Sorularınızı günün veya gecenin herhangi bir saatinde cevaplamak için her zaman hazırız.