[Linux-ag] SNAT sorunu
Fırat KÜÇÜK
firatkucuk at gmail.com
19 Eki 2007 Cum 23:14:15 EEST
Merhaba,
Iptables üzerinde SNAT kuralı ekleme ile alakalı bir sorunum var. Olay
şu şekilde:
Web sunucumuzun önüne bir iptables makinesi koyma kararı aldık.
Böylece gelen trafiğe müdahale şansımız olacaktı. Bu maksatla iptables
makinesinin 80 nolu portuna gelen tüm istekleri sunucu makineye
yönlendirdik:
------------
iptables_makinesi# iptables -t nat -A PREROUTING -p tcp -i eth0 -j
DNAT --dport 80 --to [AG_SUNUCUSU]
------------
tcpdump ile incelediğimde sunucu makineye bu paketlerin geldiğini
görüyorum. Normal bir ev ağında bu yönlendirme yeterli olurken. Mevzu
bahis ağda switch ya da firewall'daki kurallar nedeni ile bu yeterli
olmadı.
Bu maksatla sunucudan çıkan paketlerin iptables makinesinden
çıkıyormuş gibi davranması için şu kuralı kullandık:
------------
ag_sunucusu# iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT
--to [IPTABLES MAKINESI]
------------
Fakat SNAT kuralı sunucuda istenen şekilde çalışmıyor.
Örneğin wget ile bir yere bağlanmak istediğimizde IP paketlerinin
kaynak IP kısmını değiştirmekte. Ama web sunucusunun cevaplarındaki
kaynak IP kısmı değişmemekte.
-------------- ####### --------------
Soruna kısa bir çözüm buldum fakat bu istemediğim bir metod ağın
yapısının belki daha iyi anlaşılmasını sağlar diye bahsedeyim.
Iptables makinesine DNAT ve MASQUERADE/SNAT kuralı ekliyoruz.
------------
iptables_makinesi# iptables -t nat -A POSTROUTING -p tcp -o eth0 -j MASQUERADE
------------
Kuralı ile IP tables makinesinden çıkan tüm trafiğin Kaynak IP
adresini IP tables makinesi yapıyoruz. Daha sonra yukarda
kullandığımız DNAT kuralını kullanıyoruz.
------------
iptables_makinesi# iptables -t nat -A PREROUTING -p tcp -i eth0 -j
DNAT --dport 80 --to [AG_SUNUCUSU]
------------
Bu kural da paketleri sunucuya yönlendirmemizi sağlıyor. Paketler
sunucuda işlenip iptables makinesine geri dönüyor ve DE-SNAT
yapılıyor. Ve paketler talepte 80 nolu porta talepte bulunanlara geri
döndürülüyor.
Fakat bu çözümde ağ sunucusunda görünen ip adresi doğal olarak ip
tables makinesi oluyor. Ayrıca ikinci sorunda cevapların iptables
makinesine tekrar uğraması. Tüm sunucular zaten yerel ağda ve firewall
tarafından internete çıkabilen bir durağan IP ile maskelenmişler. Bu
sayede cevapları kendileri gönderebilecek yetkinlikteler.
iyi çalışmalar.
--
Öğr. Gör. Fırat KÜÇÜK
ADAMYO Distance Learning
SAKARYA University / TURKEY
Linux-ag mesaj listesiyle ilgili
daha fazla bilgi