Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: svilkata в Mar 12, 2006, 15:37



Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: svilkata в Mar 12, 2006, 15:37
Здравейте, от скоро съм абонат на Мегалан и искам да споделя и-нет-а на 2 ПЦ-та, но нещо не се получава, увеличавам ТТЛ с 1, задавам ТТЛ на пакетите да е 64 и задавам порта де е от 1024 до 32768 (обикновено при нат е 32768-61ХХХ)и пак не мога да рутирам пакетите имам пинг до външния ми интерфейс, но не и до гетеуея на доставчика. имам инсталиран Slackware- curent с кернел 2.6.25.3, iptables-1.3.5. Ако някой може да ми каже, какво още може да се направи, ще съм му благодарен, иначе за сега използвам winproxy с което се поличава, но това не си е работа.


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: Knopper в Mar 12, 2006, 16:02
Изглежда ми странен начинът, по който го правиш. Ето аз как успях да го напрaвя, две правила са нужни, третото е за да не изтече информация на доставчика за деянието :). Подразбирам, че eth0 е външната карта и вътрешните компютри ползват адреси за частно ползване 172.16.0.0/12 от RFC 1918 :

iptables -t nat -A POSTROUTING -s 172.16.0.0/12 -o eth0 -j MASQUERADE
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 1
iptables -t mangle -A POSTROUTING -s 172.16.0.0/12 -o eth0 -j TTL --ttl-set 64


Разбира се, трябва да имаш компилиран модула ipt_TTL.ko. Fedora Core 4 с приложени актуализации го има включен този модул. И не забравяй в /etc/sysctl.conf: net.ipv4.ip_forward = 1, след което #sysctl -p.


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: GoodT в Mar 12, 2006, 16:23
Прекомпилирай кернела с опция: options IPSTEALTH
Добави в /etc/sysctl.conf реда: net.inet.ip.stealth=1
Това трябва да ти свърши работа за ограничението на TTL-а.


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: svilkata в Mar 12, 2006, 16:55
10х Knopper, за ттл-сет съм използвал:
# Set TTL on outgoing & forwarded packets:
  ##########################################
  if [ -n "$PACKET_TTL" ]; then
    if [ $PACKET_TTL -gt 9 ] && [ $PACKET_TTL -lt 256 ]; then
      echo "Setting TTL=$PACKET_TTL for the FORWARD & OUTPUT chains"
      for interface in $EXT_IF; do
        $IPTABLES -t mangle -A FORWARD -o $interface -j TTL --ttl-set $PACKET_TTL
        $IPTABLES -t mangle -A OUTPUT -o $interface -j TTL --ttl-set $PACKET_TTL
      done
    else
      printf "\033[40m\033[1;31m WARNING: Ingoring invalid value for PACKET_TTL ($PACKET_TTL), it should be between 10 and 255!\033[0m\n"
    fi
  fi

с твоя последния ред като дадох source моята мрежа и се оправи


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: fen386 в Apr 05, 2006, 16:12
Абре, Федорци, човекът е със Slackware,  за какъв /etc/sysctl му говорите? :)


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: Hapkoc в Apr 05, 2006, 16:38
GoodT, IPSTEALTH ако се не лъжа е за FreeBSD, тук се говори за Linux.

fen386, sysctl си присъства в Slackware, нищо че много хора не знаят - http://slackware.it/en/pb/search.php?v=current&t=2&q=sysctl .


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: laskov в Apr 05, 2006, 17:33
Статия за TTL-и иии-и-и ...  Фолксваген Голфове  :D


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: Dean79 в Apr 05, 2006, 23:54
//offtopic

Много се смях като я четох. Личи си непрофесионализма с който е писана. Какво общо имат емблематичните марки автомобили и инстант мессинджърите със знанията на съответния индивид ?


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: smelkomar в Apr 06, 2006, 10:51
по-лесно е така (FreeBSD):

http://www.pfsense.com/
http://m0n0.ch/wall/


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: в Apr 07, 2006, 21:22
почти съм убеден че проблема е че увеличаваш с 1 ттл на входящите,
пакета идва от мегалан с ттл=1 влиза в мрежовия интерфейс и става 0, ти го инкрементираш с 1 препращаш го през втория интерфейс и той пак става 0.
  Пробвай да ги сетнеш статично на ттл=16 да речем и ще стане.

(Абсолютно същия проблем го имаше при мен - ethereala изясни ситуацията:))


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: svilkata в Apr 08, 2006, 01:59
wolf прав си
за това сложих 2 еднакви реда:
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 1
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 1
пробвах и с :
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-сет 2
и пак стана, според вас кое ще е по-добрепървото или второто, щото имам 46МБ РАМ и като поработи около цхас и ми пада скоростта от 900КБ/с на 650 и дали изобсто има значение?


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: в Apr 10, 2006, 10:58
нещо не разбирам, при влизането на пакета в рутера ми ТТЛ-а е 0, при инкрементиране с 1, вече се увеличава с 1, но не отива до вътрешната ми мрежа, като го увелича с още 1 или го сетна на 2, пристига във вътрешната мрежа с ТТЛ=1, та се получава точно както съм го учил, когато пакета премине през 1 хоп (рутера ми) ТТЛ-а се намалява с 1 (ttl_ext_net - 1 = ttl_int_net или 2-1=1), то тогава защо при първия случай пакетите се режат и не пристигат с ТТЛ=0 във вътрешната мрежа. Това Обяснение на wolf ми се струва невярно, ТТЛ-а се намалява не през преминаването на интерфейс, а на устройство. Някой може ли да ми обади защо се поличава това?


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: laskov в Apr 11, 2006, 10:39
А защо не го послушаш (wolf) и не си сетнеш TTL-а на 16 ? А правиш ли нещо с изходящия трафик? (виж статията, където са намесени фолксвагените)  :)

Редактирано: "А правиш ли нещо с изходящия трафик?" Разбрах, прочетох темата отначало.





Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: в Apr 12, 2006, 17:16
svilkata, това очевидно е понеже от мегалан явно са гениални типове и сетват TTL=0, което е тъпчене на всякакви rfc-ta. Пакет с TTL<=1 не се forward-ва от ядрото, т.е и да го увеличиш с 1 и стане 0+1=1, ядрото пак няма да го forward-не.

Тази  статия е писана от един човек който има самочувствието да е прекалено компетентен, но всъщност вътре глупостите които е изтипосал са немалко.

В крайна сметка дали мегалан ще ти пращат пакети с ттл=1 или ттл=0 няма значение като краен резултат, с тази разлика, че второто не е много "по правилата".

Авторът на тази статия упорито спореше че като му дойдел пакет с ттл=1 щял да го forward-не с ттл=1-1=0, което са глупости на търкалета и трябваше да му пействам части от сорса на ядрото. Както и да е.

Не се намалява ТТЛ-а, минавайки през двата интерфейса, т.е това става САМО един път, в момента в който ядрото вземе решение да препрати пакета към друг интерфейс. Няма вариант да е по друг начин.

Та между другото тази конкретна ситуация е идеалното доказателство какви глупости са изписани в тая статия. Точно затова като се сложи два пъти това правило с --ttl-inc 1 и нещата магически "тръгват". 0+1+1=2, пакетите с ттл=2 се препращат, като при това ядрото намалява ттл-а им с единица.

Според rfc-тата, пакети с ттл=1 не се препращат. Такива с ттл=0 са невалидни. Явно админите на Мегалан, както и авторът са чели едни и същи глупости от едно и също място и ги прилагат, вместо да си се занимават с нещата от които разбират най-добре.


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: в Apr 13, 2006, 18:10
мда...прав си, оттеглям обяснението с интерфейсите:) то дойде както си казва at a glance....
едно е истина Megalan  са гениални типове....!:)


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: saentist в Apr 15, 2006, 17:08
много сложни обяснения много писане салгате си един MikroTik v.2.9.x
и в конзолата пишете:

/ip firewall mangle add chain=prerouting in-interface=HOMELAN action=change-ttl new-ttl=set:64

мисля да е милион пъти по лесно


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: Dean79 в Apr 16, 2006, 19:00
От използването на лесното се затъпява и после ако стане проблем - хабер си нямаш как да се оправи


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: jasonsmith в Apr 17, 2006, 17:59
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 82 -j DNAT --to-destination 192.168.1.5:82
iptables -t nat -A PREROUTING -i eth1 -p udp --dport 5060 -j DNAT --to-destination 192.168.1.5:5060

ето така съм го направил аз, вярно че става въпрос за ип телеефония, но е едно и също, разликата е само в портовете :D


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: в Apr 20, 2006, 12:50
Сега вече ми стана ясно.. 10х на всички и най-вече на gat3way  :D


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: toxigen в Apr 20, 2006, 13:14
Удивително колко много хора не знаят за какво се използва iptables.
@jasonsmith - това, което си дал е пренасочване на портове - DNAT и няма НИЩО общо с манипулация на TTL. И интересно дали на рутера можеш да ползваш тази телефония;)


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: jasonsmith в Apr 20, 2006, 15:25
хаха, наистина аз изобщо не си направих труда да прочета за какво иде реч като цяло в този пост, ами просто исках да се похваля че сиумях да си пусна voip с DNAT i SNAT  :D  :D


Титла: Iptables ttl=0 packet_ttl=64 range_port=1024 32768
Публикувано от: в Apr 20, 2006, 23:29
Ами когато искаш това да го направиш ще отвориш нов пост, когато отговаряш на някой обикновенно целта ти е да му помогнеш.
 Не искам да се заяждам ама все пак опитайте се да организирате някаква култура на постване.
  Вижте на cisco - discussion форумите  те са хубава пример!