Welcome, Guest. Please login or register.
+  Linux Soft Forum
|-+  Cercetează» Reţele, servere» DNAT :)
[Picture 161] [Picture 160] [Picture 159]
Username:
Password:
 
Pages: [1] 2   Go Down
  Print  
Author Topic: DNAT :)  (Read 3484 times)
0 Members and 1 Guest are viewing this topic.
d1uluv2h8
Veteran
**


« on: March 17, 2007, 01:42:22 PM »

Incerc sa fac un amarat de dnat care sa-mi trimita toate requesturile unui anumit ip pe portul 80 la un server web intern ( din aceeasi retea/clasa de ip-uri/whatever Smiley ), dar nu reusesc de nici un fel wallbash

regula de iptables arata cam asa:

Code:
iptables -t nat -I PREROUTING -s <ip> -p tcp --dport 80 -j DNAT --to-destination ip_server_web:80

ip-ul respectiv nu este drop-uit in nici o alta parte din firewall si nici nu mai folosesc nicaieri tabela nat pentru ca am numai ip-uri publice..

iptables -t nat -L arata cam asa, foarte simplu de altfel:

Code:
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  ip         anywhere            tcp dpt:http to:ip_server_web:80

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Sta saracutul firefox si asteapta o gramada... pana se plictiseste si imi spune ca nu gaseste pagina :D Ranjeste fasolea din ce am mai citit si eu, pachetul se intoarce cu alt src_ip decat cel pentru care a fost facuta cererea din browser, iar acesta (browser-ul) il considera invalid si asteapta reply de la ip-ul original. Banuiesc ca trebuie sa mai fac un snat pe undeva, dar nu-mi dau seama exact cum si unde Sad
Logged

"And it shows finally, that you CAN enjoy electronic music without any stimulances and still have a great night!" @ tiesto
d1uluv2h8
Veteran
**


« Reply #1 on: March 18, 2007, 01:41:45 PM »

hai ma.. n-aveti nici o idee ?
Logged

"And it shows finally, that you CAN enjoy electronic music without any stimulances and still have a great night!" @ tiesto
oblio
Admini
**


WWW
« Reply #2 on: March 18, 2007, 02:05:41 PM »

Tu vrei să faci vreun captive portal sau altă măgăriuţă dintr-asta de conectare la net?
Logged

Distribuţie: ubuntu | Localitate: Bucureşti | Vārstă: 24

Oh! Everything has a point, and if it doesn't, then there's a point to it.

Oblio's
d1uluv2h8
Veteran
**


« Reply #3 on: March 18, 2007, 02:11:48 PM »

Nope Scoate limba vreau sa redirectionez neplatitorii din retea spre o pagina care sa ii anunte de ce nu le merge netul Smiley
Logged

"And it shows finally, that you CAN enjoy electronic music without any stimulances and still have a great night!" @ tiesto
razius
Veteran
**


WWW
« Reply #4 on: March 18, 2007, 02:14:47 PM »

squid?
Logged
gheorghe
Veteran
**


« Reply #5 on: March 18, 2007, 02:17:14 PM »

Si eu am nevoie de asa ceva. Scopul meu e sa afisez clientilor care nu platesc o pagina de pe serverul meu de fiecare data cand incearca sa vada un site.

Am bagat exact regula ta si a mers perfect Smiley Atat de bine incat a trebuit sa scriu mesajul asta de 2 ori ca am lasat redirectionarea pornita :)) Mor de rās

Code:
iptables -t nat -A PREROUTING -s 192.168.2.25 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.62:80

Am bagat destinatie chiar si serverul google, si a mers.

Problema in cazul meu e ca daca accesez de exemplu www.google.ro, merge, dar daca bag www.google.ro/linux, nu mai merge, da 404 Smiley Asta e un comportament normal pentru un server web.

Ca sa trec peste problema asta, mi-am facut propriul meu server web prost cu xinetd si un shell script.
In /etc/xinetd.d/www:
Code:
service www
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /root/www.sh
        log_on_failure  += USERID
        disable         = no
}

In www.sh:
Code:
#!/bin/sh

#citeste inputul, la misto, nu ne intereseaza
while /bin/true; do
  read header
  [ "$header" == $'\r' ] && break;
done

cat /root/index.html

Acum orice adresa ar scrie, afiseaza pagina mea, pentru ca serverul meu e atat de prost incat nu stie sa afiseze o alta pagina. Normal ca solutia asta e foarte primitiva, nici macar nu poti sa bagi poze Smiley Daca cineva are alta solutie, i-as fi recunoscator.
Logged
d1uluv2h8
Veteran
**


« Reply #6 on: March 18, 2007, 02:34:56 PM »

M-ai facut curios si am incercat si eu sa pun serverul google, si minune, chiar a mers Smiley insa spre serverul meu tot nu vrea ..

Totusi un side effect a fost ca dupa ce am oprit redirectionarea, www.linuxsoft.ro ma ducea numai la pagina google.ro :)) Mor de rās am sters toate private data, am dat si flush la dns, degeaba. abia dupa multe refresh-uri a luat-o calumea, dar presupun ca asta se rezolva cu no-cache in <head>-ul index.html (sau cu o data din trecut ?).

Si alta chestie, vad ca tu ai ip-uri private, deci mai folosesti tabela nat.. oare din cauza asta sa nu-mi mearga mie ?

Edit 2: Squid nu este o optiune, am scapat de el acum un an si ceva si nici ca vreau sa-l mai vad in fata ochilor :D Ranjeste fasolea
« Last Edit: March 18, 2007, 02:42:02 PM by d1uluv2h8 » Logged

"And it shows finally, that you CAN enjoy electronic music without any stimulances and still have a great night!" @ tiesto
gheorghe
Veteran
**


« Reply #7 on: March 18, 2007, 02:52:50 PM »

Nu stiu, o sa incerc si pe ip-uri adevarate. Care-i problema cu squid?
« Last Edit: March 18, 2007, 02:53:15 PM by gheorghe » Logged
razius
Veteran
**


WWW
« Reply #8 on: March 18, 2007, 02:54:39 PM »

vorbeam eu aiureli oricum  :damn: Of...
Logged
d1uluv2h8
Veteran
**


« Reply #9 on: March 18, 2007, 03:04:34 PM »

Cu squid problema era ca atunci cand se umplea cache-ul facea pe nebunul oricati file descriptori ii puneam Smiley asta ca sa nu ma zic de transparenta... oricum, in orice stadiu o fi ajuns acum, tot nu vreau sa mai aud de el.

In retele mici (<50 clienti) mai merge, dar deja am peste 500 si nu mai am chef sa ma complic aiurea Smiley
Logged

"And it shows finally, that you CAN enjoy electronic music without any stimulances and still have a great night!" @ tiesto
gheorghe
Veteran
**


« Reply #10 on: March 18, 2007, 03:42:05 PM »

Mda, deci concluzia pe care am tras-o eu. Cand folosesc ip-uri routabile, dintr-un motiv neelucidat merge sa redirectionez doar la un ip care nu e in aceeasi clasa. Deci cred ca pot sa-l aranjez astfel incat ip-urile dintr-o clasa sa le redirectionez la un server care foloseste un ip potrivit, deci voi pune un server cu mai multe aliasuri unul din fiecare clasa, sau mai bine,folosesc un ip dintr-o clasa incare nu e nici un client.
« Last Edit: March 18, 2007, 03:44:22 PM by gheorghe » Logged
d1uluv2h8
Veteran
**


« Reply #11 on: March 18, 2007, 03:55:48 PM »

Ok, la concluzia asta am ajuns si eu Smiley Acum poate isi da cineva cu parerea si de ce se intampla asta ?

gheorghe, te bagi la un proiect open source de management clienti ? momentan e in faza 0.0001 pre-alpha :D Ranjeste fasolea
Logged

"And it shows finally, that you CAN enjoy electronic music without any stimulances and still have a great night!" @ tiesto
gheorghe
Veteran
**


« Reply #12 on: March 18, 2007, 04:15:17 PM »

In ce consta managementul de clienti si in ce e scris?
Logged
~Empathy~
Veteran
**

Decadence is Bliss...


« Reply #13 on: March 18, 2007, 04:36:11 PM »

Ce tare e solutia lui gheorghe, haha. Daca vreti pot sa ma bag si eu in proiectul ala al vostru ca si coder in C, sau in orice limbaj de pe planeta, in afara de sh, bash, csh etc. Limbaje adevarate numai.

« Last Edit: March 18, 2007, 04:36:38 PM by ~Empathy~ » Logged

d1uluv2h8
Veteran
**


« Reply #14 on: March 18, 2007, 04:37:03 PM »

Php + bash Smiley Consta in lista de clienti cu optiuni de adaugare, pornire/oprire net, program de facturare (asta e deja gata), grafice, limitari etc etc Smiley in genul lms, dar romanesc.

Empathy, pana acum nu am avut nevoie de C, in mare parte pentru ca este o aplicatie web..
« Last Edit: March 18, 2007, 04:38:00 PM by d1uluv2h8 » Logged

"And it shows finally, that you CAN enjoy electronic music without any stimulances and still have a great night!" @ tiesto
Pages: [1] 2   Go Up
  Print  
 
Jump to: