Portál AbcLinuxu, 9. května 2025 23:38

Dotaz: Obejití fireqwallu - tunel pro icq

16.9.2008 07:48 Vašek M.
Obejití fireqwallu - tunel pro icq
Přečteno: 847×
Odpovědět | Admin
DD,

potreboval bych obejit firewall, ktery blokuje pripojeni na icq servery. Jelikoz mam server na verejne IP, napadlo mi udelat nejake presmerovani portu - napr. v klientu se pripojim na moje.ip:5555 a na mem serveru pobezi neco, co se spoji s login.icq.com:5190 a bude tak delat prostrednika (predpokladam, ze dany firewall blokuje pouze ip/port a nezkouma, co skutecne tece, to by pak muselo prijit na radu jine reseni).

Pokudmozno nechci delat vpn ani ssh tunel, jde mi o co nejjednodussi reseni na strane klienta (jde o nelinuxoveho uzivatele a nemuzu mu nic instalovat). Zkousel jsem si hrat s IPtables, ale ne moc uspesne. Mohl by prosim nekdo poradit? Diky.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.9.2008 08:19 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Obejití fireqwallu - tunel pro icq
Odpovědět | | Sbalit | Link | Blokovat | Admin
ssh tunel není nijak složitý a na Windows k tomu stačí putty. Pokud chcete skutečně jen přesměrovat vše, co vám přijde na server na port 5555 na login.icq.com:8190, vyberte si jednu IP adresu, na kterou se překládá login.icq.com a přidejte si do iptables následující pravidlo:
iptables -t nat -A PREROUTING -p tcp --dport 5555 -d vase.ip -j DNAT --to-destination ip.icq:5190
Komunikace se pak ale bude přesměrovávat stále na jeden ze serverů login.icq.com a pokud ten vypadne nebo se jeho IP adresa změní, přestane vám to fungovat a budete muset do pravidla dosadit jiný server.
16.9.2008 08:55 Vašek M.
Rozbalit Rozbalit vše Re: Obejití fireqwallu - tunel pro icq
Je treba mit jeste neco predtim aktivni? Zkousel jsem to a nefunguje (dal jsem si pro testovani tunel na smtp server a telnet je hluchy). Presmerovani delam prvne, iptables mam samozrejme aktivni a funkcni.
16.9.2008 09:30 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Obejití fireqwallu - tunel pro icq
Aha, vy vlastně potřebujte dělat i SNAT, aby se odpověď od login.icq.com vrátila zase na váš server. V tom případě potřebujete ještě jedno pravidlo:
iptables -t nat -A POSTROUTING -p tcp --dport 5190 -d ip.icq -j SNAT --to-source vase.ip
Pokud se dělá DNAT do vlastní sítě, není tohle potřeba, protože router je zpravidla výchozí brána té sítě, takže se k těm odchozím paketům dostane stejně. Ale tady je potřeba je explicitně nasměrovat zpět na váš server.
16.9.2008 08:20 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: Obejití fireqwallu - tunel pro icq
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tato řešení jste zkoušel? I'm behind a firewall. What should I do?
16.9.2008 08:53 danc | skóre: 21 | blog: Blog nejen o Linuxu | Praha
Rozbalit Rozbalit vše Re: Obejití fireqwallu - tunel pro icq
Odpovědět | | Sbalit | Link | Blokovat | Admin
pokud firewall blokuje jenom ip/port, tak staci prihlasit se na login.icq.com:80
SYSMAN avatar 16.9.2008 10:40 SYSMAN | skóre: 24 | blog: SYSMAN | Veselí nad Moravou
Rozbalit Rozbalit vše Re: Obejití fireqwallu - tunel pro icq
Odpovědět | | Sbalit | Link | Blokovat | Admin
nebo přes port 443. ten snad firewall také neblokuje. Otázka je jestli není na firewallu nejaký IDP, který blokuje pakety na základě jejich analýzy. A nejlepším řešením jak to všechno obejít je použít jabber klienta(např. PSI) a připojit se k jabber serveru, který ma icq transport. Ovšem nesmí firewall blokovat port 5222 nebo 5223.
Jiří Svoboda avatar 16.9.2008 14:19 Jiří Svoboda | skóre: 37 | blog: cat /dev/mind | Prostějov
Rozbalit Rozbalit vše Re: Obejití fireqwallu - tunel pro icq
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možností je mnoho. Já si pamatuji, že jsem na to v dávných dobách s úspěchem používal xinetd (používá ho řada distribucí místo inetd), který má přímo podporu pro port forwarding a v daném okamžiku to bylo nejjednodušší řešení.

Stačí do adresáře /etc/xinetd.d/ přidat soubor vhodného (libovolného) názvu, který bude vypadat nějak takto (příklad):
#       redir portu 5555 na SSH serveru example.com
service unlisted
{
        disable         = no
        port            = 5555
        protocol        = tcp
        type            = UNLISTED
        socket_type     = stream
        wait            = no
        user            = nobody
        log_on_success  += DURATION USERID
        log_on_failure  += USERID
        nice            = 10
        redirect        = example.com 22
        only_from       = 192.168.1.10
        bind            = 192.168.1.1
}
Poslední dva řádky tam být nemusí, jejich význam je zřejmě jasný. :-)

Pak již stačí jen restartovat xinetd (podmínkou pro toto řešení tedy je to, že distro xinetd používá).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.