134 liens privés
Un mini serveur HTTP à regarder d'un peu plus près.
Plein de tutoriels réseau super clairs et bien écrits. Je suis arrivé là en cherchant des infos pour l'OpenVPN et je pense que je vais me faire tout le site pour le plaisir ! :-)
mitmproxy est un outil qui permet d'intercepter et éventuellement modifier ou sauvegarder le trafic HTTP et/ou HTTPS.
Quand j'ai essayé d'installer mitmproxy avec pip, j'ai eu pas mal d'erreurs. J'ai du installer les dépendances nécessaires d'abord :
| ========
| simon@ordi:~$ sudo aptitude install libffi-dev libxml2-dev libxslt-dev
| simon@ordi:~$ sudo pip install mitmproxy
| ========
Il ne reste plus qu'à jouer avec pour tester. :-)
Github : https://github.com/mitmproxy/mitmproxy
Une conférence de Jim Cheetham sur mitmproxy : http://youtu.be/kQ1-0G90lQg
( via Korben : http://korben.info/proxy-man-in-the-middle-http.html )
Un outil pour faire des requête HTTP et tester son site ou son API.
(via Kevin Vuilleumier : http://links.kevinvuilleumier.net/?FaRVIA )
J'ai installé logwatch et j'ai vu quelque chose qui m'a semblé suspect dans les logs :
| ========
| --------------------- httpd Begin ------------------------
| Requests with error response codes
| 400 Bad Request
| /w00tw00t.at.ISC.SANS.DFind:): 1 Time(s)
| ========
J'ai cherché un peu et j'ai vu que ça correspondait à une requête d'un scanner de vulnérabilités ( DFind ). Pour le bloquer et jeter les paquets, on peut rajouter une règle iptables. Dans la foulée on rajoute une autre règle qui bloque les requêtes HTTP qui utilisent l'IP au lieu du nom de domaine : | ======== | simon@ordi:~$ sudo nano /etc/init.d/firewall | #Bloquer w00tw00t.at.ISC.SANS. | iptables -I INPUT -d xx.xx.xx.xx -p tcp --dport 80 -m string --to 70 --algo bm --string 'GET /w00tw00t.at.ISC.SANS.' -j DROP |
---|---|---|---|---|
#Bloquer toutes les requêtes HTTP qui utilisent l'IP au lieu du domaine | ||||
iptables -I INPUT -d xx.xx.xx.xx -p tcp --dport 80 -m string --to 700 --algo bm --string 'Host: xx.xx.xx.xx' -j DROP | ||||
======== |
(xx.xx.xx.xx est à remplacer par l'IP du serveur.)
On actualise iptables :
| ========
| simon@ordi:~$ sudo /etc/init.d/firewall
| ========
On peut vérifier que les deux règles sont bien prises en compte :
| ========
| simon@ordi:~$ sudo iptables -L INPUT -nvx
| Chain INPUT (policy DROP 15 packets, 1188 bytes)
| pkts bytes target prot opt in out source destination
| 7 2912 DROP tcp -- 0.0.0.0/0 xx.xx.xx.xx tcp dpt:80 STRING match "Host: xx.xx.xx.xx" ALGO name bm TO 700
| 0 0 DROP tcp -- 0.0.0.0/0 xx.xx.xx.xx tcp dpt:80 STRING match "GET /w00tw00t.at.ISC.SANS." ALGO name bm TO 70
| ========
J'ai testé en tapant http://xx.xx.xx.xx dans firefox, j'ai eu une erreur (timeout) et je vois que 7 paquets ont été rejetés. :-)