Güvenlik / Linux OS · 13 Mart 2021 0

#Ubuntu 18.04’te UFW ile Güvenlik Duvarı Nasıl Kurulur




Ubuntu 18.04'te UFW ile Güvenlik Duvarı Nasıl Kurulur

Giriş

UFW veya Karmaşık Olmayan Güvenlik Duvarı, bir güvenlik duvarı yapılandırma işlemini basitleştirmeye yönelik bir arabirimdir. Sağlam ve esnek bir araç olsa da, yeni başlayanlar için bir güvenlik duvarını düzgün bir şekilde yapılandırmak için nasıl kullanılacağını öğrenmek zor olabilir. Ağınızın güvenliğini sağlamaya başlamak istiyorsanız ve hangi aracı kullanacağınızdan emin değilseniz, UFW sizin için doğru seçim olabilir.iptablesiptables

Bu öğretici, Ubuntu 18.04’te UFW ile bir güvenlik duvarının nasıl kurulacağını gösterecektir.

Önkoşullar

Bu öğreticiyi takip etmek için ihtiyacınız olacak:

  • Ubuntu 18.04 öğreticisi ile İlk Sunucu Kurulumu’ndaki 1–3 adımlarını izleyerek ayarlayabileceğiniz, kök olmayan bir kullanıcıya sahip bir Ubuntu 18.04sunucusu.

UFW varsayılan olarak Ubuntu’ya yüklenir. Her nedense kaldırılmışsa, ile yükleyebilirsiniz.sudo apt install ufw

Adım 1 — IPv6’yi UFW ile kullanma (İsteğe bağlı)

Bu öğretici IPv4 göz önünde bulundurularak yazılmıştır, ancak etkinleştirdiğiniz sürece IPv6 için de çalışacaktır. Ubuntu sunucunuzda IPv6 etkinleştirilmişse, UFW’nin IPv4’e ek olarak IPv6 güvenlik duvarı kurallarını yönetecek şekilde IPv6’yı destekleyecek şekilde yapılandırıldığından emin olun. Bunu yapmak için, UFW yapılandırmasını en sevdiğiniz düzenleyiciyle veya en sevdiğiniz düzenleyiciyle açın.nano

  • sudo nano /etc/default/ufw

O zaman değerinin . Şöyle görünmelidir:IPV6yes

/etc/default/ufw alıntı
IPV6=yes

Dosyayı kaydedin ve kapatın. Şimdi, UFW etkinleştirildiğinde, hem IPv4 hem de IPv6 güvenlik duvarı kurallarını yazacak şekilde yapılandırılacaktır. Ancak, UFW’yi etkinleştirmeden önce, güvenlik duvarınızın SSH üzerinden bağlanmanıza izin verecek şekilde yapılandırıldığından emin olmak isteyeceğiz. Varsayılan ilkeleri ayarlayarak başlayalım.

Adım 2 — Varsayılan İlkeleri Ayarlama

Güvenlik duvarınızı kullanmaya yeni başlıyorsanız, tanımlayacak ilk kurallar varsayılan ilkelerinizdir. Bu kurallar, diğer kurallarla açıkça eşleşmeyen trafiğin nasıl işlenyeceğini denetler. Varsayılan olarak, UFW tüm gelen bağlantıları reddetmek ve tüm giden bağlantılara izin vermek için ayarlanır. Bu, sunucunuza ulaşmaya çalışan herkesin bağlanamayacağı, sunucudaki herhangi bir uygulamanın ise dış dünyaya ulaşabileceği anlamına gelir.

UFW kurallarınızı varsayılanlara geri ayarlayalım, böylece bu öğreticiyle birlikte takip edebileceğinizden emin olabiliriz. UFW tarafından kullanılan varsayılanları ayarlamak için şu komutları kullanın:

  • sudo ufw default deny incoming
  • sudo ufw default allow outgoing

Bu komutlar, gelenleri reddetmek ve giden bağlantılara izin vermek için varsayılanları ayarlar. Bu güvenlik duvarı varsayılanları tek başına kişisel bir bilgisayar için yeterli olabilir, ancak sunucuların genellikle dış kullanıcılardan gelen isteklere yanıt vermesi gerekir. Bir dahaki sefere bunu araştıracağız.

Adım 3 — SSH Bağlantılarına İzin Verme

