Linux en güvenilir ve güvenli işletim sistemlerinden biri olmasına rağmen, özellikleri sayesinde, ister sistemin doğasında olsun, isterse kullanıcı tarafından istemeden olsun, her zaman bir tür güvenlik açığı olacaktır. Linux güvenliğini artırmak için hizmetleri, süreçleri, profilleri veya dosyaları korumak için tasarlanmış çeşitli araçlarımız var ve bugün Iptables adlı özel bir araç üzerinde odaklanacağız.
Iptables nedir?Iptables, netfilter adlı bir projenin parçası olan Linux çekirdeğine entegre edilmiş gelişmiş bir güvenlik duvarı aracıdır.
Iptables sayesinde sunucuya gelen ve giden tüm bağlantıları doğru ve doğrudan yönetebileceğiz. Iptables, IPv4 adresleme için geliştirilmiştir, IPv6 için ise Ip6tables vardır.
1. Linux'ta iptables yapısı
Iptables'da bulduğumuz yapı şudur:
ÇiğDiğer mevcut tablolardan önce paketleri filtrelemekten sorumludur.
FiltreBu, uygulamanın varsayılan tablosudur
NatAğ adresi çevirisi için kullanılır
MangrovÖzel ağ paketlerinin değiştirilmesi için kullanılır.
GüvenlikZorunlu Erişim Kontrolü ağ bağlantı kuralları için uygulanabilir
2. Linux'ta Iptables'da komut yapısı
Iptables'da her kural, ağ paket trafiğinin nasıl ele alınması gerektiğini gösteren bir komuttur.
Aşağıdaki yapıyı kullanabiliriz:
-A GİRDİ -i eth0 -p tcp -m durumu - KURULDU, İLGİLİ --sport 80 -j KABULKullanılan parametreler şunlardır:
- -A: Kuralların Iptables'a ekleneceğini belirtir
- -i: Kuralın uygulanacağı arayüzü belirtir.
- -p: Kuralın uygulanacağı protokolü ifade eder.
- -m: Kuralın uygulanabilmesi için yerine getirilmesi gereken bir koşul olduğunu ifade eder.
- --state: Yeni bağlantıların kabulüne izin ver
- --sport: Kaynak bağlantı noktasını gösterir
- -j: (Atlama), verilen koşulları karşılayan tüm trafiği kabul edebileceklerini belirtir.
3. Linux'ta Iptables Kullanarak Kural Oluşturma
Kuralları manuel olarak ekleyebilmemize rağmen, bir kural dosyası oluşturup daha sonra içe aktarmak çok daha pratiktir. Bu durumda dosyayı / tmp / iptables-ip4 yolunda oluşturacağız ve ilgili ayarlaması için bir düzenleyici kullanabiliriz:
sudo nano / tmp / iptables-ip4Sözdizimi aşağıdaki gibi olacaktır:
* filtre # COMMIT eklemek için kurallarŞimdi söz konusu dosya içerisinde aşağıdaki kuralları oluşturacağız:
Loopback = Linux'un harici arayüzüdür
-A GİRDİ -i lo -j KABUL -A ÇIKIŞ -o lo -j KABUL
Ping = Ağ bağlantılarını kontrol etmemizi sağlar
-A GİRDİ -i eth0 -p icmp -m durum --durum YENİ --icmp-type 8 -j KABUL -A GİRDİ -i eth0 -p icmp -m durum --durum KURULDU, İLGİLİ -j KABUL -A ÇIKIŞ - o eth0 -p icmp -j KABUL
Web = Bu kurallar aracılığıyla gelen ve giden trafiği kontrol ediyoruz.
-A GİRDİ -i eth0 -p tcp -m durum --durum KURULMUŞ, İLGİLİ --sport 80 -j KABUL -A GİRDİ -i eth0 -p tcp -m durum --durum KURULMUŞ, İLGİLİ --sport 443 -j KABUL ET -A ÇIKIŞ -o eth0 -p tcp -m tcp --dport 80 -j KABUL -A ÇIKIŞ -o eth0 -p tcp -m tcp --dport 443 -j KABUL
DNS eklenmesi durumunda aşağıdaki satırları kullanacağız:
-A GİRİŞ -i ens3 -s 192.168.0.1 -p udp --sport 53 -m durum --durum KURULU, İLGİLİ -j KABUL -A ÇIKIŞ -o ens3 -d 192.168.0.1 -p udp --dport 53 -m udp -j KABUL
Not:Burada IP'yi gerektiği gibi değiştirmeliyiz
Zaman = Bu kurallar, doğru zaman senkronizasyonu için NTP'ye bağlantıya izin verir
-A GİRDİ -i eth0 -p udp -m durum --durum KURULU, İLGİLİ --dport 123 -j KABUL -A ÇIKIŞ -o eth0 -p udp -m udp --sport 123 -j KABUL
Yazdırma = Yazıcıların bağlanması için USB bağlantı noktalarının etkinleştirilmesine izin verir
-A GİRDİ -p udp -m udp --dport 631 -j KABUL -A GİRDİ -p tcp -m tcp --dport 631 -j KABUL -A ÇIKIŞ -p udp -m udp --sport 631 -j KABUL -A ÇIKTI -p tcp -m tcp --sport 631 -j KABUL
E-posta = Çeşitli e-posta protokollerini etkinleştirebiliriz
# IMAP -A GİRDİ -i eth0 -p tcp -m durum --durum KURULU, İLGİLİ --sport 993 -j KABUL -A ÇIKIŞ -o eth0 -p tcp -m tcp --dport 993 -j KABUL
# POP3 -A GİRDİ -i eth0 -p tcp -m durum --durum KURULU, İLGİLİ --sport 995 -j KABUL -A ÇIKIŞ -o eth0 -p tcp -m tcp --dport 995 -j KABUL
# SMTP -A GİRDİ -i eth0 -p tcp -m durum --durum KURULU, İLGİLİ --sport 465 -j KABUL -A ÇIKIŞ -o eth0 -p tcp -m tcp --dport 465 -j KABUL
SSH = SSH protokolünü kullanarak bilgisayara güvenli bağlantıları etkinleştirin
# Giriş -A GİRİŞ -i ens3 -p tcp -m durum --durum YENİ, KURULDU --dport 22 -j KABUL -A ÇIKIŞ -o ens3 -p tcp -m durum --durum KURULDU --sport 22 -j KABUL
# Çıkış -A ÇIKIŞ -o ens3 -p tcp -m durum --durum YENİ, KURULDU --dport 22 -j KABUL -A GİRDİ -i ens3 -p tcp -m durum --durum KURULDU --sport 22 -j KABUL
DHCP: DHCP üzerinden IP adreslemeye yetki vermek için kurallar oluşturabiliriz
-A GİRDİ -i eth0 -p udp -m durum --durum KURULU, İLGİLİ --sport 67:68 -j KABUL -A ÇIKIŞ -o eth0 -p udp -m udp --dport 67:68 -j KABUL
Tüm bağlantıları reddet: Yukarıdakilerin tümünü devre dışı bırakmak için aşağıdaki satırları ekleyebiliriz:
-A GİRDİ -j REDDET -İLERİ -j REDDET -A ÇIKTI -j REDDET
Tüm bu satırlar belirtilen dosyaya eklenecektir:
BÜYÜT
Değişiklikleri kaydediyoruz
Ctrl + O
Editörü kullanarak bırakıyoruz
Ctrl + X
4. Iptables Linux kullanarak kuralları içe aktarma
Dosya düzenlendikten sonra, aşağıdaki komutu uygulayarak bu kuralları Iptable'a aktarabiliriz:
sudo iptables -F && sudo iptables -XSudo iptables -S komutunu kullanarak kuralların durumunu görebiliriz:
BÜYÜT
Tüm kuralları geri yüklemek istediğimizde aşağıdaki satırı uygulayacağız:
sudo iptables-restore </ tmp / itpables-ip4Bu kuralların kalıcı olmasını istiyorsak aşağıdakileri uygulayacağız:
sudo apt iptables kurulumu kalıcıBu şekilde Iptables, Linux ortamlarında güvenlik duvarını yapılandırırken en iyi müttefikimizdir.