<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>monkey#6 &#187; system administration</title>
	<atom:link href="http://www.lghinelli.it/blog/category/system-administration/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lghinelli.it/blog</link>
	<description>anca la prescia la vo e su témp</description>
	<lastBuildDate>Mon, 28 Nov 2011 13:41:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>All&#8217;appello root è assente</title>
		<link>http://www.lghinelli.it/blog/2010/allappello-root-e-assente/</link>
		<comments>http://www.lghinelli.it/blog/2010/allappello-root-e-assente/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 14:26:08 +0000</pubDate>
		<dc:creator>lghinelli</dc:creator>
				<category><![CDATA[system administration]]></category>
		<category><![CDATA[estremamente tecnico]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://www.lghinelli.it/blog/?p=537</guid>
		<description><![CDATA[**9/4/2010: ho dovuto aggiornare la procedura perchè la vecchia non permetteva al nuovo utente root di concedere i privilegi. Ora sembra tutto a posto.** Mi è capitata un&#8217;installazione di mysql senza l&#8217;utente di root e senza altri utenti che avessero privilegi di amministrazione. Questo quindi impediva ogni utilizzo del db, ovviamente la reinstallazione non era [...]]]></description>
			<content:encoded><![CDATA[<p>**9/4/2010: ho dovuto aggiornare la procedura perchè la vecchia non permetteva al nuovo utente root di concedere i privilegi. Ora sembra tutto a posto.**</p>
<p>Mi è capitata un&#8217;installazione di mysql <span class="evidence">senza l&#8217;utente di root</span> e senza altri utenti che avessero privilegi di amministrazione.<br />
Questo quindi <span class="evidence">impediva ogni utilizzo del db</span>, ovviamente la reinstallazione non era un&#8217;opzione e quindi ho dovuto escogitare un sistema.</p>
<p>Dopo un po&#8217; di ricerche ho definito questa procedura:</p>
<ol>
<li><span class="evidence">Arresto di mysqld</span>.<br />
uccidendo il demone<br />
<code><br />
  kill `cat /var/run/mysqld/mysql.pid`<br />
</code><br />
Sono essenziali i <strong>backticks (`)</strong> perchè sostituiscono alla stringa l&#8217;output del comando; il loro <strong>codice ASCII è 96</strong>.<br />
Probabilmente il resto della procedura funziona anche con un semplice<br />
<code>service mysqld stop</code> o analoghi, fate sapere se provate.
</li>
<li><span class="evidence">Riavvio del servizio</span> in una modalità che ci consenta spazio di manovra, quindi<br />
<code><br />
  mysqld_safe --skip-grant-tables<br />
</code><br />
dove l&#8217;opzione <strong><a href="http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_skip-grant-tables" target="_blank">&#8211;skip-grant-tables</a></strong> fa tutta la magia che ci serve, portandoci in un mondo dove non abbiamo più bisogno di un utente per connetterci a mysql
</li>
<li>ed infatti la connessione al server<br />
<code>mysql</code><br />
ci lascia nella <span class="evidence">consolle di mysql</span> liberi di creare un <strong>nuovo utente</strong>.</p>
<p>Fermi là illusi<br />
<code><br />
  CREATE USER bla bla<br />
</code><br />
non funziona, questa modalità non permette certi giochini quindi si fa tutto a mano.<br />
<code><br />
USE mysql;<br />
INSERT INTO user VALUES ('localhost','toor','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','','0','0','0','0');<br />
FLUSH PRIVILEGES;<br />
</code><br />
il FLUSH in fondo è <strong>essenziale</strong>, perchè altrimenti i privilegi faticosamente inseriti non verranno recepiti; a proposito le &#8216;Y&#8217; sono 26.
</li>
<li>
 non ci resta che uscire dalla consolle, uccidere di nuovo il demone con il kill di cui sopra e <span class="evidence">riavviare il servizio</span> con il vostro comando preferito.
</li>
<li>
 rientramo nella consolle questa volta con il solito metodo usando l&#8217;utente appena aggiunto<br />
<code><br />
  mysql -u toor -p<br />
</code>
</li>
<li>
e <span class="evidence">creiamo finalmente l&#8217;utente root nel <strong>modo canonico</strong></span>:<br />
<code><br />
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '
<password>' WITH GRANT OPTION;<br />
FLUSH PRIVILEGES;<br />
</code>
</li>
<li>
dopo aver testato il funzionamento del nuovo(?!) utente root <span class="evidence">cancelliamo l&#8217; utente toor</span> perchè è <strong>pericoloso</strong> lasciare in giro due amministratori<br />
<code><br />
DELETE FROM mysql.user WHERE User LIKE 'toor';<br />
</code>
</li>
</ol>
<p>La procedura è semplice e veloce; ora che è anche testata si potrebbe anche saltare la parte di creazione dell&#8217;utente &#8216;toor&#8217; e buttare dentro direttamente root, ma <strong>io non rischierei</strong>, quella query lunga e tutta uguale è sinistramente &#8220;error prone&#8221; (come dicono anche sul sito ufficiale di mysql).</p>
<p>Aproposito, &#8216;toor&#8217; è il contrario di &#8216;root&#8217;, che sia l&#8217;amministratore buono che tutti cercano?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lghinelli.it/blog/2010/allappello-root-e-assente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iptables, rapida guida per chiudersi fuori da un server</title>
		<link>http://www.lghinelli.it/blog/2010/iptables-rapida-guida-per-chiudersi-fuori-da-un-server/</link>
		<comments>http://www.lghinelli.it/blog/2010/iptables-rapida-guida-per-chiudersi-fuori-da-un-server/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 15:39:26 +0000</pubDate>
		<dc:creator>lghinelli</dc:creator>
				<category><![CDATA[system administration]]></category>
		<category><![CDATA[estremamente tecnico]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sicurezza]]></category>

		<guid isPermaLink="false">http://www.lghinelli.it/blog/?p=492</guid>
		<description><![CDATA[1 2 3 iptables -A INPUT -j DROP iptables -A OUTPUT -j DROP iptables -A FORWARD -j DROP Fatto, vi siete chiusi fuori dal server e anche molti software ora non stanno più funzionando. Voi ( e i cattivi) non potete più entrare perchè iptables è un firewall (porta tagliafuoco) e quindi sta scartando (-j [...]]]></description>
			<content:encoded><![CDATA[
<div class="wp_codebox"><table><tr id="p49227"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p492code27"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-j</span> DROP
iptables <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-j</span> DROP
iptables <span style="color: #660033;">-A</span> FORWARD <span style="color: #660033;">-j</span> DROP</pre></td></tr></table></div>

<p>Fatto, <strong>vi siete chiusi fuori</strong> dal server e anche molti software ora non stanno più funzionando.</p>
<p>Voi ( e i cattivi) non potete più entrare perchè <span class="evidence">iptables è un firewall</span> (<a href="http://www.wordreference.com/enit/firewall">porta tagliafuoco</a>) e quindi sta scartando (<em>-j DROP</em>) <strong>tutte</strong> le richieste che arrivano al server e i software non funzionano più perchè iptables elimina anche i messaggi che passano per l&#8217;interfaccia di loopback (lo) che viene usata dai programmi per <strong>comunicare tra loro</strong>.</p>
<p>Iptables <span class="evidence">divide le sue regole in <strong>3 tabelle</strong></span> (tables), ognuna dedicata ad un utilizzo diverso:</p>
<ul>
  <lI>nat</li>
<li>mangle</li>
<li>filter</li>
</ul>
<p><span class="evidence">Ogni tabella ha delle <strong>chains</strong> (elenchi di regole) predefinite</span>.<br />
Per un <strong>utilizzo minimo</strong> ci basta la tabella <strong>mangle</strong> e 3 delle sue chains:</p>
<ul>
<li><span class="evidence"><strong>INPUT</strong></span>: dedicata hai pacchetti destinati all&#8217;<strong>host locale</strong></li>
<li><span class="evidence"><strong>OUTPUT</strong></span>: per i <strong>pacchetti uscenti</strong></li>
<li><span class="evidence"><strong>FORWARD</strong></span>: pacchetti destinati ad <strong>altri host</strong></lI>
</ul>
<p>.<br />
Naturalmente per mettere in produzione un firewall è meglio (molto meglio, essenziale) <strong>capire come funziona</strong> iptables e come i pacchetti attraversano tabelle e chains, non  mi dilungo, leggetelo <a href="http://www.linuxtopia.org/Linux_Firewall_iptables/c951.html">qui</a> o in un qualunque altro sito dell&#8217;elenco che propone google.</p>
<p>Per farla breve, comunque, un pacchetto entra in una chain e si scorre l&#8217;elenco di regole contenute dalla prima all&#8217;ultima,<strong>applicandole immediatamente</strong>.<br />
Di conseguenza un pacchetto che incontra un <em>DROP</em> viene scartato ed <strong>esce dalla chain</strong>.</p>
<p>Prima cosa da imparare: l&#8217;ordine delle regole <strong>conta</strong>.<br />
Nel cattivo esempio di cui sopra non serve a niente aggiungere altre regole, <strong>siamo fuori e ci rimarremo</strong>.</p>
<p><span class="evidence">Cancelliamo</span> quindi le regole inserite sopra.<br />
Abbiamo <span class="evidence">3 sintassi</span> possibili:</p>
<ol>
<li>Le regole non sono ancora persistenti, vanno <strong>esplicitamente salvate</strong>, quindi riavviare la macchina.<br />
    Questo ci manda a ramengo l&#8217;uptime, ma noi perfortuna non ne siamo schiavi.</li>
<li>Eliminarle <strong>tutte insieme</strong>

<div class="wp_codebox"><table><tr id="p49228"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code28"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-F</span></pre></td></tr></table></div>

</li>
<li>Cancelliamo una regola alla volta:

<div class="wp_codebox"><table><tr id="p49229"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p492code29"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-D</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>regola<span style="color: #7a0874; font-weight: bold;">&#125;</span>
iptables <span style="color: #660033;">-D</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>CHAIN<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>numero di riga<span style="color: #7a0874; font-weight: bold;">&#40;</span>partendo da <span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></td></tr></table></div>

<p>    <em>iptables -D</em> si può usare inserendo il numero di riga in cui appare la regola oppure riscrivendo la regola con la sintassi usata per aggiungerla (<em>-A</em> oppure <em>-I</em>)
  </li>
</ol>
<p>Verifichiamo di esserci liberati delle regole chiedendone la lista (<em>-L</em>):</p>
<ul>
<li>una <strong>elenco semplice</strong>

<div class="wp_codebox"><table><tr id="p49230"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code30"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-L</span></pre></td></tr></table></div>

</li>
<p>  <lI>più informazioni</p>

<div class="wp_codebox"><table><tr id="p49231"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code31"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-L</span> <span style="color: #660033;">-v</span></pre></td></tr></table></div>

</li>
<li> con <strong>numeri di linea</strong> (così magari usiamo con più tranquillità l&#8217;opzione <em>-D</em>)

<div class="wp_codebox"><table><tr id="p49232"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code32"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-L</span> <span style="color: #660033;">--line-numbers</span></pre></td></tr></table></div>

</li>
</ul>
<p>A questo punto possiamo prendere il tablet (non un iPad per favore) su cui abbiamo segnato i servizi offerti e le porte che usano per iniziare ad appendere le regole.<br />
Per semplicità userò negli esempi solo le chain <em>INPUT</em> e <em>OUTPUT</em>.</p>
<p>La nostra <strong>priorità</strong> è di <span class="evidence">consentire tutto il traffico sull&#8217;interfaccia di loopback (lo)</span>, quindi:</p>

<div class="wp_codebox"><table><tr id="p49233"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p492code33"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-i</span> lo <span style="color: #660033;">-j</span> ACCEPT
iptables <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-i</span> lo <span style="color: #660033;">-j</span> ACCEPT</pre></td></tr></table></div>

<p>spiegazione:</p>
<blockquote><p><strong>iptables</strong>, appendi (<strong>-A</strong>) alla chain <strong>INPUT</strong> la regola che tutti i pacchetti che passano per l&#8217;interfaccia (<strong>-i lo</strong>) sono accettati (<strong>-j ACCEPT</strong>)</p></blockquote>
<p>Al primo posto dei servizi permessi c&#8217;è sicuramente ssh quindi vogliamo che siano <span class="evidence">possibili connessioni entranti e uscenti sulla porta 22</span> (default).</p>

<div class="wp_codebox"><table><tr id="p49234"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code34"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">--dport</span> <span style="color: #000000;">22</span> <span style="color: #660033;">-j</span> ACCEPT</pre></td></tr></table></div>

<p>Questa regola dice ad iptables di accettare le connessioni entranti dirette alla porta 22.<br />
Questa regola base può (e <strong>deve</strong>) essere migliorata  con ulteriori vincoli:</p>
<ul>
<li>accettare solo uno specifico protocollo, nel caso specifico tcp

<div class="wp_codebox"><table><tr id="p49235"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code35"><pre class="bash" style="font-family:monospace;"><span style="color: #660033;">-p</span> tcp</pre></td></tr></table></div>

</li>
<li>verificare lo stato della connessione. Nel caso di connessioni entranti dobbiamo accettare sia comunicazioni nuove che già attive (<em>NEW</em> ed <em>ESTABLISHED</em>)

<div class="wp_codebox"><table><tr id="p49236"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code36"><pre class="bash" style="font-family:monospace;"><span style="color: #660033;">-m</span> state <span style="color: #660033;">--state</span> NEW,ESTABLISHED</pre></td></tr></table></div>

<p>    attenzione, non di devono essere spazi intorno alla virgola.
  </li>
<li>potremmo poi voler accettare solo le connessioni dirette ad un solo IP

<div class="wp_codebox"><table><tr id="p49237"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code37"><pre class="bash" style="font-family:monospace;"><span style="color: #660033;">-d</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>indirizzo ip<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></td></tr></table></div>

</li>
<li>oppure consentire l&#8217;accesso solo ad uno specifico IP/rete

<div class="wp_codebox"><table><tr id="p49238"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code38"><pre class="bash" style="font-family:monospace;"><span style="color: #660033;">-s</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>indirizzo ip<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>netmask<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></td></tr></table></div>

<p>    per lasciare libera la connessione si può non specificare nulla oppure usare</p>

<div class="wp_codebox"><table><tr id="p49239"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code39"><pre class="bash" style="font-family:monospace;"><span style="color: #660033;">-s</span> <span style="color: #000000;">0</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span></pre></td></tr></table></div>

</li>
<li>eventualmente si può anche specificare da che porta deve partire la connessione affinchè sia accettata

<div class="wp_codebox"><table><tr id="p49240"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code40"><pre class="bash" style="font-family:monospace;"><span style="color: #660033;">--sport</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>numero di porta<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></td></tr></table></div>

<p>  per consentire un intervallo</p>

<div class="wp_codebox"><table><tr id="p49241"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p492code41"><pre class="bash" style="font-family:monospace;"><span style="color: #660033;">--sport</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>porta partenza<span style="color: #7a0874; font-weight: bold;">&#93;</span>:<span style="color: #7a0874; font-weight: bold;">&#91;</span>porta base<span style="color: #7a0874; font-weight: bold;">&#93;</span>
es.
<span style="color: #660033;">--sport</span> <span style="color: #000000;">1024</span>:<span style="color: #000000;">65535</span></pre></td></tr></table></div>

</li>
</ul>
<p><span class="evidence">Una regola <strong>ragionevolmente restrittiva</strong></span> da cui partire diventa quindi:</p>

<div class="wp_codebox"><table><tr id="p49242"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code42"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">22</span> <span style="color: #660033;">-m</span> state <span style="color: #660033;">--state</span> NEW,ESTABLISHED <span style="color: #660033;">-j</span> ACCEPT</pre></td></tr></table></div>

<p>Siccome dopo diremo al firewall di scartare tutti i pacchetti entranti e uscenti che non siano altrimenti regolati dobbiamo anche dire ad iptables cosa fare delle risposte che richiede il client ssh:</p>

<div class="wp_codebox"><table><tr id="p49243"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code43"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">-m</span> state <span style="color: #660033;">--state</span> ESTABLISHED <span style="color: #660033;">-j</span> ACCEPT</pre></td></tr></table></div>

<p>La sintassi è identica, cambia solo la chain a cui appenderlo e non sono specificate le porte della connessione.</p>
<p>A questo punto non rimane che reiterare la logica applicata per ssh per ogni servizio a cui vogliamo consentire l&#8217;accesso.</p>
<p>Finito l&#8217;elenco dei servizi blocchiamo tutto di nuovo:</p>

<div class="wp_codebox"><table><tr id="p49244"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p492code44"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-j</span> DROP
iptables <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-j</span> DROP
iptables <span style="color: #660033;">-A</span> FORWARD <span style="color: #660033;">-j</span> DROP</pre></td></tr></table></div>

<p>A questo punto un port scanner tipo <a href="http://www.nmap.org">nmap</a> vi segnalerà solo la porta ssh disponibile e l&#8217;output di <em>iptables -L</em> dovrebbe essere:</p>

<div class="wp_codebox"><table><tr id="p49245"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code" id="p492code45"><pre class="bash" style="font-family:monospace;">Chain INPUT <span style="color: #7a0874; font-weight: bold;">&#40;</span>policy ACCEPT<span style="color: #7a0874; font-weight: bold;">&#41;</span>
target     prot opt <span style="color: #7a0874; font-weight: bold;">source</span>               destination         
ACCEPT     all  <span style="color: #660033;">--</span>  anywhere             anywhere            
ACCEPT     tcp  <span style="color: #660033;">--</span>  anywhere             anywhere            tcp dpt:<span style="color: #c20cb9; font-weight: bold;">ssh</span> state NEW,ESTABLISHED 
DROP       all  <span style="color: #660033;">--</span>  anywhere             anywhere            
&nbsp;
Chain FORWARD <span style="color: #7a0874; font-weight: bold;">&#40;</span>policy ACCEPT<span style="color: #7a0874; font-weight: bold;">&#41;</span>
target     prot opt <span style="color: #7a0874; font-weight: bold;">source</span>               destination         
DROP       all  <span style="color: #660033;">--</span>  anywhere             anywhere            
&nbsp;
Chain OUTPUT <span style="color: #7a0874; font-weight: bold;">&#40;</span>policy ACCEPT<span style="color: #7a0874; font-weight: bold;">&#41;</span>
target     prot opt <span style="color: #7a0874; font-weight: bold;">source</span>               destination         
ACCEPT     all  <span style="color: #660033;">--</span>  anywhere             anywhere            
ACCEPT     tcp  <span style="color: #660033;">--</span>  anywhere             anywhere            tcp spt:<span style="color: #c20cb9; font-weight: bold;">ssh</span> dpts:<span style="color: #c20cb9; font-weight: bold;">login</span>:<span style="color: #000000;">65535</span> state ESTABLISHED 
DROP       all  <span style="color: #660033;">--</span>  anywhere             anywhere</pre></td></tr></table></div>

<p>Il parametro <em>-A</em> appende una regola <strong>in fondo</strong> alla chain selezionata, volendo inserire una regola in una posizione specifica si usa:</p>

<div class="wp_codebox"><table><tr id="p49246"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code46"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-I</span> INPUT <span style="color: #000000;">3</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>regola<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></td></tr></table></div>

<p>Che ci consente di appendere <em>{regola}</em> alla terza posizione della chain (sempre partendo da 1).</p>
<p>Lavorando con i firewall è purtroppo <strong>molto facile fare errori</strong> che poi richiedono di loggarsi in locale sulla macchina per essere riparati.<br />
Siccome più spesso che no il server è a qualche chilometro dalla tastiera su cui stiamo lavorando la seconda semplice precauzione da prendere è di <span class="evidence">spegnere il firewall ogni 5 minuti</span></p>

<div class="wp_codebox"><table><tr id="p49247"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p492code47"><pre class="bash" style="font-family:monospace;">crontab <span style="color: #660033;">-e</span>
  <span style="color: #000000; font-weight: bold;">*/</span><span style="color: #000000;">5</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>service iptables stop <span style="color: #7a0874; font-weight: bold;">&#40;</span>centos<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  <span style="color: #000000; font-weight: bold;">*/</span><span style="color: #000000;">5</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>iptables stop <span style="color: #7a0874; font-weight: bold;">&#40;</span>debian-like<span style="color: #7a0874; font-weight: bold;">&#41;</span>
  <span style="color: #000000; font-weight: bold;">*/</span><span style="color: #000000;">5</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>iptables <span style="color: #660033;">-F</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>per tutte le stagioni<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></td></tr></table></div>

<p>Ovviamente la prima precauzione da prendere è <strong>provare la configurazione</strong> sul server di test.</p>
<h2>Riassunto dei comandi</h2>
<ul>
<li>visualizzare le regole

<div class="wp_codebox"><table><tr id="p49248"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code48"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-L</span> <span style="color: #660033;">-v</span> <span style="color: #660033;">--line-number</span></pre></td></tr></table></div>

</li>
<li>eliminare tutte le regole

<div class="wp_codebox"><table><tr id="p49249"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code49"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-F</span></pre></td></tr></table></div>

</li>
<li>eliminare una regola

<div class="wp_codebox"><table><tr id="p49250"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p492code50"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-D</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>chain<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>numero regola<span style="color: #7a0874; font-weight: bold;">&#93;</span>
iptables <span style="color: #660033;">-D</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>chain<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>sintassi regola<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></td></tr></table></div>

</li>
<li>appendere una] regola in fondo alla chain

<div class="wp_codebox"><table><tr id="p49251"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p492code51"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-A</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>chain<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>sintassi regola<span style="color: #7a0874; font-weight: bold;">&#125;</span>
es.
iptables <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">--dport</span> <span style="color: #000000;">22</span> <span style="color: #660033;">-m</span> state <span style="color: #660033;">--state</span> NEW,ESTABLISHED <span style="color: #660033;">-j</span> ACCEPT <span style="color: #7a0874; font-weight: bold;">&#40;</span>per <span style="color: #c20cb9; font-weight: bold;">ssh</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></td></tr></table></div>

</li>
<li>appendere una regola in posizione specifica

<div class="wp_codebox"><table><tr id="p49252"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p492code52"><pre class="bash" style="font-family:monospace;">iptables <span style="color: #660033;">-I</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>chain<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>numero riga<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>sintassi regola<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></td></tr></table></div>

</li>
</ul>
<p>Iptables ha molti più parametri di così.<br />
Per un firewall sicuro ci vuole molto più studio di questo semplice tutorial, si possono creare nuove chains e modificare i pacchetti prima del routing e dopo il routing; genericamente si può gestire <strong>ogni aspetto</strong> dei flussi entranti e uscenti.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lghinelli.it/blog/2010/iptables-rapida-guida-per-chiudersi-fuori-da-un-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql cli: importare file csv</title>
		<link>http://www.lghinelli.it/blog/2009/mysql-cli-importare-file-csv/</link>
		<comments>http://www.lghinelli.it/blog/2009/mysql-cli-importare-file-csv/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 13:47:47 +0000</pubDate>
		<dc:creator>lghinelli</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[system administration]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[spiccioli]]></category>

		<guid isPermaLink="false">http://www.lghinelli.it/blog/?p=188</guid>
		<description><![CDATA[LOAD DATA LOCAL INFILE 'path-to-file/file.csv' INTO TABLE table FIELD TERMINATED BY ',' OPTIONALLY ENCLOSED BY """" LINES TERMINATED BY '\n' (field1, field2, field3, .... ); ovviamente vanno cambiati i delimitatori di campo (FIELD TERMINATED BY) e la delimitazione del testo (OPTIONALLY ENCLOSED BY). Eventualmente (file creati sotto windows) bisogna aggiungere il solito \r al fine [...]]]></description>
			<content:encoded><![CDATA[<p><code>LOAD DATA LOCAL INFILE 'path-to-file/file.csv' INTO TABLE table FIELD TERMINATED BY ',' OPTIONALLY ENCLOSED BY """" LINES TERMINATED BY '\n' (field1, field2, field3, .... );</code></p>
<p>ovviamente vanno cambiati  i delimitatori di campo (FIELD TERMINATED BY) e la delimitazione del testo (OPTIONALLY ENCLOSED BY).<br />
Eventualmente (file creati sotto windows) bisogna aggiungere il solito \r al fine riga (LINES TERMINATED BY &#8216;\r\n&#8217;).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lghinelli.it/blog/2009/mysql-cli-importare-file-csv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cambiare il default charset su Ubuntu e Debian</title>
		<link>http://www.lghinelli.it/blog/2008/cambiare-il-default-charset-su-ubuntu-e-debian/</link>
		<comments>http://www.lghinelli.it/blog/2008/cambiare-il-default-charset-su-ubuntu-e-debian/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 09:13:06 +0000</pubDate>
		<dc:creator>lghinelli</dc:creator>
				<category><![CDATA[system administration]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.lghinelli.it/lgolb/?p=66</guid>
		<description><![CDATA[L&#8217;open source è un posto strano molto simile al paese delle meraviglie, tante cose fighissime e più del doppio totalmente illogiche come per esempio settare le variabilie globali LANG e LANGUAGES in 2 (d-u-e) file diversi. Comunque per cambiare il default charset è necessario modificare i file: /etc/enviroment /etc/default/locale Aggiungendo/modificando le righe LANG=&#8221;it_IT.ISO-8859-1&#8243; LANGUAGE=&#8221;it_IT:it&#8221; dove [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;open source è un posto strano molto simile al paese delle meraviglie, tante cose fighissime e più del doppio totalmente illogiche come per esempio settare le variabilie globali LANG e LANGUAGES in 2 (d-u-e) file diversi.</p>
<p>Comunque per cambiare il default charset è necessario modificare i file:</p>
<ul>
<li>/etc/enviroment</li>
<li>/etc/default/locale</li>
</ul>
<p>Aggiungendo/modificando le righe</p>
<p>LANG=&#8221;it_IT.ISO-8859-1&#8243;</p>
<p>LANGUAGE=&#8221;it_IT:it&#8221;</p>
<p>dove &#8220;it_IT.ISO-8859-1&#8243; è il locale+charset con cui mi trovavo a litigare per questioni di svn</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lghinelli.it/blog/2008/cambiare-il-default-charset-su-ubuntu-e-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

