IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

[NETFILTER] Filtrage DNS .zip .mov avec iptables


Sujet :

Linux

  1. #1
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut [NETFILTER] Filtrage DNS .zip .mov avec iptables
    Récemment Mr Google à rendu disponible un certain nombre de nouvelles extensions DNS et dans le lot figure le .zip et le .mov.
    Dans mon entourage, beaucoup de personnes voient cela d'un très mauvais oeil et je ne peux pas vraiment leur donner tord.

    Je me suis donc amusé à trouver des solutions pour bloquer ces extensions avec les technologies du libre.

    La solution la plus évidente et qui fonctionne plus pas mal, c'est d'utiliser un DNS menteur pour tous ces domaines. Le gros avantage, c'est que c'est vite mis en place et que c'est disponibles sur à peu prés toutes les plateformes.

    Je me suis ensuite demandé, si je pouvais faire mieux avec un IDS/IPS ( snort ) pour ne pas le nommer. Et la encore, cela fonctionne pas mal même si il y une difficulté avec https pouvant générer des faux positifs.

    Aujourd'hui, j'en suis à l'option linux/iptables et même si cela fonctionne ( pour l'essentiel ) sans que ce soit optimisé, je suis face à un truc que je ne comprend pas.


    Donc, j'utilise le module string d'iptables pour faire mes "recherches"


    Donc si je fait



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    iptables -A OUTPUT -p tcp -m tcp --dport 80 -m string --string ".zip" --algo kmp --to 65535 -j LOG --log-prefix "http kmp  .ZIP"
    iptables -A OUTPUT -p tcp -m tcp --dport 80 -m string --string "zip" --algo kmp --to 65535 -j LOG --log-prefix "http kmp  ZIP"
    Cela fonctionne

    Si je fait ( je change uniquement l'algo de kmp -> bm )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    iptables -A OUTPUT -p tcp -m tcp --dport 80 -m string --string ".zip" --algo bm --to 65535 -j LOG --log-prefix " http bm  .ZIP"
    iptables -A OUTPUT -p tcp -m tcp --dport 80 -m string --string "zip" --algo bm --to 65535 -j LOG --log-prefix " http bm  ZIP"
    Cela ne fonctionne plus


    Mais par contre si je refait la même chose avec l'https

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    iptables -A OUTPUT -p tcp -m tcp --dport 443 -m string --string ".zip" --algo kmp --to 65535 -j LOG --log-prefix "https kmp  .ZIP"
    iptables -A OUTPUT -p tcp -m tcp --dport 443 -m string --string "zip" --algo kmp --to 65535 -j LOG --log-prefix "https kmp  ZIP"
    iptables -A OUTPUT -p tcp -m tcp --dport 443 -m string --string ".zip" --algo bm --to 65535 -j LOG --log-prefix "https bm  .ZIP"
    iptables -A OUTPUT -p tcp -m tcp --dport 443 -m string --string "zip" --algo bm --to 65535 -j LOG --log-prefix "https bm  ZIP"
    cela fonctionne dans tous les cas


    Le resultat après deux lynx - 1 http et un 1 https vers un domaine .zip

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Chain OUTPUT (policy ACCEPT 36 packets, 2622 bytes)
    num   pkts bytes target     prot opt in     out     source               destination         
    1        4   292 LOG        udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:53 STRING match  "|7a697000|" ALGO name bm TO 65535 LOG flags 0 level 4 prefix " DNS ZIP  "
    2        1   251 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 STRING match  ".zip" ALGO name kmp TO 65535 LOG flags 0 level 4 prefix "http kmp  .ZIP"
    3        1   251 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 STRING match  "zip" ALGO name kmp TO 65535 LOG flags 0 level 4 prefix "http kmp  ZIP"
    4        0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 STRING match  ".zip" ALGO name bm TO 65535 LOG flags 0 level 4 prefix " http bm  .ZIP"
    5        0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 STRING match  "zip" ALGO name bm TO 65535 LOG flags 0 level 4 prefix " http bm  ZIP"
    6        1   446 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 STRING match  ".zip" ALGO name kmp TO 65535 LOG flags 0 level 4 prefix "https kmp  .ZIP"
    7        1   446 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 STRING match  "zip" ALGO name kmp TO 65535 LOG flags 0 level 4 prefix "https kmp  ZIP"
    8        1   446 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 STRING match  ".zip" ALGO name bm TO 65535 LOG flags 0 level 4 prefix "https bm  .ZIP"
    9        1   446 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 STRING match  "zip" ALGO name bm TO 65535 LOG flags 0 level 4 prefix "https bm  ZIP"
    Bon d'accord l'information se situe pas au même endroit pour http et https mais tout de même, je n'arrive pas à comprendre le pourquoi ...


    Donc, si vous aviez une explication, je suis preneur

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    C'est très dur à dire. J'ai cherché la différence des algorithmes de correspondance de pattern, et le BM semble ne pas être viable dans le cas d'alphabet restreint (source: https://stackoverflow.com/questions/...oyer-moore-sea ). À première vue, vous ne devriez pas tomber dans un tel cas, mais qui sait .
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Cela ne devrait pas être le cas.
    Je vais essayer de voir si je peux être un peu plus précis dans les arguments que je passe pour ne cibler que le payload mais je doute du résultat

Discussions similaires

  1. Le filtrage avec iptables
    Par ram-0000 dans le forum Réseaux
    Réponses: 0
    Dernier message: 26/01/2014, 14h40
  2. Régle de filtrage avec iptables
    Par boubz013 dans le forum Sécurité
    Réponses: 5
    Dernier message: 11/03/2011, 10h27
  3. Mapping de port avec iptables
    Par segphault dans le forum Sécurité
    Réponses: 1
    Dernier message: 12/01/2006, 01h01
  4. Ports forwarding avec iptables
    Par Iced Earth dans le forum Réseau
    Réponses: 6
    Dernier message: 19/11/2002, 22h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo