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

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: int13 в Aug 25, 2005, 08:11



Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: int13 в Aug 25, 2005, 08:11
Използвам декстоп Слака 10.1 си и да рутирам нета за съквартиранта със следните команди заложени в /етц/рц.д/рц.лоцал:

Примерен код

iptables -F; iptables -t nat -F; iptables -t mangle -F

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A INPUT -i ppp0 -p TCP --dport 6000 -j DROP
iptables -A INPUT -i ppp0 -p UDP --dport 6000 -j DROP
iptables -A INPUT -i ppp0 -p TCP --dport 137 -j DROP
iptables -A INPUT -i ppp0 -p UDP --dport 137 -j DROP
iptables -A INPUT -i ppp0 -p TCP --dport 445 -j DROP
iptables -A INPUT -i ppp0 -p UDP --dport 445 -j DROP


Блокирането на портовете очевидно не работи ,така че не му обръщайте внимание, насочете се към Маскарадинга.

Този ред на айпитейбълс работи! Но изведнъж онзи ден престана да рутира- супер станно ми изглежда.

Другия комп не пингва нито днс-а нито някое вуншно айпи освен моето вътрешно и моето външно айпи (провайдера ми дава такова). Ебаси магията..някой има ли обяснение за това чудо?


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: в Aug 25, 2005, 09:41
iptables -t nat -A POSTROUTING -s 1.2.3.0/24 -j MASQUERADE

където 1.2.3.0/24 - адреса на вътрешната ви мрежа.


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: int13 в Aug 25, 2005, 10:41
ще го пробвам, но с моята конфигурация си работеше..нищо не съм пипал - на другото ПЦ настрйките са както трябва и те не са пипани...супер странно е  ???  :0


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Aug 25, 2005, 11:48
Дам и на мен ми се случи същото. Имах си перфектно работеща конфигурация която изведнъж спря да работи. Е, може и аз нещо да съм направил но от тогава пробвах толкова много неща че спирам да мисля че проблема е в моя компютър. Възможно ли е провайдера да блокира маскиране или нещо такова?


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: int13 в Aug 25, 2005, 12:13
ami mislq 4e ne e providera..no namerih tromavo no byrzoreshenie..pusnash si apache-to da raboti kato proxy..no ne tromavo tova reshenie :(


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: Uvigii в Aug 25, 2005, 21:08
Цитат
ami mislq 4e ne e providera

Ами ако не си ти, няма кой друг да е освен ISP!


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: Bogo в Aug 25, 2005, 21:28
echo "1" > /proc/sys/net/ipv4/ip_forward


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Aug 25, 2005, 22:35
Добре де, то реално възможно ли е въобще провайдера да разбере дали съответната връзка идва от моя комп или е маскирана и съответно да забрани маскираните пакети? Не е ли именно в това идеята на ip masquerading-а пакетите да изглеждат все едно са пратени от маскиращия компютър?
В моя случай само един компютър се конектва през моя така че в момента активно търся грешки в него (все пак е на вин :p), но принципния въпрос за провайдера си остава.
Поздрави


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: Йордан в Aug 25, 2005, 22:45
TTL спада с единица при преминаването на рутер. За да се избегне това се ползва пач за ядтото pach-o-mat...нещо си там


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: Uvigii в Aug 25, 2005, 23:19
Цитат

Добре де, то реално възможно ли е въобще провайдера да разбере дали съответната връзка идва от моя комп или е маскирана

Абсолютно! Дори да си коригираш ТТЛ.


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: в Aug 25, 2005, 23:24
направи едни ping от рутера към gw-то ти ли въобще и виж каква е стойността на ттл-а ;)


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Aug 25, 2005, 23:36
Ми 0 е, сега ще се пробвам с пача на гигаволт и да се надяваме че ще стане. А да речем че ползвам прокси, то може ли да бъде "разкрито" от провайдера. По моето непрофесионално мнение там не би трябвало да намалява ТТЛ, или?


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: Йордан в Aug 25, 2005, 23:51
Цитат (Uvigii @ Авг. 25 2005,23:19)
Цитат

Добре де, то реално възможно ли е въобще провайдера да разбере дали съответната връзка идва от моя комп или е маскирана

Абсолютно! Дори да си коригираш ТТЛ.

