Shorewall - Linux Sunucuları için Yüksek Düzey Güvenlik Duvarı


Linux'ta bir güvenlik duvarı kurmak, yeni başlayanlar veya iptables'a pek aşina olmayan biri için çok göz korkutucu olabilir. Neyse ki Shorewall'da kullanımı çok kolay bir çözüm var.

Bu çok bölümlü eğitimde, Shorewall'u kullanmaya başlamanıza yardımcı olacağım ve bu harika güvenlik duvarı sistemiyle ilgili daha ileri düzey konularda size yol göstereceğim.

Shorewall nedir?

Shorewall aslında iptables'ın ön ucudur, ancak yapılandırması için çeşitli metin dosyalarını kullanan bir komut satırı ortamı ön ucudur. Shorewall, çok sayıda makineye hizmet veren, çok geniş ağlar üzerinden ölçeklendirilebilen sağlam bir güvenlik duvarı sistemi olsa da, temel iki arayüzlü bir yapılandırmayla başlayacağız ve temelleri detaylandıracağız.

İki arayüzlü bir yapılandırma, biri yerel ağa giren, diğeri yerel ağa giden iki Ethernet bağlantı noktasına sahip bir makineden oluşur.

Linux'ta Shorewall Güvenlik Duvarı'nı yükleyin

Shorewall apt ve yum paket yöneticisi araçları kullanılarak kurulabilir.

sudo apt install shorewall    [On Debian-based Sysems]
sudo yum install shorewall    [On RHEL-based Sysems]

Kurulumdan sonra “/usr/share/doc/shorewall” dizininden örnek bir konfigürasyonu Shorewall’un varsayılan “/etc/shorewall” dizinine kopyalamamız gerekiyor.

sudo cp /usr/share/doc/shorewall/example/two-interfaces/* /etc/shorewall
cd /etc/shorewall

Bu dizine baktığımızda bir sürü dosya ve shorewall.conf dosyasını görüyoruz.

Shorewall, ağı farklı bölgelerden oluşan bir grup olarak görür, dolayısıyla bakmak istediğimiz ilk dosya “/etc/shorewall/zones” dosyasıdır.

sudo nano /etc/shorewall/zones

Burada varsayılan olarak tanımlanan üç bölgenin olduğunu görüyoruz: fw, net ve loc. Shorewall'un güvenlik duvarı makinesini kendi bölgesi olarak ele aldığını ve onu $fw adlı bir değişkende sakladığını unutmamak önemlidir.

"/etc/shorewall/zones" dosyası oldukça açıklayıcıdır. Net bölge (internet'e bakan arayüz), loc bölgesi (LAN'a bakan arayüz) ve fw'ye sahipsiniz. güçlü>, bu her şeydir.

Bu kurulum aşağıdakilerden vazgeçer:

  • Yerel bölgeden (LAN) net bölgeye (İnternet) kadar tüm bağlantı isteklerine izin verir.
  • Tüm bağlantı isteklerini ağ bölgesinden güvenlik duvarına ve LAN'a bırakır (yok sayar).
  • Diğer tüm istekleri reddeder ve günlüğe kaydeder.

LOG LEVEL biti, Apache, MySQL veya diğer herhangi bir sayıdaki FOSS programıyla yönetim yapmış olan herkese tanıdık gelecektir. Bu durumda, Shorewall'a günlük kaydının bilgi düzeyini kullanmasını söylüyoruz.

Artık bölgelerimiz ve politikamız belirlendiğine göre arayüzlerimizi yapılandırmamız gerekiyor. Bunu “/etc/shorewall/interfaces” dosyasını düzenleyerek yapabilirsiniz.

sudo nano /etc/shorewall/interfaces

Burada internete bakan arayüzümüzü net bölgeye eth0 olarak ayarladık. LAN tarafımızda diğer arayüzü (eth1) loc bölgesine ayarladık. Lütfen bu dosyayı yapılandırmanıza uygun şekilde ayarlayın.

Bu arayüzlerden herhangi biri için yerleştirebileceğiniz çeşitli seçenekler oldukça kapsamlıdır ve en iyi şekilde kılavuz sayfasında ayrıntılı olarak açıklanmaktadır.

man shorewall-interfaces

Bunlardan bazılarının kısa bir özeti şu şekildedir:

  • nosmurfs – kaynak olarak yayın adresini içeren paketleri filtreler.
  • logmartians – paketleri imkansız kaynak adresine sahip günlüğe kaydeder.
  • routefilter – sahteciliğe karşı koruma için çekirdek rota filtrelemesi.

Elbette artık sistemimiz güvenlik duvarı ile korunduğuna göre, yapmamız gerekeni yapabilmek için belirli bağlantılara izin verilmesine ihtiyacımız olacak. Bunları “/etc/shorewall/rules” adresindeki kurallar dosyasında tanımlarsınız.

sudo nano /etc/shorewall/rules

Bu dosya ilk başta kafa karıştırıcı görünüyor, çünkü sütunlar çakışıyor, ancak başlıklar oldukça açıklayıcı. İlk olarak, ne gerçekleştirmek istediğinizi açıklayan EYLEM sütununa sahipsiniz.

Daha sonra, paketin kaynaklandığı bölgeyi tanımladığınız bir SOURCE başlığınız olur. Ardından, hedefin bölgesi veya IP adresi olan DEST'inizi veya hedefinizi elde edersiniz. Bir örnek kullanalım.

192.168.1.25 IP adresine sahip makinede güvenlik duvarınızın arkasında bir SSH sunucusu çalıştırmak istediğinizi varsayalım. Yalnızca güvenlik duvarınızda bir bağlantı noktası açmak zorunda kalmayacak, aynı zamanda güvenlik duvarına 22 numaralı bağlantı noktasından gelen trafiğin 192.168.1.25.

Bu, Bağlantı Noktası Yönlendirme olarak bilinir. Çoğu güvenlik duvarında/yönlendiricide ortak bir özelliktir. "/etc/shorewall/rules" dosyasına şunun gibi bir satır ekleyerek bunu başarabilirsiniz:

SSH(DNAT)	net		loc:192.168.1.25

Yukarıda, net bölgeden güvenlik duvarına gelen SSH hedefli paketlerin yönlendirilmesi (DNAT) gerektiğini tanımladık. Strong>) 192.168.1.25 adresli bir makinedeki 22 numaralı bağlantı noktasına bağlayın.

Buna Ağ Adresi Çevirisi veya NAT denir. "D ", Shorewall'a bunun bir hedef adres için bir NAT olduğunu belirtir.

Bunun çalışması için çekirdeğinizde NAT desteğinin etkinleştirilmiş olması gerekir. NAT'a ihtiyacınız varsa ve buna sahip değilseniz lütfen Debian Çekirdeğinin Yeniden Derlenmesi hakkındaki eğitimime bakın.

Bir sonraki makalede çeşitli Shorewall yapılandırmalarını ve seçeneklerini inceleyeceğiz. Ancak şimdilik başlamanıza yardımcı olacak bol miktarda bilgi bulunmalıdır. Her zaman olduğu gibi, daha derinlemesine bir anlayış için lütfen kılavuz sayfalarına bakın.