IPTABLES Nedir ?

Iptables linux çekirdeği (kernel) ile gelen bir güvenlik duvarı (firewall)’dır. Bugün sizlere iptables yapılandırması nasıl yapılır temel olarak bir kaç örnek ile onu gösterceğim.

Öncelikle iptables -L ile var olan bir kural tanımı yapılmışmı onu kontrol edilyiroz sudo iptables -L tabii burda sudo komutunu kullanığımız için işlemin tamamlanmıası için şifremizi giriyorz. Ardından tablo aşağıdaki gibi gelmekte. Buda aslında şu anlama geliyor şuanda  gelen , giden ve yönlendirilen hiç ağ (network) kuralı yapılmamış demek

sudo iptables -L

[sudo] password for kullanıcı_adı:  

Chain INPUT (policy ACCEPT)

target     prot opt source               destination          

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination          

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination        


Ancak bugün biz temel olarak INPUT ve OUTPUT kurallarından bahsedeceğiz

Gelin dilerseniz sizlerle bir kaç basit kural yapalım ve etklilerini görelim bunun için terminalimizi (ucbirim) açıyoruz ve ardından aşağıdaki komut ile 22 yani ssh por’una gelen istekleri engelliyoruz

Buarada INPUT >> Dışarıdan içeriye gelen istekleri OUTPUT >> İçeriden Dışarıya giden istekleri gösterir.

INPUT Kuralı

sudo iptables -A INPUT -p tcp –dport 22 -j DROP >> burada yapılan işlemi incelediğimizide  dışarıdan 22 (ssh) portuna gelen istek DROP (Yok Et ) ediliyor içeri alınmıyor

OUTPUT Kuralı

sudo iptables -A OUTPUT -p tcp -m tcp –sport 22 -j ACCEPT >>burada yapılan işemi incelediğimizide bilgisayarımızdan çıkan 22 (ssh) portuna gidiş isteğini  ACCEPT (Kabul Et)

ediliyor dışarıdaki dilediğimiz hedef ve izinli olan 22 (ssh) portuna gidebilmemizi sağlıyor .

Ve çıkan sonuçlar aşağıdaki şekilde geçecektir .

Chain INPUT (policy ACCEPT)

target     prot opt source               destination          

DROP       tcp  —  anywhere             anywhere             tcp dpt:ssh

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination          

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination          

ACCEPT     tcp  —  anywhere             anywhere             tcp spt:ssh


Testimizi yapalım bu test iki aşamalı olacak bunlar aşağıdaki şekilde belirtilmiştir.

1- Terminal’imizde (Uc Birim)ssh user@1.2.3.2 yazınca aşağıdaki şekilde giriş yapabildiğimizi görüyoruz .

ssh user@1.2.3.2

user@1.2.3.2’s password:  

Permission denied, please try again.

user@1.2.3.2’s password:  

Linux debian 6.1.0-9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.27-1 (2023-05-08) x86_64

The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

permitted by applicable law.

Last login: Sun Sep 22 14:57:50 2024

user@debian:~$  

2- Uzaktaki makinamızda gelmek için Terminal’imizde (Uc Birim) ssh kullanıcı_adı@1.2.3.1 yazıyoruz ve sonuç  gidmediğini görüyoruz

user@debian:~$ ssh kullanıcı_adı@1.2.3.1 ve bu şekide bekliyor  ve ardından bir timeout mesajı veriyor  

ssh: connect to host 1.2.3.1 port 22: Connection timed out

Buda INPUT ve OUTPUT kurallarımızınız doğru çalıştığının anlamına geliyor .

Bir dahaki yazıda görüşmek üzere