Титла: Nat и машина под ХР с dc++ Публикувано от: eNcLaVe в Sep 27, 2006, 00:14 Здрасти на всички ! Ще се опитам да бъда максимално точен и кратък: познатата ситуация... две машини (работна и рутираща), и ДиСи клиент на работната, опитвам се да пусна активния режим на дисито, разбрах че трябва да позволя на рутиращата да препраща пакетите през поне 2 порта. На рутиращата съм със slackware 10.2, написал съм скрипт, като същността му e:
$IPTABLES -P INPUT ACCEPT $IPTABLES -F INPUT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -F OUTPUT $IPTABLES -P FORWARD DROP $IPTABLES -F FORWARD $IPTABLES -t nat -F $IPTABLES -A FORWARD -i eth0 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -i eth2 -o eth0 -j ACCEPT $IPTABLES -A FORWARD -j LOG $IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE $IPTABLES -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP $IPTABLES -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP Това е, външния интерфейс е 0, вътрешния - 2 Та въпроса ми е, какъв е точния синтаксис на редовете, които явно трябва да добавя в същия скрипт, за да позволя препращане на пакетите през тези два порта (без значение точно кои). Опитах с търсачката, но ми излезе точно един резултат със ситуация доста подобна на мойта, само дето няма никакъв отговор по темата..... и наистина нямам толкова време за да чета целия manual на айпитейбълс само за да проработи дисито ми, така че ако може някой който го е правил това да ми каже директно решението какво е.... предварително благодаря ! [edit] Всъщност пишлеметата пишат в хелп-а на диси++ че не трябват два, а достатъчен е един порт, който да бъде отворен в двете посоки рутер->работна, работна->рутер и рутер->гейтуей, гейтуей->рутер, на двата протокола TCP и UDP, метода който бе споменат е nat port mapping, та логиката ми е ясна, синтаксиса ми е проблема.... ![]() [edit2] Казаха ми да добавя тези редове: iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 30555 -j DNAT --to 192.168.0.2:30555 iptables -t nat -A PREROUTING -p udp -i eth0 --dport 30555 -j DNAT --to 192.168.0.2:30555 като 30555 е порта който съм си избрал и който указвам в настройките на ДиСи-то, 192.168.0.2 е айпи-то на работната машина, т.е машината на която се опитвам да подкарам дисито в активен режим, а eth0 е интернетския интерфейс, лан картата на рутъра която е вързана към нета. Опитах така и пак не става ![]() Титла: Nat и машина под ХР с dc++ Публикувано от: Hel1Fire в Sep 27, 2006, 12:41 -SNAT ...
Титла: Nat и машина под ХР с dc++ Публикувано от: Hapkoc в Sep 27, 2006, 14:02
Глупости. Правилото за маскиране ще свърши работата на SNAT-а, освен това се пише "-j SNAT", не "-SNAT". По въпроса конкретно не мога да помогна. Правилата с DNAT, които са ти казали, ми изглеждат верни, нямам идея от какво може да е. С tcpdump може да пробваш да слушаш нещо да гледаш... Иначе за FORWARD веригата малко криво ми изглежда как е направено. Първо пускаш само ESTABLISHED и RELATED пакети, веднага след това пускаш всички останали. Така и така политиката в FORWARD ти е ACCEPT, можеш да ги разкараш тия двете правила, макар че по-културно би било да ги оправиш де, ама ти си знаеш. :) Титла: Nat и машина под ХР с dc++ Публикувано от: gat3way в Sep 27, 2006, 17:33 Ахм...почти си успял
![]() Пробвай така ![]() съдържание на скрипта:
Проблемът идва оттам че режеш всякакви пакети, които установяват връзка от външен хост към хост от мрежата (а ти това целиш с тези две ДНАТ правила). Титла: Nat и машина под ХР с dc++ Публикувано от: eNcLaVe в Sep 28, 2006, 23:29
Hapkoc ![]() ![]() ![]() [edit] Еми какво да кажа.... едно огромно благодаря на gat3way !!! ![]() ![]() ![]() ![]() ![]() ![]() Титла: Nat и машина под ХР с dc++ Публикувано от: Hapkoc в Sep 29, 2006, 00:05 Прав си, тоя път не разгледах внимателно нещата и се изказах неподготвен... Сори :)
Титла: Nat и машина под ХР с dc++ Публикувано от: VladSun в Sep 29, 2006, 01:14
Недей така ![]() Ще си скапеш харда ![]() Сложи поне един --limit в това правило Титла: Nat и машина под ХР с dc++ Публикувано от: eNcLaVe в Sep 29, 2006, 01:52 Е то това ми логва трафика, който ще бъде пренасочен ама всеки път ли чете/пише харда, когато има трафик ? В смисъл не се ли кешира лога някъде в рам паметта и като се понапълни тази област тогава да мята на харда ? щото ако е всеки път да се гърчи харда с това, ще го махна направо този ред....
Титла: Nat и машина под ХР с dc++ Публикувано от: VladSun в Sep 29, 2006, 02:25 Честно казано, не съм много сигурен на какъв интервал се записва в хард диска, но много добре си спомням какво стана, когато пуснах poptop - харда стържеше непрекъснато и работата на машината беше мноого зле. Оказа се, че pptpd логва всеки?!? пакет - описано е в http://tula.bofh.ru/articles/461.
Дали се буферира в паметта? Бих казал, че ако времето за запис от паметта в харда е по-голямо от времето, което си задал за "заспиване" на харда при липса на IO операции, то "скапването" е в доста силна степен (един от основните параметри на времето на живот на един хард диск е броят на старт-стоповите цикли). Титла: Nat и машина под ХР с dc++ Публикувано от: gat3way в Sep 29, 2006, 10:37 Не се буферира. Иначе има един междинен вариант като за хора дето им се занимава с глупости. Спираш klogd и си пишеш един скрипт (bash обаче няма да свърши работа), който чете от /proc/kmsg и редовете свързани с лог-ване на трафика ги добавяш към един масив. (всичко останало го пишеш в /dev/log). Така можеш да си реализираш собствено буфериране като изписваш информацията от трафика от масива във файла когато решиш че е най-добре. За съжаление, скриптът трябва да работи като root. Иначе не би трябвало да има проблем. klogd дефакто не прави нещо различно, само дето няма "буфериращите" възможности които искаш
![]() |