iptables Nedir?

iptables, Linux çekirdeğinde bulunan Netfilter framework'ü ile birlikte çalışan, ağ trafiğini filtrelemek ve yönetmek için kullanılan güçlü bir komut satırı aracıdır. Bir "güvenlik duvarı" (firewall) olarak görev yapan iptables, sunucunuza gelen ve giden tüm ağ trafiğini kontrol etmenizi sağlar.

1998 yılından beri Linux sistemlerinin vazgeçilmez güvenlik aracı olan iptables, VPS Sunucu ve dedicated sunucu yönetiminde kritik öneme sahiptir. Doğru yapılandırılmış iptables kuralları, sunucunuzu DDoS saldırıları, brute force atakları ve yetkisiz erişim girişimlerine karşı korur.

iptables Nasıl Çalışır?

iptables, ağ paketlerini üç ana zincir (chain) üzerinden değerlendirir:

ZincirAçıklama
**INPUT**Sunucuya gelen trafiği kontrol eder
**OUTPUT**Sunucudan çıkan trafiği kontrol eder
**FORWARD**Sunucu üzerinden geçen trafiği yönlendirir

Her zincirde paketler sırasıyla kurallara göre değerlendirilir ve üç eylemden biri uygulanır:

  • ACCEPT: Pakete izin ver
  • DROP: Paketi sessizce düşür
  • REJECT: Paketi reddet ve hata mesajı gönder
VPS%40 İndirim

VPS Sunucularda %40 İndirim!

Güvenli ve yüksek performanslı VPS sunucularımızda iptables ile tam kontrol sizde

Hemen İncele

Temel iptables Komutları

Mevcut Kuralları Görüntüleme

bash
# Tüm kuralları listele
sudo iptables -L -v -n

# Satır numaralarıyla birlikte listele
sudo iptables -L --line-numbers

SSH Bağlantısına İzin Verme (Port 22)

VPS Sunucu yönetimi için SSH erişimi kritik öneme sahiptir:

bash
# SSH portuna gelen trafiğe izin ver
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Belirli IP'den SSH erişimine izin ver
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT

Web Trafiğine İzin Verme (HTTP/HTTPS)

bash
# HTTP (Port 80) trafiğine izin ver
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# HTTPS (Port 443) trafiğine izin ver
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Diğer Tüm Trafiği Engelleme

bash
# Varsayılan politikayı DROP olarak ayarla
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

# Localhost trafiğine izin ver
sudo iptables -A INPUT -i lo -j ACCEPT

iptables ile Sunucu Güvenliği

1. Brute Force Saldırılarını Engelleme

SSH brute force ataklarını engellemek için bağlantı hızını sınırlayın:

bash
# Dakikada 4'ten fazla SSH bağlantısını engelle
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

2. Ping (ICMP) Yönetimi

bash
# Ping isteklerine izin ver
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# Ping isteklerini engelle (gizlilik için)
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

3. SYN Flood Koruması

bash
# SYN flood saldırılarına karşı koruma
sudo iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -j DROP

4. Port Scanning Engelleme

bash
# Null scan'leri engelle
sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

# XMAS scan'leri engelle
sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

Pratik iptables Konfigürasyonları

Temel Sunucu Güvenlik Şablonu

Aşağıdaki script, VPS Sunucu için temel güvenlik kurallarını uygular:

bash
#!/bin/bash
# Netlen VPS Temel Güvenlik Kuralları

# Mevcut kuralları temizle
iptables -F
iptables -X

# Varsayılan politikalar
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Localhost trafiği
iptables -A INPUT -i lo -j ACCEPT

# Kurulu bağlantılar
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH (Port 22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# HTTP (Port 80)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# HTTPS (Port 443)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Kuralları kaydet
iptables-save > /etc/iptables.rules

echo "Güvenlik kuralları uygulandı!"

E-posta Sunucusu Kuralları

bash
# SMTP
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 587 -j ACCEPT

# POP3
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 995 -j ACCEPT

# IMAP
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -j ACCEPT

MySQL/MariaDB Güvenliği

bash
# Sadece localhost'tan MySQL erişimi
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

iptables Kurallarını Kalıcı Hale Getirme

iptables kuralları varsayılan olarak sunucu yeniden başlatıldığında kaybolur. Kuralları kalıcı hale getirmek için:

Ubuntu/Debian

bash
# iptables-persistent paketini kur
sudo apt install iptables-persistent

# Kuralları kaydet
sudo netfilter-persistent save

CentOS/AlmaLinux

bash
# Kuralları kaydet
sudo iptables-save > /etc/sysconfig/iptables

# Servis olarak etkinleştir
sudo systemctl enable iptables

iptables vs nftables

Modern Linux dağıtımları iptables'ın yerini alan nftables'ı varsayılan olarak kullanmaya başlamıştır. Ancak iptables hala yaygın olarak kullanılmaktadır:

Özellikiptablesnftables
SözdizimiKarmaşıkDaha basit
PerformansİyiDaha iyi
IPv4/IPv6Ayrı araçlarTek araç
UyumlulukTüm sistemlerYeni sistemler

Netlen VPS Sunucularında iptables

Netlen VPS Sunucu paketlerinde iptables önceden kurulu olarak gelmektedir:

  • Root Erişimi: Tam iptables kontrolü
  • Güncel Linux: En son kernel sürümleri
  • DDoS Koruması: Altyapı seviyesinde koruma
  • 7/24 Destek: Güvenlik yapılandırması desteği
  • NVMe SSD: Yüksek performanslı depolama

Sanal Sunucu çözümlerimiz ile sunucu güvenliğinizi tam kontrol altına alın!

Sonuç

iptables, Linux tabanlı sunucularda ağ güvenliğinin temel taşıdır. Doğru yapılandırılmış güvenlik duvarı kuralları, sunucunuzu sayısız tehdide karşı korur. VPS Sunucu kullanıyorsanız, bu rehberdeki kuralları uygulayarak güvenliğinizi önemli ölçüde artırabilirsiniz.

Profesyonel ve güvenli VPS Sunucu çözümleri için Netlen'i tercih edin!


Güvenli sunucu çözümleri için: VPS Sunucu | Bulut Sunucu

iptables
firewall
güvenlik
linux
vps
sunucu
güvenlik duvarı

Bu yazıyı paylaşın

Kürşat Sezgin

Yazar Hakkında

Kürşat Sezgin

Teknik Ekip Lideri

Netlen'de teknik ekip lideri olarak sunucu yönetimi, ağ güvenliği ve web teknolojileri alanında sistem yönetimi ve teknik destek sağlıyorum. Zaman zaman bu konularda teknik blog yazıları da paylaşıyorum.

Yorumlar

Bu yazı hakkında okuyucu yorumları