Ubuntu İle UFW Güvenlik Duvarı Kurma

ReaLyStar

Katılımcı Üye
17 Mar 2019
272
4
Tanrı Dağı
Herkese Merhaba. Ubuntu'ya UFW Güvenlik Duvarı Kurulumu Ve Kullanımını Öğreneceğiz.

Giriş
UFW veya Karmaşık Güvenlik Duvarı, iptablesve gibi alt düzey paket filtreleme teknolojilerinin karmaşıklığını gizleyen basitleştirilmiş bir güvenlik duvarı yönetim arabirimidir nftables. Ağınızı korumaya başlamak istiyorsanız ve hangi aracı kullanacağınızdan emin değilseniz, UFW sizin için doğru seçim olabilir.

gbLbRb.png


IPv6'yı UFW İle Kullanma

Bu eğitim IPv4 göz önünde bulundurularak yazılmıştır, ancak IPv6 için etkinleştirdiğiniz sürece çalışacaktır. Ubuntu sunucunuzda IPv6 etkinleştirilmişse, UFW'nin IPv6'ya ek olarak IPv6 için güvenlik duvarı kurallarını yönetmesi için IPv6'yı destekleyecek şekilde yapılandırıldığından emin olun. Bunu yapmak için UFW yapılandırmasını nanoveya favori düzenleyicinizi açın.

Kod:
 [COLOR="Lime"]$ sudo nano /etc/default/ufw[/COLOR]

Sonra emin değerini yapmak IPV6DİR yes. Şöyle görünmelidir:

Kod:
 [COLOR="Lime"]/ etc / default / ufw alıntısı
IPV6=yes
[/COLOR]

Dosyayı kaydedip 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 politikaları ayarlayarak başlayalım

gbLbRb.png


Varsayılan Politikaları Ayarlama

Güvenlik duvarınıza yeni başlıyorsanız, tanımlanacak ilk kurallar varsayılan politikalarınızdır. Bu kurallar, diğer kurallarla açıkça eşleşmeyen trafiğin nasıl ele alınacağını kontrol eder. Varsayılan olarak, UFW tüm gelen bağlantıları reddedecek ve tüm giden bağlantılara izin verecek şekilde ayarlanmıştır. Bu, sunucunuza erişmeye çalışan herkesin bağlanamayacağı, sunucu içindeki herhangi bir uygulamanın dış dünyaya erişebileceği anlamına gelir.

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


Kod:
 [COLOR="Lime"] 
$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing* 
[/COLOR]

Bu komutlar varsayılanları gelenleri reddetmek ve giden bağlantılara izin vermek için 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 sonraki konuya bakacağız.

gbLbRb.png


SSH Bağlantılarına İzin Verme

UFW güvenlik duvarımızı şimdi etkinleştirirsek, gelen tüm bağlantıları reddeder. Bu, sunucumuzun bu tür isteklere yanıt vermesini istiyorsak, yasal gelen 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. Bir bulut sunucusu kullanıyorsanız, muhtemelen sunucunuza bağlanabilmeniz ve sunucunuzu yönetebilmeniz için gelen SSH bağlantılarına izin vermek isteyeceksiniz.

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


Kod:
$ sudo ufw allow ssh [/COLOR]

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

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


Kod:
$sudo ufw allow 22
[/COLOR]

SSH arka plan programı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ında dinliyorsa, 2222bu bağlantı noktasında bağlantılara izin vermek için bu komutu kullanabilirsiniz:

Kod:
 $ sudo ufw allow 2222[/COLOR]

Güvenlik duvarınız artık gelen SSH bağlantılarına izin verecek şekilde yapılandırıldığına göre etkinleştirebiliriz.

gbLbRb.png


UFW'yi Etkinleştirme

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

Kod:
 $sudo ufw enable [/COLOR]

Komutun mevcut SSH bağlantılarını kesintiye uğratabileceğini söyleyen bir uyarı alırsınız. Zaten SSH bağlantılarına izin veren bir güvenlik duvarı kuralı oluşturduk, bu yüzden devam etmeliyiz. Komut istemine yanıt verin yve tuşuna basın ENTER.

Güvenlik duvarı şimdi etkin.


Kod:
 $ sudo ufw status verbose[/COLOR]

Belirlenen kuralları görmek için komutu çalıştırın . Bu öğreticinin geri kalanı, UFW'nin farklı bağlantılara izin verme veya reddetme gibi daha ayrıntılı nasıl kullanılacağını kapsar.

gbLbRb.png


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 ihtiyaçlarınıza bağlıdır. Neyse ki, bir hizmet adına veya bağlantı noktasına dayalı bağlantılara izin veren kuralları nasıl yazacağınızı zaten biliyorsunuz; bunu zaten limandaki SSH için yaptık 22. Bunu aşağıdakiler için de yapabilirsiniz:

Kod:
 80 numaralı bağlantı noktasında HTTP, şifrelenmemiş web sunucularının kullandığı, sudo ufw allow httpveyasudo ufw allow 80
443 numaralı bağlantı noktasında HTTPS, şifreli web sunucularının kullandığı, sudo ufw allow httpsveyasudo ufw allow 443*[/COLOR]

Bağlantı noktası veya bilinen bir hizmet belirtmenin yanı sıra diğer bağlantılara izin vermenin başka yolları da vardır.

Belirli Liman Aralıkları
UFW ile bağlantı noktası aralıklarını belirleyebilirsiniz. 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ı, izin vermek için 6000- 6007:, bu komutları


Kod:
 $ sudo ufw allow 6000:6007/tcp 
$ sudo ufw allow 6000:6007/udp [/COLOR]

UFW ile bağlantı noktası aralıklarını belirtirken , kuralların uygulanması gereken protokolü ( tcpveya udp) belirtmeniz gerekir. Bunu daha önce belirtmedik çünkü protokolü belirtmemek her iki protokole de otomatik olarak izin veriyor, bu da çoğu durumda sorun değil.

Belirli IP Adresleri

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


Kod:
$ sudo ufw allow from 203.0.113.4to any port 
 [/COLOR]

Alt ağlar


Bir IP adresi alt ağına izin vermek istiyorsanız, ağ maskesini belirtmek için CIDR gösterimini kullanarak bunu yapabilirsiniz. Örneğin, ile arasında değişen tüm IP adreslerine izin 203.0.113.1vermek 203.0.113.254 istiyorsanız bu komutu kullanabilirsiniz:


Kod:
 $ sudo ufw allow from 203.0.113.0/24[/COLOR]

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

Kod:
 $ sudo ufw allow from 203.0.113.0/24 to any port 22[/COLOR]

Belirli Bir Ağ Arayüzüne 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ğ arayüzlerinizi aramak isteyebilirsiniz. Bunu yapmak için şu komutu kullanın:


Kod:
 $ ip addr

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 [/COLOR]


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

Dolayısıyla, sunucunuz adlı bir genel ağ arabirimine sahipse , bu komutla eth0HTTP trafiğine (bağlantı noktası 80) izin verebilirsiniz :


Kod:
 $ sudo ufw allow in on eth0 to any port 80[/COLOR]

Bunu yapmak, sunucunuzun halka açık internetten HTTP istekleri almasına izin verecektir.

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


Kod:
 $ sudo ufw allow in on eth1 to any port 3306[/COLOR]

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

gbLbRb.png


Bağlantıları Reddetme


Gelen bağlantılar için varsayılan ilkeyi değiştirmediyseniz, UFW gelen tüm bağlantıları reddedecek şekilde yapılandırılmıştır. Genellikle 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 sunucunuzun oradan saldırıya uğradığını bildiğiniz için, kaynak IP adresine veya alt ağa dayalı belirli bağlantıları reddetmek isteyebilirsiniz. Ayrıca, varsayılan gelen politikanızı izin vermek (bu önerilmez) için değiştirmek isterseniz, bağlantılara izin vermek istemediğiniz hizmetler veya IP adresleri için reddetme kuralları oluşturmanız gerekir .

Reddetme kuralları yazmak için , izin ver'i reddet ile değiştirerek yukarıda açıklanan komutları kullanabilirsiniz .

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


Kod:
$ sudo ufw deny http[/COLOR]

Veya tüm bağlantıları reddetmek 203.0.113.4isterseniz bu komutu kullanabilirsiniz:

Kod:
 $ sudo ufw deny from 203.0.113.4[/COLOR]

Şimdi kuralları nasıl sileceğimize bakalım.

gbLbRb.png


Kuralları Silme

Güvenlik duvarı kurallarının nasıl silineceğini bilmek, bunları nasıl oluşturacağınızı bilmek kadar önemlidir. Hangi kuralların silineceğini belirtmenin iki farklı yolu vardır: kural numarasına veya asıl kurala göre (kurallar oluşturulduklarında nasıl belirtildiklerine benzer). Kural numarasıyla sil yöntemiyle başlayacağız çünkü daha kolay.

Kural Numarasına Göre

Güvenlik duvarı kurallarını silmek için kural numarasını kullanıyorsanız, yapmak istediğiniz ilk şey güvenlik duvarı kurallarınızın bir listesini almaktır. UFW durum komutunun, burada gösterildiği gibi, her kuralın yanındaki sayıları görüntüleme seçeneği vardır:

Kod:
 $ sudo ufw status numbered[/COLOR]

Kod:
 Numbered Output:
Status: active

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

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:


Kod:
 $ sudo ufw delete 2
[/COLOR]

Bu, bir onay istemi gösterecek ve HTTP bağlantılarına izin veren kural 2'yi silecektir. IPv6'yı etkinleştirdiyseniz, karşılık gelen IPv6 kuralını da silmek istediğinizi unutmayın.

Gerçek Kurala Göre
Kural numaralarına alternatif, silinecek gerçek kuralı belirtmektir. Örneğin, allow httpkuralı kaldırmak istiyorsanız , şu şekilde yazabilirsiniz:

Kod:
 $ sudo ufw delete allow http[/COLOR]

Kuralı allow 80, hizmet adı yerine yerine ile de belirtebilirsiniz :

Kod:
 $ sudo ufw delete allow 80[/COLOR]

Bu yöntem, varsa, hem IPv4 hem de IPv6 kurallarını siler

gbLbRb.png


UFW'yi Devre Dışı Bırakma veya Sıfırlama

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

Kod:
 $ sudo ufw disable[/COLOR]

UFW ile oluşturduğunuz kurallar artık etkin olmayacak. Daha sudo ufw enablesonra etkinleştirmeniz gerekirse her zaman çalıştırabilirsiniz .

Önceden yapılandırılmış UFW kurallarınız varsa, ancak baştan başlamak istediğinize karar verirseniz, reset komutunu kullanabilirsiniz:


Kod:
 $ sudo ufw reset[/COLOR]

Bu, UFW'yi devre dışı bırakır ve önceden tanımlanan tüm kuralları siler. Herhangi bir noktada değiştirdiyseniz, varsayılan politikaların orijinal ayarlarına değişmeyeceğini unutmayın. Bu size UFW ile yeni bir başlangıç yapmalıdır.

gbLbRb.png


Sonuç

Güvenlik duvarınız şimdi (en azından) SSH bağlantılarına izin verecek şekilde yapılandırıldı. Gereksiz bağlantıları sınırlarken sunucunuzun ihtiyaç duyduğu diğer tüm bağlantılara izin verdiğinizden emin olun, böylece sunucunuz çalışır ve güvenli olur.

gbLbRb.png


rNNbpp.png


Alıntıdır​
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.