{"id":2340,"date":"2015-11-11T16:16:25","date_gmt":"2015-11-11T15:16:25","guid":{"rendered":"http:\/\/olivier.hoarau.org\/?p=2340"},"modified":"2015-11-11T16:46:53","modified_gmt":"2015-11-11T15:46:53","slug":"configuration-firewall-shorewall-avec-une-interface-et-un-reseau-local","status":"publish","type":"post","link":"https:\/\/olivier.hoarau.org\/?p=2340","title":{"rendered":"Configuration firewall shorewall avec une interface et un r\u00e9seau local"},"content":{"rendered":"<p style=\"text-align: justify;\">J&rsquo;ai mis pas mal de temps \u00e0 configurer mon firewall bas\u00e9 sur <a href=\"http:\/\/doc.ubuntu-fr.org\/iptables\">netfilter<\/a> (iptables) sur mon serveur linux en utilisant Shoreline Firewall plus connu sous le terme <a href=\"http:\/\/shorewall.net\/\">shorewall<\/a>. En effet la plupart des configurations type qu&rsquo;on peut trouver sur internet sont bas\u00e9es sur des machines standalone ou avec plusieurs cartes r\u00e9seau avec <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Zone_d%C3%A9militaris%C3%A9e_%28informatique%29\">dmz<\/a> et fonction routeur. Or m\u00eame si j&rsquo;aurais bien voulu mettre en place ce type de topologie, l&#8217;emplacement physique de ma box et de mes machines me l&rsquo;interdit. De fait la topologie de mon r\u00e9seau local ressemble \u00e0 \u00e7a:<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/personal-network.jpg\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2341\" src=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/personal-network.jpg?resize=474%2C353\" alt=\"personal-network\" width=\"474\" height=\"353\" srcset=\"https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/personal-network.jpg?w=990&amp;ssl=1 990w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/personal-network.jpg?resize=300%2C224&amp;ssl=1 300w, https:\/\/i0.wp.com\/olivier.hoarau.org\/wp-content\/uploads\/personal-network.jpg?resize=624%2C465&amp;ssl=1 624w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a>Autour de ma box j&rsquo;ai mont\u00e9 un r\u00e9seau local via le courant \u00e9lectrique et 4 prises CPL situ\u00e9es dans plusieurs pi\u00e8ces diff\u00e9rentes. On retrouve le serveur pour tous les autres clients qu&rsquo;ils soient branch\u00e9s en RJ45\/CPL ou en wifi. Pour rappel sur mon <a href=\"http:\/\/olivier.hoarau.org\/?p=2195\">serveur poweredge T310<\/a> on trouve les services suivants:<\/p>\n<ul>\n<li style=\"text-align: justify;\">serveur de fichier bas\u00e9 sur NFS<\/li>\n<li style=\"text-align: justify;\">serveur d&rsquo;authentification bas\u00e9 sur OpenLDAP<\/li>\n<li style=\"text-align: justify;\">serveur de mail en r\u00e9ception (dovecot\/POP3s) et \u00e9mission (sendmail) le tout avec tout l&rsquo;arsenal antispam\/antivirus (SpamAssassin et ClamAV)<\/li>\n<li style=\"text-align: justify;\">serveur local Apache+Mysql<\/li>\n<li style=\"text-align: justify;\">serveur multimedia pour kodi\/xbmc<\/li>\n<li style=\"text-align: justify;\">serveur de connexion s\u00e9curis\u00e9e avec OpenSSH<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Bien que le serveur dispose de deux interfaces r\u00e9seau, je me sers que d&rsquo;une seule interface, \u00e7a serait trop lourd de doubler le r\u00e9seau pour qu&rsquo;il fasse office de firewall pour les autres PC clients. Du coup je ne prot\u00e8ge que le serveur et non pas les postes clients qui b\u00e9n\u00e9ficient de leur protection propre et de celle apport\u00e9e par la box. L&rsquo;id\u00e9e est donc que seules les machines de mon r\u00e9seau local puisse acc\u00e9der aux services de mon serveur et on rejette tout le reste.<\/p>\n<p style=\"text-align: justify;\">Niveau configuration de shorewall, cela donne cela, tous les fichiers se trouvent sous \/etc\/shorewall, voil\u00e0 en ce qui concerne le fichier zones<\/p>\n<blockquote>\n<p style=\"text-align: justify;\"># Shorewall version 4 &#8211; Zones File<br \/>\n#<br \/>\n# For information about this file, type \u00ab\u00a0man shorewall-zones\u00a0\u00bb<br \/>\n#<br \/>\n# The manpage is also online at<br \/>\n# http:\/\/www.shorewall.net\/manpages\/shorewall-zones.html<br \/>\n#<br \/>\n###############################################################################<br \/>\n#ZONE TYPE OPTIONS IN OUT<br \/>\n# OPTIONS OPTIONS<br \/>\nfw firewall<br \/>\nlan ipv4<\/p>\n<\/blockquote>\n<p style=\"text-align: justify;\">la zone fw correspond au serveur qui fait office de firewall, la zone lan correspond indiff\u00e9remment \u00e0 internet et au r\u00e9seau local. Voil\u00e0 maintenant le fichier interfaces<\/p>\n<blockquote>\n<p style=\"text-align: justify;\"># Shorewall version 4 &#8211; Interfaces File<br \/>\n#<br \/>\n# For information about entries in this file, type \u00ab\u00a0man shorewall-interfaces\u00a0\u00bb<br \/>\n#<br \/>\n# The manpage is also online at<br \/>\n# http:\/\/www.shorewall.net\/manpages\/shorewall-interfaces.html<br \/>\n#<br \/>\n###############################################################################<br \/>\n###############################################################################<br \/>\n#ZONE INTERFACE OPTIONS<br \/>\nlan eno2 &#8211;<\/p>\n<\/blockquote>\n<p style=\"text-align: justify;\">ma carte r\u00e9seau utilis\u00e9e est d\u00e9finie par eno2, ma carte eno1 est non utilis\u00e9e, la commande ifconfig -a permet de conna\u00eetre le nom de ses interfaces r\u00e9seau. le fichier hosts est quant \u00e0 lui vide (ou presque)<\/p>\n<blockquote>\n<p style=\"text-align: justify;\"># Shorewall version 4 &#8211; Hosts file<br \/>\n#<br \/>\n# For information about entries in this file, type \u00ab\u00a0man shorewall-hosts\u00a0\u00bb<br \/>\n#<br \/>\n# The manpage is also online at<br \/>\n# http:\/\/www.shorewall.net\/manpages\/shorewall-hosts.html<br \/>\n#<br \/>\n###############################################################################<br \/>\n#ZONE HOST(S) OPTIONS<\/p>\n<\/blockquote>\n<p style=\"text-align: justify;\">le fichier policy d\u00e9finit les r\u00e8gles par d\u00e9faut<\/p>\n<blockquote>\n<p style=\"text-align: justify;\"># Shorewall version 4 &#8211; Policy File<br \/>\n#<br \/>\n# For information about entries in this file, type \u00ab\u00a0man shorewall-policy\u00a0\u00bb<br \/>\n#<br \/>\n# The manpage is also online at<br \/>\n# http:\/\/www.shorewall.net\/manpages\/shorewall-policy.html<br \/>\n#<br \/>\n###############################################################################<br \/>\n#SOURCE DEST POLICY LOG LIMIT: CONNLIMIT:<br \/>\nfw lan ACCEPT<br \/>\nlan all DROP info<br \/>\nall all REJECT info<\/p>\n<\/blockquote>\n<p style=\"text-align: justify;\">en gros toutes les trames du serveur vers internet sont accept\u00e9es et toutes les autres sont rejet\u00e9es, il faut donc d\u00e9finir quelques exceptions avec le fichier rules que voici<\/p>\n<blockquote>\n<p style=\"text-align: justify;\"># Shorewall version 4 &#8211; Rules File<br \/>\n#<br \/>\n# For information on the settings in this file, type \u00ab\u00a0man shorewall-rules\u00a0\u00bb<br \/>\n#<br \/>\n# The manpage is also online at<br \/>\n# http:\/\/www.shorewall.net\/manpages\/shorewall-rules.html<br \/>\n#<br \/>\n######################################################################################################################################################################################################<br \/>\n#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER\/ MARK CONNLIMIT TIME HEADERS SWITCH HELPER<br \/>\n# PORT(S) PORT(S) DEST LIMIT GROUP<br \/>\nACCEPT fw lan icmp<br \/>\nACCEPT lan:192.168.1.0\/24 fw tcp 22,25,80,111,389,995,2049,3306,10000<br \/>\nACCEPT lan:192.168.1.0\/24 fw udp 111,2049<br \/>\nACCEPT lan:192.168.1.0\/24 fw icmp<br \/>\nDNS(ACCEPT) fw lan<\/p>\n<\/blockquote>\n<p style=\"text-align: justify;\">On autorise les machines du r\u00e9seau local qui ont pour adresse 192.168.1.X \u00e0 acc\u00e9der au serveur sur le port 22 (OpenSSH), 25 (SMTP), 80 (Apache\/httpd), 111 (portmapper), 389 (OpenLDAP), 995 (POP3s), 2049 (NFS), 3306 (MySQL) et 10000 (Webmin). On autorise \u00e9galement les requ\u00eates DNS du serveur vers internet et on autorise \u00e9galement les ping.<\/p>\n<p style=\"text-align: justify;\">Maintenant le serveur peut \u00eatre encore atteint via les postes clients et ceux-ci doivent \u00e9galement \u00eatre prot\u00e9g\u00e9s. J&rsquo;ai limit\u00e9 au strict minimum le trafic de et vers internet toujours avec shorewall. Exemple avec un client connect\u00e9 via une interface RJ45 qui peut \u00eatre pingu\u00e9, fichier zones<\/p>\n<blockquote>\n<p style=\"text-align: justify;\"># Shorewall version 4 &#8211; Zones File<br \/>\n#<br \/>\n# For information about this file, type \u00ab\u00a0man shorewall-zones\u00a0\u00bb<br \/>\n#<br \/>\n# The manpage is also online at<br \/>\n# http:\/\/www.shorewall.net\/manpages\/shorewall-zones.html<br \/>\n#<br \/>\n###############################################################################<br \/>\n#ZONE TYPE OPTIONS IN OUT<br \/>\n# OPTIONS OPTIONS<br \/>\nnet ipv4<br \/>\nfw firewall<\/p>\n<\/blockquote>\n<p style=\"text-align: justify;\">fichier interface<\/p>\n<blockquote>\n<p style=\"text-align: justify;\"># Shorewall version 4 &#8211; Interfaces File<br \/>\n#<br \/>\n# For information about entries in this file, type \u00ab\u00a0man shorewall-interfaces\u00a0\u00bb<br \/>\n#<br \/>\n# The manpage is also online at<br \/>\n# http:\/\/www.shorewall.net\/manpages\/shorewall-interfaces.html<br \/>\n#<br \/>\n###############################################################################<br \/>\n###############################################################################<br \/>\n#ZONE INTERFACE OPTIONS<br \/>\nnet eno1 detect<\/p>\n<\/blockquote>\n<p style=\"text-align: justify;\">fichier host vide, fichier policy<\/p>\n<blockquote>\n<p style=\"text-align: justify;\"># Shorewall version 4 &#8211; Policy File<br \/>\n#<br \/>\n# For information about entries in this file, type \u00ab\u00a0man shorewall-policy\u00a0\u00bb<br \/>\n#<br \/>\n# The manpage is also online at<br \/>\n# http:\/\/www.shorewall.net\/manpages\/shorewall-policy.html<br \/>\n#<br \/>\n###############################################################################<br \/>\n#SOURCE DEST POLICY LOG LIMIT: CONNLIMIT:<br \/>\nfw net ACCEPT<br \/>\nnet all DROP info<br \/>\nall all REJECT info<\/p>\n<\/blockquote>\n<p style=\"text-align: justify;\">et fichier rules<\/p>\n<blockquote>\n<p style=\"text-align: justify;\"># Shorewall version 4 &#8211; Rules File<br \/>\n#<br \/>\n# For information on the settings in this file, type \u00ab\u00a0man shorewall-rules\u00a0\u00bb<br \/>\n#<br \/>\n# The manpage is also online at<br \/>\n# http:\/\/www.shorewall.net\/manpages\/shorewall-rules.html<br \/>\n#<br \/>\n######################################################################################################################################################################################################<br \/>\n#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER\/ MARK CONNLIMIT TIME HEADERS SWITCH HELPER<br \/>\n# PORT(S) PORT(S) DEST LIMIT GROUP<br \/>\nACCEPT net fw icmp 8 &#8211;<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>J&rsquo;ai mis pas mal de temps \u00e0 configurer mon firewall bas\u00e9 sur netfilter (iptables) sur mon serveur linux en utilisant Shoreline Firewall plus connu sous le terme shorewall. En effet la plupart des configurations type qu&rsquo;on peut trouver sur internet sont bas\u00e9es sur des machines standalone ou avec plusieurs cartes r\u00e9seau avec dmz et fonction &hellip; <a href=\"https:\/\/olivier.hoarau.org\/?p=2340\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Configuration firewall shorewall avec une interface et un r\u00e9seau local<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false,"_share_on_mastodon":"0"},"categories":[5],"tags":[],"class_list":["post-2340","post","type-post","status-publish","format-standard","hentry","category-logiciels-libres"],"share_on_mastodon":{"url":"","error":""},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/peOjJ-BK","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/2340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2340"}],"version-history":[{"count":5,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/2340\/revisions"}],"predecessor-version":[{"id":2346,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=\/wp\/v2\/posts\/2340\/revisions\/2346"}],"wp:attachment":[{"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olivier.hoarau.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}