news
Türkiye'de yeni veri merkezi Star of Bosphorus
April 5, 2023
Updated June 7, 2023

Temel UFW (Uncomplicated Firewall) komutları

Linux

Giriş:

Ubuntu için varsayılan güvenlik duvarı yapılandırma aracı ufw'dir. İptables güvenlik duvarı yapılandırmasını basitleştirmek için tasarlanan ufw, IPv4 veya IPv6 ana bilgisayar tabanlı bir güvenlik duvarı oluşturmanın uygun bir yolunu sunar. Varsayılan olarak, UFW devre dışıdır.

UFW durum kontrolü

Güvenlik duvarının açık olup olmadığını kontrol edin, bu komutu kullanın:

sudo ufw status

1-ufw

  • Sonuç, güvenlik duvarınızın etkin olup olmadığını gösterecektir.

Açılma UFW

Ufw durum komutunu çalıştırırken Durum: etkin değil mesajı alırsanız, güvenlik duvarının sistemde henüz etkin olmadığı anlamına gelir. Etkinleştirmek için bir komut çalıştırmanız gerekir.

Varsayılan olarak, UFW etkinleştirildiğinde, sunucudaki tüm bağlantı noktalarına harici erişimi engeller. Pratikte bu, SSH üzerinden bir sunucuya bağlanırsanız ve SSH bağlantı noktasına erişime izin vermeden önce ufw'yi etkinleştirirseniz bağlantınızın kesileceği anlamına gelir.

Sisteminizde ufw'yi etkinleştirmek için şu komutu çalıştırın:

sudo ufw enable

2-ufw

  • Buna benzer bir sonuç göreceksiniz.

Şu anda neyin engellendiğini veya izin verildiğini görmek için, aşağıda gösterildiği gibi ufw durumunu çalıştırırken ayrıntılı parametreyi kullanabilirsiniz:

sudo ufw status verbose

3-ufw

  • Çıktı

Kapatılıyor UFW

Herhangi bir nedenle güvenlik duvarını devre dışı bırakmanız gerekiyorsa, bunu aşağıdaki komutla yapabilirsiniz:

sudo ufw disable

Dikkatli olun, bu komut sisteminizdeki güvenlik duvarı hizmetini tamamen devre dışı bırakacaktır!

Bir IP adresinin adreslenmesini engelleme

Belirli bir IP adresinden kaynaklanan tüm ağ bağlantılarını engellemek için, ayrılan IP adresini engellemek istediğiniz IP adresiyle değiştirerek aşağıdaki komutu çalıştırın:

sudo ufw deny from 91.198.174.190

4-ufw

  • Bu örnekte, "91.198.174.190'dan itibaren", "91.198.174.190" kaynak IP adresini gösterir.
sudo ufw status

Bu komutu çalıştırırsanız, belirtilen IP adresinin yasaklar listesinde olduğunu göreceksiniz:

5-ufw

  • Gelen ve giden tüm bağlantılar belirtilen IP adresi için engellenir.

Alt ağı engelle

Tüm alt ağı engellemeniz gerekiyorsa, alt ağ adresini ufw reddet komutunda "kimden" parametresi olarak kullanabilirsiniz. Bu, örnek alt ağdaki tüm IP adreslerini engeller 91.198.174.0 / 24:

sudo ufw deny from 198.174.0/24

6-ufw

  • Alt ağı engelle

Ağ arayüzüne gelen bağlantıları engelleme

Belirli bir IP adresinden belirli bir ağ arabirimine gelen bağlantıları engellemek için, IP adresini engellemek istediğiniz IP adresiyle değiştirerek aşağıdaki komutu çalıştırın:

sudo ufw deny in on eth0 from 91.198.174.192

7-ufw

  • "Giriş" parametresi, güvenlik duvarına kuralı yalnızca gelen bağlantılara uygulamasını söyler ve "eth0'da" parametresi, kuralın yalnızca eth0 arabirimi için geçerli olduğunu söyler. Birden çok ağ arabirimine (sanal arabirimler dahil) sahip bir sisteminiz varsa ve bu arabirimlerin bazılarına harici erişimi engellemeniz gerekiyorsa, ancak hepsine değil, bu yararlı olabilir.

IP adresi dönüşümlerine izin ver

Belirli bir IP adresinden kaynaklanan tüm ağ bağlantılarına izin vermek için, ayrılan IP adresini erişime izin vermek istediğiniz IP adresiyle değiştirerek aşağıdaki komutu çalıştırın:

sudo ufw allow from 198.174.192

8-ufw

  • Şimdi "sudo ufw durumu" nu çalıştırırsanız, yeni eklediğiniz IP adresinin yanında İZİN VER ile buna benzer bir çıktı göreceksiniz.
sudo ufw status

9-ufw

  • Ana bilgisayar için uygun alt ağ maskesini belirterek, örneğin 91.198.174.0/24 gibi tüm bir alt ağdan bağlantılara da izin verebilirsiniz.

Ağ arayüzüne gelen bağlantılara izin ver

Belirli bir IP adresinden belirli bir ağ arabirimine gelen bağlantılara izin vermek için, IP adresini izin vermek istediğinizle değiştirerek aşağıdaki komutu çalıştırın:

sudo ufw allow in on eth0 from 91.198.174.22

10-ufw

  • The "in" parameter tells the firewall to apply the rule only to incoming connections and the "on eth0" parameter specifies that the rule applies only to the "eth0" interface.
sudo ufw status

Komutu çalıştırırsanız, buna benzer bir sonuç görürsünüz:

11-ufw

  • "Sudo ufw durumu" nun sonucu

Güvenlik duvarı kuralını kaldırma

Ufw'ye önceden yüklenmiş bir kuralı silmek için "ufw sil" i kullanın, ardından kuralı (izin ver / reddet) ve hedef belirtimi girin. Aşağıdaki örnek, daha önce 91.198.174.192 IP adresinden tüm bağlantılara izin verecek şekilde ayarlanmış bir kuralı siler:

sudo ufw delete allow from 91.198.174.192

12-ufw

  • Güvenlik duvarı kuralını kaldırma

Hangi kuralı kaldırmak istediğinizi belirtmenin başka bir yolu da kural kimliğini belirtmektir. Bu bilgi aşağıdaki komut kullanılarak elde edilebilir:

sudo ufw status numbered

13-ufw

  • Çıktıdan iki aktif kural olduğunu görebilirsiniz. İlk kural, 91.198.174.190 IP adresinden gelen tüm bağlantıları reddeder. İkinci kural, 91.198.174.22 IP adresinden gelen eth0 arabirimindeki bağlantılara izin verir.

Varsayılan olarak güvenlik duvarı, açıkça izin verilmedikçe tüm harici erişimi zaten engellediğinden, ilk kural gereksizdir, bu nedenle kaldırılabilir. Bir kuralı kimliğine göre kaldırmak için komutu çalıştırın:

sudo ufw delete 1

İşlemi onaylamanız ve belirttiğiniz kimliğin silmek istediğiniz doğru kuralla ilişkili olduğundan emin olmanız istenir.

14-ufw

  • Kurallarınızı "sudo ufw" durumuyla tekrar listelerseniz, kuralın kaldırıldığını görürsünüz.

Kullanılabilir uygulama profillerinin listesi

Ağ iletişimine dayanan uygulamaları yüklerken, harici adreslerden bağlantılara izin vermek için kullanılabilecek bir güvenlik duvarı profili ayarlamak yaygındır. Bu, hizmet tarafından kullanılan belirli bağlantı noktası numaralarını soyutlayan ve hizmetleri yönlendirmek için uygun adlandırma sağlayan bir kısayol olması avantajıyla, genellikle "ufw allow from" çalıştırmakla aynıdır.

sudo ufw app list

Web sunucusu veya ağa bağlı başka bir yazılım gibi bir hizmet yüklediyseniz ve profil güvenlik duvarında mevcut değilse, önce hizmetin etkin olduğundan emin olun. Uzak sunucular için OpenSSH genellikle kullanılabilir:

15-ufw

  • Çıktı

