iptables -7- Targets

19 September, 2009 (23:16) | iptables | By: alper

  • Daha önce iptables “targets”i tanımlarken; bir iptables kuralında söz konusu paket için belirli Match şartları mevcutsa ( belirli bir ip den gelen gibi ), o paket ile ne yapacağımızı belirtebilmemiz için kullanılır ve örneğin başka bir “chain”e yönlendirmek veya nat yapmak gibi diye ifade etmiştim. Iptables ile kullanabileceğimiz “target”lere göz atalım.

Jumps

Jumps ( Sıçramalar), kullanım şekli targets ile aynı olmakla beraber aynı tablo içerisinde başka bir “chain”e (zincire) sıçramak amacı ile kullanılır. “Jump”ın kullanılabilmesi için sıçranacak zincirin önceden oluşturulmuş olması zorunludur. Hemen bir jump örneği yapalım.

bash-3.2#iptables -N  tcp_packets
bash-3.2#

tcp_packects isminde yeni bir zincir oluşturduk.

bash-3.2# iptables -A INPUT -p tcp -j tcp_packets
bash-3.2#

Gelen tcp paketlerimizi “tcp_packets” zincirine yönlendirdik, yani jump yaptık. Sıçranan zincir içerisindeki kurallar tamamlanır tamamlanmaz, jump yaptığımız kuraldan sonraki kurala geri dönülür.

chains

Sanırım yukarıdaki resim bu durumu gayet net açıklıyor.

Targets ile bir pakete ne yapılacağını söylemiş oluyoruz.
Iptables, bir çok target yani paketle ne yapılacağı konusunda bir çok seçim sunar. Bunlardan bazıları; örneğin DROP ACCEPT gibi targetler bir pakete uygulandığında, paket o chain için başka hiç bir rule altında işlem görmez. Log gibi “target”ler ise paketin aynı chain içerisinde işlem görmeye devam etmesine mani değildir.

Accept Target

[root@linux ~]# iptables -A INPUT -j ACCEPT
[root@linux ~]#

İlgili paketin iptables üzerinden geçmesine izin verir. Yukarıdaki örnekte gelen tüm paketleri kabul ettik.

Drop Target

[root@linux ~]# iptables -A INPUT -p udp -j DROP
[root@linux ~]#

Paketi basitçe yok etmek için kullanılır. Söz konusu pakete herhangi bir işlem yapılmaz. Söz konusu kurala geldiğinde paket yok olur.
Örneğimizde gelen UDP paketlerini yok ettik ( engelledik , düşürdük )

Reject Target

1- –reject

[root@linux ~]# iptables -A FORWARD -p TCP --dport 22 -j REJECT
[root@linux ~]#

Reject Target, Drop ile aynı görevi yapmakla beraber, bunun yanında istemciye paketin reddedildiğine dair mesaj döndürür.

2 –reject-with

[root@linux ~]#iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset
[root@linux ~]#

–reject-with opsiyonu bize hangi sebepten paketin geri çevirildiği konusunda seçim yapma hakkı tanır.
Desteklenen reject tipleri: icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable, icmp-proto-unreachable, icmp-net-prohibited ve
icmp-host-prohibited.
–rejetct-with opsiyonu belirtilmez ise “port-unreachable to the host” default opsiyon olarak döner.

Classify Target

[root@linux ~]#iptables -t mangle -A POSTROUTING -p tcp --dport 80 -j CLASSIFY --set-class 20:10
[root@linux ~]#

Bu örnek:
tc, qdisc ile kullanıldığında ( Linux QOS ) tc filter yerine iptables ile paketleri sınıflandırarak “class”lara yönlendirmek için kullanılır. –set-class opsiyonu ile birlikte kullanılır.
Örneğin burada, 20 nolu major “class”ı 10 nolu minor “class”a yönlendirdik.
linux altında qos konusuna yabancı olmayan arkadaşlar için son derece anlaşılır olduğunu düşünüyorum.

Clusterip Target

Clusterip target bize, iptables ile basit bir cluster kurmamızı sağlar. Söz konusu cluster son derece basit olup herhangi bir standart cluster opsiyonu sağlamamaktadır.
Bir çok durumda birden fazla server üzerinde yük paylaşımı için kullanılabilir. Clusterip target “ipt_clusterip” modülünü kullanır.
“/proc/net/ipt_CLUSTERIP/
” dizininden ilgili dosyalara ulaşabilirsiniz. Cluster için oluşturulan 1 adet ip adresi ve mac adresi, cluster bilgisayarlar tarafından paylaşılır.
mac adres, multicast mac olmak zorundadır.
01:00:5e: ” ile başlamalıdır.
İlgili hostlar tek bir ip ve mac adresini paylaşarak Round Robbin Hash algoritması ile cevap verirler.

iptabls cluster

Yukarıdaki yapıyı kurmak için :

[root@linux ~]# iptables -A INPUT -i eth0 -p tcp -d 192.168.0.5 --dport 80 -j CLUSTERIP --new --hashmode sourceip --clustermac 01:00:5e:00:00:20 --total-nodes 2 --local-node 1
[root@linux ~]#

1- –new

Yeni bir CLUSTERIP girdisi yaratmak için kullanılır.

2- –hashmode

3 çeşit hashmode destekler.
Bunlar :

  • sourceip
  • sourceip-sourceport
  • sourceip-sourceport-destport

Kısaca sourceip = kaynak ip’den gelen tüm istekler aynı “server”e gider, sourceip-sourceport aynı kaynak ip ve kaynak portundan çıkan paketler aynı “server”a gider,
sourceip-sourceport-destport = kaynak ve hedef portları aynı olanlar aynı “server”e gider.
Clusterip target’i, kullanmak istediğiniz hizmet tipine göre seçilmelidir.

3- –clustermac

Cluster için MAC adresi, tüm cluster bilgisayarları tarafından paylaşılan Multicast MAC adresdir ve “01:00:5e” ile başlamalıdır. Multicast mac kullanılmazsa bağlı olduğunuz switch veya router ile problem yaşamanız olasıdır.

4- –total-nodes

Cluster yapınızda kaç adet host’un olduğunu belirtir. Yukarıdaki örnekte 2 adet server için “2″ girdik.

5- –local-node

Kuralın girildiği Server’in cluster yapısında kaç numaralı server olduğunu belirtmek için kullanılır. gelen bağlantılar Round-Robbin ile dağıtılırken bu sıra göz önüne alınır.

6- –hash-init

Rastgele başlangıç noktasını belirler.

  • Serverlerin bağlı olduğu switch veya router RFC 1812 ile belirtilen standartları karşılamalıdır.

Mark Target

Mark Target, iproute2 paketi ve iptables kuralları ile haberleşmek için kullanılır “4294967296″ adet mark yapılabilir. Sadece mangle table’da kullanımı mümkündür. Dikkat edilecek nokta söz konusu işaretlerin ip header’da herhangi bir değişiklik yapmaması yani, söz konusu işaretlenmiş paketler dışardaki bir host tarafından anlaşılamazlar. söz konusu mark kernel tarafından izlenir.

[root@linux ~]# iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2  --set-mark

Mark numarası belirtmek için kullanılır. örneğimizde 22 nolu tcp portuna giden tüm paketleri 2 ile işaretledik. daha sonra iproute2 ile bu paketleri farklı bir routing e yönlendirmek veya, QOS uygulamak mümkündür. ( tc filters ile de yapılabilir tamamen sizin dizaynınızla ilgili bir tercih )

Connmark Target

Connmark target, Mark target ile aynı işi yapmakla beraber bir paketi değil komple bir bağlantıyı işaretlemek için kullanılır. ipconntrack modülünü enable eder ( CPU ve RAM hesaplamalarını göz ardı etmeyiniz )

1- –set-mark , –set-xmark

[root@linux ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -j CONNMARK --set-mark 4
[root@linux ~]#

Paketi “4″ olarak işaretledik. Bağlantıyı belirten mark numarası ile işaretlemeye yarar.

2- –save-mark

[root@linux ~]# iptables -t mangle -A PREROUTING -p tcp --dport 80 -j CONNMARK --save-mark
[root@linux ~]#

Paketin içerdiği mark’i connmark’a kayıt eder. yani /proc/net/ip_conntrack içerisine.

3- –restore-mark

[root@linux ~]# iptables -t mangle -A PREROUTING -p tcp --dport 80 -j CONNMARK --restore-mark
[root@linux ~]#

ip_conntrack içerisindeki mark bilgisini pakete işler. Sadece mangle table içerisinde kullanılabilir.

4- –mask

[root@linux ~]# iptables -t mangle -A PREROUTING -p tcp --dport 80 -j CONNMARK --restore-mark --mask 12
[root@linux ~]#

Mark ile işaretlenmiş paketin, ikilik sayı sistemine çevirildiğinde, bit mask belirterek birden çok mark değerini aynı anda göstermek için kullanılır. –restore-mark ve –save-mark ile beraber kullanılabilir. yukarıdaki 12 mask değeri binary 1100 eşit olduğundan “1″ değerlerinin eşit olduğu tüm mark değerlerini kapsar. örneğin :1111,1100,1101 değerlerinin hepsi 1100 mask’ina uymaktadır.

Connsecmark Target

–save

[root@linux ~]# iptables -t mangle -A PREROUTING -p tcp --dport 80 -j CONNSECMARK --save
[root@linux ~]#

SELinux tarafından işaretlenmiş paket bilgilerini conntrack içerisine işler.

–restore

[root@linux ~]# iptables -t mangle -A PREROUTING -p tcp --dport 80 -j CONNSECMARK --restore
[root@linux ~]#

Conntrack girdisinde SELinux için işareti işlemiş fakat paket içeriğinde bulunmuyan güvenlik bilgisini pakete işler.

DNAT target

DNAT Target paketin hedef ip adresini değiştirmek için kullanılır ( Destination Network Address Transilation ) . en basit kullanım örneği localde bulunan 10.1.2.1 ip adresinde çalışan web server’imize internetten gelen http paketlerini yönlendirmek için kullanılabilir.

[root@linux ~]#iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 -j DNAT --to-destination 192.168.1.1-192.168.1.10
[root@linux ~]#

–to-destination paket DNAT yapıldığında hedef ip adresinin ne olarak değiştirileceğini belirtmek için kullanılır. yukarıdaki örnekte olduğu gibi “-” ile ip adres grubu belirterek load balance sağlanabilir.

–random

[root@linux ~]# iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 -j DNAT --to-destination 192.168.1.1-192.168.1.10 --random
[root@linux ~]#

–random routing tableda source port un randomize edilmesi için kullanılır. DNAT target sadece nat ve PREROUTING de çalışır.

DSCP Target

DSCP ( RFC 2638 Differentiated Services Code Point ), alanındaki bilgileri değiştirmek için kullanılır.

1- –set-dscp

[root@linux ~]# iptables -t mangle -A FORWARD -p tcp --dport 80 -j DSCP --set-dscp 1
[root@linux ~]#

Decimal veya hexedecimal olarak DSCP değerini atamaya yarar, Hexedecimal olarak atamak için değerin başına “0x” koymalıyız.

2- –set-dscp-class

[root@linux ~]# iptables -t mangle -A FORWARD -p tcp --dport 80 -j DSCP --set-dscp-class EF
[root@linux ~]#

DSCP sınıfını belirtmek için kullanılır. değer olarak tüm DSCP snıfları kullanılabilir ( BE,EF,AFxx,CSx ).

ECN Target

–ecn-tcp-remove

[root@linux ~]# iptables -t mangle -A FORWARD -p tcp --dport 80 -j ECN --ecn-tcp-remove
[root@linux ~]#

Paketlerden ECN bilgilerini çıkarmaya yarar. İnternet üzerinde bazı router’lar ECN field i dolu olan paketleri route etmezler bunun için kullanılır. sadece “-p tcp” ile beraber çalışır.

LOG Target & ULOG Target

LOG ve ULOG target’ler iptables ile log tutmak için kullanılan target’lerdir. düzgün yapılandırılmış bir firewall da log tutmak son derece önemli olduğu ve bu Target’ler oldukça geniş yer tuttuğu için ayrı bir yazımda ayrıntılı olarak işleyeceğim.

Masquerade Target

Temel olarak SNAT ( Source Network Adress Transilation ) ile aynı işi yapar. nat table içerisinde çalışır. inertenet bağlantısının basitçe paylaştırmak için idealdir. ADSl, Kablonet, Dialup gibi bağlantıları Masquerade ile paylaştırabilirsiniz.

[root@linux ~]# iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o eth0 -j MASQUERADE
[root@linux ~]#

Yukarıdaki örnek 192.168.0.1/24 lokal networkümüzdeki istemcilere eth0 üzerinden sağlanan interneti SNAT yaparak paylaştırır. interface ismi verip ip adresi belirtilmediği için ppp gibi dinamik ( değişken ) ip adreslerine sahip bağlantıları paylaştırmak için uygundur.

–to-port

[root@linux ~]# iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 1024-31000
[root@linux ~]#

TCP ve UDP protokolleri ile beraber kullanıldığında, Masqerade yapılmış paketlerin, giden interface üzerinde kaynak portlarının aralığını belirtmek için kullanılır. port aralığı hariç tek bir port da kullanılması mümkündür.

MIRROR Target

Mirror target gelen bir paketi aynen gönderene geri göndermek için kullanılır ( ayna ). Kesinlikle çok büyük DDOS açıkları veren bir targettir. Özellikle ADSL gibi upload inizin download inizdan düşük olduğu yapılarda kesinlikle kullanmayın çok kolay abuse edilebilir.

NETMAP Target

Netmap target “one to one” maping dediğimiz 1 e 1 NAT Maping olayını gerçekleştir. Basitçe örneklendirecek olursak , 192.168.0.1/255.255.255.0 local ip adreslerimizin hepsine 1 ip adresimiz olacak kadar internet ip adresimiz var. her birini tek tek NAT yapmak yerine Netmap target ile adresleyebiliriz. Sadece nat table içerisinde çalışır.

–to

[root@linux ~]# iptables -t nat -A PREROUTING -s 192.168.1.0/24 -j NETMAP --to 10.5.6.0/24
[root@linux ~]#

192.168.1.0/24 networkünden gelen istekleri 10.5.6.0/24 network’üne map yaptık.

NFQUEUE Target

NFQUEUE target, QUEUE target in yerini almıştır. Amacı belirtilen paketlerin SNORT gibi IDS sistemleri veya network yönetim proğramları için paketlerin kuyruklanmasıdır.

–queue-num

[root@linux ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -j NFQUEUE --queue-num 30
[root@linux ~]#

–queue-num nfqueue için kuyruk numarası atamamıza yarar bu değer girilmezse default queue numarası 0 dir. queue-num 16 bittir yani 0 dan 65535 e kadar kuyruk atanabilir.

NOTRACK Target

[root@linux ~]# iptables -t raw -A PREROUTING -i eth0 -p tcp --dport 80 -j NOTRACK
[root@linux ~]#

NOTRACK Target, ip conntrack tarafından takip edilmemesini istediğimiz paketleri işaretlemek için kullanılır. Sadece RAW table içerisinde geçerlidir.

Rateest Target

Rateest target tek başına anlaşılması güç olduğu için rateest match ile beraber ayrı bir yazımda anlatacağım.

REDIRECT Target

Redirect target, gelen bir paketin hedef adresini gelen interface’in ip adresine yönlendirir. kaynak adresi host’un kendisi ise 127.0.0.1 e yönlendirilir. örneğin her herhangi bir ip adresinin 80 nolu portuna giden istekler 3128 e yönlendirilerek transparent squid çalıştırılması gibi. Redirect target sadece nat table içerisinde PREROUTING ve OUTPUT zincirlerinde çalışır.

–to-ports

[root@linux ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
[root@linux ~]#

–to-ports hedef port’u belirtmek için kullanılır. örneğimizde 8080

Return Target

Return target, bir paketin herhangi bir chain içerisinde gezinmesini sonlandırmak için kullanılır. örneğin INPUT chain içerisinde paket “-j RETURN” target e rastlarsa başka hiç bir rule’a uğramayarak default policy e gider.

[root@linux ~]# iptables -A FORWARD -p TCP --dport 22 -j RETURN
[root@linux ~]#

Örneğimizde TCP 22 nolu port ‘a giden paketlerimiz INPUT chain içerisinde başka hiç bir kurala uğramaz.

SNAT Target

SNAT Target paketin ip header’inda kaynak ip adresinin değiştirilmesi için kullanılır. ( Source Network Address Transilation ), kısacası interneti paylaştırmak için. Local networklerimizde kullandığımız IANA ( 192.168.0.0,10.0.0.0,172.16.0.0 ) ip adreslerini gerçek ip adresleri ile değiştirerek internete çıkmamızı sağlar. dikkat edilmesi gerekn nokta SNAT target in statik ip ile çalışıyor olması, evimizde bulunan ADSL gibi hatların paylaşımı için MASQUAREDE target kullanılmalıdır.

–to-source

[root@linux ~]#  iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 10.70.20.197:1024-32000
[root@linux ~]#

Örneğimizde “eth0″ interface inden gelen tcp paketlerini “10.70.20.197″ nolu ip adresini alarak kaynak portları “1024-32000″ olacak şekilde çıkmasını sağladık. dikkat edilmesi gereken nokta SNAT paketin gideceği yer konusunda herhangi bir işlem yapmaz sadece gönderen ” kaynak” kısmını değiştirir. birden fazla ip adresi için loadbalance yapmak istersek ip adreslerini “-” ile ayırarak gösterebiliriz örneğin “10.70.20.1-10.70.20.15″ 1 ila 15 arasındaki ipler arasında kaynak adresi belirtmesini sağlar. SNAT sadece nat ve POSTRUTING de çalışır.

Same Target

Same target aynı SNAT target gibi çalışmakla beraber temel farkı birden çok ip grubu belirlendiğinde istemciyi her zaman aynı source ip ile çıkarmaya çalışır. örneğin 192.168.0.1-192.168.0.50 ip grubunu belirttiğimizde 10.70.20.2 nolu ip adresine sahip istemci ilk çıktığında 192.168.0.7 ip adresine denk gelmesi durumunda Same target her seferinde aynı istemciyi 192.168.0.7 adresinden çıkarmaya çalışacaktır.

Dnat Target’in –persistent parametresi Same Target ‘in yerini almıştır.

Secmark Target

Secmark target SELinux için paketleri işaretlemek için kullanılır. Konumuz SELinux olmadığı için ayrıntılılarına girmeyeceğim.

iptables -t mangle -A PREROUTING -p tcp –dport 80 -j SECMARK –selctx httpcontext

TCPMSS Target

TCPMSS Target paketlrin MSS ( Maksimum Segment Size ) değerlerini değiştirmek için kullanılır. Normal şatlar altında bu değer MTU ( Maksimum Transmission Unit ) -40 a eşittir. Bazı internet Servis sağlayıcıları veya sistem yöneticileri ICMP fregmanted paketeri drop ‘laya bilir ler . budurum aldında çok ilginç şartlar meydana gelebilir. örneğin , Mail alış verişinde hiç bir problem olmamasına rağmen çok büyük dosya gönderilen mail lerin gitmemesi, ssh ile sorunsuz bağlantı sağlandığı halde sftp ile büyük dosya transferlerinin yapılamaması gibi. Kısacası herşey in çalıştyığı ama büyük paketlerin iletilemediği bir durum meydana gelir. TCPMSS Target bize bunları engelleyebilme şansı verir.

1- –set-mss

[root@linux ~]# iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o eth0 -j TCPMSS --set-mss 1460
[root@linux ~]#

Giden paketlerin MSS değerlerini değiştirmek için kullanılır. örneğimizde eth0 üzerinden giden paketlerin, MSS değerlerini 140 olarak değiştirdik. MSS değeri SYN paketlerinde doğru olarak yapılandırılmalıdırlar.

2- –clamp-mss-to-pmtu

[root@linux ~]# iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o eth0 -j TCPMSS --clamp-mss-to-pmtu
[root@linux ~]#

Bu paramtre MSS değerini otamatik olarak default değerine set ederki bunun yapılandıılmasına normal şartlar altında gerek yoktur. MSS değeri default olarak PMTU ( Path Maksimum Transmission Unit ) eksi 40 dir. Bir çok uygulama için kabul edilebilir bir değerdir.

TPROXY Target

TPROXY Target transparet proxy uygulamaları için kullanılır. genellikle linux iptables la beraber redirect target kullanılır ama tproxy target in ana farkı ip header’da herhangi bir değişiklik yapmadan bunu yapabilmesidir.http isteklerinde genel olarak redirect ile bir sorun olmasada örneğin UDP için transparent proxy uygulamalarında hedef ip adresi kaybolduğu için redirect target in kullanılması imkansız hale gelmektedir. TPROXY Target in kullanılabimesi için proxy nin bunu desteklemesi gerekmektedir. Squid ile kullanımı için squid web sayfasında ayrıntılı bir döküman mevcutur. TPROXY target aynı zamanda paketn mark deerini değiştirerek advanced routing ile kullanımına imkan sağlar.

[root@linux ~]# iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129
[root@linux ~]#

TRACE Target

Trace target kısaca bir paketi ip tables zincirleri içerisinde gezerken takip etmekamacı ile kullanılır. Sadece raw table içerisinde kullanılabilir. Trace target ile işaretlenmiş paket herhangi bir iptables kuralına denk geldiğinde ( hit ) , kernel tarafından log lanır.

[root@linux ~]# iptables -t raw -A PREROUTING -j TRACE
[root@linux ~]#

Örneğimizde tüm paketleri trace ile işaretledik.

TOS Target

TOS nedemek daha önce TC Fifo yazımda değinmiştim. TOS Tagret ile giden paketlerin TOS field lerini ( Değerlerini ) değiştirebiliriz. TOS Target sadece “mangle” table içerisinde kullanılabilir. iptables version 1.2.2 ve daha önceki versionlarında TOS Target sorunludur.

[root@linux ~]# iptables -t mangle -A PREROUTING -p TCP --dport 80 -j TOS --set-tos 0x10
[root@linux ~]#

- –set-tos

TOS değerini belirtmek için kullanılır. yukarıdaki örneğiiz de TOS değerini http 80 nolu port için 0×10 yani Decimal 2 değeri atadık “Maximize reliability Maksimum kararlılık(mr)”

TTL Target

TTL Target ip header içerisinde TTL değerini ( Time TO Live ) değiştirmek için kullanılır. TTL kavramına daha önce Iptables Tables & Chains yazımda değinmiştim .

1- –ttl-set

[root@linux ~]# iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-set 64
[root@linux ~]#

TTL değerini değiştirmek için kullanılır. Linux default dışarıya giden bağlantılar için TTL değeri 64 dür. Herhangi bir sebepden dolayı bu değerin değiştirilmesi gerekirse –ttl-set parametresi ile yeniden düzenlenebilir.

2- –ttl-dec

[root@linux ~]# iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-dec 1
[root@linux ~]#

TTL değerini olan değerden düşürmek için kullanılır. yukarıdaki örnekde TTL değeri 1 düşürülmüştür.

3- –ttl-inc

[root@linux ~]# iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 1
[root@linux ~]#

TTL değerini arttırmak için kullanılır. örneğimizde TTL değeri 1 arttırılmıştır.

Comments

Comment from onur
Time 01/21/2010 at 5:55 pm

s.a. hocam. iptables ile bir mevcut makinaya gelen tüm paketleri başka makinadaki bir ipye yönlendirmek mümkünmüdür acaba ? mesela şöyle diyim ; 78.54.33.53 ip li bir servera bağlanmaya çalıştığımda beni direk olarak 62.248.33.3 ipli server yönlendirsin istiyorum. Acaba mümkünmdür böyle bişi? teşekkür ettim şimdiden.

Comment from alper
Time 01/23/2010 at 11:39 pm

Önce DNAT ile gelen paketleri dışarıya yönlendiriyorsun i daha sonra SNAT ile paketin yeniden yolunu bulabilmesi için nat yapıyorsun.
[root@linux ~]# iptables -t nat -A PREROUTING -p tcp –dport 80 -i eth0 -j DNAT –to-destination 62.248.33.3:80
[root@linux ~]# iptables -t nat -A POSTROUTING -p tcp –dport 80 -o eth0 -j SNAT –to-source 78.54.33.53
[root@linux ~]#

Write a comment