<?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>WwW.TarikZengin.CoM &#187; Gentoo</title>
	<atom:link href="http://tarikzengin.com/tag/gentoo/feed/" rel="self" type="application/rss+xml" />
	<link>http://tarikzengin.com</link>
	<description>Japonya&#039;dan bildiriyor....</description>
	<lastBuildDate>Sat, 01 Oct 2011 06:25:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Buffalo Wifi Router ile OpenWRT Kullanimi</title>
		<link>http://tarikzengin.com/buffalo-wifi-router-ile-openwrt-kullanimi/</link>
		<comments>http://tarikzengin.com/buffalo-wifi-router-ile-openwrt-kullanimi/#comments</comments>
		<pubDate>Sat, 13 Aug 2011 15:05:23 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Buffalo]]></category>
		<category><![CDATA[OpenWRT]]></category>
		<category><![CDATA[Samba]]></category>

		<guid isPermaLink="false">http://tarikzengin.com/?p=1007</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/buffalo-wifi-router-ile-openwrt-kullanimi/" title="Buffalo Wifi Router ile OpenWRT Kullanimi"></a>Yaklasik 2 yildir WZR-HP-G300NH model bir wifi router kullaniyorum. Buffalo, Japonya disinda da bilinen bir marka fakat Turkiye&#8217;de satisi var mi ya da duyan eden oldu mu bilmiyorum. Urunleri gayet kaliteli. Japonya&#8217;da uretilen elektronik urunlerin cok buyuk bir cogunlugunun &#8211; &#8230;<p class="read-more"><a href="http://tarikzengin.com/buffalo-wifi-router-ile-openwrt-kullanimi/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/buffalo-wifi-router-ile-openwrt-kullanimi/" title="Buffalo Wifi Router ile OpenWRT Kullanimi"></a><p style="text-align: justify;">Yaklasik 2 yildir <a href="http://buffalo.jp/products/catalog/network/wzr-hp-g300nh/" target="_blank">WZR-HP-G300NH</a> model bir wifi router kullaniyorum. <a href="http://www.buffalo-technology.com/" target="_blank">Buffalo</a>, Japonya disinda da bilinen bir marka fakat Turkiye&#8217;de satisi var mi ya da duyan eden oldu mu bilmiyorum. Urunleri gayet kaliteli.</p>
