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 ufw
aracı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ı in
sö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ı in
sö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 delete
ardından kuralı ( allow
veya 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 Full
uygulama 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 from
için bağlantının kaynağını tanımlayan bir yönerge ekleyeceksiniz. to
Bu, 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 port
parametreyi 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/24
alt ağın rsync
sunucunuza 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 HTTPS
yalnı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, Apache
HTTP veya Apache Secure
HTTPS için 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)
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
. https
Bu 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. proto
Bu kullanım, protokolü bu durumda ayarlanması gereken parametre ile tanımlamanızı da gerektirir tcp
.
Tüm gelen HTTP ve HTTPS (bağlantı noktaları 80
ve 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/24
alt 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/24
alt 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 25
engellemek istediğiniz port numarası ile değiştirebilirsiniz.