Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Zrobiłem sopie udostępnianie netu z artykułu BiExi zmieniając interfejsy na własne i mam zonka :(
iptable: No chain/target/math by that name iptable: No chain/target/math by that name iptable: No chain/target/math by that name iptable: No chain/target/math by that name iptables v1.3.6: can't initialize iptables table `nat`: Table does not exist (do you need do insmod?) Perhaps iptables or your kernel needs to be upgraded
Jajko jest świerzo zrobione 2.6.24.
Pomóżcie.
Offline
A przypadkiem nie przechodziłeś z kernela 2.6.1* ?
Bo z tego co pamiętam niektóre opcje w 2.6.2* są w innych miejscach.
//edit
Jeśli na powyższe pytanie odpowiedziałeś twierdząco...to read this [url]http://forum.dug.net.pl/viewtopic.php?id=8487[/url] ;)
Pzdr.
Ostatnio edytowany przez mi5tic (2008-03-07 12:56:56)
Offline
ok. Mam jakiś problem w nowym jajku, więc wróciłem na stare.
I tu pojawił się kolejny problem.
kod firewalla:
iptables -F iptables -X iptables -t nat X iptables -t nat F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCETP
I za chiny ludowe nie mogę sobie przekierować portu na kompa wewnątrz.
próbowałem już parę regułek wygooglanych i żadna nie działa. np:
iptables -A INPUT -p tcp --dport PORT -m state --state NEW ACCEPT iptables -t nat -A PREROUTING -p tcp --dport PORT -j DNAT --to-destination KOMPWSIECIWEWNETRZNEJ
Ostatnio edytowany przez Marek_boss (2008-03-08 15:19:11)
Offline
Ja bym zrobił tak:
WAN = eth0 IP_PUB = 55.55.55.55 LAN = eth1 PORT = 22 HOST = 192.168.0.2 modprobe ip_nat_ftp iptables -F iptables -X iptables -t nat F iptables -t nat X iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -p tcp --dport $PORT -j ACCEPT iptables -A INPUT -p udp --dport $PORT -j ACCEPT iptables -t nat -A PREROUTING -i $WAN -p tcp --dport $PORT -j DNAT --to-destination $HOST:$PORT iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d $IP_PUB -p tcp --dport $PORT -j SNAT --to $HOST iptables -t nat -A PREROUTING -i $WAN -p udp --dport $PORT -j DNAT --to-destination $HOST:$PORT iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d $IP_PUB -p udp --dport $PORT -j SNAT --to $HOST
i mi działa bardzo dobrze.
Offline
Z przykrością stwierdzam że podane linijki nie działają :(
Offline
a czy przypadkiem nie trzeba:
1. zezwolic na przekazywanie pakietow wpisujac 1 do /proc/sys/net/ipv4/conf/all/forwarding
2. zezwolic na przekazywanie pakietow w iptables
bo przecierz taki pakiet nie idzie do procesu lokalnego (INPUT) tylko jest przekazywany (FORWARD), polecam obrazek http://xkr47.outerspace.dyndns.org/netfilter/packet_flow/packet_flow9.png
pozatym (na ogol) trzeba umozliwic przeslanie odpowiedzi od kompa w sieci wewnetrznej
Offline
mam w skrypcie od firewalla tą linijkę na początku:
#!/bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward
Forward działa bo udostępniam połączenie internetowe do LAN-u.
Mógłby mi ktoś napisać tą regułkę bo już mi ręce opadają od tych znalezionych w sieci.
Ostatnio edytowany przez Marek_boss (2008-03-08 19:23:06)
Offline
Spróbuj może tak:
iptables -F
iptables -X
iptables -t nat F
iptables -t nat X
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -s 0/0 -d ip.ip.ip.ip -p tcp --dport 22 -j ACCEPT
gdzie ip.ip.ip.ip to adres IP kompa na który chcesz kprzekierować port, no i oczywiście
zmień ewentualnie nr portu jeśli chodzi ci o iiny niż dla ssh.
Offline
lapa napisałeś mi regułkę na odblokowanie portu na routerze a nie na przekierowanie portu do kompa w sieci lokalnej.
Offline
czy ten komputer na ktory forwardujesz port ma udostepniony net (jest dopuszczony w regulach FORWARD) ?
PS pokaz moze caly skrypt a nie jakies skrawki ...
Offline
@tgR: twoje regulki tez nie zadzialaja (przetestowalem)
@ALL:
1. [b]lancuch INPUT nie ma nic do rozwaznaego problemu przekierowania portu przy pomocy DNAT[/b] (to byloby potrzebne przy redirect via xinetd)
2. aby to dzialalo konieczne jest zezwolenie FORWARDu (do i od hosta LUB do hosta i dla polaczen nawiazanych)
3. aby to zadzialo konieczna jest tez podmiana adresu zrodlowego (inaczej w ogolnosci pakiety moga tylko w jedna strone przechodzic przez komputer robiacy NAT, a to nastreczy problemow)
4. w iptables wazna jest kolejnosc wpisywania regolek (dlatego w przypadku problemow z iptables IMHO lepiej podac caly skrypt niz jakis fragmencik)
5. dzialajace regolki (wstawilem logowanie aby obejrzenie dmesg rozwialo watpliwosci jaka trase pokonuje pakiet):
echo 1 > /proc/sys/net/ipv4/ip_forward PORT=portforwardowany HOST_NAT=adresIP.komputera.robiacego.NAT HOST_DST=adresIP.komputera.docelowego iptables -F iptables -X iptables -t nat -X iptables -t nat -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # to trzeba dać aby otwarcie OUTPUTu mialo sens, ale nie ma to nic wspolnego z rozwiazywanym problemem iptables -A INPUT -m state --state ESTABLISHED,RELATED -j LOG --log-prefix "INPUT ZESTAWIONEGO: " iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # zestaw regolek rozwiazujacych problem: iptables -t nat -A PREROUTING -p tcp --dport $PORT -j LOG --log-prefix "DNAT: " iptables -t nat -A PREROUTING -p tcp --dport $PORT -j DNAT --to $HOST_DST iptables -t nat -A POSTROUTING -p tcp --dport $PORT -j LOG --log-prefix "SNAT: " iptables -t nat -A POSTROUTING -p tcp --dport $PORT -j SNAT --to-source $HOST_NAT iptables -A FORWARD -s 0.0.0.0/0 -d $HOST_DST -j LOG --log-prefix "FORWARD: " iptables -A FORWARD -s 0.0.0.0/0 -d $HOST_DST -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j LOG --log-prefix "FORWARD ZESTAWIONEGO: " iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
Ostatnio edytowany przez bercik (2008-03-09 03:25:40)
Offline
Już nie wiem. Wkleiłem regułki od Ciebie i nic to nie dało. Może mam to w zlej kolejności. Oto moje wpisy:
eth0-wyjsie na świat
eth1-wyjście na LAN
# wlaczenie w kernelu forwardowania echo 1 > /proc/sys/net/ipv4/ip_forward # czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F #zmienne IPW=192.168.34.24 IPZ=192.168.102.102 IPSW=192.168.34.0/24 IPSZ=192.168.102.0/24 # ustawienie polityki dzialania iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # iptables -A INPUT -i lo -j ACCEPT iptables -A FORWARD -o lo -j ACCEPT #proxy iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128 #porty do LAN iptables -A INPUT -p tcp --dport 4421 -i eth0 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 4421 -j DNAT --to 192.168.34.1 iptables -A INPUT -p udp --dport 4421 -i eth0 -j ACCEPT iptables -t nat -A PREROUTING -p udp -i eth0 --dport 4421 -j DNAT --to 192.168.34.1 #polaczenia nawiazane iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED # udostepniaie internetu w sieci lokalnej iptables -t nat -A POSTROUTING -s $IPSW -j MASQUERADE iptables -A FORWARD -s $IPSW -j ACCEPT
Model sieci:
Modem (porty przekierowane na IP eth0 serwa) -- eth0-serwer-eth1 -- LAN
Wszystko śmiga (net, proxy) za wyjątkiem tego że nie mogę odblokować portów ludziom w lan np do osiołka.
//Dzięki bercik. Jak wróce do domu to sprawdzę :)
Rozumiem że żeby nie pisać dla każdego usera w sieci tej linijki:
iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.34.1 -j ACCEPT
Mogę zmienić ja na:
iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.34.0/24 -j ACCEPT
Jakie konsekwencje będzie miał ten zapis? Bo jak bardzo ucierpię na bezpieczeństwie to będę pisał tą regułkę dla każdego z osobna :)
Ostatnio edytowany przez Marek_boss (2008-03-09 09:51:18)
Offline
Nie :) Siedzę sobie przy PC w lanie odpalam osiołka, a tam low id bo serwer który zajmuje się podziałem łącza blokuje mi port :)
Ostatnio edytowany przez Marek_boss (2008-03-09 13:36:04)
Offline
[quote=Marek_boss]//Dzięki bercik. Jak wróce do domu to sprawdzę :)
Rozumiem że żeby nie pisać dla każdego usera w sieci tej linijki:
iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.34.1 -j ACCEPT
Mogę zmienić ja na:
iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.34.0/24 -j ACCEPT
Jakie konsekwencje będzie miał ten zapis? Bo jak bardzo ucierpię na bezpieczeństwie to będę pisał tą regułkę dla każdego z osobna :)[/quote]
zezwalasz na forwad pakietow z zewnatrz do LANu, ale jako ze nie powinenes otrzymywac z zewnatrz pakietow z adresem docelowym w LANie to efektywnie zezwolisz tylko dla tych dla ktorych robisz DNAT
jezeli robisz MASQUERADE dla calej sieci to:
iptables -t nat -A POSTROUTING -p tcp --dport $PORT -j SNAT --to-source $HOST_NAT
nie bedzie potrzebne
mam nadzieje ze siec zewnetrzna ma adresacje publiczna (a to co podales to tylko dla przykladu) - bo jezeli faktycznie jest to 192.168.102.0/24 to jest ona NATowana i musisz robic dwukrotne przekierowanie ... albo pozbyc sie jednego NATu
do testowania tego czy dziala przekierowanie polecam netcat'a (nc) - na jednym sluchasz na drugim (z zewnatrz) cos prubujesz wyslac ...
Ostatnio edytowany przez bercik (2008-03-09 15:16:04)
Offline
Tak jak piszesz. Jest podwójny NAT ze względu na to że nie mam stałego IP publicznego (jeszcze :) I z różnych względów m.in. HTB musiałem postawić serwa pomiędzy modemem a LAN-em.
Za pierwszym NAT-em jest tylko serwer (porty na modemie przekierowane na serwa), a za drugim NAT-em (serwerem) cały LAN.
Czyli rozumiem że
iptables -t nat -A POSTROUTING -p tcp --dport $PORT -j SNAT --to-source $HOST_NAT iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.34.0/24 -j ACCEPT
załatwi sprawę?
Bo niektóre porty muszą trafić do serwera na jego IP zew (IPZ) a nie do LAN a logika mi podpowiada, że regułka
iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.34.0/24 -j ACCEPT
przekieruje mi cały ruch do LAN-u do sieci 192.168.34.0/24.
Słusznie rozumuje?
W skrócie chodzi o to że przez drugi NAT (serwer) mój osioł ma low ID :) i nie potrafię tego zmienić :(
PS. Jak mi się to uda, to napisze artykuł "HOW TO" do DUG-a opisujący mój przypadek :)
Ostatnio edytowany przez Marek_boss (2008-03-09 15:54:58)
Offline
[quote=Marek_boss]Czyli rozumiem że
iptables -t nat -A POSTROUTING -p tcp --dport $PORT -j SNAT --to-source $HOST_NAT iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.34.0/24 -j ACCEPT
załatwi sprawę?[/quote]
NIE - potrzebujesz DNAT ([tt]iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 4421 -j DNAT --to 192.168.34.1[/tt]),a nie SNAT (bo to zalatwia MASQUERADE ktora masz)
zreszta ponizej wkleilem komplet regulek ...
[quote=Marek_boss]Bo niektóre porty muszą trafić do serwera na jego IP zew (IPZ) a nie do LAN a logika mi podpowiada, że regułka
iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.34.0/24 -j ACCEPT
przekieruje mi cały ruch do LAN-u do sieci 192.168.34.0/24.[/quote]
caly ruch ktory [b]ma w naglowku adres docelowy IP z LANu[/b] - a taki ruch powstaje dopiero po zrobieniu odpoweidniego przekierowania portu przez DNAT wiec reszta leci normalnie do INPUT
#zmienne IPW=192.168.34.24 IPZ=192.168.102.102 IPSW=192.168.34.0/24 IPSZ=192.168.102.0/24 # wlaczenie w kernelu forwardowania echo 1 > /proc/sys/net/ipv4/ip_forward # czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F # ustawienie polityki dzialania iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # petla zwrotna iptables -A INPUT -i lo -j ACCEPT iptables -A FORWARD -o lo -j ACCEPT #polaczenia nawiazane iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED #proxy iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128 #udostepniaie internetu w sieci lokalnej iptables -t nat -A POSTROUTING -s $IPSW -j MASQUERADE iptables -A FORWARD -s $IPSW -j ACCEPT #porty do LAN iptables -A FORWARD -s 0.0.0.0/0 -d $IPSW -j ACCEPT iptables -t nat -A PREROUTING -p tcp --dport 4421 -j DNAT --to 192.168.34.1
Offline
Tak odnośnie problemu w pierwszym poście.
Nie masz wkompilowanego w jądro obsługi conntrack, i modułów do obsługi nat.
W okolicach 2.6.2x (jeśli mnie pamięć nie myli) zmienione zostało położenie tych opcji i częściowo nazewnictwo.
Offline
Dzięki bercik za cierpliwość :) Już wszystko bangla :)
@bobycop i znowu kompilacja jajca :)
Offline
Time (s) | Query |
---|---|
0.00008 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00072 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.136.22.204' WHERE u.id=1 |
0.00063 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.136.22.204', 1732643307) |
0.00044 | SELECT * FROM punbb_online WHERE logged<1732643007 |
0.00050 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=10807 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00193 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=10807 ORDER BY p.id LIMIT 0,25 |
0.00080 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=10807 |
Total query time: 0.0052 s |