{"id":138,"date":"2016-04-17T12:13:34","date_gmt":"2016-04-17T11:13:34","guid":{"rendered":"http:\/\/www.erroussafi.com\/blog\/?p=138"},"modified":"2020-05-18T01:08:30","modified_gmt":"2020-05-18T01:08:30","slug":"weekend-project-alya-firewall-part-3","status":"publish","type":"post","link":"https:\/\/www.erroussafi.com\/index.php\/2016\/04\/17\/weekend-project-alya-firewall-part-3\/","title":{"rendered":"Weekend project : Alya FireWall \u2013 Part 3"},"content":{"rendered":"<p>Je profite de ce moment d\u2019accalmie \u00e0 la maison pour avancer dans notre projet. Aujourd&#8217;hui, nous allons reprendre l\u00e0 o\u00f9 l&#8217;on s&#8217;est arr\u00eat\u00e9, afin d&#8217;activer le contr\u00f4le \u00e0 distance s\u00e9curis\u00e9 de notre boitier gr\u00e2ce au Secure Shell SSH, Activer le DHCP sur notre box afin d&#8217;adresser les clients, et configurer le DNS afin de maitriser les r\u00e9solutions et ne pas d\u00e9pendre du DNS de Maroc Telecom (je pars du principe que vous \u00eates comme moi, \u00e9nerv\u00e9 par la non-qualit\u00e9 des boitier de notre cher op\u00e9rateur historique), alors, ready steady, go !<br \/>\n<!--more--><\/p>\n<h4>Acc\u00e8s S\u00e9curis\u00e9 \u00e0 distance<\/h4>\n<p>SSH est un protocole d&#8217;acc\u00e8s \u00e0 distance, s\u00e9curis\u00e9, nous permettant \u00e0 travers un ordinateur, d&#8217;administrer notre boitier via ligne de commande. Nous aurons donc \u00e0 utiliser un client SSH (le plus populaire et gratuit \u00e9tant putty \u00e0 t\u00e9l\u00e9charger ici :\u00a0<a href=\"http:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/download.html\">Putty Download<\/a>.<br \/>\nSi vous avez linux comme OS sur votre PC, alors l&#8217;acc\u00e8s se fera via la console par d\u00e9faut ou le terminal de votre distribution linux.<br \/>\nSur notre boitier nous allons d&#8217;abord configurer le service SSH<\/p>\n<pre>$ sudo vi \/etc\/ssh\/sshd_config\r\n# Modifier le port par defaut\r\nPort 15507\r\nProtocol 2\r\nHostKey \/etc\/ssh\/ssh_host_rsa_key\r\nHostKey \/etc\/ssh\/ssh_host_dsa_key\r\nUsePrivilegeSeparation yes\r\nKeyRegenerationInterval 3600\r\nServerKeyBits 768\r\nSyslogFacility AUTH\r\nLogLevel INFO\r\nLoginGraceTime 60\r\n# Supprimer l acces avec root\r\nPermitRootLogin no\r\nStrictModes yes\r\nRSAAuthentication yes\r\nPubkeyAuthentication yes\r\nIgnoreRhosts yes\r\nRhostsRSAAuthentication no\r\nHostbasedAuthentication no\r\nPermitEmptyPasswords no\r\nChallengeResponseAuthentication no\r\nPrintMotd no\r\nPrintLastLog yes\r\nTCPKeepAlive yes\r\nAcceptEnv LANG LC_*\r\nSubsystem sftp \/usr\/lib\/openssh\/sftp-server\r\nUsePAM yes\r\n<\/pre>\n<p>Puis nous allons red\u00e9marrer le service SSH :<\/p>\n<pre>$ sudo rc.d restart sshd\r\n<\/pre>\n<p>Maintenant \u00e0 travers votre PC utilisez putty pour vous connecter en utilisant l&#8217;utilisateur &#8220;alya&#8221; que nous avons cr\u00e9e dans la partie 2. Si tout va bien, nous n&#8217;aurons plus besoin de l&#8217;\u00e9cran et du clavier sur le boitier, mais seulement d&#8217;y acc\u00e9der \u00e0 distance \u00e0 travers SSH sur notre r\u00e9seau domestique LAN.<\/p>\n<h4>Premi\u00e8res r\u00e8gles de s\u00e9curit\u00e9<\/h4>\n<p>Nous allons impl\u00e9menter sur notre boitier, quelques r\u00e8gles basiques de s\u00e9curit\u00e9 pour nous prot\u00e9ger des attaques au niveau TCP et un petit nettoyage et filtrage ICMP. Pour cel\u00e0, commen\u00e7eons par modifer les param\u00e8tres de contr\u00f4le de notre distribution Archlinux :<\/p>\n<pre>$ sudo vi \/etc\/sysctl.conf\r\n# Protection anti spoof ipv4 (en utilisant reverse-path filter)\r\nnet.ipv4.conf.default.rp_filter=1\r\nnet.ipv4.conf.all.rp_filter=1\r\n# Activation des cookies TCP\/IP SYN\r\nnet.ipv4.tcp_syncookies=1\r\n# Ignorer les broadcasts ICMP\r\nnet.ipv4.icmp_echo_ignore_broadcasts = 1\r\n# Ignorer les erreurs ICMP\r\nnet.ipv4.icmp_ignore_bogus_error_responses = 1\r\n# Protection MITM ignorer les redirections ICMP\r\nnet.ipv4.conf.all.accept_redirects = 0\r\nnet.ipv4.conf.eth0.accept_redirects = 0\r\n# Ne pas envoyer les redirections ICMP\r\nnet.ipv4.conf.all.send_redirects = 0\r\nnet.ipv4.conf.default.send_redirects = 0\r\nnet.ipv4.conf.eth0.send_redirects = 0\r\n# Ne pas accepter les packets IP Source Route\r\nnet.ipv4.conf.all.accept_source_route = 0\r\n# Log niveau zero\r\nnet.ipv4.conf.all.log_martians = 1\r\n# fonction routeur de notre boitier (primordial)\r\nnet.ipv4.ip_forward = 1\r\n# Protection depassement de memoire\r\nvm.min_free_kbytes=8192\r\n<\/pre>\n<p>Sauvegarder les changements et les appliquer avec la commande suivante<\/p>\n<pre>$ sudo sysctl \u2013p\r\n<\/pre>\n<h4>Fonction DHCP Server et DNS Server<\/h4>\n<p>Avoir un DHCP sur notre boitier nous permettera de maitriser l&#8217;adressage des clients. De cette fa\u00e7on, nous allons agir comme une passerelle pour recevoir tout le traffic de nos clients, et toutes les requ\u00eates DNS vont att\u00e9rir sur notre boitier.<br \/>\nNotre boitier prot\u00e9gera tous les clients, et n&#8217;aura pas besoin de l&#8217;action de ces derniers pour agir comme gateway.<br \/>\nLa fonction DNS est tr\u00e8s importante ! comme je l&#8217;expliquait plus haut, nous allons am\u00e9liorer le fonctionnement du DNS par d\u00e9faut de Maroc Telecom, en tirant partie du cache des packets DNS pour servir rapidement la r\u00e9solution clients, nous allons aussi s\u00e9curiser et se pr\u00e9munir des attaque de type DNS Cache poisonning.<br \/>\nPour cel\u00e0, nous allons installer dnsmasq, qui est \u00e0 la fois le DHCP et le DNS facile \u00e0 configurer pour notre ArchLinux :<\/p>\n<pre>$ sudo pacman \u2013S dnsmasq\r\n$ sudo vi \/etc\/dnsmasq.conf\r\n## DNS CONFIGURATION ##\r\n# Interfaces for DNS\r\ninterface=eth0\r\nlisten-address=192.168.1.3\r\nbind-interfaces\r\n# Never forward plain names (without a dot or domain part)\r\ndomain-needed\r\n# Never forward addresses in the non-routed address spaces.\r\nbogus-priv\r\n# Max concurrent DNS queries (default = 150)\r\ndns-forward-max=150\r\n# DNS cache size (default = 150)\r\ncache-size=300\r\n## DHCP CONFIGURATION ##\r\n# DHCP range and lease time\r\ndhcp-range=192.168.1.10,192.168.1.20,255.255.255.0,4d\r\n# Set DHCP as authoritative\r\ndhcp-authoritative\r\n<\/pre>\n<p>Maintenant red\u00e9marrons pour appliquer les changements :<\/p>\n<pre>$ sudo rc.d restart dnsmasq\r\n<\/pre>\n<p>Il faut maintenant d\u00e9sactiver le DHCP sur votre routeur Maroc Telecom ! Tr\u00e8s important ! Il est difficile de faire cohabiter deux serveurs DHCP sur le m\u00eame LAN !<br \/>\nMaintenant testons notre DHCP sur windows \u00e0 travers le commande suivantes dans une fen\u00eatre DOS :<\/p>\n<pre>&gt; ipconfig\/release\r\n&gt; ipconfig\/renew\r\n&gt; ipconfig\/all\r\n<\/pre>\n<p>V\u00e9rifier que vous avez eu la bonne IP et que vous avec notre boitier 192.168.1.3 comme passerelle<br \/>\nPour tester notre DNS nous allons faire une capture TCP dump sur notre boitier (\u00e0 travers l&#8217;acc\u00e8s SSH)<\/p>\n<pre>$ sudo tcpdump -i eth0 dst port 53 or src port 53 -n -x -X -v\r\n<\/pre>\n<p>Sur votre client windows executer la commande suivante:<\/p>\n<pre>&gt; ipconfig\/flushdns\r\n&gt; ping www.google.com\r\n<\/pre>\n<p>V\u00e9rifier maintenant avec la capture execut\u00e9e que la requ\u00eate du client windows est bien re\u00e7ue par notre boitier Alya, et que celui ci la renvoie vers le DNS Server de Maroc Telecom.<br \/>\nRefaire un deuxi\u00e8me test et cette fois sur le TCP Dump, on ne devrait plus avoir de forward vers le DNS externe, en effet, le cache du boitier devrait nous r\u00e9pondre.<\/p>\n<h4>Fin de la troisi\u00e8me partie<\/h4>\n<p>Voil\u00e0, nous avons \u00e0 pr\u00e9sent avanc\u00e9 et nous avons un boitier, DHCP, DNS et firewall Layer 3 et 4, pour notre usage, la prochaine et derni\u00e8re partie nous servira \u00e0 jouer avec le linux iptables, pour configurer nos access lists, et je vais vous introduire \u00e0 SNORT qui est un bout de logiciel incroyable pour configurer votre premier &#8220;intrusion detection system&#8221;. Tchuss ! et bon weekend \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je profite de ce moment d\u2019accalmie \u00e0 la maison pour avancer dans notre projet. Aujourd&#8217;hui, nous allons reprendre l\u00e0 o\u00f9 l&#8217;on s&#8217;est arr\u00eat\u00e9, afin d&#8217;activer le contr\u00f4le \u00e0 distance s\u00e9curis\u00e9 de notre boitier gr\u00e2ce au Secure Shell SSH, Activer le DHCP sur notre box afin d&#8217;adresser les clients, et configurer le DNS afin de maitriser [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6812,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[9],"tags":[],"class_list":["post-138","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technique"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.erroussafi.com\/wp-content\/uploads\/2016\/04\/Raspberry_pi_working-640x3531-1.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.erroussafi.com\/index.php\/wp-json\/wp\/v2\/posts\/138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.erroussafi.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.erroussafi.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.erroussafi.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.erroussafi.com\/index.php\/wp-json\/wp\/v2\/comments?post=138"}],"version-history":[{"count":0,"href":"https:\/\/www.erroussafi.com\/index.php\/wp-json\/wp\/v2\/posts\/138\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.erroussafi.com\/index.php\/wp-json\/wp\/v2\/media\/6812"}],"wp:attachment":[{"href":"https:\/\/www.erroussafi.com\/index.php\/wp-json\/wp\/v2\/media?parent=138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.erroussafi.com\/index.php\/wp-json\/wp\/v2\/categories?post=138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.erroussafi.com\/index.php\/wp-json\/wp\/v2\/tags?post=138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}