{"id":269,"date":"2008-12-19T09:25:58","date_gmt":"2008-12-19T08:25:58","guid":{"rendered":"http:\/\/blog.guiguiabloc.fr\/?p=269"},"modified":"2008-12-24T10:07:15","modified_gmt":"2008-12-24T09:07:15","slug":"gestion-des-adresses-ip-dynamiques-avec-iptables","status":"publish","type":"post","link":"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/12\/19\/gestion-des-adresses-ip-dynamiques-avec-iptables\/","title":{"rendered":"Gestion des adresses Ip dynamiques avec Iptables"},"content":{"rendered":"<p>Pour \u00eatre honn\u00eate avec vous, j&rsquo;avais pens\u00e9 intitul\u00e9 ce billet \u00ab\u00a0Ouvrez, ouvrez la cage aux oiseaux&#8230;\u00a0\u00bb.<\/p>\n<p>Mais apr\u00e8s avoir os\u00e9 \u00ab\u00a0<a title=\"PKI\" href=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/12\/02\/pki-pki-oh-pki-pki-ah\/\" target=\"_blank\">PKI, PKI, oh ! PKI, PKI, ah!<\/a>\u00a0\u00bb sur l&rsquo;air de \u00ab\u00a0Rosalie\u00a0\u00bb, je me se suis dit que vous alliez s\u00fbrement vous poser de s\u00e9rieuses questions sur ma sant\u00e9 mentale et surtout sur mes go\u00fbts musicaux <img src=\"http:\/\/blog.guiguiabloc.fr\/wp-includes\/images\/smilies\/mrgreen.png\" alt=\":mrgreen:\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> (bien que je n&rsquo;ai rien de personnel contre Carlos et Pierre Perret)<\/p>\n<p>Bref, donc le but de ce billet est de r\u00e9soudre un probl\u00e8me fr\u00e9quent.<\/p>\n<p>Vous avez un beau serveur d\u00e9di\u00e9 Linux (ou un pote vous en pr\u00eate un) et vous contr\u00f4ler bien entendu dessus les acc\u00e8s r\u00e9seau via Iptables.<\/p>\n<p>D&rsquo;ailleurs, vous utilisez peut-\u00eatre m\u00eame un superbe script d\u00e9j\u00e0 tout fait dans le genre de <a title=\"Kharon Firewall\" href=\"http:\/\/sourceforge.net\/projects\/kharon\/\" target=\"_blank\">KHARON<\/a> (comment cela je fais de la pub ???)<\/p>\n<p>Vous disposez a votre domicile d&rsquo;une adresse IP dynamique et bien entendu, pour fixer cela en dur dans Iptables, bah c&rsquo;est la cata&#8230;<\/p>\n<p>Vous jonglez donc avec Fail2ban et\/ou des r\u00e8gles du style :<\/p>\n<h2 class=\"topTitle\"><a href=\"..\/index.php\/2008\/12\/02\/pki-pki-oh-pki-pki-ah\/\"><br \/>\n<\/a><\/h2>\n<pre lang=\"text\">Iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60\r\n--hitcount 4 -j DROP<\/pre>\n<p>Voici donc une petite bidouille bien proprette pour ins\u00e9rer votre ip dynamique dans iptables (oublier les r\u00e9solutions DNS en r\u00e8gles Iptables, cela ne marche pas&#8230;) et autoriser l&rsquo;acc\u00e8s en SSH depuis votre ip dynamique.<\/p>\n<p>Je suppose bien \u00e9videmment que vous utilisez d\u00e9ja un service comme <a title=\"DYNDNS\" href=\"http:\/\/www.dyndns.com\/\" target=\"_blank\">DYNDNS<\/a> ou une entr\u00e9e de type DYNHOST chez OVH par exemple (ou autre hein, je suis pas sectaire).<\/p>\n<p>Bref, un service permettant d&rsquo;avoir un nom d&rsquo;h\u00f4te pour votre ip dynamique et qui est mis \u00e0 jour \u00e0 intervalle r\u00e9gulier.<\/p>\n<p>Tout d&rsquo;abord, il faut cr\u00e9er une chaine que nous appelerons \u00ab\u00a0mon_ip_maison\u00a0\u00bb par exemple et l&rsquo;ins\u00e9rer au d\u00e9but de la chaine INPUT d&rsquo;iptables.<\/p>\n<p>A rajouter donc dans votre script Iptables ou \u00e0 la main comme ceci :<\/p>\n<pre lang=\"text\">iptables -N mon_ip_maison\r\niptables -I INPUT 1 -j mon_ip_maison<\/pre>\n<p>Reste \u00e0 \u00e9crire le joli script de mise \u00e0 jour que j&rsquo;appellerais ici : Wesh_Gros_C_est_moi.sh<\/p>\n<p>(euh vous pouvez changer le nom hein&#8230;)<\/p>\n<pre lang=\"bash\">#!\/bin\/bash\r\n#\r\n# variables generales\r\ndyndns=guiguiabloc.dyndns.com\r\nipfile=\/root\/ipfile\r\n\r\n# Recuperation de l'ip\r\nIP=`\/usr\/bin\/dig +short $dyndns | \/usr\/bin\/tail -n 1`\r\nif [ \"${#IP}\" = \"0\" ]; then\r\n    echo \"Echec de la recuperation de l'ip\"\r\n    exit\r\nfi\r\n\r\nANCIENNEIP=\"\"\r\nif [ -a $ipfile ]; then\r\n    ANCIENNEIP=`cat $ipfile`\r\nfi\r\n\r\n# on enregistrer la nouvelle ip\r\necho $IP>$ipfile\r\n\r\necho \"Mise a jour d'iptables\"\r\nif [ \"${#ANCIENNEIP}\" != \"0\" ]; then\r\n    echo \"Suppression de l'ancienne r\u00e8gle ($ANCIENNEIP)\"\r\n    \/sbin\/iptables -D mon_ip_maison -s $ANCIENNEIP\/32 --dport 22 -j ACCEPT\r\nfi\r\necho \"Insertion de la nouvelle r\u00e8gle ($IP)\"\r\n\/sbin\/iptables -A mon_ip_maison -s $IP\/32 --dport 22 -j ACCEPT<\/pre>\n<p>Ne reste qu&rsquo;a le lancer toutes les 10 minutes via la crontab :<\/p>\n<pre lang=\"text\">*\/10 * * * * \/root\/Wesh_Gros_C_est_moi.sh   2>&1<\/pre>\n<p>Magique \ud83d\ude00<\/p>\n<p>Vous trouverez le script de Dave Horner <a title=\"scriptiptablesdyndns\" href=\"http:\/\/dave.thehorners.com\/tech-talk\/unix-linux-bsd-osx-etc\/86-iptables-a-real-mans-firewall\" target=\"_blank\">ICI<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pour \u00eatre honn\u00eate avec vous, j&rsquo;avais pens\u00e9 intitul\u00e9 ce billet \u00ab\u00a0Ouvrez, ouvrez la cage aux oiseaux&#8230;\u00a0\u00bb. Mais apr\u00e8s avoir os\u00e9 \u00ab\u00a0PKI, PKI, oh ! PKI, PKI, ah!\u00a0\u00bb sur l&rsquo;air de \u00ab\u00a0Rosalie\u00a0\u00bb, je me se suis dit que vous alliez s\u00fbrement &hellip; <a href=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/12\/19\/gestion-des-adresses-ip-dynamiques-avec-iptables\/\">Read More <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7,3,8],"tags":[89,88,90],"_links":{"self":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts\/269"}],"collection":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/comments?post=269"}],"version-history":[{"count":9,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts\/269\/revisions"}],"predecessor-version":[{"id":278,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts\/269\/revisions\/278"}],"wp:attachment":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/media?parent=269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/categories?post=269"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/tags?post=269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}