<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Artisan Numérique</title>
  <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1318"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/node/1318/atom/feed"/>
  <id>http://artisan.karma-lab.net/node/1318/atom/feed</id>
  <updated>2008-02-01T12:37:05+01:00</updated>
  <entry>
    <title>Un firewall minimaliste</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1318" />
    <id>http://artisan.karma-lab.net/node/1318</id>
    <published>2008-02-01T12:35:36+01:00</published>
    <updated>2008-02-01T12:37:05+01:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Sécurité" />
    <category term="Aucun" />
    <category term="OK" />
    <category term="Snipet" />
    <summary type="html"><![CDATA[<p>L'objectif de ce script est de mettre en place une protection minimum très rapidement.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>L'objectif de ce script est de mettre en place une protection minimum très rapidement.</p>
<!--break-->

	<a name='chapter_1'></a>
  <h2>Syntaxe</h2>
	
<kbd>./firewall etat</kbd>
<dl>
<dt>etat</dt><dd>start|stop<dd>
</dl>

	<a name='chapter_2'></a>
  <h2>Scripte</h2>
	

  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="sy0">!/</span>bin<span class="sy0">/</span><a target="blank" href="http://pwet.fr/man/linux/commandes/sh"><span class="kw2">sh</span></a><br />
<br />
<span class="kw1">function</span> start<span class="br0">&#123;</span><br />
<span class="co0"># vidage des regles</span><br />
iptables -F<br />
iptables -X<br />
iptables -t nat -F<br />
<br />
<span class="co0"># chargement des modules kernel necessaires au FTP</span><br />
<span class="sy0">/</span>sbin<span class="sy0">/</span>modprobe ip_nat_ftp<br />
<span class="sy0">/</span>sbin<span class="sy0">/</span>modprobe ip_conntrack_ftp<br />
<br />
<span class="co0"># garde les connexions ouvertes</span><br />
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT<br />
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT<br />
<br />
<span class="co0"># autorise les connexions SSH entrantes</span><br />
iptables -A INPUT -p tcp --dport <span class="nu0">22</span> -j ACCEPT<br />
<br />
<span class="co0"># autorise le ping (décommenter la ligne ci-dessous)</span><br />
iptables -A INPUT -p icmp -j ACCEPT<br />
<br />
<span class="co0"># autorise les connexions HTTP entrantes</span><br />
iptables -A INPUT -p tcp --dport <span class="nu0">80</span> -j ACCEPT<br />
iptables -A INPUT -p tcp --dport <span class="nu0">443</span> -j ACCEPT<br />
<br />
<span class="co0"># autorise les connexions SMTP et POP entrantes</span><br />
iptables -A INPUT -p tcp --dport <span class="nu0">25</span> -j ACCEPT<br />
iptables -A INPUT -p tcp --dport <span class="nu0">993</span> -j ACCEPT<br />
<br />
<span class="co0"># autorise les connexions Jabber entrantes</span><br />
iptables -A INPUT -p tcp --dport <span class="nu0">5222</span> -j ACCEPT<br />
<br />
iptables -A INPUT -p tcp --dport <span class="nu0">8000</span> -j ACCEPT<br />
iptables -A INPUT -p udp --dport <span class="nu0">8000</span> -j ACCEPT<br />
<br />
iptables -A INPUT -p tcp --dport <span class="nu0">21</span> -j ACCEPT<br />
<br />
<span class="co0"># bloque les connexions entrantes</span><br />
iptables -P INPUT DROP<br />
iptables -P FORWARD DROP<br />
<br />
<span class="co0"># bloque les connexions sortantes</span><br />
iptables -P OUTPUT DROP<br />
<br />
<span class="co0"># autorise loopback</span><br />
iptables -A INPUT -i lo -j ACCEPT<br />
iptables -A OUTPUT -o lo -j ACCEPT<br />
<br />
iptables -A INPUT -i tun1 -j ACCEPT<br />
iptables -A OUTPUT -o tun1 -j ACCEPT<br />
<br />
<span class="co0"># connexions sortantes autorisees (FTP, DNS, HTTP, HTTPS) pour les mises-a-jour</span><br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">20</span> -j ACCEPT<br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">21</span> -j ACCEPT<br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">53</span> -j ACCEPT<br />
iptables -A OUTPUT -p udp --dport <span class="nu0">53</span> -j ACCEPT<br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">80</span> -j ACCEPT<br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">443</span> -j ACCEPT<br />
<br />
<span class="co0"># connexions SMTP, POP et IMAP sortantes autorisees</span><br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">25</span> -j ACCEPT<br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">110</span> -j ACCEPT<br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">143</span> -j ACCEPT<br />
<br />
<span class="co0"># connexions NTP sortantes autorisees</span><br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">123</span> -j ACCEPT<br />
iptables -A OUTPUT -p udp --dport <span class="nu0">123</span> -j ACCEPT<br />
<br />
<span class="co0"># connexions SSH sortantes autorisees</span><br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">22</span> -j ACCEPT<br />
iptables -A OUTPUT -p udp --dport <span class="nu0">22</span> -j ACCEPT<br />
<br />
<span class="co0"># connexions WHOIS sortantes autorisees</span><br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">43</span> -j ACCEPT<br />
<br />
<span class="co0"># connexions USENET sortantes autorisees</span><br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">119</span> -j ACCEPT<br />
iptables -A OUTPUT -p tcp --dport <span class="nu0">8000</span> -j ACCEPT<br />
iptables -A OUTPUT -p udp --dport <span class="nu0">8000</span> -j ACCEPT<br />
<span class="br0">&#125;</span><br />
<br />
<span class="kw1">function</span> stop <span class="br0">&#123;</span><br />
<span class="co0">#!/bin/sh</span><br />
<br />
<span class="co0"># vidage des regles</span><br />
iptables -F<br />
iptables -X<br />
iptables -t nat -F<br />
<br />
<span class="co0"># chargement des modules kernel necessaires au FTP</span><br />
<span class="sy0">/</span>sbin<span class="sy0">/</span>modprobe ip_nat_ftp<br />
<span class="sy0">/</span>sbin<span class="sy0">/</span>modprobe ip_conntrack_ftp<br />
<br />
<span class="co0"># garde les connexions ouvertes</span><br />
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT<br />
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT<br />
<br />
<span class="co0"># bloque les connexions entrantes</span><br />
iptables -P INPUT ACCEPT<br />
iptables -P FORWARD ACCEPT<br />
<br />
<span class="co0"># bloque les connexions sortantes</span><br />
iptables -P OUTPUT ACCEPT<br />
<br />
<span class="co0"># autorise loopback</span><br />
iptables -A INPUT -i lo -j ACCEPT<br />
iptables -A OUTPUT -o lo -j ACCEPT<br />
<span class="br0">&#125;</span><br />
<br />
<span class="kw1">case</span> <span class="st0">&quot;$1&quot;</span> <span class="kw1">in</span><br />
&nbsp; &nbsp; start<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; start_firewall<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; stop<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; stop_firewall<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">;;</span><br />
&nbsp; &nbsp; <span class="sy0">*</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; gprintf <span class="st0">&quot;Usage: $s start|stop|restart|status}<span class="es0">\n</span>&quot;</span> $<span class="nu0">0</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">exit</span> <span class="nu0">1</span><br />
<span class="kw1">esac</span>
  </div>
  
  </div>    ]]></content>
  </entry>
</feed>