Belirli bir uygulama için bir profil ekleyin

Bir güvenlik duvarı uygulama profilini etkinleştirmek için "ufw'ye izin ver" komutunu ve ardından etkinleştirmek istediğiniz uygulama profilinin adını çalıştırın ve bu, "sudo ufw uygulama listesi" komutuyla elde edilebilir. Aşağıdaki örnekte, standart SSH bağlantı noktasında gelen tüm SSH bağlantılarına izin verecek olan OpenSSH profilini etkinleştiriyoruz.

sudo ufw allow OpenSSH

16-ufw

  • Çıktı

Belirli bir uygulama için profili devre dışı bırakma

Güvenlik duvarında önceden yapılandırdığınız bir uygulama profilini devre dışı bırakmak için ilgili kuralı kaldırmanız gerekir. Örneğin, "sudo ufw durumu" ndan aşağıdaki çıktıyı göz önünde bulundurun

sudo ufw status

17-ufw

  • Bu çıktı, "Nginx Tam" uygulama profilinin şu anda etkin olduğunu ve web sunucusuna hem HTTP hem de HTTPS üzerinden herhangi bir bağlantıya izin verdiğini gösterir.

Web sunucunuza yalnızca HTTPS isteklerine izin vermek istiyorsanız, önce bu durumda "Nginx HTTPS" olan en kısıtlayıcı kuralı etkinleştirmeniz ve ardından "Nginx Full" etkin kuralını devre dışı bırakmanız gerekir:

sudo ufw allow "Nginx HTTPS"

sudo ufw delete allow "Nginx Full"

Mevcut tüm uygulama profillerini "sudo ufw uygulama listesi" ile listeleyebileceğinizi unutmayın.

Ssh'yi etkinleştir

Uzak sunucularla çalışırken, sunucunuza uzaktan giriş yapabilmeniz için SSH bağlantı noktasının bağlantılara açık olduğundan emin olmanız gerekir.

Aşağıdaki komut, güvenlik duvarı için OpenSSH uygulama profilini etkinleştirecek ve sunucudaki varsayılan SSH bağlantı noktasına tüm bağlantılara izin verecektir:

sudo ufw allow OpenSSH

18-ufw

Daha az kullanıcı dostu olmasına rağmen, alternatif bir sözdizimi, genellikle varsayılan olarak 22 olarak ayarlanan SSH hizmetinin tam bağlantı noktası numarasını belirtmektir:

sudo ufw allow 22

19-ufw

  • Çıktı

Belirli bir IP adresinden veya alt ağdan gelen ssh'ye izin ver

Belirli bir IP adresinden veya alt ağdan gelen bağlantılara izin vermek için, bağlantının kaynağını tanımlamak üzere "kimden" yönergesini ekleyeceksiniz. Bu, hedef adresi "kime" parametresiyle de belirtmenizi gerektirir. Bu kuralı yalnızca SSH için engellemek için "proto" yu (protokol) "tcp" ile sınırlayın ve ardından "port" parametresini kullanın ve varsayılan SSH portu olan 22'ye ayarlayın.

Aşağıdaki komut yalnızca 91.198.174.33 IP adresinden kaynaklanan SSH bağlantılarına izin verecektir:

sudo ufw allow from 91.198.174.33 proto tcp to any port 22

20-ufw
Tüm ağdan gelen SSH bağlantılarına izin vermek için alt ağ adresini "kimden" parametresi olarak da kullanabilirsiniz:

sudo ufw allow from 91.198.174.0/24 proto tcp to any port 22

21-ufw

Belirli bir IP adresinden veya alt ağdan gelen Rsync'ye izin ver

873 numaralı bağlantı noktasında çalışan Rsync, dosyaları bir bilgisayardan diğerine aktarmak için kullanılabilir.

Belirli bir IP adresinden veya alt ağdan gelen rsync bağlantılarına izin vermek için kaynak IP adresini belirtmek için kimden parametresini ve hedef bağlantı noktasını 873 olarak ayarlamak için bağlantı noktası parametresini kullanın. Aşağıdaki komut yalnızca 91.198.174.33 IP adresinden gelen Rsync bağlantılarına izin verecektir:

sudo ufw allow from 91.198.174.33 to any port 873

22-ufw
Tüm 91.198.174.0 / 24 alt ağının sunucunuza "rsync" yapmasına izin vermek için komutu çalıştırın:

sudo ufw allow from 91.198.174.0/24 to any port 873

23-ufw

  • Çıktı

Nginx HTTP / https'ye izin ver

Nginx web sunucusunu kurarken, sunucunun içine birkaç farklı güvenlik duvarı profili yükler. Nginx'i hizmet olarak kurup etkinleştirdikten sonra, hangi profillerin kullanılabilir olduğunu belirlemek için aşağıdaki komutu çalıştırın:

sudo ufw app list | grep Nginx

24-ufw

  • HTTP ve HTTPS trafiğine izin vermek için Nginx Full'u seçin. Aksi takdirde, yalnızca http'ye izin vermek için Nginx http'yi veya yalnızca https'ye izin vermek için Nginx https'yi seçin.

Aşağıdaki komut sunucuda HTTP ve HTTPS trafiğine izin verecektir (80 ve 443 numaralı bağlantı noktaları):

sudo ufw allow "Nginx Full"

25-ufw

  • Çıktı

Apache HTTP / https'ye izin ver

Kurulum sırasında Apache web sunucusu, sunucuya birkaç farklı UFW profili yükler. Apache'yi bir hizmet olarak kurduktan ve etkinleştirdikten sonra, hangi profillerin kullanılabilir olduğunu belirlemek için aşağıdaki komutu çalıştırın:

sudo ufw app list | grep Apache

26-ufw

  • HTTP ve HTTPS trafiğini etkinleştirmek için "Apache Full" u seçin. Aksi takdirde HTTP için "Apache" yi veya HTTPS için "Apache Secure" ı seçin.

Aşağıdaki komut sunucuda HTTP ve HTTPS trafiğine izin verecektir (80 ve 443 numaralı bağlantı noktaları):

sudo ufw allow "Apache Full"

27-ufw

  • Çıktı

Gelen tüm HTTP'ye izin ver (bağlantı noktası 80)

Apache ve Nginx gibi web sunucuları normalde 80 numaralı bağlantı noktasında HTTP isteklerini dinler. Gelen trafiğe ilişkin varsayılan ilkeniz reddet veya reddet olarak ayarlanmışsa, 80 numaralı bağlantı noktasına harici erişime izin vermek için bir UFW kuralı oluşturmanız gerekir. Bu komutun parametresi olarak bağlantı noktası numarasını veya hizmet adını (http) kullanabilirsiniz.

Gelen tüm HTTP bağlantılarına izin vermek için (bağlantı noktası 80) komutu çalıştırın:

sudo ufw allow http

28-ufw

Alternatif bir sözdizimi, HTTP hizmetinin bağlantı noktası numarasını belirtmektir:

sudo ufw allow 80

29-ufw

  • Çıktı

Gelen tüm https'lere izin ver (bağlantı noktası 443)

HTTPS normalde 443 numaralı bağlantı noktasında çalışır. Gelen trafiğe ilişkin varsayılan ilkeniz reddet veya reddet olarak ayarlanmışsa, 443 numaralı bağlantı noktasında harici erişime izin vermek için bir UFW kuralı oluşturmanız gerekir. Bu komutun parametresi olarak bağlantı noktası numarasını veya hizmet adını (https) kullanabilirsiniz.

Gelen tüm HTTPS bağlantılarına (bağlantı noktası 443) izin vermek için bu komutu çalıştırın:

sudo ufw allow https

30-ufw

Alternatif bir sözdizimi, HTTPS hizmetinin bağlantı noktası numarasını belirtmektir:

sudo ufw allow 443

31-ufw

  • Çıktı

Gelen tüm HTTP ve https'ye izin ver

HTTP ve HTTPS trafiğine izin vermek istiyorsanız, her iki bağlantı noktasına da izin veren bir kural oluşturabilirsiniz. Bu kullanım, protokolü, bu durumda tcp'ye ayarlanması gereken "proto" parametresini kullanarak da tanımlamanızı gerektirir.

