Merhaba arkadaşlar, bugün sizlere özellikle sunucu taşıma, yedekleme veya yeni bir sisteme kurulum yaparken çok işinize yarayacak bir konuyu anlatacağım. İptables kurallarınızı nasıl bir metin dosyasına kaydeder ve ihtiyaç duyduğunuzda nasıl geri yüklersiniz? Bu işlem, saatlerce uğraşıp yazdığınız kuralları kaybetmemeniz ve hızlıca taşıyabilmeniz için altın değerinde. Ben de sunucu yönetiminde bu yöntemi sıklıkla kullanıyorum.
Neden Kuralları Kaydetmeliyiz?
Sunucunuzda çalışan tüm iptables kuralları RAM üzerinde durur. Bu demek oluyor ki, sunucunuzu yeniden başlattığınızda, eğer kurallarınızı kalıcı hale getirmediyseniz (örneğin iptables-persistent paketi ile), tüm kurallarınız uçar. Ayrıca, aynı kuralları başka bir sunucuya uygulamak istediğinizde tek tek yazmak yerine, kaydettiğiniz dosyayı aktarıp tek komutla yüklemek büyük kolaylık sağlar. Yedekleme amacıyla da mutlaka yapılmalı.
Kuralları Kaydetme (iptables-save)
Mevcut tüm kurallarınızı (filter, nat, mangle tabloları dahil) görüntülemek ve kaydetmek için `iptables-save` komutunu kullanıyoruz. Bu komut, kurallarınızı terminalde gösterir. Bunu kalıcı bir dosyaya kaydetmek isterseniz, yönlendirme operatörünü (`>`) kullanmanız yeterli.
Örneğin, kurallarınızı anlık olarak görmek için:
Kurallarınızı kalıcı olarak kaydetmek için ise (örneğin /etc/iptables/iptables.rules dosyasına):
Ben genelde bu dosyayı /etc/iptables/ dizini altında tutarım. Eğer dizin yoksa önce onu oluşturabilirsiniz:
Kuralları Geri Yükleme (iptables-restore)
Kaydettiğiniz kuralları geri yüklemek için `iptables-restore` komutunu kullanıyoruz. Bu komut, dosyadaki kuralları okuyup mevcut kuralların üzerine yazar. Dikkat! Önceki tüm kurallar silinir ve dosyadaki kurallar geçerli olur.
Temel kullanımı şöyle:
Bu komutu çalıştırdığınızda, kurallarınız anında aktif hale gelir. Kontrol etmek için `sudo iptables -L -n -v` komutunu kullanabilirsiniz.
Kritik Uyarı ve İpuçları
Burada çok önemli bir noktaya dikkat çekmek istiyorum. Eğer uzaktan (SSH ile) bağlı olduğunuz bir sunucuda kuralları değiştiriyor veya geri yüklüyorsanız, kendinizi KİLİTLEYEBİLİRSİNİZ. Özellikle varsayılan politikaları DROP yapıp, SSH portunuzu (22) açmayı unutursanız, bağlantınız kesilir.
Benim önerim, özellikle `iptables-restore` yapmadan önce, kayıt dosyanızı mutlaka kontrol etmeniz. İçinde SSH portunuzun (veya bağlantı portunuzun) açık olduğundan emin olun. Ayrıca, güvenli bir yöntem olarak, kritik işlemlerden önce mevcut kurallarınızı yedekleyin:
Pratik Senaryo: Sunucu Taşıma
Diyelim ki eski sunucunuzdaki kuralları yeni bir sunucuya taşıyacaksınız.
1. Eski sunucuda: `sudo iptables-save > kurallarim.txt`
2. Bu `kurallarim.txt` dosyasını SCP veya FTP ile yeni sunucunuza kopyalayın.
3. Yeni sunucuda: `sudo iptables-restore < kurallarim.txt`
4. Kuralların doğru yüklendiğini kontrol edin.
İşte bu kadar! Artık iki sunucunuzda da birebir aynı güvenlik duvarı kuralları aktif.
Umarım bu rehber faydalı olmuştur. Bu yöntem, sistem yöneticileri için olmazsa olmaz bir araçtır. Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Farklı bir yöntem veya aklınıza takılan bir soru varsa aşağıya yazmaktan çekinmeyin. Herkese sorunsuz sunucular!
Sunucunuzda çalışan tüm iptables kuralları RAM üzerinde durur. Bu demek oluyor ki, sunucunuzu yeniden başlattığınızda, eğer kurallarınızı kalıcı hale getirmediyseniz (örneğin iptables-persistent paketi ile), tüm kurallarınız uçar. Ayrıca, aynı kuralları başka bir sunucuya uygulamak istediğinizde tek tek yazmak yerine, kaydettiğiniz dosyayı aktarıp tek komutla yüklemek büyük kolaylık sağlar. Yedekleme amacıyla da mutlaka yapılmalı.
Mevcut tüm kurallarınızı (filter, nat, mangle tabloları dahil) görüntülemek ve kaydetmek için `iptables-save` komutunu kullanıyoruz. Bu komut, kurallarınızı terminalde gösterir. Bunu kalıcı bir dosyaya kaydetmek isterseniz, yönlendirme operatörünü (`>`) kullanmanız yeterli.
Örneğin, kurallarınızı anlık olarak görmek için:
Bash:
sudo iptables-save
Kurallarınızı kalıcı olarak kaydetmek için ise (örneğin /etc/iptables/iptables.rules dosyasına):
Bash:
sudo iptables-save > /etc/iptables/iptables.rules
Ben genelde bu dosyayı /etc/iptables/ dizini altında tutarım. Eğer dizin yoksa önce onu oluşturabilirsiniz:
Bash:
sudo mkdir -p /etc/iptables/
Kaydettiğiniz kuralları geri yüklemek için `iptables-restore` komutunu kullanıyoruz. Bu komut, dosyadaki kuralları okuyup mevcut kuralların üzerine yazar. Dikkat! Önceki tüm kurallar silinir ve dosyadaki kurallar geçerli olur.
Temel kullanımı şöyle:
Bash:
sudo iptables-restore < /etc/iptables/iptables.rules
Bu komutu çalıştırdığınızda, kurallarınız anında aktif hale gelir. Kontrol etmek için `sudo iptables -L -n -v` komutunu kullanabilirsiniz.
Burada çok önemli bir noktaya dikkat çekmek istiyorum. Eğer uzaktan (SSH ile) bağlı olduğunuz bir sunucuda kuralları değiştiriyor veya geri yüklüyorsanız, kendinizi KİLİTLEYEBİLİRSİNİZ. Özellikle varsayılan politikaları DROP yapıp, SSH portunuzu (22) açmayı unutursanız, bağlantınız kesilir.
Benim önerim, özellikle `iptables-restore` yapmadan önce, kayıt dosyanızı mutlaka kontrol etmeniz. İçinde SSH portunuzun (veya bağlantı portunuzun) açık olduğundan emin olun. Ayrıca, güvenli bir yöntem olarak, kritik işlemlerden önce mevcut kurallarınızı yedekleyin:
Bash:
sudo iptables-save > /etc/iptables/iptables.backup.$(date +%F)
Diyelim ki eski sunucunuzdaki kuralları yeni bir sunucuya taşıyacaksınız.
1. Eski sunucuda: `sudo iptables-save > kurallarim.txt`
2. Bu `kurallarim.txt` dosyasını SCP veya FTP ile yeni sunucunuza kopyalayın.
3. Yeni sunucuda: `sudo iptables-restore < kurallarim.txt`
4. Kuralların doğru yüklendiğini kontrol edin.
İşte bu kadar! Artık iki sunucunuzda da birebir aynı güvenlik duvarı kuralları aktif.
Umarım bu rehber faydalı olmuştur. Bu yöntem, sistem yöneticileri için olmazsa olmaz bir araçtır. Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Farklı bir yöntem veya aklınıza takılan bir soru varsa aşağıya yazmaktan çekinmeyin. Herkese sorunsuz sunucular!