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/.
witam, mam takie pytanie:
1. jaką regułę potrzebuje aby z konkretnego ip (np. xxx.xxx.xxx.xxx) który łączy się z moim serwerem PRZEKIEROWAĆ GO z portu 6000 na 6666 a jeżeli ip jego jest = bbb.bbb.bbb.bbb to przekierować go z 6000 na 6667.
schemat:
[img]http://oi43.tinypic.com/2yoeb9g.jpg[/img]
pozdrawiam.
Offline
Zakładam, że port TCP i że tam jest jakaś maskarada, że eth0 to WAN, ( niesprawdzane ) :
iptables -A INPUT -p tcp -i eth0 --dport 6000 - j ACCEPT iptables -t nat -A POSTROUTING -p tcp -i eth0 -d Y.Y.Y.Y --dport 6000 -j DNAT -to 192.168.100.100:6666 iptables -t nat -A POSTROUTING -p tcp -i eth0 -d B.B.B.B --dport 6000 -j DNAT -to 192.168.100.101:6667
Offline
bosko że odpisałeś :)
mój plik firewall,
[b] /etc/init.d/firewall[/b] iptables -X iptables -t nat -X iptables -t nat -F 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 iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A INPUT -s 0/0 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -s 0/0 -p udp --dport 22 -j ACCEPT iptables -A INPUT -s 0/0 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -s 0/0 -p udp --dport 80 -j ACCEPT iptables -A INPUT -p tcp -i eth0 --dport 6000 - j ACCEPT iptables -t nat -A POSTROUTING -p tcp -i eth0 -d IP-SOUR --dport 6000 -j DNAT -to IP-DES:6666
ip-sour - to ip tego klienta,
ip-des - to ip przekierowania,
podczas przeładowania otrzymuje:
Bad argument `-' Try `iptables -h' or 'iptables --help' for more information. Bad argument `[b] ip-dist[/b]:3784' Try `iptables -h' or 'iptables --help' for more information.
hmm,
Offline
Dodaj na początku skryptu (po [b]#!/bin/sh[/b])
set -x
to się dowiesz, na czym się wywala.
Ostatnio edytowany przez Jacekalex (2012-03-11 16:25:45)
Offline
Przy
DNAT -to IP-DES:6666
powinno być dwa razy "--" zjadło mi się, czyli
DNAT --to IP-DES:6666
Offline
po odświeżeniu conf.
/etc/init.d/firewall
iptables v1.4.8: Can't use -i with POSTROUTING Try `iptables -h' or 'iptables --help' for more information.
próbowałem już dużo opcji, oraz nadal tak samo. :(
Offline
[quote=lekr32]
iptables v1.4.8: Can't use -i with POSTROUTING
[/quote]
Jejku ja naprawdę jakiś przemęczony , PREROUTING powinno być.
Edyyka :
Zastanawiam się czy nie zadziałałaby jeszcze regułka tego typu :
iptables -t nat -A PREROUTING -i eth0 -p tcp -d Y.Y.Y.Y --dport 6000 -j REDIRECT --to-port 6666
ale to do sprawdzenia. :)
Ostatnio edytowany przez ba10 (2012-03-12 08:01:20)
Offline
odświeżyłem firewalla twoim ostatnim pomysłem i klapa.
+ iptables -t nat -A PREROUTING -i eth0 -p tcp -d 8.23.224.110 --dport 6000 -j REDIRECT --to-port 6666
takie coś nadal dostaje:
Bad argument `-' Try `iptables -h' or 'iptables --help' for more information. + iptables -t nat -A PREROUTING -i venet0 -p tcp -d 8.23.224.110 --dport 6000 -j REDIRECT --to-port 6666
tamten przykład już z malutką zmianą bo zapomniałem wspomnieć, że nie posiadam FIZYCZNEJ karty sieciowej tylko wirtualną, bo to vps :)
dzięki wielkie że próbowałeś i próbujesz mi pomoc. ;-)
Offline
Przy tej poprzedniej wersji to musisz mieć [url=http://dug.net.pl/tekst/31/udostepnienie_polaczenia_internetowego_(masq)/]maskaradę[/url], czyli [url=http://pl.wikipedia.org/wiki/Network_Address_Translation]NAT[/url] by zadziałało bo przekształcasz adresy ip na inne, a później ta regułką je przekierowujesz. Ten ostatni pomysł był nie sprawdzany i tak z głowy wzięty. Jutro postaram się wygospodarować trochę czasu i na wirtualnych maszynach sobie to zrobię. :)
Na vpsie powiadasz, to może jakbyś mógł opisać dokładnie co chcesz osiągnąć, bo jak się domyślam ( a nie lubię się domyślać ;) ) to chcesz by coś na vps trafiało na port tam 6000 i przekształcało na 6666 lokalnie , na tej samej maszynie tak ? Czy pchało to gdzieś dalej ? Opisz dokładnie bo diabeł tkwi w szczegółach :)
Ostatnio edytowany przez ba10 (2012-03-12 22:42:06)
Offline
[b]działanie[/b]
chce w zależności od ip które wchodzi do maszyny (będą dwa - jeden z dyndns oraz no-ip.org)
przenosił z portu 6000 na port:
- dla osób z dyndns: 6666
- dla osób z no-ip: 6667
[b] dlaczego tak ?:[/b]dzięki temu, mogę odpalić dwie usługi na jednym porcie, na chwilę obecną testuje czy takie coś ma rację jakiegokolwiek bytu.
co do; prościej byłoby dokupić ip, ale jak to jak lubię kombinować.
[b]topic[/b]
co do masq, to muszę robić dns/dhcp i większość, jeżeli to będzie tylko vps? a jeżeli tak, to które pkt mam objać w swojej konfiguracji z podanego linka? :) podpowiem że tak dogłębnie to pierwszy raz kombinuje z firewallem, tzn. tak więcej kombinuje.
Pozdrawiam i życzę miłego wieczoru :)
Offline
Jutro postaram się ( ale nie obiecuje ) pokombinować, bo muszę mieć to przed oczami :D
Jak jakies wnioski będe miał, nie omieszkam się je tutaj napisać :)
Dzięki, wzajemnie :)
Offline
okej, dzięki bardzo, będę obserwował temat :)
tylko zastanawiam się dalej co z tą maskaradą.
Offline
Ten drugi wpis co dałem okazuje się najlepszym wyjściem, ładnie przekierowuje porty. A więc w przykładzie poniżej 192.168.100.1 to server 192.168.100.2 i 192.168.100.3 to klienci. Port na którym usługa działa to 2222 porty przypisane do danych adresów ip to 44444 do 192.168.100.2 i 44443 do 192.168.100.3.
Musimy te porty otworzyć w iptables, a następnie będziemy je przekierowywali do odpowiedniego portu usługi czyli w tym przypadku 2222.
iptables -A INPUT -p tcp --dport 44444 -j ACCEPT iptables -t nat -A PREROUTING -s 192.168.100.2/32 -d 192.168.100.1/32 -p tcp --dport 44444 -j REDIRECT --to-ports 2222 iptables -A INPUT -p tcp --dport 44443 -j ACCEPT iptables -t nat -A PREROUTING -s 192.168.100.3/32 -d 192.168.100.1/32 -p tcp --dport 44443 -j REDIRECT --to-ports 2222
Mam nadzieje, że przez ten przykład złapiesz sens i sobie to przekształcisz na swój sposób. Pamiętaj, że reguły są wykonywane po kolei z góry na dół, więc uważaj co tam blokujesz przed tymi regułami, bo może to po prostu nie zadziałać. ;)
Edytka
O cholera ty chciałeś żeby to było na odwrót :D
No to otwierasz tylko jeden port w przypadku powyżej 44444, a resztę przekierowujesz gdzie tam chcesz :)
iptables -A INPUT -p tcp --dport 44444 -j ACCEPT iptables -t nat -A PREROUTING -s 192.168.100.2/32 -d 192.168.100.1/32 -p tcp --dport 44444 -j REDIRECT --to-ports 2222 iptables -t nat -A PREROUTING -s 192.168.100.3/32 -d 192.168.100.1/32 -p tcp --dport 44444 -j REDIRECT --to-ports 80
SOA#1
A maskarade olej :)
LOL
Ostatnio edytowany przez ba10 (2012-03-13 20:32:05)
Offline
[quote=ba10]O cholera ty chciałeś żeby to było na odwrót :D
No to otwierasz tylko jeden port w przypadku powyżej 44444, a resztę przekierowujesz gdzie tam chcesz :)
iptables -A INPUT -p tcp --dport 44444 -j ACCEPT iptables -t -A PREROUTING -s 192.168.100.2/32 -d 192.168.100.1/32 -p tcp --dport 44444 -j REDIRECT --to-ports 2222 iptables -t -A PREROUTING -s 192.168.100.3/32 -d 192.168.100.1/32 -p tcp --dport 44444 -j REDIRECT --to-ports 80
LOL[/quote]
Jaką masz wersję Iptables?
iptables -t -A PREROUTING -s 192.168.100.2/32 -d 192.168.100.1/32 -p tcp --dport 44444 -j REDIRECT --to-ports 2222 Bad argument `PREROUTING' Try `iptables -h' or 'iptables --help' for more information.
iptables -t -A PREROUTING -s 192.168.100.3/32 -d 192.168.100.1/32 -p tcp --dport 44443 -j REDIRECT --to-ports 2222 Bad argument `PREROUTING' Try `iptables -h' or 'iptables --help' for more information.
Wskazując tablicę, musisz podać nazwę tablicy, np:
iptables -t nat -A.... iptables -t raw -A... iptables -t mangle -A......
Dodatkowo:
x_tables: ip_tables: REDIRECT target: only valid in nat table, not mangle
Za uwagę dziękuje:
net-firewall/iptables-1.4.12.1
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2012-03-13 20:32:12)
Offline
Przecież jest podana, co się czepiasz ?:D
Offline
Jacekalex
Dzisiaj [b]20:30:28[/b][/quote]Ostatnio edytowany przez ba10 (Dzisiaj [b]20:32:05[/b])[/quote]
Faktycznie, nie zauważyłem :D
W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem para bellum ;) | Pozdrawiam :)Offline
[quote=Jacekalex]
Jacekalex
Dzisiaj [b]20:30:28[/b][/quote]Ostatnio edytowany przez ba10 (Dzisiaj [b]20:32:05[/b])[/quote]
Faktycznie, nie zauważyłem :D[/quote]
No i tak trzymać :D
"Jeżeli chcesz się nauczyć Linuksa, to pierwsze co musisz zrobić to odrzucić wszelkie przyzwyczajenia wyniesione z poprzedniego systemu. Twoja wiedza jest o tyle zgubna, że daje Ci poczucie że coś jednak wiesz — jednak w kontekście Linuksa prawdopodobnie nie wiesz jeszcze nic." Minio
Mój [url=jarekw.eu]Blog[/url], a później [url=tanczymy.com]Tańczymy[/url] ;)Offline
dziękuje, napracowałeś się i możesz być dumny bo działa tak jak powinno, ale zastanawiam się jak wychwycić ip przekierowania (ip maszyny która przekierowuje na mój ip, tj. np. dyndns/no-ip.org) ? bo widzi mnie nie jako od nich, ale jako osobny ip, :)
a dokładniej ip hopto.org to: 8.23.224.110, a widzi mnie jako 91.***.***.*** :)
Offline
Time (s) | Query |
---|---|
0.00012 | SET CHARSET latin2 |
0.00006 | SET NAMES latin2 |
0.00134 | 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='18.191.81.46' WHERE u.id=1 |
0.00066 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.191.81.46', 1732499927) |
0.00030 | SELECT * FROM punbb_online WHERE logged<1732499627 |
0.00079 | DELETE FROM punbb_online WHERE ident='18.217.246.148' |
0.00062 | DELETE FROM punbb_online WHERE ident='3.137.162.21' |
0.00063 | DELETE FROM punbb_online WHERE ident='54.36.148.114' |
0.00060 | SELECT topic_id FROM punbb_posts WHERE id=197613 |
0.00006 | SELECT id FROM punbb_posts WHERE topic_id=20864 ORDER BY posted |
0.00074 | 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=20864 AND t.moved_to IS NULL |
0.00010 | SELECT search_for, replace_with FROM punbb_censoring |
0.00276 | 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=20864 ORDER BY p.id LIMIT 0,25 |
0.00072 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=20864 |
Total query time: 0.0095 s |