<p style="text-align: justify;">Japonya&#8217;da uretilen elektronik urunlerin cok buyuk bir cogunlugunun &#8211; firmanin ne kadar buyuk ve dunya capinda bilinirlige sahip oldugundan bagimsiz olarak &#8211; Japonca disindaki dillere destegi bulunmuyor. Bunun, bilgisayar alirken Ingilizce klavye alamamak, Ingilizce isletim sistemi alamamak, TVlerde yalnizca Japonca menu dili kullanmak zorunda kalmak gibi cesitli orneklerini verebilirim. Ilk ikisi her ne kadar, en azindan benim icin, sorun teskil etmese de, genel olarak bir sikinti soz konusu. Routerda da durum bu idi. 1 yil suresince Japonca arayuzu ile kullandim. Router&#8217;in ayarlari genel olarak asina oldugum seyler oldugu icin temel kullanimda pek sorun yasamadim. Fakat aletin donanimsal ozellikleri hic de fena sayilmayacak sekilde iyi ve orijinal firmware biraz yetersiz kalinca, yeni bir ROM yukleyerek hem farkli ozellikler kullanabilir hem de arayuzu istedigim dilde kullanabilir duruma getirmeye kalkistim.<span id="more-1007"></span></p>
<p style="text-align: justify;">Router uzerinde bir USB portu bulunuyor ve stock ROM buradan baglanan hard disk icin yalnizca FAT ve XFS destekliyor idi. Ben de routeri ilk aldigim zaman harici diski(Buffalo &#8211; 1TB) XFS ile formatlamistim. Ag paylasim isini Samba yapiyor. Bir de &#8211; sanirim kendi yazdiklari &#8211; bir torrent istemcisi calistiriyor. Yeni yuklenecek dagitimin da en az bu ozellikleri saglamasi ilk hedefti.</p>
<p style="text-align: justify;">Oncelikle DD-Wrt dagitimini denedim. Stock ROM&#8217;dan DD-WRTye gecmek oldukca basit. Modele ozel ROM, stock web arayuzunden yuklendi. Yaklasik 1 haftalik kullanim suresinde, sistem genel itibariyle calisiyor olsa da, Samba nedenini bulamadigim bir sekilde fazla kaynak tuketiyordu. Alternatif olarak NFS ile de kullanmayi denedim fakat verim alamadim. Ustune ustluk torrent istemcisi yuklemekte sorun cikinca OpenWRT&#8217;ye de bir sans vermek istedim. Aralarinda bir halef-selef iliskisi var ama hangisi hangisi net bilmiyorum. Bir yerden sonra da ayriliyorlar sanirim. Neyse.</p>
<p style="text-align: justify;">OpenWRT&#8217;nin yuklenmesi onceki kadar sorunsuz olmadi malesef. Once DD-WRT&#8217;de oldugu gibi web arayuzunden yuklemeyi denedigimde yukleniyor gorunmesine ragmen hic bir degisiklik olmadan tekrar eski halinde acildi. Biraz daha detayli bilgi alabilmek icin telnet uzerinden baglanip, yuklenecek dosyayi da tftp server uzerinden gonderip yuklemeyi denedigimde de yine sorunsuz yukleniyormus gibi gorunup, reboot ettikten sonra tekrar eski halinde aciliyordu. Disariya bakan bir seri arabirim de bulunmadigi icin eldeki tum imkanlar bitmis bulunuyordu. OpenWRT ve DD-WRT forumlarinda biraz vakit gecirince bunun sadece Japonya&#8217;da satilan Japonca arayuzlu (zaten baska yok) modellerde karsilasilan bir problem oldugunu ve birkac kisinin daha basina geldigini gordum. Japonya disinda satilan ayni modelde bir kisitlama yokken, buradaki modelde bootloader sifrelenmis olarak yazilmis ve ROM&#8217;un uzerine yazilmasina izin vermiyormus. DD-WRT nasil yuklenmisti onu hala cozemedim. Sorun ortaya ciktiktan sonra gelistiriciler ayni gun bunun icin yamanmis bir surum daha cikardilar. Zehir gibi adamlar.</p>
<p style="text-align: justify;">Acikcasi is biraz uzadi. Bootloader uzerinde birkac islem yapmak, ardindan da imaji yine tftp uzerinden gonderip yuklemek gerekiyordu. Bunun icin de seri arabirim sart. Aletin karti uzerinde seri arabirim cikislari mevcut fakat pinleri takili degilmis. Oturup bunlari lehimleyip garanti kapsamindan ciktiktan sonra bir de RS232-TTL donusturucu bulmak vardi. Onu da kucuk bir karta yaptim.</p>
<div class="mceTemp mceIEcenter" style="text-align: justify;">
<dl id="attachment_1011" class="wp-caption aligncenter" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://tarikzengin.com/wp-content/uploads/2011/08/photo-004.jpg"><img class="size-medium wp-image-1011  colorbox-1007" title="WZR-HP-G300NH" src="http://tarikzengin.com/wp-content/uploads/2011/08/photo-004-300x225.jpg" alt="" width="300" height="225" /></a></dt>
<dd class="wp-caption-dd">WZR-HP-G300NH Seri Arabirim</dd>
</dl>
</div>
<div class="mceTemp mceIEcenter" style="text-align: justify;">
<dl id="attachment_1012" class="wp-caption aligncenter" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://tarikzengin.com/wp-content/uploads/2011/08/photo-008.jpg"><img class="size-medium wp-image-1012  colorbox-1007" title="WZR-HP-G300NH" src="http://tarikzengin.com/wp-content/uploads/2011/08/photo-008-300x225.jpg" alt="" width="300" height="225" /></a></dt>
<dd class="wp-caption-dd">WZR-HP-G300NH Seri Arabirim</dd>
</dl>
</div>
<div class="mceTemp mceIEcenter" style="text-align: justify;">
<dl id="attachment_1013" class="wp-caption aligncenter" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://tarikzengin.com/wp-content/uploads/2011/08/photo-007.jpg"><img class="size-medium wp-image-1013  colorbox-1007" title="MAX232" src="http://tarikzengin.com/wp-content/uploads/2011/08/photo-007-300x225.jpg" alt="" width="300" height="225" /></a></dt>
<dd class="wp-caption-dd">MAX232 RS-TTL Arabirimi</dd>
</dl>
</div>
<p style="text-align: justify;">Detaylarini yazmayacagim cunku bu sorun sadece burada satista olan modellerde gecerli. Kimsenin ihtiyaci olacagini sanmiyoyorum. Merak edenler OpenWRT&#8217;nin <a href="http://wiki.openwrt.org/toh/buffalo/wzr-hp-g300h" target="_blank">wiki sayfalarindan</a> bilgi edinebilir. Zaten amac bu router icin tarif vermek degil OpenWRTyi anlatmak.</p>
<div id="attachment_1022" class="wp-caption aligncenter" style="width: 310px"><a href="http://tarikzengin.com/wp-content/uploads/2011/08/openwrt.png"><img class="size-medium wp-image-1022 colorbox-1007" title="openwrt" src="http://tarikzengin.com/wp-content/uploads/2011/08/openwrt-300x168.png" alt="" width="300" height="168" /></a><p class="wp-caption-text">OpenWRT Web Arayuzu - Samba Ayarlari</p></div>
<p style="text-align: justify;"><a href="http://wiki.openwrt.org/toh/start" target="_blank">Supported Devices</a> sayfasindan uyumluluk kontrolu yapabilirsiniz. Eger elinizdeki alet desteklenenler arasindaysa, orijinal ozelliklerinin kat kat fazlasini kullanabilecek duruma gelmesi an meselesi demektir.Paketlerin yuklenmesi de APT&#8217;a benzeyen opkg araciyla ya da web arayuzu uzerinden yapilabiliyor.</p>
<p style="text-align: justify;">Yapilabileceklere birkac ornek verecek olursak;</p>
<p style="text-align: justify;">USB portuna bagli hard diski NFS ya da Samba ile ag uzerinden ulasip kullanabilirsiniz. Harici diskinizi devamli tak-cikar yapma zahmetinden kurtulur, wifi alaninda her noktadan kullanabilirsiniz. Daha once XFS dosya sistemiyle kullandigim diski artik ext4 ile kullaniyorum. (XFS dogru sekilde unmount etmeyip her seferinde journali tamir etmemi gerektiriyordu). Ayrica hd-idle ile de kullanilmadigi durumlarda diski bekleme konumuna alip hem enerji tasarrufu yapip hem de diskin omrunu uzatabilirsiniz. Bunun disinda basit bir port yonlendirmesiyle disaridan da erisilebilir duruma getirebilirsiniz.</p>
<p style="text-align: justify;">Yine USB portuna baglayacaginiz kameraya uzaktan baglanabilir, guvenlik kamerasi olarak kullanabilirsiniz.</p>
<p style="text-align: justify;">Daha fazla guvenlik icin VPN olusturabilirsiniz.</p>
<p style="text-align: justify;">CUPS ile yazici sunucusu olusturup, ag yazicisi olmayan herhangi bir USB yaziciyi ag uzerinden ulasilabilir duruma getirebilirisiniz.</p>
<p style="text-align: justify;">MiniDLNA ya da uShare ile uPNP ya da DLNA ozelligi olan cihazlara video, muzik ve fotograf yayini yapabilirisiniz. Televizyonda DLNA destegi var, miniDLNA ile tum muzik arsivimi ag uzerinde yayinliyorum. Bilgisayarin acik olmasina gerek kalmadan tum muziklere TV uzerinden ulasabiliyorum.</p>
<p style="text-align: justify;">Transmission ile tum torrent islemlerini bilgisayardan bagimsiz hale getirebilirsiniz. Torrentler dogrudan USB portuna bagli hard diske indiriliyor. Bilgisayarda da transmission istemcisi router uzerindeki daemona baglanip kontrol edilebiliyor. Akilli telefonlar icin de Transmission remote control programlari var. Hic bilgisayar kullanmadan da torrent kullanilabilir.</p>
<p style="text-align: justify;">Derlenen ya da yorumlanan herhangi bir dilde yazdiginiz program ya da scriptlere cron ile periyotlar belirleyip calistirabilirsiniz. Otomatik yedekleme icin kullanilabilir.</p>
<p style="text-align: justify;">USB ses karti takip tamamen kendi basina calisan bir muzik caliciya donusturebilirsiniz.</p>
<p style="text-align: justify;">Apache ile web sunucusuna donusturebilirsiniz.</p>
<p style="text-align: justify;">Asterisk ile kendi VoIP sunucunuzu kurabilirsiniz.</p>
<p style="text-align: justify;">Dansguardian ile icerik filtrelemesi yapabilirsiniz.</p>
<p style="text-align: justify;">Isletme sahibiyseniz, musterilerin belirli bir sure icin ucretli ya da ucretsiz kablosuz baglantinizi kullanmasini saglayabilirisiniz. Havalimanlarindaki gibi.</p>
<p style="text-align: justify;">Bunlarin disinda daha aklima gelmeyen bircok sey mumkun.</p>
<p style="text-align: justify;">Saydiklarim arasinda yaptiklarim da bulunuyor, yapilmak icin sira bekleyen de. Ilk ikisi VPN ve CUPS. Ardindan da otomatik bir backup scripti, hem bilgisayardaki verileri hem de bu domain ve subdomain altindaki uygulamalari otomatik yedekleyen bir script yazilabilir. Bir gun yazarsam onu da paylasirim.</p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/buffalo-wifi-router-ile-openwrt-kullanimi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gentoo&#8217;da Logitech Pro 9000 Webcam Kullanımı</title>
		<link>http://tarikzengin.com/gentooda-logitech-pro-9000-webcam-kullanimi/</link>
		<comments>http://tarikzengin.com/gentooda-logitech-pro-9000-webcam-kullanimi/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 08:55:32 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Linux-uvc]]></category>
		<category><![CDATA[Logitech]]></category>
		<category><![CDATA[logitech pro 9000]]></category>
		<category><![CDATA[Quickcam]]></category>
		<category><![CDATA[v4l2]]></category>
		<category><![CDATA[video 4 linux]]></category>
		<category><![CDATA[video linux]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/?p=835</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/gentooda-logitech-pro-9000-webcam-kullanimi/" title="Gentoo&#039;da Logitech Pro 9000 Webcam Kullanımı"></a>Tokyo&#8217;ya gitmişken, Akıhabara&#8217;da bir gün harcamadan edemedim. Dolaşırken birkaç parça ufak şey ve de ne zamandır almayı düşündüğüm Logitech Pro 9000 webcami aldım. Almadan önce de satıcıyla epey cebelleştim. İnatla Logitech&#8217;in Linux desteği vermediğini, driver bulamayacağımı söyledi. UVC sürücülerinin bu &#8230;<p class="read-more"><a href="http://tarikzengin.com/gentooda-logitech-pro-9000-webcam-kullanimi/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/gentooda-logitech-pro-9000-webcam-kullanimi/" title="Gentoo&#039;da Logitech Pro 9000 Webcam Kullanımı"></a><p>Tokyo&#8217;ya gitmişken, Akıhabara&#8217;da bir gün harcamadan edemedim. Dolaşırken birkaç parça ufak şey ve de ne zamandır almayı düşündüğüm Logitech Pro 9000 webcami aldım. Almadan önce de satıcıyla epey cebelleştim. İnatla Logitech&#8217;in Linux desteği vermediğini, driver bulamayacağımı söyledi. UVC sürücülerinin bu modeli çalıştırdığını önceden biliyordum. O yüzden satmak istememesine rağmen ısrar edip aldım. Bu yazıyı da almak isteyen olur da Linux&#8217;da çalışıp çalışmadığını merak eden olur diye yazıyorum.<span id="more-835"></span> <a href="http://linux-uvc.berlios.de/">Linux-uvc</a> sayfasında söylediğine gore bu serinin bazı modellerinde birtakım uyumsuzluklar ortaya çıkabiliyormuş. Bunun için de Logitech&#8217;in kendi yayınladığı <a href="http://www.quickcamteam.net/devices">şu</a> listeye bakabilirsiniz.</p>
<div class="wp-caption aligncenter" style="width: 410px"><img class="colorbox-835"  title="Logitech Pro9000" src="http://www.rcsnet.com/www_site/pix/products/960-000048.jpg" alt="Logitech Pro9000" width="400" height="400" /><p class="wp-caption-text">Logitech Pro9000</p></div>
<p>Gerekli sürücü <strong>media-video/linux-uvc</strong> paketi ile birlikte geliyor. Derlemek için kernelde <strong>V4L2</strong> desteğinin açık olması gerekli. Sonrasında Skype ile sorunsuz bir şekilde kullanabildim. <strong>media-video/luvcview</strong> ve <strong>media-video/guvcview</strong> de tüm özelliklerini kurcalamak ve kayıt yapmak için yeterli araçlar gibi görünüyor. Yazdığına gore oto-focus şu anda desteklenmiyormuş. Ben herhangi bir sorunla karşılaşmadım bu yüzden. Görüntü kalitesi gerçekten güzel. Tavsiye olunur.</p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/gentooda-logitech-pro-9000-webcam-kullanimi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Gentoo-Tr Gezegeni</title>
		<link>http://tarikzengin.com/gentoo-tr-gezegeni/</link>
		<comments>http://tarikzengin.com/gentoo-tr-gezegeni/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 05:48:44 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Gezegen]]></category>
		<category><![CDATA[GNU/Linux]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/?p=736</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/gentoo-tr-gezegeni/" title="Gentoo-Tr Gezegeni"></a>Gurkan, Burak ve Serkan Gentoo Gezegeni acmislar. &#8220;Beni de alin&#8221; dedim, sagolsunlar kirmadilar. Ilk kesintisiz bos zamanimda bir Gentoo yazisi yolda. Gezegene buradan buyrun.]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/gentoo-tr-gezegeni/" title="Gentoo-Tr Gezegeni"></a><p><img class="size-medium wp-image-738 alignleft colorbox-736" title="gentoo" src="http://www.tarikzengin.com/wp-content/uploads/2009/07/gentoo-208x300.png" alt="gentoo" width="208" height="300" /></p>
<p>Gurkan, Burak ve Serkan <a href="http://gezegen.gentoo-tr.org/">Gentoo Gezegeni</a> acmislar. &#8220;Beni de alin&#8221; dedim, sagolsunlar kirmadilar. Ilk kesintisiz bos zamanimda bir Gentoo yazisi yolda.</p>
<p>Gezegene <a href="http://gezegen.gentoo-tr.org/">buradan </a>buyrun.</p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/gentoo-tr-gezegeni/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>10. Yıl Etkinlikleri</title>
		<link>http://tarikzengin.com/10-yil-etkinlikleri/</link>
		<comments>http://tarikzengin.com/10-yil-etkinlikleri/#comments</comments>
		<pubDate>Tue, 12 May 2009 15:36:22 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Yaşam]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[GNU/Linux]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/?p=712</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/10-yil-etkinlikleri/" title="10. Yıl Etkinlikleri"></a>Haziran ayi benim icin oldukca ozel. Nedeni de hayatimi degistiren seyin hayatima girisinin 10. yili olmasi. Hayir, sevgilim ya da esim degil. 1999 yilinin yaz baslariydi. Ben 15 tam 12&#8242;de 8 yasinda idim. Hersey iste tam da o zaman basladi. &#8230;<p class="read-more"><a href="http://tarikzengin.com/10-yil-etkinlikleri/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/10-yil-etkinlikleri/" title="10. Yıl Etkinlikleri"></a><p>Haziran ayi benim icin oldukca ozel. Nedeni de hayatimi degistiren seyin hayatima girisinin 10. yili olmasi. Hayir, sevgilim ya da esim degil.</p>
<p>1999 yilinin yaz baslariydi. Ben 15 tam 12&#8242;de 8 yasinda idim. Hersey iste tam da o zaman basladi.</p>
<p>Abit anakart kutusundan cikan Linux CD&#8217;si. Onu hala sakliyorum. Seviyorum.</p>
<p>Her ne kadar beni duymayacak, yazdiklarimi okumayacak, okusalar da anlamayacak olsalar da Torvalds, Stallman ve diger milyonlarca gelistiriciye minnet duydugumu belirtmek istiyorum.</p>
<p>99&#8242;da baslayan macera sayisiz dagitim denememe, hepsinin artisini eksisini gormeme, guzelliklerle buyulenmeme neden oldu. Bugun belli basli sayilabilecek dagitimlarin tumunu, ve artik tarih sahnesinden silinmis bazilarini deneme firsati buldum ve bunun icin kendimi sansli hissediyorum.</p>
<p>Yalnizca bu mu Haziran ayini ozel yapan? Degil. Aradan 5 yil gecmis, 2004 yilinin Haziran ayina gelinmis, ben ise 20 tam 12&#8242;de 8 yasima gelmistim. Ve o gune kadar denedigim en iyi dagitimla tanistim. Gentoo!!</p>
<p>O gun bu gun beraberiz. Mutluyuz. Bu arada ben 25 tam 12&#8242;de 8 yasima gelmisim. Saka gibi.</p>
<p>Linux ile tanismamin 10., Gentoo ile tanismamin 5. yili olmasi sebebiyle bir dizi etkinlik duzenleyecegim. Dunyanin bir ucunda olmam sebebiyle etkinliklere yalnizca benim istirak edecek olmam hic de umrumda degil. Buraya geldigimden beri 4 Gentoo, 3 Kubuntu ve 1 Vine Linux kurulumu yaptim ve eylemlerim devam edecek.</p>
<p>Ederi 10binlerce dolari bulan yazilimlari karsilik beklemeden onume seren GNU camiasi, tesekkur ederim.</p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/10-yil-etkinlikleri/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Subversion Sunucusu ve Redmine Kurulumu</title>
		<link>http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/</link>
		<comments>http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 14:08:45 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[OpenSSL]]></category>
		<category><![CDATA[Redmine]]></category>
		<category><![CDATA[RoR]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Use Flag]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/?p=666</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/" title="Subversion Sunucusu ve Redmine Kurulumu"></a>Bu yaziyi bir HowTo belgesi gibi dusunmeyin lutfen. Tamamen kendi denemelerimden olusmakta. Nisan&#8217;da yeni donemin baslamasiyla beraber labda bazi bilgisayarlar bosa cikinca &#8220;Nasil degerlendirilebilir acaba bu eski bilgisayarlar?&#8221; dusuncesiyle boyle birsey yapmaya karar verdim. Makinelerden birini svn sunucusu olarak kullanabilirdik. &#8230;<p class="read-more"><a href="http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/" title="Subversion Sunucusu ve Redmine Kurulumu"></a><p>Bu yaziyi bir HowTo belgesi gibi dusunmeyin lutfen. Tamamen kendi denemelerimden olusmakta.</p>
<p>Nisan&#8217;da yeni donemin baslamasiyla beraber labda bazi bilgisayarlar bosa cikinca &#8220;Nasil degerlendirilebilir acaba bu eski bilgisayarlar?&#8221; dusuncesiyle boyle birsey yapmaya karar verdim. Makinelerden birini svn sunucusu olarak kullanabilirdik. Tum lab elemanlari da projelerini bu sunucuda tutabilirlerdi. Proje takibi icin de baslangicta trac kullanmayi dusunmustum. Fakat trac in ayni anda tek bir repo destekliyor olmasi dusunduruyodu beni. Tam bu sirada, daha once duymamis oldugum redmine ile ilgili bir kitap gordum kitapcida, subversion ve trac kitaplarinin hemen yaninda. Sonradan arastirinca kanim kaynadi hemen. Coklu proje destegi aklimi celdi. Bir de daha once hic Rails uygulamasi gormemistim, merak ettim.</p>
<p>Dagitim olarak da yabancilik cekmemek adina cok uzun suredir kullandigim Gentoo&#8217;yu sectim. Adim adim anlatmaya calisacagim.<span id="more-666"></span></p>
<p>Oncelikle bu sunucuda grafik arayuz kullanmayacagim, sadece uzaktan erisim saglayacagim icin X e gerek yok. Bu yuzden -X -gtk -gnome -qt -kde -alsa USE flaglerini kullaniyorum. Ayni zamanda bu makine oldukca eski (Celeron D) oldugu icin derleme suresini kisaltmak icin distcc kullaniyorum. Distcc&#8217;nin nasil ayarlandigina deginmeyecegim, zira zor bir yani yok. Sonuc olarak make.conf dosyasi su sekilde.</p>
<pre>CFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer"
CXXFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
FEATURES="distcc parallel-fetch userpriv"
DISTCC_VERBOSE="1"
MAKEOPTS="-j6"
USE="apache2 postgres gd xml -X -gtk -gnome -qt -kde -alsa sqlite sqlite3"</pre>
<p>Base sistemin kurulumunun ardindan openssh ve bagimliliklari kurulduktan sonra islemleri uzaktan yapmaya devam edebilir hale geliyor sunucu.</p>
<p>Repolara web sunucu uzerinden erisecegimiz icin <strong><em>subversion</em></strong> paketini kurarken <strong><em>apache2</em></strong> destegi ile derlemek gerekli. Binary dagitimlarda bu destek dogrudan acik olarak mi geliyor bilmiyorum.</p>
<p>Apache kurulduktan sonra hicbir ayar yapmadan calisabilir durumda oluyor. Yalnizca init scriptini calistirmak yeterli. Subversion repolarimiza https uzerinden webdav ile ulasmak istedigimiz icin apache&#8217;ye bazi modulleri eklememiz gerekiyor.<em> </em><span class="literal"><strong><em>/etc/conf.d/apache2</em></strong> dosyasinda </span><span class="literal"><em><strong>APACHE2_OPTS</strong> </em>kismina </span><em><strong>-D SVN -D SVN_AUTHZ -D DAV -D DAV_FS -D SSL -D SSL_DEFAULT_VHOST</strong></em> degerlerini eklememiz gerekli. Benimki su sekilde</p>
<pre>APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST\
 -D SVN -D SVN_AUTHZ -D DAV -D DAV_FS -D PASSENGER"</pre>
<p>Passenger kismina daha sonra deginecegim.</p>
<p>Repolari kullanacak tum kullanicilari sistemde olusturdum. Mail sunucusu olarak kullandigimiz bir de Fedora var labda, herkesin zaten bir hesabi mevcut bu makinede. Ldap kullanarak kullanicilari tekrar tanimlamadan kullanmanin bir yolu olabilir diye tahmin ediyorum fakat pek de detayli bir bilgim yok bu konuda.</p>
<p>Subversion depolarini kullanacaklar icin <strong><em>svnusers</em></strong> isminde bir kullanici grubu olusturdum ve kullanicilari bu gruba dahil ettim.</p>
<p>Repolar icin<em><strong> /var/svn/repos</strong></em> dizinini , konfigurasyon dosyalari icin de <em><strong>/var/svn/conf</strong></em> dizinini kullaniyorum. <strong><em>repos</em></strong> dizinine gruba dahil tum kullanicilar yazip okuma yapacagi icin izinlerini <strong><em>775</em></strong> olarak verdim. Unutulmamasi gereken bir nokta da apache kullanicisini da svnusers grubuna dahil etmek. Apace kullanicisi dagitima goredegisebiliyor. Sanirim Debian&#8217;da bu kullanici <strong><em>www-data</em></strong> ismiyle geciyor.</p>
<p>Repolara apache uzerinden ulasacak kullanicilar icin htpasswd dosyasi tanimlamamiz gerekiyor. Bunun icin de hal-i hazirda sisteme ekledigimiz kullanicilara</p>
<pre>htpasswd2 /var/svn/conf/svnusers kullanici_adi</pre>
<p>seklinde sifre belirlememiz gerekiyor. <strong><em>svnusers</em></strong> dosyasini olusturmak icin ilk calistirmada komuta -c parametresi eklemek gerekli.</p>
<p>Ardindan da olusturulan repoya hangi kullanicilarin hangi haklarla erismesine izin verecegimizi de <em><strong>/var/svn/conf/svnpolicy </strong></em>dosyasindan ayarlamamiz gerekiyor.</p>
<p>Bu islemleri basitlestirmek icin kisa bir bash script yazdim. Yazinin ilerleyen kisminda bulabilirsiniz.</p>
<p>Apache&#8217;yi svn repolarimizi gosterecek sekilde ayarlamakta sira. <em><strong>/etc/apache2/modules.d/47_mod_dav_svn.conf</strong></em> dosyasinda asagidaki duzenlemeyi yazpiyoruz.</p>
<pre>&lt;IfDefine SVN&gt;
        &lt;IfModule !mod_dav_svn.c&gt;
                LoadModule dav_svn_module       modules/mod_dav_svn.so
        &lt;/IfModule&gt;
        &lt;Location /svn/repos&gt;
                DAV svn
                SVNParentPath /var/svn/repos
                #SSLRequireSSL
                AuthType Basic
                AuthName "System Integration Lab SVN Repository"
                AuthUserFile /var/svn/conf/svnusers
                AuthzSVNAccessFile /var/svn/conf/svnpolicy
#                &lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;
                Require valid-user
#                &lt;/LimitExcept&gt;
                SVNIndexXSLT /svnindex.xsl
        &lt;/Location&gt;
        &lt;IfDefine SVN_AUTHZ&gt;
                &lt;IfModule !mod_authz_svn.c&gt;
                        LoadModule authz_svn_module     modules/mod_authz_svn.so
                &lt;/IfModule&gt;
        &lt;/IfDefine&gt;
&lt;/IfDefine&gt;</pre>
<p>Comment edilmis 2 satir var goruldugu gibi. Bu limitlemeyi acarsam bazi sorunlarla karsilastim. Bu sekilde benim icin yeterli sekilde calisiyor.</p>
<p><em><strong>SVNIndexXSLT</strong></em> satirinda belirttigimiz <strong><em>svnindex.xsl</em></strong> ve <strong><em>svnindex.css</em></strong> dosyalarini da sunucunun ana dizinine kopyaliyoruz. Bu durumda <em><strong>/var/www/localhost/htdocs/</strong></em></p>
<p>Henuz bir repo olusturmadik fakat olusturdugumuz takdirde <strong><em>http://localhost/svn/repos/repo_adi</em></strong> adresinden ulasabiliyor durumdayiz su an. Yalniz dikkat <strong><em>http</em></strong>, <strong><em>https</em></strong> degil henuz.</p>
<p>Http uzerinden tum iletisimi kesmek icin <strong><em>/etc/apache2/vhosts.d/00_default_vhost.conf </em></strong>dosyasinda tanimli ayarlarin hepsini comment ederek kapattim. Artik http uzerinden erisim yok. Https uzerinden de yok. Oh ne guzel. Yazi burada bitse ne kotu olur.</p>
<p>Simdi Redmine kurulumuna gecelim. <a href="http://www.redmine.org/wiki/redmine/RedmineInstall"><strong><em>http://www.redmine.org/wiki/redmine/RedmineInstall</em></strong></a> adresinde kurulum ile ilgili bilgiler mevcut. Svn ile redmine kodunu checkout edip istedigimiz bir dizine koyabiliriz. Ben <strong><em>/var/rails/redmine</em></strong> dizinine koydum.</p>
<p>Sistemde bulunmasi gereken paketler <em><strong>ruby</strong></em>, <strong><em>ruby-gems</em></strong>, <em><strong>mysql-ruby</strong></em>, <em><strong>rails</strong></em> ve bunlarin bagimliliklari. Kurulumdan sonra</p>
<pre>gem install rails -v=2.2.2</pre>
<p>ile rails versiyonunu ayarliyoruz.</p>
<p>Redmine dizini altindaki <code>config/database.yml dosyasinda gerekli database ayarlamasini yaptiktan sonra</code></p>
<pre><code>rake db:migrate RAILS_ENV="production"</code></pre>
<p>ile gerekli tablolari olusturuyoruz.</p>
<p>Artik redmine uygulamasini</p>
<pre>ruby script/server webrick -e production</pre>
<p>komutu ile calistirip <strong><em><span class="external">http://localhost:3000/</span></em></strong>adresinden uygulamayi gorebiliyor olmamiz gerekir.</p>
<p>/var/rails/redmine/config/email.yml dosyasinda da smtp ayarlarini yaparak Redmine&#8217;in kullanicilara e-mail yollayabilmesini saglayabiliriz.</p>
<p>Bir sonraki adim Redmine uygulamasini bu sekilde daemon modunda degil, apache icerisinden calisir hale getirebilmek. Bunun icin de apache&#8217;nin mod_rails destegi ile calismasi gerekli. Yukarida bahsettigim Passenger da iste tam bu ise yariyor.</p>
<p>Rails uygulamasi, public dizininde apache tarafindan sunulacak dosyalari barindiriyor. Burada .htaccess dosyasinda apache&#8217;ye Rails uygulamalarini mod-fcgid ile calistirmasini soylememiz gerekli.</p>
<pre># General Apache options
#AddHandler fastcgi-script .fcgi
#AddHandler cgi-script .cgi
AddHandler fcgid-script .fcgi
Options +FollowSymLinks +ExecCGI

RewriteEngine On

RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

ErrorDocument 500 "&lt;h2&gt;Application error&lt;/h2&gt;Rails application failed to start properly"</pre>
<p>Ben bu sekilde kullaniyorum. Ardindan apache&#8217;nin https uzerinden rails uygulamizi sunmasi icin <em><strong>/etc/apache2/vhosts.d/00_default_ssl_vhost.conf </strong></em>dosyasinda <strong><em>DocumentRoot</em></strong> bolumunu ayarlamamiz gerekli.</p>
<pre>&lt;IfDefine SSL&gt;
&lt;IfDefine SSL_DEFAULT_VHOST&gt;
&lt;IfModule ssl_module&gt;

Listen 443

&lt;VirtualHost _default_:443&gt;
        ServerName XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        Include /etc/apache2/vhosts.d/default_vhost.include
        ErrorLog /var/log/apache2/ssl_error_log

        &lt;IfModule log_config_module&gt;
                TransferLog /var/log/apache2/ssl_access_log
        &lt;/IfModule&gt;

        SSLEngine on

        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

        SSLCertificateFile /etc/apache2/ssl/server.crt

        SSLCertificateKeyFile /etc/apache2/ssl/server.key

        &lt;FilesMatch "\.(cgi|shtml|phtml|php)$"&gt;
                SSLOptions +StdEnvVars
        &lt;/FilesMatch&gt;

        &lt;Directory "/var/www/localhost/cgi-bin"&gt;
                SSLOptions +StdEnvVars
        &lt;/Directory&gt;

        &lt;IfModule setenvif_module&gt;
                BrowserMatch ".*MSIE.*" \
                        nokeepalive ssl-unclean-shutdown \
                        downgrade-1.0 force-response-1.0
        &lt;/IfModule&gt;

        &lt;IfModule log_config_module&gt;
                CustomLog /var/log/apache2/ssl_request_log \
                        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        &lt;/IfModule&gt;

        DocumentRoot /var/rails/redmine/public/

        &lt;Directory /var/rails/redmine/public&gt;
                Options ExecCGI FollowSymLinks
                AllowOverride all
                Order allow,deny
                Allow from all
        &lt;/Directory&gt;

&lt;/VirtualHost&gt;
&lt;/IfModule&gt;
&lt;/IfDefine&gt;
&lt;/IfDefine&gt;

# vim: ts=4 filetype=apache</pre>
<p><strong><em>ServerName</em></strong> kismi onemli. Domain ismini tam olarak yazmak gerekiyor, yoksa sertifika problemleri ile karsilasilabilir.</p>
<p>Apache, Redmine uygulamasini https uzerinden sunmaya hazir. Yukarida belirttigimiz sertifika dosyalarini da olusturtuktan sonra islem neredeyse tamam oluyor. <strong><em>SSLCertificateFile</em></strong> ve <strong><em>SSLCertificateKeyFile</em></strong> ile belirtilen 2 dosyayi openssl kullanarak olusturmaliyiz. Buna <strong><em>self-signed certificate</em></strong> deniyor. Bunun icin <a href="http://www.akadia.com/services/ssh_test_certificate.html">su sayfaya</a> bakabilirsiniz. Uzun uzun anlatmaya gerek yok.</p>
<pre>/etc/init.d/apache2 restart</pre>
<p>ile apache&#8217;yi tekrar baslattiktan sonra Redmine uygulamamizi https://domain_adi seklinde gorebiliyor olmaliyiz.</p>
<p>Eger buraya kadar sorunsuz geldiysek (ki cok kucuk bir ihtimal), simdi biraz sorun yaratalim.</p>
<p>Svn repolarimiza https://domain/svn/repos/repo_adi adresinden ulasabiliyorduk. Fakat bu <strong><em>DocumentRoot </em></strong>degerini degistirmeden once idi. Yeni <em><strong>DocumentRoot</strong></em> dizininde  <strong><em>svnindex.xsl</em></strong> ve <strong><em>svnindex.css</em></strong> dosyalari bulunmuyor. Bu da demektir ki artik repolara ulasamiyoruz. Aslinda apache ayarlarindan her alt dizine, her alt-domain&#8217;e gore farkli ayarlamalar yapilabiliyor. Ama ben yine en amele yolu secip bu iki dosyayi Redmine public dizinine koymayi tercih ettim. Sonucta isimi goruyorsa tamamdir, profesyonel degilim ne de olsa. Hobi olarak ugrasiyorum bu islerle. Hayir, hobilerim arasinda kendime iskence etmek gibi mazosist seyler yok.</p>
<p>Simdi gozden gecirelim neler yaptigimizi:</p>
<ul>
<li>Subversion repolarina https://domain/svn/repos/repo_adi adresinden ulasilabiliyor.</li>
<li>Redmine uygulamasi apache tarafindan calistirilip https://domain adresinden ulasilabiliyor.</li>
</ul>
<p>Iki maddecik, az gibi gorunuyor fakat cok gunlerdir bununla ugrasiyorum.</p>
<p>Simdi gelelim isleri kolaylastirmaya. Yaklasik 15 kullanici kullanacak bu sistemi. Her biri icin bir kullanici hesabi var sistemde. Reponun olusturulmasi ve gerekli izinlerin duzenlenmesi bazi asamalarda root yetkileri gerektiriyor. Herkesin reposuyla tek tek ilgilenmemek icin bu isi otomatize etmek gerekiyor.</p>
<pre>#!/bin/bash
DIR=/var/svn
REPODIR=$DIR/repos
CONFDIR=$DIR/conf
export USER=`whoami`
echo -n "SVN Database Name: "
read -e DATABASE
if test -e $REPODIR/$DATABASE
then
echo "This database exists. Please try another name."
else
svnadmin create $REPODIR/$DATABASE
sudo chown -R apache:svnusers $REPODIR/$DATABASE/
sudo chmod -R g-w $REPODIR/$DATABASE/
sudo chmod -R g+rw $REPODIR/$DATABASE/db/
sudo chmod -R g+rw $REPODIR/$DATABASE/locks/
echo "[$DATABASE:/]" | sudo tee -a $CONFDIR/svnpolicy
echo "$USER = rw" | sudo tee -a $CONFDIR/svnpolicy
echo "User $USER has been authorized to read-write the $DATABASE repository"
echo "ユーザ $USER は $DATABASE に対する書き込み/読み込みを許可されました"
echo "If you want to authorize more users, please contact with the admin"
echo "追加でユーザを許可したい場合は、管理者に問い合わせてください。"
echo ""
echo "Your database is now accessible from https://domain/svn/repos/$DATABASE"
fi</pre>
<p>Kullanicilara tamamen root yetkileri vermektense sudo kullanmak daha akilci geldi. Yukarida gorelecegi uzere yalnizca 3 komut sudo ile calistiriliyor. Bunlari da <strong><em>sudoers</em></strong> dosyasinda tanimliyorum.</p>
<pre>%svnusers ALL=/bin/chown, /bin/chmod, /usr/bin/tee</pre>
<p>Aslinda hala tehlikeli bir is, chmod ve chown kullanarak bile kolayca dagitilabilir sistem.</p>
<p>Ilk once daha farkli bir script hazirlamistim. Onun icinde bu sekilde sudo kullanmiyordum. Kullanici o scripti sudo ile calistiriyordu. Daha guvenli bir yontem. Fakat benim komutu calistiran kullanicinin adina ihtiyacim var ve whoami komutu sudo ile calistirildiginda dogal olarak root donduruyor. Aklima bir yol gelmedi simdilik. Onerilere acigim.</p>
<p>Artik kullanicilar kendileri svn repolarini olusturabiliyor durumdalar. Fakat hala Redmine uzerinde proje olusturma isi bana ait. Bunun bir yolu olup olmadigini bilmiyorum, fakat bir yandan da iyi oldugunu dusunuyorum. Onune gelen proje olusturmasin. Simdilik dusuncem bu.</p>
<p>Gelelim bir baska probleme. http uzerinden calisirken hersey gulluk-gulistanlik fakat https uzerinden ortaya cikan bir sorun var. Bununla epey cebellestikten sonra farkina vardim. Kullanici repoyu olusturuyor, https://domain/svn/repos/repo_adi adresinden goruntuleyebiliyor, Redmine&#8217;a sorunsuz bir sekilde login olup kullanabiliyor fakat Redmine&#8217;da olusturdugu projesine svn reposunu eklemeye kalktiginda bir turlu basarili olamiyordu. Uzun sure dusundukten sonra, svn checkout sirasinda  sertifikanin gecici mi kalici mi olmasini istedigimizi soran soru kafamda bir isik yakti. Biraz arastirinca anladim ki, Redmine svn reposuna ulasirken apache kullanicisini kullaniyor ve bu kullanici gerekli sertifikaya sahip degil.</p>
<p>Daha mantikli bir cozumunun oldugunu dusunuyorum fakat ben yine biraz amele bir yontem kullandim. apache kullanicisi ile svn checkout yapip sertifikayi almasini sagladim.</p>
<pre>sudo -u apache svn co https://domain/svn/repos/repo_adi</pre>
<p>Bu adimdan sonra Redmine icerisinden sorunsuz olarak repo ekleyip, goruntulenebiliyor hale geldi.</p>
<p>Son adim olarak, repolarin ve mysql vertabaninin duzenli olarak yedegininin alinmasi icin bir script hazirladim. Bu da repolardan ve veri tabanindan dump alip bunu labdaki dosya sunucusunda yedek icin ayirdigim alana periyodik olarak atmaya yariyor.</p>
<pre>#!/bin/bash

# Mount Tera Station
mount -t cifs //xxx.xxx.xxx.xxx/usr /mnt/tera -o user=xxxxx,pass=xxxxx

export whatisdate=`date +%F`

cd /var/svn/repos

# Backup the Subversion Databases
for i in $( ls ); do
echo $i repository is now backing up...
svnadmin dump $i &gt; /mnt/tera/redmine/Subversion\ Backups/$i-$whatisdate.dump;
echo "`date` - Subversion Backup : $i" &gt;&gt; /mnt/tera/redmine/log.txt
done

# Backup the Redmine Database
echo Redmine Mysql Database is now backing up...
mysqldump -u root --password=xxxxx redmine | gzip &gt; /mnt/tera/redmine/Redmine\ Database\ Backups/redmine_`date +%y_%m_%d`.gz
echo "`date` - Redmine Database Backup" &gt;&gt; /mnt/tera/redmine/log.txt

# Unmount Tera Station
umount /mnt/tera</pre>
<p>Bu scriptin soft linkini de <strong><em>/etc/cron.weekly/</em></strong> dizinine atarak haftada bir kez calismasini saglamis oluyorum.</p>
<p>Guvenlik acisindan pek cok eksigin oldugunun, scriptlerin icerisinde acik acik sifre ve kullanici adi kullandigimin farkindayim. Gunlerdir bu sistemi adam etmeye calisiyorum ve yaptiklarimin bir kismini simdiden unuttum. Bunlari da unutmadan yazayim dedim. Belki guvenlikle ilgili bazi iyilestirmeler yapabilirim.</p>
<p>Bazi kisimlarda hala sorunlarim var. Ornegin, farkli kullanicilar icin farkli repolar tanimli. Browser&#8217;da bunlardan birini https://domain/svn/repos/repo_adi seklinde actigimda beklendigi gibi kullanici adi ve sifre soruyor. Ardindan bir baska kullaniciya ait diger repoyu actigimda, tekrar kullanici adi ve sifre sormak yerine <em><strong>403 Forbidden</strong></em> hatasi veriyor. Tekrar sormasi icin browser&#8217;i kapatip tekrar acmam gerekiyor. Bunun nedenini bulabilmis degilim. Burada da fikir ve onerilere acigim.</p>
<p>Iyi aksamlar Turkiye, her nerede commit ediliyor ve ettiriliyorsa.</p>

<a href='http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/redmine1/' title='redmine1'><img width="150" height="150" src="http://tarikzengin.com/wp-content/uploads/2009/04/redmine1-150x150.png" class="attachment-thumbnail colorbox-666" alt="redmine1" title="redmine1" /></a>
<a href='http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/redmine2/' title='redmine2'><img width="150" height="150" src="http://tarikzengin.com/wp-content/uploads/2009/04/redmine2-150x150.png" class="attachment-thumbnail colorbox-666" alt="redmine2" title="redmine2" /></a>
<a href='http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/redmine3/' title='redmine3'><img width="150" height="150" src="http://tarikzengin.com/wp-content/uploads/2009/04/redmine3-150x150.png" class="attachment-thumbnail colorbox-666" alt="redmine3" title="redmine3" /></a>
<a href='http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/redmine4/' title='redmine4'><img width="150" height="150" src="http://tarikzengin.com/wp-content/uploads/2009/04/redmine4-150x150.png" class="attachment-thumbnail colorbox-666" alt="redmine4" title="redmine4" /></a>
<a href='http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/redmine5/' title='redmine5'><img width="150" height="150" src="http://tarikzengin.com/wp-content/uploads/2009/04/redmine5-150x150.png" class="attachment-thumbnail colorbox-666" alt="redmine5" title="redmine5" /></a>
<a href='http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/redmine6/' title='redmine6'><img width="150" height="150" src="http://tarikzengin.com/wp-content/uploads/2009/04/redmine6-150x150.png" class="attachment-thumbnail colorbox-666" alt="redmine6" title="redmine6" /></a>

]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/subversion-sunucusu-ve-redmine-kurulumu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dan Kaminsky DNS Vulnerability</title>
		<link>http://tarikzengin.com/dan-kaminsky-dns-vulnerability/</link>
		<comments>http://tarikzengin.com/dan-kaminsky-dns-vulnerability/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 15:08:29 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Makaleler]]></category>
		<category><![CDATA[Cache Poisoning]]></category>
		<category><![CDATA[Dan Kaminsky]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[DNS Vulnerability]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Global Top Level Domain]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/blog/?p=583</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/dan-kaminsky-dns-vulnerability/" title="Dan Kaminsky DNS Vulnerability"></a>Abstract The Domain Name System (DNS) is a naming system which transforms human readable domain names, into machine readable IP addresses and vice versa. The DNS servers create a database entry for each domain and send the equivalent IP address &#8230;<p class="read-more"><a href="http://tarikzengin.com/dan-kaminsky-dns-vulnerability/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/dan-kaminsky-dns-vulnerability/" title="Dan Kaminsky DNS Vulnerability"></a><p style="text-align: justify;"><strong>Abstract</strong><br />
The Domain Name System (DNS) is a naming system which transforms human readable domain names, into machine readable IP addresses and vice versa. The DNS servers create a database entry for each domain and send the equivalent IP address when they receive a query. DNS servers synchronize themselves with the authoritative DNS sources. When a query came to DNS server, it caches this request for future queries. If this request comes from a non-authentic client and has cached by DNS server, this causes a poisoned cache. This request may come from an improper software, a wrong configured name server or a malicious software which is created to exploit the DNS system.</p>
<p style="text-align: justify;"><strong>Conventional DNS Query</strong></p>
<p style="text-align: justify;">Let&#8217;s explain this with an example. At first, the client  makes a request for www.example.net to the IPS&#8217;s DNS server. The DNS server knows that this client is not an authoritative for the domain, so it also knows that it has to find it out of its cache, not in the local zone.<span id="more-583"></span></p>
<p style="text-align: justify;">The DNS server forwards this query randomly to one of its 13 root servers. The root server receives this query but know nothing about this new domain. But it knows the Global Top Level Domain (GTLD) servers which are responsible for .net domains. GTLD server receives the same query from root server. If it also knows nothing about this domain, it adds a referral to the query and sends it back.<br />
This cycle returns until one of the servers knows the exact answer of our query. This true equivalent of the domain is called A Record.</p>
<p style="text-align: justify;">The DNS server also files away this answer into its own cache for the future queries.</p>
<p style="text-align: justify;">
<div id="attachment_584" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-584 colorbox-583" title="NormalDNSQuery" src="http://www.tarikzengin.com/blog/wp-content/uploads/2009/02/figure1.gif" alt="A Normal DNS Query" width="500" height="478" /><p class="wp-caption-text">A Normal DNS Query (from www.unixwiz.net)</p></div>
<p>Figure 1 shows a normal procedure of DNS query. Here, the client sends a DNS query for the site www.unixwiz.net. The local recursive nameserver doesn&#8217;t know the answer and asks to an other root server. It sends back the message with a referral to an other root server. Local server tries all the authoritative root servers, until it finds the closest name server which is in the same domain with the target site. Finally, it sends a query to that name server and receives back the IP address.</p>
<p style="text-align: justify;"><strong>Cache Poisoning</strong><br />
The previous scenario was the way how a DNS query should be. The DNS server caches the A Record for future queries, but not forever, just for a while. This time interval is defined by the Time To Live (TTL) variable in the server configuration, and the only authorized person is the administrator of the DNS server. During TTL, each query for the same domain, will be answered from the local database. After the TTL passed, the record in the server database will be dropped and any query will cause a complete DNS cycle.</p>
<p style="text-align: justify;">If our bad guy wants to redirect the innocent clients to his malicious site rather than the original “good one”, he has to change this local database entry with his fake data.</p>
<p style="text-align: justify;">Indeed, it&#8217;s not so easy to send random DNS packets to the server. Because, DNS servers just allow the expected packets from other servers. And they have some specific messages between each other, that make the connection unique. Communication between servers is over UDP ports that the query (Question and Query ID of the DNS packet) was sent through.  So, the bad guy has to know these data to send a response to DNS server, which is like coming from an authoritative root server.</p>
<p style="text-align: justify;">The method he used is, sending a query for the target site and replying his own query before the original root server will. Figure 2 shows this process over an example.</p>
<p style="text-align: justify;">
<div id="attachment_585" class="wp-caption aligncenter" style="width: 581px"><img class="size-full wp-image-585 colorbox-583" title="DNSCachePoisoning" src="http://www.tarikzengin.com/blog/wp-content/uploads/2009/02/figure2.gif" alt="DNS Server Cache Poisoning (from www.unixwiz.net)" width="571" height="534" /><p class="wp-caption-text">DNS Server Cache Poisoning (from www.unixwiz.net)</p></div>
<p style="text-align: justify;">In this example, the bad guy sends a query to the DNS server for the target site www.bankofsteve.com. DNS server doesn&#8217;t know the IP address of this site and sends a query to a root server. The bad guy starts to flood at this point with increasing Query IDs. If he can find the true Query ID as fast as possible and sends back the poisoned DNS message to the victim name server with this Query ID, the DNS server accepts this response rather than the original one. In this example, the bad guy sends his malicious site&#8217;s IP address as a response of the original bank site query, before the bank&#8217;s original name server replies the query. The victim nameserver rejects the original nameserver&#8217;s response, because the Query ID will not be expected, after the bad guy sends the message by using this ID.</p>
<p style="text-align: justify;"><strong>Dan Kaminsky Method for Cache Poisoning</strong><br />
In 2008, Dan Kaminsky who is a security researcher and Director of Penetration Testing for IOActive, found a way to poison not just the addresses one by one. He discovered a way to change the authority records too.</p>
<p style="text-align: justify;">In this method, the basic idea is same with the early cache poisoning method, but there is a difference. The bad guy server floods the victim server with the response of the target site query and the authoritative record for the target domain. This means, the bad guy server becomes both the target site and the target name server.</p>
<p style="text-align: justify;"><strong>How to Fix</strong><br />
The key point here is the Query ID. If the bad guy can not guess the Query ID, all the method collapses. But the problem is the number of Query IDs that DNS servers use. Old style DNS servers uses 16 bit Query IDs, which means 64k chance to find the ID number. So randomization of the Query ID is a solution. But it&#8217;s still feasible to find the ID by trying.</p>
<p style="text-align: justify;">Increasing the Query ID bits may be a solution to this problem. But all the Internet infrastructure lies on the 16 bit DNS Query ID. So it&#8217;s impossible to change the Query ID structure.</p>
<p style="text-align: justify;">The most effective way to solve this problem is randomizing both the Query ID and the ports. The client talks to a nameserver on port 53/tcp. And the nameservers talks to each other on random UDP ports with random Query IDs and finds the answer. And than, the nameserver answers back to the client on port  53/tcp.</p>
<p style="text-align: justify;">By this way, finding the true Query ID and the port combination is a fat chance.</p>
<p style="text-align: justify;"><strong>Conclusion</strong><br />
Today all the major DNS servers support the method above. The most common DNS servers, BIND and MS DNS server have already patched their software against this vulnerability.<br />
The major Unix/Linux distributions such as RedHat, Gentoo and SuSE, have some security tools that scans the entire system against the vulnerabilities. <a href="http://www.gentoo.org/doc/en/security/security-handbook.xml?part=1&amp;chap=14">Glsa-check</a> tool of Gentoo Linux is one of them. It scans the system and updates the packets which are marked as insecure by the Gentoo Development Team. So being updated as fast as possible is the key point of being secure.</p>
<p style="text-align: justify;"><strong>References</strong><br />
1.<a href="http://en.wikipedia.org/wiki/DNS_cache_poisoning">http://en.wikipedia.org/wiki/DNS_cache_poisoning</a><br />
2.<a href="http://www.unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html">http://www.unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html</a><br />
3.<a href="http://bugs.gentoo.org/show_bug.cgi?id=231201">http://bugs.gentoo.org/show_bug.cgi?id=231201</a><br />
4.<a href="http://security.freebsd.org/advisories/FreeBSD-SA-08:06.bind.asc">http://security.freebsd.org/advisories/FreeBSD-SA-08:06.bind.asc</a><br />
5.<a href="http://www.softpanorama.org/DNS/dns_ports.shtml">http://www.softpanorama.org/DNS/dns_ports.shtml</a><br />
6.<a href="http://www.doxpara.com/DMK_BO2K8.ppt">http://www.doxpara.com/DMK_BO2K8.ppt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/dan-kaminsky-dns-vulnerability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hoşgeldin KDE4.2</title>
		<link>http://tarikzengin.com/hosgeldin-kde42/</link>
		<comments>http://tarikzengin.com/hosgeldin-kde42/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 17:28:01 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[emerge]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[KDE4]]></category>
		<category><![CDATA[KDE4.2]]></category>
		<category><![CDATA[Portage]]></category>

		<guid isPermaLink="false">http://www.tarikzengin.com/blog/?p=487</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/hosgeldin-kde42/" title="Hoşgeldin KDE4.2"></a>KDE4.2 üzerindeki maskenin kalkmasıyla beraber emerge yolları gözüktü yine. kde-testing overlay&#8217;i de çok güzel setler oluşturmuş. @kdebase-4.2 , @kdenetwork-4.2 gibi birçok set hazır halde geliyor. Geriye de emerge @kdebase-4.2 demek kalıyor. kde-3.5 ile epey bağımlılık çakışması problemi oldu. Önceleri o &#8230;<p class="read-more"><a href="http://tarikzengin.com/hosgeldin-kde42/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/hosgeldin-kde42/" title="Hoşgeldin KDE4.2"></a><p>KDE4.2 üzerindeki maskenin kalkmasıyla beraber emerge yolları gözüktü yine. <strong>kde-testing</strong> overlay&#8217;i de çok güzel setler oluşturmuş. <strong>@kdebase-4.2</strong> , <strong>@kdenetwork-4.2</strong> gibi birçok set hazır halde geliyor. Geriye de</p>
<pre>emerge @kdebase-4.2</pre>
<p>demek kalıyor. kde-3.5 ile epey bağımlılık çakışması problemi oldu. Önceleri o da kalsın istedim ama kdelibs fena çakışıyor.</p>
<p><strong>kdeprefix</strong> USE flag&#8217;ini kullanarak derledim. Kullanmadan yaptığım deneme hüsran ile sonuçlandı.<br />
Bu da henüz tazecik kde4.2 masaüstüm.</p>
<div id="attachment_488" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.tarikzengin.com/blog/wp-content/uploads/2009/02/kde4.png"><img class="size-medium wp-image-488 colorbox-487" title="kde4" src="http://www.tarikzengin.com/blog/wp-content/uploads/2009/02/kde4-300x187.png" alt="Yeni KDE4.2 Masaüstüm" width="300" height="187" /></a><p class="wp-caption-text">Yeni KDE4.2 Masaüstüm</p></div>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/hosgeldin-kde42/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Amele Programming Reloaded</title>
		<link>http://tarikzengin.com/amele-programming-reloaded/</link>
		<comments>http://tarikzengin.com/amele-programming-reloaded/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 06:26:08 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[AR5006EG]]></category>
		<category><![CDATA[Atheros]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Madwifi-ng]]></category>
		<category><![CDATA[Mechanize]]></category>
		<category><![CDATA[Ndiswrapper]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://tarikzengin.wordpress.com/?p=227</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/amele-programming-reloaded/" title="Amele Programming Reloaded"></a>Evde kullandigim internet baglantisi bana biraz acayip geliyor. DHCP ile IP aldiktan sonra bir de ISP nin login sayfasina girip kullanici adi ve sifre ile login olmak gerekiyor. Bu tip baglantiya ne isim veriliyor hic bilmiyorum. Sorun su ki boot &#8230;<p class="read-more"><a href="http://tarikzengin.com/amele-programming-reloaded/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/amele-programming-reloaded/" title="Amele Programming Reloaded"></a><p>Evde kullandigim internet baglantisi bana biraz acayip geliyor. DHCP ile IP aldiktan sonra bir de ISP nin login sayfasina girip kullanici adi ve sifre ile login olmak gerekiyor. Bu tip baglantiya ne isim veriliyor hic bilmiyorum. Sorun su ki boot esnasinda DHCP sorgusu yapip IP almama ragmen firefox ile login sayfasina girip sifre girene kadar internete ulasamiyor olmak sinir bozucu. Ornegin NTP ile saat guncellemesi yapamiyorum bu durumda. Ya da en azindan gatget tarzi ufak uygulamalar desktop acildigi anda nete ulasamiyor ve sorunlarla karsilasiyorum.  Login sayfasinin yapisi oldukca basit. Kullanici adi ve sifrenin girildigi basit bir form submit ediliyor. Bir kac sene once Sesli&#8217;de kullandigim Mechanize ile yine ayni yapiyi kullanarak ufak bir script hazirladim. Yine Perl ile. Zaten neredeyse Sesli&#8217;deki betigin aynisini kullandim denebilir.Perl ile parsing yapmayi bilsem bash script&#8217;e de hic gerek kalmayacak ama su anda onu ogrenmeye ne vaktim ne de hevesim var. Yine yalnizca kendi isimi gorecek, benden baska kimsenin ne ihtiyac duyacagi ne de deneyebilecegi birsey cikti ortaya.<span id="more-227"></span></p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/perl</span>
<span style="color: #000000; font-weight: bold;">use</span> strict<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> WWW<span style="color: #339933;">::</span><span style="color: #006600;">Mechanize</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">use</span> HTTP<span style="color: #339933;">::</span><span style="color: #006600;">Cookies</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$username</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ARGV</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$password</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$ARGV</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$adres</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;http://login.iam.ne.jp&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#çıktının yazılacağı dosya</span>
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$linkfile</span> <span style="color: #339933;">=</span> <span style="color: #ff0000;">&quot;out.html&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$mech</span> <span style="color: #339933;">=</span> WWW<span style="color: #339933;">::</span><span style="color: #006600;">Mechanize</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>new<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>cookie_jar<span style="color: #009900;">&#40;</span>HTTP<span style="color: #339933;">::</span><span style="color: #006600;">Cookies</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>new<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>get<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">$adres</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>form_name<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">'LoginUser'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">#form adı LoginUser</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>field<span style="color: #009900;">&#40;</span>username <span style="color: #339933;">=</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$username</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">#kullanıcı adının yazılacağı değişken username</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>field<span style="color: #009900;">&#40;</span>passwd <span style="color: #339933;">=</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span> <span style="color: #0000ff;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">#şifrenin yazılacağı değişken passwd</span>
<span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>click<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$link_page</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">$mech</span><span style="color: #339933;">-</span><span style="color: #0000ff;">&amp;gt</span><span style="color: #339933;">;</span>content<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>OUTFILE<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;&amp;gt;$linkfile&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">print</span> OUTFILE <span style="color: #ff0000;">&quot;$link_page&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span>OUTFILE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;">#Degiskenleri tanimla</span>
<span style="color: #007800;">USER</span>=kullanici-adim-buraya
<span style="color: #007800;">PASS</span>=sifrem-de-buraya
<span style="color: #007800;">LINK</span>=link.html
<span style="color: #007800;">OUT</span>=out.html
<span style="color: #007800;">LOG</span>=log
<span style="color: #007800;">DIR</span>=<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>tarik<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">login</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$DIR</span>
&nbsp;
.<span style="color: #000000; font-weight: bold;">/</span>gir <span style="color: #007800;">$USER</span> <span style="color: #007800;">$PASS</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">logintime</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$OUT</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;Login Time&quot;</span>  <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $5 &quot; &quot; $6 &quot; &quot;  $7 &quot; &quot;  $8 $9 $10}'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">'&amp;lt;'</span> -f1<span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">test</span> <span style="color: #ff0000;">&quot;x<span style="color: #007800;">$logintime</span>&quot;</span> = x
<span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Connection Problem. User : <span style="color: #007800;">$USER</span> . &quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Check your settings!&quot;</span>
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">errordate</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Failed  : <span style="color: #007800;">$USER</span> <span style="color: #007800;">$errordate</span>&quot;</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #007800;">$LOG</span>
<span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Connection Established&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Login Time : <span style="color: #007800;">$logintime</span>&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Success : <span style="color: #007800;">$USER</span> <span style="color: #007800;">$logintime</span>&quot;</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #007800;">$LOG</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p>Ilk betigi &#8220;gir&#8221; ismiyle kaydedip ikinci betik icerisinden cagiriyorum. Baslikta da soyledigim gibi &#8220;Amele&#8221; programlama <img src='http://tarikzengin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley colorbox-227' />   Login esnasinda calismasi icin de .bashrc&#8217;ye ekledim betigin yolunu. Aslinda en guzeli bir init script yazmak. Hemen net.eth0 ardindan kosacak bir init scripti daha mantikli. Bu yolla NTP update yapamam haliyle. O kismi hala sorunlu. Ama en azindan masaustu acildiginda internet calisir durumda oluyor. Bu da bir asama.  Simdi bir problem daha kaldi. Evdeyken DHCP kullaniyorum. Ardindan yukaridaki betikle login olmam gerekiyor. Labda statik IP kullaniyorum. Okulun diger kisimlarinda Wireless kullaniyorum, yine DHCP. Bunlarin tumu icin ayri profiller olusturmam gerekiyor /etc/conf.d/net dosyasinda. Su anda gozume biraz karisik gozukuyor. Bu betigin de yalnizca evden baglanirken calisiyor olmasini istiyorum. Su anda hic icimden gelmiyor <img src='http://tarikzengin.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley colorbox-227' />  Belki yakinda duzgun bir ayar yaparim.</p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/amele-programming-reloaded/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Samba Japonca Karakter Seti</title>
		<link>http://tarikzengin.com/samba-japonca-karakter-seti/</link>
		<comments>http://tarikzengin.com/samba-japonca-karakter-seti/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 06:39:33 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Japanese]]></category>
		<category><![CDATA[Japonca]]></category>
		<category><![CDATA[Konqueror]]></category>
		<category><![CDATA[lan]]></category>
		<category><![CDATA[Lisa]]></category>
		<category><![CDATA[Samba]]></category>
		<category><![CDATA[Samba Charset]]></category>
		<category><![CDATA[smb]]></category>

		<guid isPermaLink="false">http://tarikzengin.wordpress.com/?p=221</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/samba-japonca-karakter-seti/" title="Samba Japonca Karakter Seti"></a>Labdaki Samba File Server&#8217;a erismek icin kullanici adi ve sifre aldim gecenlerde. Samba ayarlarim dogru olmasina ragmen ilk gunlerde sorunsuzca ulasabildigim workgroup simdilerde nedense ulasilamaz durumda. Bunu henuz cozebilmis degilim. Konqueror devamli &#8220;Unable to find any workgroups in your local &#8230;<p class="read-more"><a href="http://tarikzengin.com/samba-japonca-karakter-seti/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/samba-japonca-karakter-seti/" title="Samba Japonca Karakter Seti"></a><p>Labdaki Samba File Server&#8217;a erismek icin kullanici adi ve sifre aldim gecenlerde. Samba ayarlarim dogru olmasina ragmen ilk gunlerde sorunsuzca ulasabildigim workgroup simdilerde nedense ulasilamaz durumda. Bunu henuz cozebilmis degilim. Konqueror devamli &#8220;Unable to find any workgroups in your local network. This might be caused by an enabled firewall.&#8221; uyarisi veriyor smb:/ protokolunu kullandigim zaman. Bilgisi olan varsa yardimlarini beklerim.  Konqueror&#8217;dan Lisa ayarlarini &#8220;Kendi IPm&#8221;/&#8221;Subnet Mask&#8221; seklinde yapinca file server&#8217;i gorup erisebiliyorum lan:// protokolu uzerinden. Fakat daha buyuk bir sorun daha var<span id="more-221"></span> Dosya sunucusu uzerindeki cogu dosya ve klasor ismi Japonca yazilmis. Keza icerikleri de oyle <img src='http://tarikzengin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley colorbox-221' />   Haliyle ilk etapta dosya isimlerini sacma sapan karakterler olarak gordum. Konquror, Tools menusunde &#8220;Select Remote Charset&#8221; isminde tam da benim sorunumu cozebilecek bir ayar gordum. Sevindim tabi hemen. Epey bi sevindirik oldum. Ta ki charset secene kadar. Konqueror dondu kaldi. Kill ettim. Tekrar actigimda sectigim charset set edilmisti. Ama halen karakterler duzgun degildi. Farkli charsetler icin &#8220;Sec / Konqueror donsun / Kill et / Tekrar ac / Olmasin&#8221; kombinasyonunu defalarca denedim. Gentoo Bugzilladan baktim, sanirim Gentoo&#8217;ya has bi bug bu.  Neden sonra Samba Charset ayarlarini degistirmek geldi aklima. Aradim taradim, birkac ufak bilgi bulabildim. En cok da <a href="http://www.monyo.com/technical/samba/docs/Japanese-HOWTO-3.0.en.txt" target="_blank">su adres</a>teki HOWTO isime yaradi. Kisacasi;  Display Charset :CP932  Unix Charset :UTF-8  DOS Charset :CP932  olarak ayarlamak gerekiyor.  smb.conf dosyasini da asagidaki sekilde duzenleyince herkes mutlu oldu sonsuza kadar mutlu yasadi.</p>
<pre style="padding-left:30px;">[global]
restrict anonymous = no
domain master = no
preferred master = no
workgroup = KLAB
max protocol = NT
acl compatibility = winnt
ldap ssl = No
server signing = Auto
display charset = CP932
dos charset = CP932
wins server = XX.XX.XX.XX (gizli bu soylenmez)</pre>
<div id="attachment_224" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.tarikzengin.com/blog/wp-content/uploads/2008/11/sambaserver1.png"><img class="size-medium wp-image-224 colorbox-221" title="sambaserver1" src="http://www.tarikzengin.com/blog/wp-content/uploads/2008/11/sambaserver1-300x191.png" alt="Japanese Samba File Server by Konqueror" width="300" height="191" /></a><p class="wp-caption-text">Japanese Samba File Server by Konqueror</p></div>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/samba-japonca-karakter-seti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[İPUCU] Portage Package Mask</title>
		<link>http://tarikzengin.com/ipucu-portage-package-mask/</link>
		<comments>http://tarikzengin.com/ipucu-portage-package-mask/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 18:31:33 +0000</pubDate>
		<dc:creator>Aydin Tarik Zengin</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[ipucu]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Portage]]></category>

		<guid isPermaLink="false">http://tarikzengin.wordpress.com/?p=188</guid>
		<description><![CDATA[<a href="http://tarikzengin.com/ipucu-portage-package-mask/" title="[İPUCU] Portage Package Mask"></a>Yeni öğrendiğim ve işleri pratikleştirebilecek bir ipucunu paylaşmak istiyorum. Portage&#8217;da paket maskelerini kaldırmak için hepimizin bildiği üzere package.unmask ve package.keywords dosyalarını kullanıyoruz. Yine çok iyi bildiğimiz gibi bunlar /etc/portage altında bulunuyor. Madem biliyoruz daha ne değil mi? Bilmediğim şey şuydu &#8230;<p class="read-more"><a href="http://tarikzengin.com/ipucu-portage-package-mask/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://tarikzengin.com/ipucu-portage-package-mask/" title="[İPUCU] Portage Package Mask"></a><p>Yeni öğrendiğim ve işleri pratikleştirebilecek bir ipucunu paylaşmak istiyorum. Portage&#8217;da paket maskelerini kaldırmak için hepimizin bildiği üzere package.unmask ve package.keywords dosyalarını kullanıyoruz. Yine çok iyi bildiğimiz gibi bunlar /etc/portage altında bulunuyor. Madem biliyoruz daha ne değil mi? <img src='http://tarikzengin.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-188' /> </p>
<p>Bilmediğim şey şuydu ki, /etc/portage altına package.unmask ve package.keywords isimlerinde dizinler oluşturarak bunların altında ister ayrı ayrı dosyalarda ister ayrı dizinler altında yine ayrı dosyalarda, dosyaların isimlerinden bağımsız olarak unmask işlemi yapılabiliyormuş. Bu ne demek şimdi?</p>
<p>Kararsız bir paket derlemek istediğimizde beraberinde gelecek olan onlarca maskeli paketi package.keywords dosyamıza değil de /etc/portage/package.keywords/kararsizpaket isimli bir dosyaya ekleyip derleme işlemini yapabilir, ardından da maskeleri tekrar açmak istediğimizde kararsizpaket isimli dosyayı silebiliriz.</p>
<p>Normalde aynı işlemi package.keywords dosyasına gruplar halinde ekliyor, her grubun başına comment ekleyerek grubun maskesini neden kaldırdığımı not düşüyordum. Yeni yöntem, takip etmesi biraz daha kolay göründü bana. Bu arada Portage versiyonum 2.1.4.4. Önceki versiyonlarda desteklenip desteklenmediği hakkında bir bilgim yok.</p>
<p>Bir ipucunun daha sonuna geldiğimiz şu dakikalarda, sağlık ve esenlikler diliyorum.</p>
<p>Ya da dilemiyorum.</p>
]]></content:encoded>
			<wfw:commentRss>http://tarikzengin.com/ipucu-portage-package-mask/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