Друго какво може да гледа ? Броя конекции... към даден сървър (например icq) ? Какво друго гледат ми е много интересно. По точно какво друго "автоматизират", за да избегнат "раздаването" на НЕТ :)


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: в Aug 26, 2005, 00:42
Цитат (dbaniza @ Авг. 26 2005,00:36)
Ми 0 е, сега ще се пробвам с пача на гигаволт и да се надяваме че ще стане. А да речем че ползвам прокси, то може ли да бъде "разкрито" от провайдера. По моето непрофесионално мнение там не би трябвало да намалява ТТЛ, или?

emi -> google.com -> P-o-M iptables TTL

i si gotow


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: etg в Aug 26, 2005, 08:36
Цитат (int13 @ Авг. 25 2005,09:11)
...Но изведнъж онзи ден престана да рутира- супер станно ми изглежда...

Кое ти в външното IP?


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: int13 в Aug 26, 2005, 12:30
ами външното е динамично при всяко закачане се сменя, това е ИП-то с което се виждам в интернет, а вътрешното ми е от сорта на 10.2.х.х - т.е в локалната. Външните се раздават чрез pppoe протокола. Това за ехо "1" > ...еди какво си, го имам включено. Като се закача с adsl-start  и ми се вдига ppp0 интерфейса който е с външното айпи. Тва е системата в общи линии.


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: zeridon в Aug 26, 2005, 15:36
хич не му мисли ами слагай patchomatic-ng от www.netfilter.org и шибвай някакъв по свестен TTL и би трябвало да си готов


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Aug 27, 2005, 11:59
Съжалявам, аз съм индианец. Свалих си пача, но пак не става. Ето изрязка от скрипта ми за firewall:
Примерен код

iptables -t mangle -A PREROUTING -i eth1 -j TTL --ttl-inc 1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

като eth1 ми е вътрешния а eth0 външния интерфейс. Някой да ми подскаже как се прави правилно?


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: Bogo в Aug 27, 2005, 14:11
iptables -t mangle -A OUTPUT -o eth0 -j TTL --ttl-set 64


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Aug 28, 2005, 17:00
Поради хардуерни проблеми чак сега можах да тествам дали след поправката на TTL интернета ми работи и какво да ви кажа, все още не бачка! Вече почвам да се отчайвам, ето ми го файъруол скрипта:
Примерен код

#set policy
iptables -P INPUT  ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

#correct TTL
iptables -t mangle -A OUTPUT -o eth0 -j TTL --ttl-set 64

#allow communication through the loopback interface
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#allow communication through eth1
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT

#allow forwarding from and partly to eth1
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

#set masquerading
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Останалото са само правила за забраняване и разрешаване на връзки към ftp, ssh и тн.
/proc/sys/net/ipv4/ip_forward също си е 1.
Някакви идеи?

ПС: Сори че толкова нагло си присвоих темата ти, int13...


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: ray в Aug 28, 2005, 17:18
Опитай дали има връзка без 'firewall'.
Румен


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: Uvigii в Aug 28, 2005, 17:27
Цитат
.......Друго какво може да гледа ?.........

Примерно:


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Aug 28, 2005, 19:33
Цитат (ray @ Авг. 28 2005,18:18)
Опитай дали има връзка без 'firewall'.
Румен

Мне, опитвал съм го много пъти и пак не е ставало.  ???


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: alex_c в Aug 28, 2005, 21:19
Ами провери дали въобще излизат пакети от ppp0 интерфейса навън, когато правиш някакви заявки от NAT-натата машина. Това става с командата:
tcpdump -n -i ppp0 host адреса_на_ppp0_интерфейса
Адресът може да се види с ifconfig ppp0
Преди да пуснеш дъмпа, на клиентската машина пускаш да върви пинг до някакъв IP адрес, който предварително знаеш (не по име, защото явно няма да имаш DNS резолвинг). Ако от дъмпа виждаш пингове от адреса на ppp0 интерфейса към този адрес, значи че маскирането ти работи и наистина е възможно доставчика ти да прави проблеми (малко вероятно). Ако не виждаш да излизат пакети от адреса на ppp0 интерфейса към адреса, който пингваш - проблема е при теб. Чак след този тест трябва да се впускаш в patch-o-matic-ване и т.н. BTW с обикновен модем ли си или ползваш PPPoE, PPTP или нещо такова?
P.S. За да си сигурен, че пакетите от клиентската машина идват до рутера ти, можеш да пуснеш един дъмп и на вътрешния интерфейс на рутера: tcpdump -n -i eth1 host адреса_на_клиентския_комп
Въобще, ползването на tcpdump е задължително за мрежовия администратор.
Best wishes!
Alex


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: int13 в Aug 28, 2005, 22:15
Със следната команда:

Цитат
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


пакетите се рутират до етх0 ( върху която карта се закача ппп0 интерфейса чрез протокола pppoe) , но не излизат през ппп0. Защо? Нямам обяснение :(

PS: пинг до гейтуея ми връща стойности на ттл=48 ,това говори ли нещо????


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: alex_c в Aug 29, 2005, 13:32
А кой ти е default gateway-а след като стартираш adsl-start - би трябвало да е IP адрес, който се рутира през ppp0, а не през eth0


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: int13 в Aug 29, 2005, 16:29
Default gateway си се определя от pppoe-то (там си бродкаства пакечтета и си се оправят някакси, не разбирам много), въпроса е че като дам tcpdump -i eth0 host вътрешната_машина виждам че вътрешната машина се опитва да пинга външно ай пи(аз съм пуснал да го прави), но пакетите си остават в eth0.Като дам tcpdump -i ppp0 host вътрешната_машина, никакви пингове към гоогле(в случая) не се виждат. От там правя заключение ,че пинговете си остават в eth0 и не се рутират до ppp0, защо е така, при положение ,че командата за НАТ-вано рутиране е правилна- а именно:

Цитат

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

и
Цитат
echo "1" > /proc/sys/net/ipv4/ip_forward

??? Пълна мистерия!!!! :(((


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: vlad73 в Aug 29, 2005, 19:41
Цитат (dbaniza @ Авг. 28 2005,18<!--emo&:0)
Поради хардуерни проблеми чак сега можах да тествам дали след поправката на TTL интернета ми работи и какво да ви кажа, все още не бачка! Вече почвам да се отчайвам, ето ми го файъруол скрипта:
Примерен код

#set policy
iptables -P INPUT  ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

#correct TTL
iptables -t mangle -A OUTPUT -o eth0 -j TTL --ttl-set 64

#allow communication through the loopback interface
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#allow communication through eth1
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT

#allow forwarding from and partly to eth1
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

#set masquerading
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Останалото са само правила за забраняване и разрешаване на връзки към ftp, ssh и тн.
/proc/sys/net/ipv4/ip_forward също си е 1.
Някакви идеи?

ПС: Сори че толкова нагло си присвоих темата ти, int13...


Тези редове действително ли са така или просто е грешка в преписването?
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
защото това би обяснило доста неща...

Edit:
Сега се зачетох по-подробно, мисля, че и други редове не са ОК, този дето ти коригира ttl-a най-вече, по-горе са ти писали, че те вълнува ppp0 интерфейса, даже са ти написали реда...


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Aug 29, 2005, 21:57
Ъъм, аз по принцип нямам ppp0, това се е отнасяло до int13. А редовете съм взаимствл от едно howto на tldp.org и на мене лично ми се струват напълно логични. Както и да е де, с "iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE" пак не става.
Според теб как трябва да изглежда реда с ттл?
Поздрави


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: vlad73 в Aug 29, 2005, 23:22
Да, моя грешка, извинявай
единственото, което ми хрумва е да има някое policy из mangle и nat останало на DROP, но ми се вижда малко вероятно


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Aug 30, 2005, 00:27
Ми останалите редове общо взето са във формата
Примерен код
iptables -A INPUT -p tcp --dport *нещо си* -j ACCEPT
и завършват с едно голямо
Примерен код
iptables -A INPUT -m state --state NEW, INVALID -j DROP
Споменах ли вече че започвам да се отчайвам?


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: vlad73 в Aug 30, 2005, 10:50
Огледай резултата от
iptables -L -t nat -n
iptables -L -t mangle -n

Така и не разбрах каква ти е дистрибуцията, но аз примерно ползвам RedHat  базирани (основно Fedora), там имаш възможност да запазиш някаква конфигурация на iptables и тя да се зарежда при boot. Идеята ми е, че ако имаш нещо подобно, това ще се наслагва на твоя скрипт.

Успех и не бързай да се отчайваш, пробвай почина на царя и гледай позитивно - имаш реалната възможност да си поблъскаш главата с интересен проблем, дори и  да не го решиш си струва да се напънеш, а ако го решиш е много сладко. :)


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Aug 30, 2005, 16:21
Дистрибуцията ми е Debian unstable, аз в началото на скрипта има още няколко реда които аз от удобство изпуснах да поствам, а именно:
Примерен код

iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -Z

Това би трябвало да очисти всякакви остатъци от правила, или?


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: int13 в Aug 30, 2005, 16:23
а за моя случай, някой няма л да помогне???? :((((


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: vlad73 в Aug 30, 2005, 16:53
Цитат (dbaniza @ Авг. 30 2005,17:21)
Дистрибуцията ми е Debian unstable, аз в началото на скрипта има още няколко реда които аз от удобство изпуснах да поствам, а именно:
Примерен код

iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -Z

Това би трябвало да очисти всякакви остатъци от правила, или?

Да, чисти ги, ма не променя политиките на веригите. Просто това е единственото, което ми хрумва - да има някоя политика на DROP, освен тази в FORWARD на filter де.
Виж дали в изхода на тези команди:
iptables -L -t nat -n
iptables -L -t mangle -n
има нещо, което да съдържа "policy DROP" след името на chain-a


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Aug 30, 2005, 18:11
Отново поради харуерни причини (клиентския компютър беше разглобен) чак сега последвах съвета на alex_c с tcpdump и стигнах до очудващия поне за мене извод че пакетите си се рутират към целта, но по пътя обратно си остават в рутиращия компютър, което ми е напълно необяснимо. ???

int13: Сори отново че така ти използвам темата, но мисля че решението на проблема ни е сходно, моето рутиране спря също толкова внезапно като твойто.
vlad73: Никъде няма DROP.


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: int13 в Aug 30, 2005, 19:37
да прав си сходно е..но не мисля че е в ттл-ите проблема :( т ис какъв кернел си? Аз съм с 2.4.29 на слак 10.1.


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Aug 30, 2005, 23:06
2.6.12 на Debian unstable. И аз не мисля че е от ттл, но и си нямам ни най-малката идея от какво може да е. Възможно ли е все пак провайдера да ме преебава някакси? Нещо да изменя хедъра на пакетите така че рутера да не може да разбере че са от конекшъна към другия компютър или нещо такова. Уффф


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Sep 09, 2005, 13:40
Аз съм идиот.
След дълго време на незанимаване с този проблем изведнъж прозрях каква е причината да нямам рутиране - всичките пакети които получавам имат ттл 0 и затова не се и рутират обратно към клиентския компютър, а умират в рутера. Та моята е мисъл е да увеличавам ттл-а на всички пакети за клиента с едно, така че все пак да стигат до него. А въпроса ми е, как точно трябва да изглежда командата.
Пробвах "iptables -t mangle -A INPUT -i eth0 -j TTL -ttl-inc 1". Така като пингвам от рутера ми се изписва че ттл е 1 (а не 0 както беше преди...). Пинговете от другия компютър обаче все още умират с "ICMP time exceeded in-transit"  ???


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: toxigen в Sep 09, 2005, 16:46
Не го прави с ttl-inc!
Документацията на iptables казва:
Цитат

--ttl-inc value
              Increment the TTL value `value' times.

Което означава, че ако напишеш ttl-inc 1 ще стане "увеличи ТТЛ един път"!
Аз го правя така:
Примерен код

iptables -t mangle -A INPUT -j TTL --ttl-set 64

Това кара всички пакети, които влизат да имат TTL = 64, което си е нормално. За изходните вериги също препоръчвам да сложиш едно ttl-set 64 , за да изглежда всичко все едно идва от рутера (всъщност не съм гледал как излизат отзад) ;)


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: в Sep 09, 2005, 17:21
моля прочетете :

http://hardtrance.blogspot.com/2005/05/ttl-nat.html
и
http://hardtrance.blogspot.com/2005....ko.html


Титла: ИЗведнъж рутирането ми изчезна
Публикувано от: dbaniza в Sep 09, 2005, 17:49
Боже, не мога да повярвам, работи!
Златния ред беше:
Цитат
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 2

Направо ме е яд че не намерих блога ти по-рано...
А и, хъм, благодаря на всички които направиха това възможно. :p