UFW güvenlik duvarımızı şimdi etkinleştirseydik, gelen tüm bağlantıları reddederdi. Bu, sunucumuzun bu tür isteklere yanıt vermesini istiyorsak, meşru gelen bağlantılara (örneğin, SSH veya HTTP bağlantıları) açıkça izin veren kurallar oluşturmamız gerektiği anlamına gelir. Bulut sunucusu kullanıyorsanız, sunucunuza bağlanabilmeniz ve sunucunuzu yönetebilmeniz için gelen SSH bağlantılarına izin vermek isteyebilirsiniz.

Sunucunuzu gelen SSH bağlantılarına izin olacak şekilde yapılandırmak için şu komutu kullanabilirsiniz:

  • sudo ufw allow ssh

Bu, SSH arka nişancısının varsayılan olarak dinlediği bağlantı noktası olan bağlantı noktasındaki tüm bağlantılara izin verecek güvenlik duvarı kuralları oluşturur. UFW, dosyada bir hizmet olarak listelendiği için bağlantı noktasının ne anlama geldiğini bilir.22allow ssh/etc/services

Ancak, hizmet adı yerine bağlantı noktasını belirterek eşdeğer kuralı gerçekten yazabiliriz. Örneğin, bu komut yukarıdakiyle aynı şekilde çalışır:

  • sudo ufw allow 22

SSH arka bilgisayarınızı farklı bir bağlantı noktası kullanacak şekilde yapılandırdıysanız, uygun bağlantı noktasını belirtmeniz gerekir. Örneğin, SSH sunucunuz bağlantı noktasını dinliyorsa, bu bağlantı noktasındaki bağlantılara izin vermek için bu komutu kullanabilirsiniz:2222

  • sudo ufw allow 2222

Artık güvenlik duvarınız gelen SSH bağlantılarına izin vermek üzere yapılandırıldığına göre, etkinleştirebiliriz.

Adım 4 — UFW’yi Etkinleştirme

UFW’yi etkinleştirmek için şu komutu kullanın:

  • sudo ufw enable

Komutun varolan SSH bağlantılarını bozabileceğini belirten bir uyarı alırsınız. SSH bağlantılarına izin veren bir güvenlik duvarı kuralı zaten kurduk, bu yüzden devam etmek iyi olmalı. ile istemi yanıtla ve bas.yENTER

Güvenlik duvarı şu anda etkin. Ayarlanan kuralları görmek için komutu çalıştırın. Bu öğreticinin geri kalanı, farklı bağlantı türlerine izin vermek veya reddetmek gibi UFW’nin nasıl daha ayrıntılı kullanılacağını kapsar.sudo ufw status verbose

Adım 5 — Diğer Bağlantılara İzin Verme

Bu noktada, sunucunuzun yanıt vermesi gereken diğer tüm bağlantılara izin vermelisiniz. İzin vermeniz gereken bağlantılar özel gereksinimlerinize bağlıdır. Neyse ki, bir hizmet adına veya bağlantı noktasına dayalı bağlantılara izin veren kuralların nasıl yazılacağını zaten biliyorsunuz; bunu zaten limanda SSH için yaptık. Bunu şunun için de yapabilirsiniz:22

  • Şifrelenmemiş web sunucularının kullandığı, kullandığı veya kullandığı 80 numaralı bağlantı noktasındaki HTTP sudo ufw allow httpsudo ufw allow 80
  • 443 numaralı bağlantı noktasındaki HTTPS, şifrelenmiş web sunucularının kullandığı, kullandığı veya sudo ufw allow httpssudo ufw allow 443

Bir bağlantı noktası veya bilinen hizmet belirtmenin yanı sıra, diğer bağlantılara izin vermenin birkaç yolu daha vardır.

Belirli Bağlantı Noktası Aralıkları

Bağlantı noktası aralıklarını UFW ile belirtebilirsiniz. Bazı uygulamalar tek bir bağlantı noktası yerine birden çok bağlantı noktası kullanır.

Örneğin, bağlantı noktalarını kullanan X11 bağlantılarına izin vermek için şu komutları kullanın:60006007

  • sudo ufw allow 6000:6007/tcp
  • sudo ufw allow 6000:6007/udp

UFW ile bağlantı noktası aralıklarını belirtirken, kuralların uygulanması gereken iletişim kuralını ( veya) belirtmeniz gerekir. Bundan daha önce bahsetmedik, çünkü protokolü belirtmemek her iki protokole de otomatik olarak izin verir, bu da çoğu durumda iyidir.tcpudp

Belirli IP Adresleri

UFW ile çalışırken, IP adreslerini de belirtebilirsiniz. Örneğin, iş veya ev IP adresi gibi belirli bir IP adresinden bağlantılara izin vermek istiyorsanız, ip adresini belirtmeniz gerekir:203.0.113.4from

  • sudo ufw allow from 203.0.113.4

Ayrıca, IP adresinin bağlanmasına izin verilen belirli bir bağlantı noktasını, ardından bağlantı noktası numarasını ekleyerek de belirtebilirsiniz. Örneğin, bağlantı noktasına (SSH) bağlanmaya izin vermek istiyorsanız, şu komutu kullanın:to any port203.0.113.422

  • sudo ufw allow from 203.0.113.4 to any port 22

Alt ağ

IP adreslerinin bir alt ağına izin vermek istiyorsanız, net maskesi belirtmek için CIDR belirtimini kullanarak bunu yapabilirsiniz. Örneğin, size kadar olan tüm IP adreslerine izin vermek istiyorsanız, şu komutu kullanabilirsiniz:203.0.113.1203.0.113.254

  • sudo ufw allow from 203.0.113.0/24

Benzer şekilde, alt ağın bağlanmasına izin verilen hedef bağlantı noktasını da belirtebilirsiniz. Yine, örnek olarak bağlantı noktasını (SSH) kullanacağız:203.0.113.0/2422

  • sudo ufw allow from 203.0.113.0/24 to any port 22

Belirli Bir Ağ Arabirimine Bağlantılar

Yalnızca belirli bir ağ arabirimi için geçerli olan bir güvenlik duvarı kuralı oluşturmak istiyorsanız, bunu “izin ver” ve ardından ağ arabiriminin adını belirterek yapabilirsiniz.

Devam etmeden önce ağ arabirimlerinizi aramak isteyebilirsiniz. Bunu yapmak için şu komutu kullanın:

  • ip addr
Output Excerpt
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
. . .
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
. . .

Vurgulanan çıktı, ağ arabirimi adlarını gösterir. Genellikle gibi bir şey olarak adlandırılırlar veya .eth0enp3s2

Bu nedenle, sunucunuzun ‘ı adlı ortak bir ağ arabirimi varsa, http trafiğine (bağlantı noktası) şu komutla izin verebilirsiniz:eth080

  • sudo ufw allow in on eth0 to any port 80

Bunu yapmak, sunucunuzun genel internet’ten HTTP istekleri almasına izin verir.

Veya, MySQL veritabanı sunucunuzun (bağlantı noktası) özel ağ arabirimindeki bağlantıları dinlemesini istiyorsanız, örneğin, şu komutu kullanabilirsiniz:3306eth1

  • sudo ufw allow in on eth1 to any port 3306

Bu, özel ağınızdaki diğer sunucuların MySQL veritabanınıza bağlanmasına izin verir.

Adım 6 — Bağlantıları Reddetme

Gelen bağlantılar için varsayılan ilkeyi değiştirmediyseniz, UFW tüm gelen bağlantıları reddedecek şekilde yapılandırılır. Genel olarak, bu, belirli bağlantı noktalarına ve IP adreslerine açıkça izin veren kurallar oluşturmanızı gerektirerek güvenli bir güvenlik duvarı ilkesi oluşturma işlemini basitleştirir.

Ancak, bazen kaynak IP adresine veya alt adlara dayalı belirli bağlantıları reddetmek isteyeceksiniz, belki de sunucunuzun oradan saldırıya uğradığından dolayı. Ayrıca, varsayılan gelen ilkenizi izin verecek şekilde değiştirmek istiyorsanız (önerilmez), bağlantılara izin vermek istemediğiniz hizmetler veya IP adresleri için reddetme kuralları oluşturmanız gerekir.

Reddetme kuralları yazmak için, yukarıda açıklanan komutları kullanabilirsiniz, izin ver ‘i denyile değiştirebilirsiniz.

Örneğin, HTTP bağlantılarını reddetmek için şu komutu kullanabilirsiniz:

  • sudo ufw deny http

Veya tüm bağlantıları reddetmek istiyorsanız şu komutu kullanabilirsiniz:203.0.113.4

  • sudo ufw deny from 203.0.113.4

