Sadece HTTP (S) ve SSH (bağlantı noktaları 80, 443 & 22) kullanarak temel bir web sunucusu çalıştıran çoğu site için çalışacak bir temel sunucu iptables komut dosyası koymak için çalışıyorum. Sonuçta, çoğu VPS yalnızca bu başlangıç bağlantı noktası kurallarına ihtiyaç duyar ve daha sonra gerektiğinde posta veya oyun bağlantı noktaları ekleyebilir.
Şimdiye kadar aşağıdaki kurallara sahibim ve daha iyi bir komut dosyası veya eklenebilecek herhangi bir geliştirme olup olmadığını merak ediyordum.
*filter
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allows SSH connections (only 4 attempts by an IP every 3 minutes, drop the rest)
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT
iptables kutunuzun güvenliğini sağlamanın en önemli parçalarından biridir (fail2ban'a da bakınız) ve yine de benim gibi sunucularımız için güvenli bir temel güvenlik duvarı oluşturmaya giden her şeyi anlamakta zorluk çeken birçok insan var.
Bir web sunucusu için gereken temel bağlantı noktalarını açmanın en güvenli yolu nedir?
Güncelleme: cyberciti.biz oldukça iyi görünüyor başka bir iptables betiği var.
Ayrıca, Denyhosts veya fail2ban kullanmak yerine iptables'ın kendisini SSH'deki kötü tekrarlanan girişimleri engellemek için kullanabilirsiniz .
modprobe
yüklü olmayan cyberciti.biz komut dosyasını çalıştırırsanız (veya bağlantı noktası 22'yi açmadan önce başka bir hata oluşursa ), kendinizi sunucudan kilitlersiniz.