Gelen tüm HTTP ve HTTPS bağlantılarına (80 ve 443 numaralı bağlantı noktaları) izin vermek için komutu çalıştırın:

sudo ufw allow proto tcp from any to any port 80,443

32-ufw

Allow connection to MySQL from a specific IP address or subnet

MySQL listens for client connections on port 3306. If your MySQL database server is used by a client on a remote server, you need to create a UFW rule to allow such access.

To allow incoming MySQL connections from a particular IP address or subnet, use the from parameter to specify the source IP address and the "port" parameter to set destination port 3306.

The following command will allow the IP address 91.198.174.33 to connect to the MySQL server port:

sudo ufw allow from 91.198.174.33 to any port 3306

33-ufw
91.198.174.0 / 24 alt ağının tamamının MySQL sunucunuza bağlanmasına izin vermek için komutu çalıştırın:

sudo ufw allow from 91.198.174.0/24 to any port 3306

34-ufw

Belirli bir IP adresinden veya alt ağdan postgresql'e bağlantıya izin ver

PostgreSQL, 5432 numaralı bağlantı noktasında istemci bağlantılarını dinler. PostgreSQL veritabanı sunucunuz uzak sunucudaki bir istemci tarafından kullanılıyorsa, bu trafiğe izin vermeniz gerekir.

Belirli bir IP adresinden veya alt ağdan gelen PostgreSQL bağlantılarına izin vermek için kaynağı kimden parametresiyle belirtin ve bağlantı noktasını 5432 olarak ayarlayın:

sudo ufw allow from 91.198.174.33 to any port 5432

35-ufw
91.198.174.0/24 alt ağının tamamının PostgreSQL sunucunuza bağlanmasına izin vermek için komutu çalıştırın:

sudo ufw allow from 91.198.174.0/24 to any port 5432

Belirli bir IP adresinden veya alt ağdan postgresql'e bağlantıya izin ver

Sendmail ve Postfix gibi posta sunucuları normalde SMTP trafiği için 25 numaralı bağlantı noktasını kullanır. Sunucunuzun giden posta göndermemesi gerekiyorsa, bu tür trafiği engelleyebilirsiniz. Giden SMTP bağlantılarını engellemek için şu komutu çalıştırın:

sudo ufw deny out 25

36-ufw

Bu, güvenlik duvarınızı 25 numaralı bağlantı noktasındaki tüm giden trafiği engelleyecek şekilde yapılandıracaktır. Farklı bir bağlantı noktası numarasındaki giden bağlantıları reddetmeniz gerekiyorsa, bu komutu tekrarlayabilir ve 25'i engellemek istediğiniz bağlantı noktası numarasıyla değiştirebilirsiniz.

Sonuç:

UFW, doğru yapılandırıldığında sunucularınızın güvenliğini önemli ölçüde artırabilen güçlü bir araçtır. Bu kılavuz, Ubuntu'da güvenlik duvarını yapılandırmak için sıklıkla kullanılan bazı yaygın UFW kurallarını kapsar. Bu kılavuzdaki komutların çoğu, kaynak IP adresi ve / veya hedef bağlantı noktası gibi parametreler değiştirilerek farklı kullanım durumları ve senaryoları için uyarlanabilir. Her komut parametresi ve kullanılabilir değiştiriciler hakkında daha fazla bilgi için UFW kılavuzunu kontrol etmek için mac yardımcı programını kullanabilirsiniz:

man ufw
Vote:
5 out of 5
Аverage rating : 5
Rated by: 1
34384 İstanbul İzzetpaşa Mah. Yeni Yol Cad. No:3 / 336 Şişli
+90 212 900-35-36
700 300
IT-GRAD NL B.V.
700 300
Hizmetlerimizi sunmak, analizler yapmak ve pazarlama için çerezleri kullanıyoruz. Çerez kullanımımız hakkında daha fazla bilgi edinmek için lütfen Gizlilik Politikamıza bakın. Web sitemize göz atmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz.