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/.
Strony: 1
Witam
Mam serwer z 2 portami ppp0 (wan adres 95.171.197.XX) i eth3 (lan adres 10.0.0.1) - miedzy ppp0 i eth3 jest nat, do tego dochodzi tunel (tun0 sieć za tunelem 192.168.1.0/24). Z sieci LAN mam dostęp do sieci za tunelem 192.168.1.0/24, lecz problem pojawia się gdy chcę sobie porty przekierować z zewnątrz przez interfejs ppp0. Winny jest temu routing na bramie 192.168.1.1 ponieważ ma trasę tylko do 10.0.0.1, a nie ma możliwości dodania trasy do 95.171.197.XX. Po prostu pakiet po forewardingu ma adres źródłowy 95.171.197.XX i dociera do sieci 192.168.1.0/24, ale odpowiedź jest wysyłana interfejsem WAN zamiast tun0. Znalazłem opis POSTROUTING [url]https://www.digitalocean.com/community/tutorials/how-to-forward-ports-through-a-linux-gateway-with-iptables[/url] ale po zastosowaniu tego i tak nie działa.
zrobiłem to tak:
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 25544 -j DNAT --to-destination 10.0.0.1:25544 iptables -t nat -A POSTROUTING -o tun0 -p tcp --dport 80 -d 192.168.1.1 -j SNAT --to-source 10.0.0.1:25544
Dobrze mam wpisane adresy?
Cel jest taki: Pakiet wchodzący przez ppp0 portem 25544 ma zmieniane IP źródłowe na 10.0.0.1 i jest wysyłany do 192.168.1.1 po porcie 80
192.168.1.1 odpowiada na żądanie HTTP i wysyła pakiet do 10.0.0.1
10.0.0.1 przekazuje pakiet do 95.171.197.81
Ma ktoś pomysł jak zrobić IPTABLES żeby pakiet po forewardingu nie miał źródłowego adresu tylko lokalny?
Offline
Udało się znaleźć rozwiązanie taki jak chciałem - po forewardingu docelowe urządzenie dostaje pakiet w którym źródło to adres lokalny, a nie sieci globalnej.
#foreward z interfejsu zewnętrznego ppp0 do adresu lokalnego 192.168.1.1:80 iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 25544 -j DNAT --to-destination 192.168.1.1:80 #zmiana źródła w pakiecie do adresu 192.168.1.1 wychodzącego interfejsem tun0 iptables -t nat -A POSTROUTING -o tun0 -p tcp --dport 80 -d 192.168.1.1 -j SNAT --to-source 10.0.0.1
Tylko jest taki problem dla innych urządzeń w sieci to działa, ale dla sieci za tunelem nie działa chociaż istnieje połączenie miedzy tymi sieciami.
Jakieś sugestie?
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00015 | SET CHARSET latin2 |
0.00007 | SET NAMES latin2 |
0.00137 | 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.219.176.215' WHERE u.id=1 |
0.00339 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.219.176.215', 1732746577) |
0.00044 | SELECT * FROM punbb_online WHERE logged<1732746277 |
0.00089 | SELECT topic_id FROM punbb_posts WHERE id=303359 |
0.00046 | SELECT id FROM punbb_posts WHERE topic_id=28793 ORDER BY posted |
0.00092 | 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=28793 AND t.moved_to IS NULL |
0.00029 | SELECT search_for, replace_with FROM punbb_censoring |
0.00107 | 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=28793 ORDER BY p.id LIMIT 0,25 |
0.00101 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28793 |
Total query time: 0.01006 s |