Şimdi kuralların nasıl silinileceğine bir göz atalım.

Adım 7 — Kuralları Silme

Güvenlik duvarı kurallarının nasıl silindiğini bilmek, bunların nasıl oluşturulacağı kadar önemlidir. Hangi kuralların silindiğini belirtmenin iki farklı yolu vardır: kural numarasına veya gerçek kurala göre (kuralların oluşturulduklarında nasıl belirtildiğine benzer). Daha kolay olduğu için kural numarası yöntemiyle silme ile başlayacağız.

Kural Numarasına Göre

Güvenlik duvarı kurallarını silmek için kural numarasını kullanıyorsanız, yapmak isteyeceğiniz ilk şey güvenlik duvarı kurallarınızın bir listesini almaktır. UFW status komutu, burada gösterildiği gibi her kuralın yanında sayıları görüntüleme seçeneğine sahiptir:

  • sudo ufw status numbered
Numbered Output:
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    15.15.15.0/24
[ 2] 80                         ALLOW IN    Anywhere

Bağlantı noktası 80 (HTTP) bağlantılarına izin veren kural 2’yi silmek istediğimize karar verirsek, bunu aşağıdaki gibi bir UFW silme komutunda belirtebiliriz:

  • sudo ufw delete 2

Bu, bir onay istemi gösterir ve http bağlantılarına izin veren kural 2’yi siler. IPv6 etkinse, karşılık gelen IPv6 kuralını da silmek istediğinizi unutmayın.

Gerçek Kurala Göre

Kural numaralarının alternatifi, silinecek gerçek kuralı belirtmektir. Örneğin, kuralı kaldırmak istiyorsanız, şu şekilde yazabilirsiniz:allow http

  • sudo ufw delete allow http

Kuralı hizmet adı yerine ‘ye göre de belirtebilirsiniz:allow 80

  • sudo ufw delete allow 80

Varsa, bu yöntem hem IPv4 hem de IPv6 kurallarını siler.

Adım 8 — UFW Durumunu ve Kurallarını Denetleme

İstediğiniz zaman, bu komutla UFW’nin durumunu kontrol edebilirsiniz:

  • sudo ufw status verbose

UFW devre dışı bırakılırsa (ki varsayılan olarak öyledir), şöyle bir şey görürsünüz:

Output
Status: inactive

UFW etkinse, adım 3’ü izlediyseniz, çıktı etkin olduğunu söyleyecek ve ayarlanan kuralları listeleyecektir. Örneğin, güvenlik duvarı herhangi bir yerden SSH (bağlantı noktası) bağlantılarına izin vermek üzere ayarlanmışsa, çıktı aşağıdaki gibi görünebilir:22

Output
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere

UFW’nin güvenlik duvarını nasıl yapılandırdığını denetlemek istiyorsanız komutu kullanın.status

Adım 9 — UFW’u Devre Dışı Bırakma veya Sıfırlama (isteğe bağlı)

UFW’yi kullanmak istemediğinize karar verirseniz, şu komutla devre dışı bırakabilirsiniz:

  • sudo ufw disable

UFW ile oluşturduğunuz tüm kurallar artık etkin olmayacaktır. Daha sonra etkinleştirmeniz gerekiyorsa her zaman çalıştırabilirsiniz.sudo ufw enable

Zaten yapılandırılmış UFW kurallarınız varsa, ancak yeniden başlamak istediğinize karar verirseniz, sıfırlama komutunu kullanabilirsiniz:

  • sudo ufw reset

Bu, UFW’yi devre dışı bırakır ve daha önce tanımlanmış tüm kuralları siler. Herhangi bir noktada değiştirdiyseniz, varsayılan ilkelerin özgün ayarlarına değişmeyeceğini unutmayın. Bu size UFW ile yeni bir başlangıç sağlayacaktır.

Sonuç

Güvenlik duvarınız artık (en azından) SSH bağlantılarına izin vermek üzere yapılandırılmıştır. Sunucunuzun işlevsel ve güvenli olması için gereksiz bağlantıları sınırlarken, sunucunuzun gerektirdiği diğer gelen bağlantılara izin verdiğinizden emin olun.

Makale Digitalocean’dan alınmış ve Translate ile çeviri yapılmıştır kelime ve cümle bozuklukları varsa takılmayın. maksat Türkçe kaynak olsun elimizde birilerinin işine yarar 🙂