Linux ufw Firewall Komutları ve Kullanımı

UFW Durumunu Doğrulamak

Etkin olup olmadığını kontrol etmek için ufw şunu çalıştırın:

sudo ufw status       
Output
Status: inactive

Çıktı, güvenlik duvarınızın etkin olup olmadığını gösterecektir.

UFW’yi etkinleştir

Status: inactive Çalışırken bir mesajınız varsa ufw status, bu, güvenlik duvarının sistemde henüz etkinleştirilmediği anlamına gelir. Etkinleştirmek için bir komut çalıştırmanız gerekir.

Varsayılan olarak, etkinleştirildiğinde UFW, bir sunucudaki tüm bağlantı noktalarına harici erişimi engeller. Pratikte bu, bir sunucuya SSH ufwaracılığıyla bağlanırsanız ve SSH bağlantı noktası üzerinden erişime izin vermeden önce etkinleştirirseniz, bağlantınız kesilecektir. Durumunuz buysa, güvenlik duvarını etkinleştirmeden önce bu kılavuzun SSH erişimini nasıl etkinleştireceğinizle ilgili bölümü izlediğinizden emin olun .

UFW’yi sisteminizde etkinleştirmek için şunu çalıştırın:

sudo ufw enable

Çıktıyı şöyle göreceksiniz:

Output
Firewall is active and enabled on system startup

Şu anda nelerin engellendiğini veya izin verildiğini görmek için, verboseçalıştırırken parametreyi ufw status aşağıdaki gibi kullanabilirsiniz:

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

UFW’yi devre dışı bırak

Herhangi bir nedenle UFW’yi devre dışı bırakmanız gerekirse, bunu aşağıdaki komutla yapabilirsiniz:

sudo ufw disable

Bu komutun sisteminizdeki güvenlik duvarı hizmetini tamamen devre dışı bırakacağını unutmayın.

Bir IP Adresini Engelle

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

sudo ufw deny from 203.0.113.100
Output
Rule added

Bu örnekte, “203.0.113.100” kaynakfrom 203.0.113.100 IP adresini belirtir .

Şimdi çalıştırırsanız sudo ufw status, belirtilen IP adresinin reddedilmiş olarak listelendiğini göreceksiniz:

Output
Status: active

To                         Action      From
--                         ------      ----
Anywhere                   DENY        203.0.113.100         

Belirtilen IP adresi için gelen veya giden tüm bağlantılar engellenir.

Bir Alt Ağı Engelle

Tam bir alt ağı engellemeniz gerekiyorsa, alt ağ adresini komutta from parametre olarak kullanabilirsiniz. ufw deny Bu, örnek alt ağdaki tüm IP adreslerini engeller 203.0.113.0/24:

sudo ufw deny from 203.0.113.0/24
Output
Rule added

Bir Ağ Arayüzüne Gelen Bağlantıları Engelleyin

Belirli bir IP adresinden belirli bir ağ arabirimine gelen bağlantıları engellemek için, vurgulanan 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 203.0.113.100
Output
Rule added

Parametre , kuralın yalnızca gelen bağlantılar için uygulanmasını insöyler ve parametre, kuralın yalnızca arabirim için geçerli olduğunu belirtir . Bu, birkaç ağ arabirimine (sanal olanlar dahil) sahip bir sisteminiz varsa ve bu arabirimlerin tümüne değil de bazılarına harici erişimi engellemeniz gerekiyorsa yararlı olabilir. ufw on eth0 eth0

Bir IP Adresine İzin Ver

Belirli bir IP adresinden kaynaklanan tüm ağ bağlantılarına izin vermek için, vurgulanan 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 203.0.113.101
Output
Rule added

Şimdi çalıştırırsanız , az önce eklediğiniz IP adresinin yanında sudo ufw status kelimeyi gösteren buna benzer bir çıktı göreceksiniz .ALLOW

Output
Status: active

To                         Action      From
--                         ------      ----
...          
Anywhere                   ALLOW       203.0.113.101 

gibi bir ana bilgisayar için karşılık gelen alt ağ maskesini sağlayarak tüm alt ağdan bağlantılara da izin verebilirsiniz 203.0.113.0/24.

Bir Ağ Arayüzüne Gelen Bağlantılara İzin Ver

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

sudo ufw allow in on eth0 from 203.0.113.102
Output
Rule added

Parametre , kuralın yalnızca gelen bağlantılar için uygulanmasını insöyler ve parametre, kuralın yalnızca arabirim için geçerli olduğunu belirtir .ufw on eth0 eth0

Şimdi çalıştırırsanız sudo ufw status, şuna benzer bir çıktı görürsünüz:

Output
Status: active

To                         Action      From
--                         ------      ----
...         
Anywhere on eth0           ALLOW       203.0.113.102

UFW Kuralını Sil

UFW içinde önceden kurduğunuz bir kuralı silmek için, ufw deleteardından kuralı ( allowveya deny) ve hedef belirtimi kullanın. Aşağıdaki örnek, aşağıdaki IP adresinden tüm bağlantılara izin vermek için önceden ayarlanmış bir kuralı siler 203.0.113.101:

sudo ufw delete allow from 203.0.113.101
Output
Rule deleted

Hangi kuralı silmek istediğinizi belirtmenin başka bir yolu da kural kimliğini sağlamaktır. Bu bilgi aşağıdaki komutla elde edilebilir:

sudo ufw status numbered
Output
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] Anywhere                   DENY IN     203.0.113.100             
[ 2] Anywhere on eth0           ALLOW IN    203.0.113.102

Çıktıdan iki aktif kural olduğunu görebilirsiniz. Vurgulanan değerlere sahip ilk kural, IP adresinden gelen tüm bağlantıları reddeder 203.0.113.100. İkinci kural eth0, IP adresinden gelen arabirimdeki bağlantılara izin verir 203.0.113.102.

Varsayılan olarak UFW, açıkça izin verilmediği sürece tüm harici erişimi zaten engellediğinden, ilk kural gereksizdir, bu nedenle onu kaldırabilirsiniz. Kimliğine göre bir kuralı silmek için şunu çalıştırın:

sudo ufw delete 1

İşlemi onaylamanız ve sağladığınız kimliğin silmek istediğiniz doğru kurala atıfta bulunduğundan emin olmanız istenecektir.

Output
Deleting:
 deny from 203.0.113.100
Proceed with operation (y|n)? y
Rule deleted

Kurallarınızı ile tekrar listelerseniz sudo ufw status, kuralın kaldırıldığını görürsünüz.

Mevcut Uygulama Profillerini Listeleme

Kurulumun ardından, ağ iletişimine dayanan uygulamalar, genellikle, harici adreslerden bağlantıya izin vermek için kullanabileceğiniz bir UFW profili kurar. ufw allow from Bu genellikle, bir hizmetin kullandığı belirli bağlantı noktası numaralarını özetleyen ve başvurulan hizmetlere kullanıcı dostu bir adlandırma sağlayan bir kısayol sağlama avantajıyla birlikte çalıştırma ile aynıdır .

Hangi profillerin mevcut olduğunu listelemek için aşağıdakileri çalıştırın:

sudo ufw app list

Web sunucusu veya ağa bağlı başka bir yazılım gibi bir hizmet yüklediyseniz ve UFW’de bir profil mevcut değilse, önce hizmetin etkinleştirildiğinden emin olun. Uzak sunucular için, genellikle hazır OpenSSH’niz olur:

Output
Available applications:
  OpenSSH

Uygulama Profilini Etkinleştir

Bir UFW uygulama profilini etkinleştirmek için, bir komutla ufw allow elde edebileceğiniz etkinleştirmek istediğiniz uygulama profilinin adını ve ardından çalıştırın. sudo ufw app list Aşağıdaki örnekte, varsayılan SSH bağlantı noktasında gelen tüm SSH bağlantılarına izin verecek olan OpenSSH profilini etkinleştiriyoruz.

sudo ufw allow “OpenSSH”
Output
Rule added
Rule added (v6)

Gibi birden çok kelimeden oluşan profil adlarını alıntılamayı unutmayın Nginx HTTPS.

Uygulama Profilini Devre Dışı Bırak

UFW içinde önceden kurduğunuz bir uygulama profilini devre dışı bırakmak için ilgili kuralı kaldırmanız gerekir. Örneğin, aşağıdaki çıktıyı göz önünde bulundurun sudo ufw status:

