Redirectarea asta se face destul de simplu, si nu e neaparat nevoie de un
proxy pentru a obtine o aplicatie functionala ( in unele cazuri mai scuteste
ceva timp de munca, dar nu e o regula de baza ) .

Redirectarea de la MyX era facuta pe echipamente hardware, deci nu se pune
problema folosirii aceleiasi metode, insa principiile sunt identice :

Intrucat printr-o asemenea aplicatie se doreste "captarea" utilizatorului
catre o anumita pagina web ( de unde si denumirea de 'Captive Portal' )
metoda cea mai simpla de a face acest lucru este de a redirecta traficul
dinspre utilizator catre orice destinatie cu port 80  catre o aplicatie de
pe masina care face redirectarea (  preferabil pe alt port decat 80 ).

Redirectarea se face folosind targetul REDIRECT din iptables.

Ca exemple de lucru , sa ziceam ca utilizatorii nostrii vin dintr-un pool de
adrese de forma 192.168.0.0/24 .
Definim un chain ( in tabela FILTER sau NAT ) de forma :

# iptables -t filter -N CAPTIVE
sau
# iptables -t nat  -N  CAPTIVE.

In cazul nostru ( 192.168.0.0/24 )  evident ca se va face nat, asa ca alegem
a doua versiune.

In chain-ul CAPTIVE vom redirecta tot traficul pe care vrem sa-l captam :

# iptables -A CAPTIVE -t nat -p tcp  --port 80 -d ! 192.168.0.0/24  -j
REDIRECT --to-port 8080

Pe masina care va face redirectarea, pornim un server de web ( apache, mai
mult ca sigur ) cu o instanta care sa asculte pe portul 8080 cu mod_rewrite
si mod_php  .

Listen 8080 ( in httpd.conf )
Port 8080    ( in httpd.conf )

In fisierul de configurare ( in httpd.conf ) vom defini un VirtualHost pe
baza de port :

<VirtualHost *:8080>
    ServerAdmin [EMAIL PROTECTED]
    DocumentRoot /var/www/captive_portal
    ServerName captive.domain.tld
    <Directory />
            AllowOverride All
    </Directory>
    ErrorLog     /var/log/httpd/captive_portal_error.log
    CustomLog /var/log/httpd/captive_portal_access_log combined
</VirtualHost>

In directorul /var/www/captive_portal  plasam un fisier .htaccess, cu un
continut de genul :

RewriteEngine   on
RewriteBase     /

RewriteRule     ^(.*)$          captive.php       [L]

In felul asta, orice request venit pe portul 8080 va fi tratat 
corespunzator, fara sa fie generate erori 404 (not found ) .


Ramane la latitudinea fiecaruia ce doreste sa afiseze in  captive.php , 
inportant este ca acest script sa poata avea acces INDIRECT la firewall .( 
prin pipe-uri , db-uri, sau alte metode ) .


Pentru a redirecta un uilizator utilizand metoda de mai sus, nu trebuie 
decat sa inseram reguli individuale de firewall pentru fiecare utilizator de 
genul  :

iptales -I PREROUTING  -t nat -i eth1 -p tcp -s 192.168.0.10 -d ! 
192.168.0.0/24  -j CAPTIVE

iar de dat drumul  i se va da cu o regula inversa :

iptales -D PREROUTING  -t nat -i eth1 -p tcp -s 192.168.0.10 -d ! 
192.168.0.0/24  -j CAPTIVE

Cam asta ar fi metoda pe care o folosesc eu .





-Alex Sirbu-
[EMAIL PROTECTED]


----- Original Message ----- 
From: "Radu Radoveneanu" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Thursday, March 31, 2005 10:03 AM
Subject: [rlug] Re: myx redirect?


>
> Laviniu Gavanescu wrote:
>
>>
>>Din cate stiu eu Squid-ul are o optiune care face asta.
>>Sper sa nu ma insel :)
>>
>>
>>
>>
> ah, da, fara proxy se poate? :D
>
> --- 
> Detalii despre listele noastre de mail: http://www.lug.ro/
>


--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui