<?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>Hodžův blog &#187; Scriptíky</title>
	<atom:link href="http://hodza.net/category/linux/scriptiky/feed/" rel="self" type="application/rss+xml" />
	<link>http://hodza.net</link>
	<description>I přestože jsem paranoidní neznamená, že mě nedostanou...</description>
	<lastBuildDate>Wed, 08 Sep 2010 11:37:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Generování Self-Signed Certifikátu skriptem</title>
		<link>http://hodza.net/2009/06/09/generovani-self-signed-certifikatu-skriptem/</link>
		<comments>http://hodza.net/2009/06/09/generovani-self-signed-certifikatu-skriptem/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 07:23:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Bezpečnost]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scriptíky]]></category>

		<guid isPermaLink="false">http://hodza.net/?p=245</guid>
		<description><![CDATA[Už mě to nebaví pořád psát, takže: #!/bin/bash SERVER_NAME=$1 OPENSSL_PATH=/usr/bin/openssl $OPENSSL_PATH genrsa -des3 -out $SERVER_NAME.key 1024 $OPENSSL_PATH genrsa -out $SERVER_NAME.key 1024 $OPENSSL_PATH rsa -in $SERVER_NAME.key -out $SERVER_NAME.pem $OPENSSL_PATH req -new -key $SERVER_NAME.pem -out $SERVER_NAME.csr $OPENSSL_PATH x509 -req -days 365 -in $SERVER_NAME.csr -signkey $SERVER_NAME.pem -out $SERVER_NAME.crt]]></description>
			<content:encoded><![CDATA[<p>Už mě to nebaví pořád psát, takže:</p>
<p><code>#!/bin/bash<br />
SERVER_NAME=$1<br />
OPENSSL_PATH=/usr/bin/openssl<br />
$OPENSSL_PATH genrsa -des3 -out $SERVER_NAME.key 1024<br />
$OPENSSL_PATH genrsa -out $SERVER_NAME.key 1024<br />
$OPENSSL_PATH rsa -in $SERVER_NAME.key -out $SERVER_NAME.pem<br />
$OPENSSL_PATH req -new -key $SERVER_NAME.pem -out $SERVER_NAME.csr<br />
$OPENSSL_PATH x509 -req -days 365 -in $SERVER_NAME.csr -signkey $SERVER_NAME.pem -out $SERVER_NAME.crt<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://hodza.net/2009/06/09/generovani-self-signed-certifikatu-skriptem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iptables v1.3.6: X Couldn&#8217;t load match `ipp2p&#8217;</title>
		<link>http://hodza.net/2007/09/13/iptables-v136-x-couldnt-load-match-ipp2p/</link>
		<comments>http://hodza.net/2007/09/13/iptables-v136-x-couldnt-load-match-ipp2p/#comments</comments>
		<pubDate>Thu, 13 Sep 2007 07:03:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scriptíky]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://hodza.net/?p=75</guid>
		<description><![CDATA[Také se Vám stalo, že kompilace IPP2P proběhla v pořádku, ale pčesto iptables hlásí při zavádění modulu chybové hlášení &#8222;iptables v1.3.6: X Couldn&#8217;t load match `ipp2p&#8217;&#8222;? Řešení je jednoduché &#8211; v souboru makefile zaměňte při vytváření knihovny ld za gcc. Celý postup s mým patchem naleznete zde: apt-get install patch cd /usr/src wget http://ipp2p.org/downloads/ipp2p-0.8.2.tar.gz tar [...]]]></description>
			<content:encoded><![CDATA[<p>Také se Vám stalo, že kompilace <a href="http://ipp2p.org/" title="IPP2P HomePage">IPP2P</a> proběhla v pořádku, ale pčesto <a href="http://netfilter.org/projects/iptables/index.html" title="Netfilter HomePage">iptables</a> hlásí při zavádění  modulu chybové hlášení &#8222;<em>iptables v1.3.6: X Couldn&#8217;t load match `ipp2p&#8217;</em>&#8222;? Řešení je jednoduché &#8211; v souboru makefile zaměňte při vytváření knihovny <em>ld</em> za <em>gcc</em>. Celý postup s mým patchem naleznete zde:</p>
<p><code>apt-get install patch<br />
cd /usr/src<br />
wget http://ipp2p.org/downloads/ipp2p-0.8.2.tar.gz<br />
tar -xzf ipp2p-0.8.2.tar.gz<br />
cd ipp2p-0.8.2<br />
wget http://hodza.net/wp-content/files/ipp2p-0.8.2.patch<br />
patch Makefile &lt; ipp2p-0.8.2.patch<br />
make<br />
...</code></p>
]]></content:encoded>
			<wfw:commentRss>http://hodza.net/2007/09/13/iptables-v136-x-couldnt-load-match-ipp2p/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Omezování P2P sítí &#8211; IPP2P &amp; Ubuntu 7.04 (Feisty Fawn)</title>
		<link>http://hodza.net/2007/09/10/omezovani-p2p-siti-ipp2p-ubuntu-704-feisty-fawn/</link>
		<comments>http://hodza.net/2007/09/10/omezovani-p2p-siti-ipp2p-ubuntu-704-feisty-fawn/#comments</comments>
		<pubDate>Mon, 10 Sep 2007 07:49:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scriptíky]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://hodza.net/?p=74</guid>
		<description><![CDATA[IPP2P patří asi mezi nejlepší (volně dostupné) filtry k omezování P2P sítí. Instalace se dá zvládnout za několik málo chvil a výsledek je velmi uspokojivý. Předpokladem pro úspěšné sestavení IPP2P je ovšem přítomnost hlavičkových souborů a modul CONNMARK v jádře. Postup instalace: 1. Nainstalujeme si hlavičkové soubory kernelu a iptables sudo apt-get install iptables-dev linux-headers-2.6.20-16-server [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ipp2p.org/" title="IPP2P HomePage">IPP2P</a> patří asi mezi nejlepší (volně dostupné) filtry k omezování P2P sítí. Instalace se dá zvládnout za několik málo chvil a výsledek je velmi uspokojivý.  Předpokladem pro úspěšné sestavení <a href="http://ipp2p.org/" title="IPP2P HomePage">IPP2P</a> je ovšem přítomnost hlavičkových souborů a <a href="http://hodza.net/2007/09/10/novy-kernel-ubuntu-704-feisty-fawn/" title="http://hodza.net/2007/09/10/novy-kernel-ubuntu-704-feisty-fawn/">modul CONNMARK v jádře.</a></p>
<p>Postup instalace:<br />
1. Nainstalujeme si hlavičkové soubory kernelu a iptables<br />
<code>sudo apt-get install iptables-dev linux-headers-2.6.20-16-server</code><br />
<span id="more-74"></span><br />
2. Stáhneme rozšíření IPP2P<br />
<code>cd /usr/src<br />
wget http://ipp2p.org/downloads/ipp2p-0.8.2.tar.gz</code></p>
<p>3. Rozbalíme stažený archív<br />
<code>tar -xzf ipp2p-0.8.2.tar.gz<br />
cd ipp2p-0.8.2/</code></p>
<p>Update: <a href="http://hodza.net/2007/09/13/iptables-v136-x-couldnt-load-match-ipp2p/" title="IPP2P iptables problem">aplikujeme patch na Makefile</a></p>
<p>4. Spustíme kompilaci<br />
<code>make</code></p>
<p>5. Nakopírujeme moduly do standardních adresářů<br />
<code>cp libipt_ipp2p.so /lib/iptables<br />
cp ipt_ipp2p.ko /lib/modules/`uname -r`/kernel/net/ipv4</code></p>
<p>6. Vygenerujeme novou mapu závislostí<br />
<code>sudo depmod</code></p>
<p>7. Načteme modul IPP2P do jádra<br />
sudo <code>insmod /lib/modules/`uname -r`/kernel/net/ipv4/ipt_ipp2p.ko</code></p>
<p><strong>Samotné filtrování P2P sítí pak provádím takto:</strong></p>
<p>1. Označkuju si veškeré P2P sítě (UDP pakety mimo CONNMARK!)<br />
<code>iptables -t mangle -A PREROUTING -p tcp -j CONNMARK --restore-mark<br />
iptables -t mangle -A PREROUTING -p tcp -m mark ! --mark 0 -j ACCEPT<br />
iptables -t mangle -A PREROUTING -p tcp -m ipp2p --edk -j MARK --set-mark 1<br />
iptables -t mangle -A PREROUTING -p tcp -m ipp2p --dc -j MARK --set-mark 2<br />
iptables -t mangle -A PREROUTING -p tcp -m ipp2p --gnu -j MARK --set-mark 3<br />
iptables -t mangle -A PREROUTING -p tcp -m ipp2p --kazaa -j MARK --set-mark 4<br />
iptables -t mangle -A PREROUTING -p tcp -m ipp2p --bit -j MARK --set-mark 5<br />
iptables -t mangle -A PREROUTING -p tcp -m ipp2p --apple -j MARK --set-mark 6<br />
iptables -t mangle -A PREROUTING -p tcp -m ipp2p --winmx -j MARK --set-mark 7<br />
iptables -t mangle -A PREROUTING -p tcp -m ipp2p --soul -j MARK --set-mark 8<br />
iptables -t mangle -A PREROUTING -p tcp -m ipp2p --ares -j MARK --set-mark 9<br />
iptables -t mangle -A PREROUTING -p tcp -j CONNMARK --save-mark<br />
iptables -t mangle -A PREROUTING -p udp -m ipp2p --edk -j MARK --set-mark 1<br />
iptables -t mangle -A PREROUTING -p udp -m ipp2p --dc -j MARK --set-mark 2<br />
iptables -t mangle -A PREROUTING -p udp -m ipp2p --gnu -j MARK --set-mark 3<br />
iptables -t mangle -A PREROUTING -p udp -m ipp2p --kazaa -j MARK --set-mark 4<br />
iptables -t mangle -A PREROUTING -p udp -m ipp2p --bit -j MARK --set-mark 5<br />
iptables -t mangle -A PREROUTING -p udp -m ipp2p --apple -j MARK --set-mark 6<br />
iptables -t mangle -A PREROUTING -p udp -m ipp2p --winmx -j MARK --set-mark 7<br />
iptables -t mangle -A PREROUTING -p udp -m ipp2p --soul -j MARK --set-mark 8<br />
iptables -t mangle -A PREROUTING -p udp -m ipp2p --ares -j MARK --set-mark 9</code></p>
<p>2. Ve vhodnou dobu pak například pomocí démona CRON P2P sítě zakazuji<br />
<code>iptables -t mangle -F POSTROUTING<br />
iptables -t mangle -A POSTROUTING -m mark --mark 1 -j DROP<br />
iptables -t mangle -A POSTROUTING -m mark --mark 2 -j DROP<br />
iptables -t mangle -A POSTROUTING -m mark --mark 3 -j DROP<br />
iptables -t mangle -A POSTROUTING -m mark --mark 4 -j DROP<br />
iptables -t mangle -A POSTROUTING -m mark --mark 5 -j DROP<br />
iptables -t mangle -A POSTROUTING -m mark --mark 6 -j DROP<br />
iptables -t mangle -A POSTROUTING -m mark --mark 7 -j DROP<br />
iptables -t mangle -A POSTROUTING -m mark --mark 8 -j DROP<br />
iptables -t mangle -A POSTROUTING -m mark --mark 9 -j DROP</code></p>
<p>nebo naopak povoluji:<br />
<code>iptables -t mangle -F POSTROUTING<br />
iptables -t mangle -A POSTROUTING -m mark --mark 1 -j ACCEPT<br />
iptables -t mangle -A POSTROUTING -m mark --mark 2 -j ACCEPT<br />
iptables -t mangle -A POSTROUTING -m mark --mark 3 -j ACCEPT<br />
iptables -t mangle -A POSTROUTING -m mark --mark 4 -j ACCEPT<br />
iptables -t mangle -A POSTROUTING -m mark --mark 5 -j ACCEPT<br />
iptables -t mangle -A POSTROUTING -m mark --mark 6 -j ACCEPT<br />
iptables -t mangle -A POSTROUTING -m mark --mark 7 -j ACCEPT<br />
iptables -t mangle -A POSTROUTING -m mark --mark 8 -j ACCEPT<br />
iptables -t mangle -A POSTROUTING -m mark --mark 9 -j ACCEPT</code></p>
]]></content:encoded>
			<wfw:commentRss>http://hodza.net/2007/09/10/omezovani-p2p-siti-ipp2p-ubuntu-704-feisty-fawn/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Antispam na pdf a xls soubory</title>
		<link>http://hodza.net/2007/08/10/antispam-na-pdf-a-xls-soubory/</link>
		<comments>http://hodza.net/2007/08/10/antispam-na-pdf-a-xls-soubory/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 07:43:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scriptíky]]></category>
		<category><![CDATA[Služby]]></category>
		<category><![CDATA[Smtp]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://hodza.net/?p=70</guid>
		<description><![CDATA[O PDF spamu jste se mohli dočíst například na stránkách Lupy ve článku Dokumenty PDF, o které nikdo nestojí. Přestože si myslím, že PDF spam nebude mít dlouhou budoucnost, je potřeba s ním bojovat. Už kdysi dávno jsem do svých serverů doinstaloval OCR plugin. Ten doposud funguje poměrně spolehlivě. Je však nutno říct, že kvůli [...]]]></description>
			<content:encoded><![CDATA[<p>O PDF spamu jste se mohli dočíst například na stránkách <a href="http://www.lupa.cz" title="Server o ceskem internetu">Lupy</a> ve článku <a href="http://www.lupa.cz/clanky/spz-2007-spam-pres-pdf/" title="Dokumenty PDF, o které nikdo nestojí">Dokumenty PDF, o které nikdo nestojí.</a> Přestože si myslím, že PDF spam nebude mít dlouhou budoucnost, je potřeba s ním bojovat. Už kdysi dávno jsem do svých serverů doinstaloval OCR plugin. Ten doposud funguje poměrně spolehlivě. Je však nutno říct, že kvůli výkonu se scanuji pouze obrázkové emaily, které prošli SpamAssasinem &#8222;bez ztráty květinky&#8220; <span id="more-70"></span> (to se mi doposud docela dařilo díky sadám pravidel z <a href="http://www.rulesemporium.com/" title="SpamAssassin Rules Emporium">rulesemporium.com</a>). Bohužel spameři jsou neskutečně vynalézaví lidé a tak postupem času zjišťuji, že čím dál tím více obrázkových emailů je nutno prohánět OCR-kem (a zatěžovat tak systém). Naštestí se našlo několik nadšenců, kteří obrázky sbírají a provozují distribuovanou databázi &#8222;spam obrázků&#8220; a jiných &#8222;sraček&#8220;. Instalace je více než triviální:</p>
<p>Nejprve si stáhneme script, který se stará o pravidelný update ClamAVu (a nastavíme mu práva pro spuštění)<br />
<code>cd /usr/bin<br />
wget http://www.sanesecurity.co.uk/clamav/ss-msrbl.sh<br />
chmod +x ss-msrbl.sh</code></p>
<p>V dalším kroku upravíme některé parametry podle systému (u mě například)<br />
<code># vi ss-msrbl.sh<br />
clamscan="/usr/bin/clamdscan"<br />
clam_sigs="/var/clamav"<br />
clam_user="clamav"</code></p>
<p>Na konec script spustíme<br />
<code>./ss-msrbl.sh</code></p>
<p>V případě, že je vše ok (tail /var/log/clamav/clamd.log, tail /var/log/clamav/freshclam.log ), nezbývá nám nic jiného, než celý proces zautomatizovat pomocí cronu.<br />
<code># crontab -e<br />
59 04 * * * /usr/bin/ss-msrbl.sh &amp;&gt; /dev/null<br />
</code></p>
<p>Po týdením sledování můžu konstatovat, že počet obrázků, které prolezli SpamAssassinem, ale nedostali se díky výše uvedenému filtru do OCR je 22,5%, což mi přijde jako docela velké číslo.</p>
]]></content:encoded>
			<wfw:commentRss>http://hodza.net/2007/08/10/antispam-na-pdf-a-xls-soubory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Empty jako náhrada za Expect</title>
		<link>http://hodza.net/2007/03/29/empty-jako-nahrada-za-expect/</link>
		<comments>http://hodza.net/2007/03/29/empty-jako-nahrada-za-expect/#comments</comments>
		<pubDate>Thu, 29 Mar 2007 08:11:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scriptíky]]></category>
		<category><![CDATA[Ssh]]></category>

		<guid isPermaLink="false">http://hodza.net/?p=54</guid>
		<description><![CDATA[Pro ssh přihlašování bez klíčů používám standardně expect (jak už jste se mohli dočíst). Dnes jsem potřeboval implementovat novou funkci a vzhledem k tomu, že se mi ji zrovna dvakrát nechtělo vymýšlet, rozhodl jsem se, že požádám o radu strýčka gůgla. Funkci jsem nenašel, ale zato jsem narazil na projekt empty, jenž je &#8222;obdobou&#8220; expectu. [...]]]></description>
			<content:encoded><![CDATA[<p>Pro ssh přihlašování bez klíčů používám standardně expect <a href="http://hodza.net/2007/02/03/ssh-bez-klicu-aneb-k-cemu-je-ten-expect/" title="SSH bez klíčů">(jak už jste se mohli dočíst)</a>. Dnes jsem potřeboval implementovat novou funkci a vzhledem k tomu, že se mi ji zrovna dvakrát nechtělo vymýšlet, rozhodl jsem se, že požádám o radu strýčka gůgla. Funkci jsem nenašel, ale zato jsem narazil na projekt empty, jenž je &#8222;obdobou&#8220; expectu.</p>
<p><span id="more-54"></span></p>
<p>Finta Fň je v tom, že emty spoští  procesy a apliace pod pseudo terminálem. Co se mi na něm líbí, je jednoduchost. Pro ukázku přikládám  4 scripty z jejich domovské stránky, které se přes telnet přihlásí na stroj a vypíší whoami.</p>
<p>1. script &#8211; v Empty<br />
<code>#!/bin/sh<br />
empty -f -i in -o out telnet foo.bar.com<br />
empty -w -i out -o in "ogin:" "luser\n"<br />
empty -w -i out -o in "assword:" "TopSecret\n"<br />
empty -s -o in "who am i\n"<br />
empty -s -o in "exit\n"</code></p>
<p>2. script &#8211; to samé ale v TCL/Expect<br />
<code>#!/usr/bin/expect<br />
spawn telnet foo.bar.com<br />
expect ogin {send luser\r}<br />
expect assword {send TopSecret\r}<br />
send "who am i\r"<br />
send "exit\r"<br />
expect eof</code></p>
<p>3. script &#8211; to samé, ale jako Perl/expect module<br />
<code>#!/usr/bin/perl<br />
use Expect;<br />
my $exp = Expect-&gt;spawn("telnet foo.bar.com");<br />
$exp-&gt;expect($timeout,<br />
[ 'ogin: $' =&gt; sub {<br />
$exp-&gt;send("luser\n");<br />
exp_continue; }<br />
],<br />
[ 'assword:$' =&gt; sub {<br />
$exp-&gt;send("TopSecret\n");<br />
exp_continue; }<br />
],<br />
'-re', qr'[#&gt;:] $'<br />
);<br />
$exp-&gt;send("who am i\n");<br />
$exp-&gt;send("exit\n");<br />
$exp-&gt;soft_close();</code></p>
<p>4. script &#8211; to samé v Python/Pexpect<br />
<code>#!/usr/local/bin/python<br />
import pexpect<br />
child = pexpect.spawn('telnet foo.bar.com');<br />
child.expect('ogin: ');<br />
child.sendline('luser');<br />
child.expect('assword:');<br />
child.sendline('TopSecret');<br />
child.sendline('who am i');<br />
child.sendline('exit');<br />
child.expect(pexpect.EOF);<br />
print child.before;</code></p>
<p>Tak co &#8211; kterou metodu by jste zvolili?</p>
]]></content:encoded>
			<wfw:commentRss>http://hodza.net/2007/03/29/empty-jako-nahrada-za-expect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Změna velkých písmen na malé v názvech souborů</title>
		<link>http://hodza.net/2007/02/02/zmena-velkych-pismen-na-male-v-nazvech-souboru/</link>
		<comments>http://hodza.net/2007/02/02/zmena-velkych-pismen-na-male-v-nazvech-souboru/#comments</comments>
		<pubDate>Fri, 02 Feb 2007 22:53:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Scriptíky]]></category>

		<guid isPermaLink="false">http://hodza.net/?p=12</guid>
		<description><![CDATA[Jednoho dne mě začlo štvát, že mám velikost písmen u každého souboru jinak. Dělat to v emcéčku pomocí SHIFT-F6 je nuda a tak jsem si na to vymyslel jednoduchý skriptík. Tady je: # for F in * ; do mv $F `echo $F &#124; tr 'A-Z' 'a-z'` ; done Uznávám, že to není nic světoborného [...]]]></description>
			<content:encoded><![CDATA[<p>Jednoho dne mě začlo štvát, že mám velikost písmen u každého souboru jinak. Dělat to v emcéčku pomocí SHIFT-F6 je nuda a tak jsem si na to vymyslel jednoduchý skriptík. <span id="more-12"></span>Tady je:</p>
<p><code># for F in * ; do mv $F `echo $F | tr 'A-Z' 'a-z'` ; done</code></p>
<p>Uznávám, že to není nic světoborného a zvládlo by to i dítko školou povinné, ale zkuste to dělat ručně u 4000 souborů.</p>
]]></content:encoded>
			<wfw:commentRss>http://hodza.net/2007/02/02/zmena-velkych-pismen-na-male-v-nazvech-souboru/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