sudo ufw status
Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                               
Nginx Full                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)                   
Nginx Full (v6)            ALLOW       Anywhere (v6)        

Bu çıktı, Nginx Fulluygulama profilinin şu anda etkin olduğunu ve web sunucusuna hem HTTP hem de HTTPS yoluyla tüm bağlantılara izin verdiğini gösterir. Yalnızca web sunucunuzdan gelen ve web sunucunuza giden HTTPS isteklerine izin vermek istiyorsanız, önce bu durumda en kısıtlayıcı kuralı etkinleştirmeniz Nginx HTTPS ve ardından şu anda etkin olan Nginx Full kuralı devre dışı bırakmanız gerekir:

sudo ufw allow "Nginx HTTPS"

sudo ufw delete allow "Nginx Full"

Kullanılabilir tüm uygulama profillerini ile listeleyebileceğinizi unutmayın sudo ufw app list.

SSH’ye izin ver

Uzak sunucularla çalışırken, sunucunuzda uzaktan oturum açabilmeniz için SSH bağlantı noktasının bağlantılara açık olduğundan emin olmak isteyeceksiniz.

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

sudo ufw allow OpenSSH
Output
Rule added
Rule added (v6)

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

sudo ufw allow 22
Output
Rule added
Rule added (v6)

Belirli IP Adresinden veya Alt Ağdan Gelen SSH’ye İzin Ver

Belirli bir IP adresinden veya alt ağdan gelen bağlantılara izin vermek fromiçin bağlantının kaynağını tanımlayan bir yönerge ekleyeceksiniz. toBu, bir parametre ile hedef adresi de belirtmenizi gerektirecektir . Bu kuralı yalnızca SSH’ye kilitlemek için proto(protokolü) ile sınırlandıracak tcp ve ardından port parametreyi kullanacak ve 22 SSH’nin varsayılan bağlantı noktası olarak ayarlayacaksınız.

Aşağıdaki komut, yalnızca IP adresinden gelen SSH bağlantılarına izin verecektir 203.0.113.103:

sudo ufw allow from 203.0.113.103 proto tcp to any port 22
Output
Rule added

from Tüm ağdan gelen SSH bağlantılarına izin vermek için parametre olarak bir alt ağ adresi de kullanabilirsiniz :

sudo ufw allow from 203.0.113.0/24 proto tcp to any port 22
Output
Rule added

Belirli IP Adresinden veya Alt Ağdan Gelen Rsync’e İzin Ver

Port üzerinde çalışan Rsync 873 programı, dosyaları bir bilgisayardan diğerine aktarmak için kullanılabilir.

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

sudo ufw allow from 203.0.113.103 to any port 873
Output
Rule added

Tüm 203.0.113.0/24alt ağın rsyncsunucunuza erişmesine izin vermek için şunu çalıştırın:

sudo ufw allow from 203.0.113.0/24 to any port 873
Output
Rule added

Nginx HTTP / HTTPS’ye İzin Ver

Kurulumun ardından, Nginx web sunucusu, sunucu içinde birkaç farklı UFW profili kurar. Nginx’i bir hizmet olarak yükledikten 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 Nginx
Output
  Nginx Full
  Nginx HTTP
  Nginx HTTPS

Hem HTTP hem de HTTPS trafiğini etkinleştirmek için öğesini seçin Nginx Full. Aksi takdirde, yalnızca HTTP’ye izin vermeyi Nginx HTTP veya Nginx HTTPSyalnızca HTTPS’ye izin vermeyi seçin.

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

sudo ufw allow "Nginx Full"
Output
Rule added
Rule added (v6)

Apache HTTP / HTTPS’ye izin ver

Kurulumun ardından Apache web sunucusu, sunucu içinde birkaç farklı UFW profili kurar. Apache’yi yükledikten ve hizmet olarak 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
Output
  Apache
  Apache Full
  Apache Secure

Hem HTTP hem de HTTPS trafiğini etkinleştirmek için öğesini seçin Apache Full. Aksi takdirde, ApacheHTTP veya Apache SecureHTTPS için seçin.

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

sudo ufw allow "Nginx Full"
Output
Rule added
Rule added (v6)

Tüm Gelen HTTP’ye İzin Ver (bağlantı noktası 80)

Apache ve Nginx gibi web sunucuları, genellikle bağlantı noktasındaki HTTP isteklerini dinler 80. Gelen trafik için varsayılan politikanız bırak veya reddet olarak ayarlandıysa, bağlantı noktasında harici erişime izin vermek için bir UFW kuralı oluşturmanız gerekir 80. http Bu komuta parametre olarak bağlantı noktası numarasını veya hizmet adını ( ) kullanabilirsiniz.

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

sudo ufw allow http
Output
Rule added
Rule added (v6)

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

sudo ufw allow 80
Output
Rule added
Rule added (v6)

Tüm Gelen HTTPS’ye İzin Ver (bağlantı noktası 443)

HTTPS genellikle bağlantı noktasında çalışır 443. Gelen trafik için varsayılan politikanız bırak veya reddet olarak ayarlandıysa, bağlantı noktasında harici erişime izin vermek için bir UFW kuralı oluşturmanız gerekir 443. httpsBu komuta parametre olarak bağlantı noktası numarasını veya hizmet adını ( ) kullanabilirsiniz.

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

sudo ufw allow https
Output
Rule added
Rule added (v6)

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

sudo ufw allow 443
Output
Rule added
Rule added (v6)

Tüm Gelen HTTP ve HTTPS’ye İzin Ver

Hem HTTP hem de HTTPS trafiğine izin vermek istiyorsanız, her iki bağlantı noktasına da izin veren tek bir kural oluşturabilirsiniz. protoBu kullanım, protokolü bu durumda ayarlanması gereken parametre ile tanımlamanızı da gerektirir tcp.

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

sudo ufw allow proto tcp from any to any port 80,443
Output
Rule added
Rule added (v6)

Belirli IP Adresinden veya Alt Ağdan MySQL Bağlantısına İzin Ver

MySQL, bağlantı noktasındaki istemci bağlantılarını dinler 3306. MySQL veritabanı sunucunuz uzak bir sunucudaki bir istemci tarafından kullanılıyorsa, bu erişime izin vermek için bir UFW kuralı oluşturmanız gerekir.

Belirli bir IP adresinden veya alt ağdan gelen MySQL bağlantılarına izin vermek from için, kaynak IP adresini belirtmek için port parametreyi ve hedef bağlantı noktasını ayarlamak için parametreyi kullanın 3306.

Aşağıdaki komut, IP adresinin 203.0.113.103 sunucunun MySQL bağlantı noktasına bağlanmasına izin verecektir:

sudo ufw allow from 203.0.113.103 to any port 3306
Output
Rule added

Tüm 203.0.113.0/24alt ağın MySQL sunucunuza bağlanabilmesi için şunu çalıştırın:

sudo ufw allow from 203.0.113.0/24 to any port 3306
Output
Rule added

Belirli IP Adresinden veya Alt Ağdan PostgreSQL Bağlantısına İzin Ver

PostgreSQL, bağlantı noktasındaki istemci bağlantılarını dinler 5432. PostgreSQL veritabanı sunucunuz uzak bir sunucudaki bir istemci tarafından kullanılıyorsa, bu trafiğe izin verdiğinizden emin olmanız gerekir.

Belirli bir IP adresinden veya alt ağdan gelen PostgreSQL bağlantılarına izin vermek için from parametreyle kaynağı belirtin ve bağlantı noktasını şu şekilde ayarlayın 5432:

sudo ufw allow from 203.0.113.103 to any port 5432
Output
Rule added

Tüm 203.0.113.0/24alt ağın PostgreSQL sunucunuza bağlanabilmesi için şunu çalıştırın:

sudo ufw allow from 203.0.113.0/24 to any port 5432
Output
Rule added

Giden SMTP Postasını Engelle

Sendmail ve Postfix gibi posta sunucuları, genellikle 25 SMTP trafiği için bağlantı noktasını kullanır. Sunucunuz giden posta göndermiyorsa, bu tür trafiği engellemek isteyebilirsiniz. Giden SMTP bağlantılarını engellemek için şunu çalıştırın:

sudo ufw deny out 25
Output
Rule added
Rule added (v6)

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

5/5 - (11 votes)