<?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>kernel.lt &#187; iptables</title>
	<atom:link href="http://kernel.lt/zyme/iptables/feed/" rel="self" type="application/rss+xml" />
	<link>http://kernel.lt</link>
	<description>Kompiuterijos ir kitos IT naujienos</description>
	<lastBuildDate>Sun, 03 Feb 2013 20:17:07 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Iptables</title>
		<link>http://kernel.lt/2010/04/iptables-2/</link>
		<comments>http://kernel.lt/2010/04/iptables-2/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 09:51:30 +0000</pubDate>
		<dc:creator>Martynas</dc:creator>
				<category><![CDATA[Straipsniai]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[straipsniai]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Ugniasienė (angl. firewall) skirta vidinio kompiuterių tinklo (arba atskiro tinklo kompiuterio) saugumui užtikrinimui. Ji analizuoja bei valdo duomenų sraute esančių paketų antraštes.  Antraštėje (header) yra siuntėjo ir gavėjo IP adresai. Ugniasienė paremta paketų filtru, analizuojančiu paketų pradžią ir kontroliuojančiu paketo judėjimą. Yra du taisyklių kūrimo principai: viskas leidžiama, kas neuždrausta; viskas draudžiama, kas neleista (dažniausiai [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://kernel.lt/wp-content/uploads/2010/04/iptables.jpg" rel="lightbox[148]"><img class="alignnone size-medium wp-image-434" title="iptables" src="http://kernel.lt/wp-content/uploads/2010/04/iptables-300x172.jpg" alt="" width="300" height="172" /></a></p>
<p>Ugniasienė (<em>angl. firewall</em>) skirta vidinio kompiuterių tinklo (arba atskiro tinklo kompiuterio) saugumui užtikrinimui. Ji analizuoja bei valdo duomenų sraute esančių paketų antraštes.  Antraštėje (<em>header</em>) yra siuntėjo ir gavėjo IP adresai. Ugniasienė paremta paketų filtru, analizuojančiu paketų pradžią ir kontroliuojančiu paketo judėjimą. Yra du taisyklių kūrimo principai:</p>
<ul>
<li>viskas leidžiama, kas neuždrausta;</li>
<li>viskas draudžiama, kas neleista (dažniausiai naudojamas).</li>
</ul>
<p>Paketų filtras &#8220;iptables&#8221;</p>
<p><span lang="LT">Paketų valdymo taisyklės yra sudaromos naudojant programą „iptables“.<span> </span>Tai paketų filtras, kuris programiškai peržiūri paketo antraštę ir nusprendžia, ką su paketu daryti: jį sustabdyti, praleisti, arba atmesti (pranešant apie tai siuntėjui). </span></p>
<p>Linux operacinėje sistemoje paketų filtras yra integruotas į branduolį. Paketų filtravimas yra valdomas programa <tt>iptables</tt>, kuri kreipiasi į branduolį, įterpia į branduolio paketų filtravimo lentelę taisykles, ir taip nustato, kokius paketus filtruoti. Taip padaryti filtrai galioja iki sistemos perkrovimo, todėl po perkrovimo reikia <tt>iptables</tt> komandas suvesti į paleidimo skriptus. Linux sistemoje tai padaryti galima pasinaudojus cron programa.</p>
<p>Taisyklės yra apjungiamos į sąrašus, vadinamus grandimis (chain). Branduolys turi tris pagrindines grandis: INPUT, OUTPUT, FORWARD.</p>
<ul>
<li>Iš tinklo į sąsają patekęs paketas tiriamas &#8211; analizuojama paketo antraštė
<ul>
<li>Jei jis skirtas šiam kompiuteriui, jis perleidžiamas INPUT grandžiai</li>
<li>Jei jis skirtas kitam kompiuteriui, ir jei yra įjungtas persiuntimas (FORWARDING), paketas nusiunčiamas nurodytai grandžiai,</li>
<li>Kitais atvejais – paketas sustabdomas</li>
</ul>
</li>
<li>Į tinklą  siunčiami paties kompiuterio generuojami paketai persiunčiami OUTPUT grandžiai.</li>
</ul>
<p>Keletas veiksmų<span lang="LT">, kuriuos galima atlikti su grandimis:</span></p>
<ul>
<li>sukurti naują grandį <tt>(-N)</tt><tt> iptables -N syn-flood</tt></li>
<li>išmesti taisykles iš grandies <tt>(-F) iptables -F</tt></li>
<li>šalinti tuščią grandį <tt>(-X)</tt><tt> iptables -X</tt></li>
<li>nustatyti bazines (default) taisykles (policy) grandžiai <tt>(-P) </tt><tt>iptables -P INPUT DROP (</tt>bazinė INPUT grandies taisyklė &#8211; sustabdyti paketus)</li>
<li>perskaityti grandies taisykles <tt>(-L)</tt><tt>iptables -L</tt></li>
<li>pridėti taisyklę prie grandies <tt>(-A)</tt><tt> iptables -A INPUT -i eth0 -d 127.0.0.1 -j DROP </tt>(sustabdyti paketus, atėjusius į sąsają eth0, adresuotus 127.0.0.1). Pridedant taisykles svarbu žinoti, kad jos bus taikomos iš eilės!</li>
<li>pašalinti taisyklę iš grandies <tt>(-D)</tt><tt>iptables -D INPUT -i eth0 -d 127.0.0.1 -j DROP </tt><tt>(pašalinti anksčiau apibrėžtą taisyklę)</tt></li>
</ul>
<ol>
<li><tt>INPUT - dedamos taisyklės, kurios filtruoja į sistemą ateinančius paketus.</tt></li>
<li><tt>OUTPUT - dedamos taisyklės, kurios filtruoja iš sistemos išeinančius paketus.</tt></li>
<li><tt>FORWARD - dedamos taisyklės, kurios filtruoja per sistemą iš vieno į kitą interfeisą siunčiamus paketų srautus.</tt></li>
</ol>
<p><tt>Kiti nurodomi iptables parametrai:</tt></p>
<table style="height: 226px;" border="1" cellspacing="1" cellpadding="1" width="482">
<tbody>
<tr>
<td><span style="font-size: 16px;"><span style="font-family: courier new,courier,monospace;">-s &lt;adresas&gt;</span></span></td>
<td><span style="line-height: 120%; font-size: 11pt;" lang="LT">siuntėjo adresas</span></td>
</tr>
<tr>
<td><span style="line-height: 120%; font-family: 'courier new'; font-size: 11pt;" lang="LT">-d &lt;adresas&gt;</span></td>
<td><span style="line-height: 120%; font-size: 11pt;" lang="LT">gavėjo adresas</span></td>
</tr>
<tr>
<td><span style="line-height: 120%; font-family: 'courier new'; font-size: 11pt;" lang="LT">-p &lt;proto&gt;</span></td>
<td><span style="line-height: 120%; font-size: 11pt;" lang="LT">protokolas. (TCP, UDP, ICMP)</span></td>
</tr>
<tr>
<td><span style="line-height: 120%; font-family: 'courier new'; font-size: 11pt;" lang="LT">-i &lt;int&gt;</span></td>
<td>interfeisas įėjimo</td>
</tr>
<tr>
<td><span style="line-height: 120%; font-family: 'courier new'; font-size: 11pt;" lang="LT">-o &lt;int&gt;</span></td>
<td>interfeisas įšėjimo</td>
</tr>
<tr>
<td><span style="line-height: 120%; font-family: 'courier new'; font-size: 11pt;" lang="LT">-j &lt;target&gt;</span></td>
<td>Nurodoma ką daryti su paketu: ACCEPT ar DROP.</td>
</tr>
</tbody>
</table>
<p>Adresas gali būti užrašomas:</p>
<ol>
<li>Pilnu vardu: www.google.lt</li>
<li>Ip adresu: 192.168.58.2</li>
<li>Ip adresu su kauke (netmask): 192.168.58.2/255.255.255.0</li>
<li>Ip adresu su prefiksu: 192.168.58.2/24</li>
<li>Norint nurodyti paneigimą: !192.168.58.2 Šiuo atveju taisyklė bus taikoma visiems adresams, išskyrus nurodytąjį.</li>
</ol>
<table style="height: 1237px;" border="1" cellspacing="1" cellpadding="1" width="561">
<tbody>
<tr>
<td>Eil.nr</td>
<td><span lang="LT">iptables konfigūracijos eilutė </span></td>
<td><span lang="LT">Atliekamos funkcijos</span></td>
</tr>
<tr>
<td>1</td>
<td>
<pre><span style="font-size: 9px;">/sbin/iptables -P INPUT DROP</span>

<span style="font-size: 9px;">/sbin/iptables -P OUTPUT DROP</span>

<span style="font-size: 9px;">/sbin/iptables -P FORWARD DROP</span></pre>
</td>
<td>Grandžių standartinės taisykles nustatytos taip, kad būtų numesti visi paketai</td>
</tr>
<tr>
<td>2</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A INPUT -i lo -j ACCEPT</span></span></pre>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A OUTPUT -o lo -j ACCEPT</span></span></pre>
</td>
<td>Leisti išsiųsti ir gauti paketus per lokalų lo interfeisą.</td>
</tr>
<tr>
<td>3</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP</span></span></pre>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP</span></span></pre>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP</span></span></pre>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP</span></span></pre>
</td>
<td>Sustabdyti iš siuntėjo atėjusius broadcast paketus.</td>
</tr>
<tr>
<td>4</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">/usr/sbin/iptables -A INPUT -i eth1 -p all -s 160.86.0.0/16 -j ACCEPT</span></span>

<span style="font-size: 9px;">/usr/sbin/iptables -A INPUT -i eth1 -p all -j DROP</span></pre>
</td>
<td>Priima/Uždraudžia visus įeinančius protokolus į įšorinį (eth1) interfeisą iš siuntėjo.</td>
</tr>
<tr>
<td>5</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">iptables -A INPUT -i eth0 -p icmp --icmp-type destination-unreachable -j ACCEPT</span></span></pre>
<pre><span style="font-size: 9px;"><span lang="LT">iptables -A INPUT -i eth0 -p icmp --icmp-type time-exceeded -j ACCEPT</span></span></pre>
<pre><span style="font-size: 9px;"><span lang="LT">iptables -A INPUT -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT</span></span></pre>
<pre><span style="font-size: 9px;"><span lang="LT">iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j ACCEPT</span></span></pre>
</td>
<td>Į grandį INPUT pridedama taisyklė: ICMP protokolo pranešimas: destination-unreachable/time-exceeded/echo-reply/echo-request</td>
</tr>
<tr>
<td>6</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">iptables -A INPUT -s !127.0.0.0/8 -p tcp --dport 111 -j DROP</span></span></pre>
</td>
<td>Sustabdyti atėjusius visus TCP paketus išskyrus 127.0.0.0/8 į 111 portą.</td>
</tr>
<tr>
<td>7</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">iptables -A INPUT -p tcp -i eth0 --dport 113 -j REJECT --reject-with tcp-reset</span></span></pre>
</td>
<td>Atmesti visus atėjusius TCP paketus į 113 portą ir išsiunčiamas ICMP pranešimas: tcp-reset.</td>
</tr>
<tr>
<td>8</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A INPUT -p tcp -i eth0 --dport 4<span>  </span>-j ACCEPT</span></span></pre>
</td>
<td>Priimti visus atėjusius TCP paketus į  4 portą (sfs).</td>
</tr>
<tr>
<td>9</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT</span></span></pre>
</td>
<td>Priimti visus atėjusius TCP paketus į 21 portą (ftp).</td>
</tr>
<tr>
<td>10</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT</span></span></pre>
</td>
<td>Priimti visus atėjusius TCP paketus į 22 portą (ssh)</td>
</tr>
<tr>
<td>11</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT</span></span></pre>
</td>
<td>Priimti visus atėjusius TCP paketus į 80 portą (http)</td>
</tr>
<tr>
<td>12</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A INPUT -p tcp -i eth0 --dport 443 -j ACCEPT</span></span></pre>
</td>
<td>Priimti visus atėjusius TCP paketus į 443 portą ( https).</td>
</tr>
<tr>
<td>13</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A OUTPUT -p ALL -o lo -j ACCEPT</span></span></pre>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A OUTPUT -p ALL -o eth1 -j ACCEPT</span></span></pre>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A OUTPUT -p ALL -o eth0 -j ACCEPT</span></span></pre>
</td>
<td>Leidžia visus išeinančius protokolus iš šių interfeisų: lo/eth1/eth0</td>
</tr>
<tr>
<td>14</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE</span></span></pre>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A FORWARD -i eth</span><span>1</span><span lang="LT"> -j ACCEPT</span></span></pre>
<pre><span style="font-size: 9px;"><span lang="LT">/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT</span></span></pre>
</td>
<td>1. Pirma taisyklė prijungia LAN prie interneto naudojant NAT.</p>
<p>2. Grandinei FORWARD leidžia įeinančius paketus iš eth1 interfeiso.</p>
<p>3. Leidžia sekti tokias susijungimo būsenas: ESTABLISHED, RELATED</td>
</tr>
<tr>
<td>15</td>
<td>
<pre><span style="font-size: 9px;"><span lang="LT">iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 160.86.0.50</span></span></pre>
<pre><span style="font-size: 9px;"><span lang="LT">iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination 160.86.0.51</span></span></pre>
</td>
<td><span style="font-size: 8px;"><span style="font-size: 10px;"><span style="font-size: 12px;">1. Nukreipia per TCP 80 portą iš interneto į vidinio tinklo adresą 160.86.0.50</span></span></span></p>
<p><span style="font-size: 8px;"><span style="font-size: 10px;"><span style="font-size: 12px;">2. Nukreipia per TCP 21 portą iš interneto į vidinio tinklo adresą 160.86.0.51</span></span></span></td>
</tr>
</tbody>
</table>
<p>Sistemos saugumo skanavimas su &#8220;Nmap&#8221;</p>
<p>Programa „NMap“ skirta tinklo ir jo saugumo tyrimui. Programa gali:</p>
<ul>
<li>nustatyti veikiančius tinklo įrenginius</li>
<li>skenuoti prievadus, surasti atvirus prievadus</li>
<li>nustatyti programinės įrangos versiją</li>
<li>atpažinti operacinę sistemą.</li>
</ul>
<p>Papildomos taisyklės:</p>
<ol>
<li>Drausti vietinio tinklo vartotojui 10.0.0.44 jungtis prie Linux ugniasienės TCP 8080 porto (Lokalios -Intranet Web svetainės) iš vidinio tinklo</li>
<li>Leisti įeinančius tik iš 10.0.0.0/24 tinklo paketus jungtis prie TCP 110 porto (Pašto POP3 serveris laiškų paėmimui iš pašto dėžės) per vidinio tinklo (eth2) interfeisą.</li>
<li>Leisti įeinančius paketus jungtis prie TCP 143 porto (Pašto IMAP serveris laiškų paėmimui iš pašto dėžės) per vidinio tinklo (eth2) interfeisą.</li>
<li>Nustatykite DNAT nukreipimą iš interneto į TCP 443 portą ateinantiems srautams į vidiniame tinkle esančio HTTPS serverio 10.0.0.32 TCP 443 portą.</li>
</ol>
<p>iptables -A INPUT -i eth2 -s 10.0.0.44 -p tcp &#8211;dport 8080 -j DROP</p>
<p>iptables -A INPUT -i eth2 -s 10.0.0.0/24 -p tcp &#8211;dport 110 -j ACCEPT</p>
<p>iptables -A INPUT -i eth2 -p tcp &#8211;dport 143 -j ACCEPT</p>
<p>iptables -t nat -A PREROUTING -i eth1 -p tcp &#8211;dport 443 -j DNAT &#8211;to-destination 10.0.0.32:443</p>
]]></content:encoded>
			<wfw:commentRss>http://kernel.lt/2010/04/iptables-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->