Benvingudes i benvinguts al portal Linkat

La Linkat és la distribució educativa de GNU/Linux que ha iniciat i ofereix el Departament d'Educació a la comunitat educativa. Es tracta d'un projecte de programari lliure que permet als centres educatius, però també a tota la societat, tenir accés de forma legal, gratuïta i amb suport tècnic professional, a un conjunt molt ampli d'aplicacions: educatives, d'ofimàtica, d'Internet, multimèdia...

Servidor proxy transparent i connexions https  Final

  • Hola,
    Tinc una màquina que fa de proxy, amb Linkat 3, configurat amb la interfície interna eth0 i externa eth1.
    Tinc definides les clasiques regles de filtratge a iptables perquè redirigeixi les entrades al port 80 cap el servei Squid al port 3128.
    Fins ara ha anat força bé. Però al haver introduït validació d'usuaris amb https al Moodle d'Agora, em trobo que el proxy bloqueja la identificació. He provat d'afegir regles al iptables per tal de que deixi passar les demandes al port 443 (peticions ssl-https) però em sembla que no encerto amb la semàntica requerida.
    Algú em podia facilitar quina regla em permetria que les entrades per eth0 al port 443 es canalitzin directament a la sortida per eth1?
    Gràcies per endavant

    Joan Campanyà
    Ins Front Marítim (Barcelona)
  • Hola,

    La redirecció transparent només l'has de fer servir per al port 80. La resta de ports passarien de forma transparent per l'enrutador.

    En resum, no cal que posis CAP regla que derivi el port 443 de forma transparent cap al proxy ja que això no està permès pel protocol SSL (seria un atac del tipus man in the middle). Si vols filtrar URLs que utilitzin https llavors el millor que pots fer és denegar l'accés directe a través del port 443 i que s'hagi de definir de forma manual al navegador el proxy a través del port 443.


    Joan de Gracia

    Projecte Linkat
  • Hola Joan,
    Gràcies per la ràpida resposta. No obstant, preciosament sense haver introduït inicialment cap regla addicional respecte el port 443 resulta que no s'estableix comunicació cap l'exterior: al cap d'una estona dona missatge de temps d'espera excedit.
    La situació és la següent: les màquines client tenen configurat el servidor DNS i passarel·la de sortida cap el proxy (192.168.0.201). Per tant, no puc fer que les peticions https vagin directament cap el router. Aquestes també hauran de passar pel proxy. Entenc que si no li diem res, aquest no sabrà que fer amb les entrades dirigides al port 443, i que hauria de transferir sense més cap a la interfície de sortida a l'exterior, que és la eth1.
    Gràcies per endavant,
    Joan Campanyà
  • Hola Joan,

    Pel que fa el router, em referia al proxy :-)

    A veure, entenc que al proxy que tens només es captura de forma transparent el port 80 i es fa passar per l'squid i no es fa cap operació més.

    Bé, per tal que el proxy passi a fer d'enrutador caldrà que apliquis aquestes ordres:

    echo -n 1 > /proc/sys/net/ipv4/ip_forward

    (amb aquesta línia permets el reenviament de paquets des d'una interfície de xarxa a una altra)

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

    (aquesta regla ja la tens i és la que permet capturar el port 80 i redirigir-lo cap a l'squid).

    iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

    (aquesta darrera regla iptables fa NAT per la qual cosa les comunicacions surten amb la IP de l'eth1)

    amb tot això ja veuràs que les peticions https podran sortir cap a Internet.

    :-)



    Joan
  • Gràcies de nou, Joan.
    Aquestes regles de iptables ja les tinc introduïdes. Ho faig directament al fitxer /etc/init.d/boot.ini
    No se per quin motiu no surten (o no retornen?) els paquets https. Tornaré a mirar-me aquest fitxer, no vagi ser que hagi especificat alguna regla que ho bloquegi
    Salut,
    Joan Campanyà
  • Bé, solucionat. Efectivament, tenia a 0 el bit a
    proc/sys/net/ipv4/ip_forward
    Gràcies per tot
    Joan Campanyà
  • 0 usuaris

Aquesta llista mostra els usuaris actius durant els darrers 20 minuts.