<?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>RecNes &#187; apache</title>
	<atom:link href="http://www.recnes.com/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.recnes.com</link>
	<description>http://www.recnes.com</description>
	<lastBuildDate>Wed, 28 Jul 2010 20:41:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Apache&#8217;ye gönderilen isteklerini başka makineye yönlendirmek (Apache Proxy)</title>
		<link>http://www.recnes.com/apacheye-gonderilen-isteklerini-baska-makineye-yonlendirmek-apache-proxy/</link>
		<comments>http://www.recnes.com/apacheye-gonderilen-isteklerini-baska-makineye-yonlendirmek-apache-proxy/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 09:36:01 +0000</pubDate>
		<dc:creator>RecNes</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sorunlu Teknoloji]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[proxy]]></category>

		<guid isPermaLink="false">http://www.recnes.com/?p=236</guid>
		<description><![CDATA[Son zamanlarda sanal sunucularla haşır neşir olduğumu son iki yazımdan anlamışsınızdır. Tabi çok profesyonel çözümler olmamakla birlikte şirket içinde 4 çekirdekli 8GB bellekli bir sunucunun hiçbir çekirdeğini ve 1mb belleğini heba etmeyecek şekilde hem dışarıya hem içeriye hizmet verebilmesini sağlamak amacıyla çözüm üretme çabası içindeyim. Buna sebep olarak geçen iki yazımdan sonra şimdi de Host [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://www.linuxuzmani.com/wp-content/yukluk/2009/01/apache_logo.jpg" alt="" width="177" height="90" />Son zamanlarda sanal sunucularla haşır neşir olduğumu son iki yazımdan anlamışsınızdır. Tabi çok profesyonel çözümler olmamakla birlikte şirket içinde 4 çekirdekli 8GB bellekli bir sunucunun hiçbir çekirdeğini ve 1mb belleğini heba etmeyecek şekilde hem dışarıya hem içeriye hizmet verebilmesini sağlamak amacıyla çözüm üretme çabası içindeyim. Buna sebep olarak geçen iki yazımdan sonra şimdi de Host makinedeki Apache dışarıya hizmet verirken Guest makinada kurulu olan Apache&#8217;nin apayrı veritabanı motoru ile apayrı bir projeyi sunmasını sağlamak gerekliliği doğdu.</p>
<p>Bunu yapmak için daha önce kurmuş olduğumuz sanal makineye geçen yazımda belirttiğim gibi Host makinedeki herhangi boş bir portu (faraza 2156.port) Guest makinenin 80.portuna yönledirerek işe başlayabiliriz. Daha sonra Guest makineye yayımlanacak olan projemizi yerleştiriyoruz ve Guest lokalinde çalıştığından emin olduktan sonra, Host makinenin http://localhost:2156/ adresinden de yönlendirmenin çalışıp çalışmadığın kontrol edebiliriz. Buraya kadar her şey yolunda ise bundan sonra Host makinemizin Apache ayarlarında yapacağımız değişiklikler ile http://adres:port/ yerine http://proje.falanca.com.tr/ adresi ile herhangi bir yerden sanal makinedeki projemize erişebilir hale geleceğiz.</p>
<p><span id="more-236"></span></p>
<p>Bu işin her zaman olduğu gibi bir hazırlık aşaması var. Her şeyden önce eğer kurulu değilse Apache için gerekli olan &#8220;libapache2-mod-proxy-html&#8221; paketini kurup bu modülleri  aktive etmemiz gerekmektedir.</p>
<blockquote><p>a2enmod proxy<br />
a2enmod proxy_http</p></blockquote>
<p>Bu modülleri aktif hale getirdikten sonra (eğer ubuntu kullanıyorsanız) &#8220;/etc/apache2/mod-available&#8221; klasöründe barınan &#8220;proxy.conf&#8221; dosyasında ufak bir değişiklik yapacağız. Normalde ön tanımlı &#8220;proxy.conf&#8221; şöyle görünmektedir:</p>
<blockquote><p>&lt;IfModule mod_proxy.c&gt;<br />
#turning ProxyRequests on and allowing proxying from all may allow<br />
#spammers to use your proxy to send email.</p>
<p>ProxyRequests Off</p>
<p>&lt;Proxy *&gt;<br />
AddDefaultCharset off<br />
Order deny,allow<br />
Allow from all<br />
#Allow from example.com<br />
&lt;/Proxy&gt;</p>
<p># Enable/disable the handling of HTTP/1.1 &#8220;Via:&#8221; headers.<br />
# (&#8220;Full&#8221; adds the server version; &#8220;Block&#8221; removes all outgoing Via: headers)<br />
# Set to one of: Off | On | Full | Block</p>
<p>ProxyVia On<br />
&lt;/IfModule&gt;</p></blockquote>
<p>Bu ayarlarıyla aslında Proxy güvenlik nedeni yüzünden çalışmayacaktır.  Onun için;</p>
<p>&lt;Proxy *&gt; satırına Host makinenin dış IP&#8217;sini  eklemek gerek</p>
<blockquote><p>&lt;Proxy http://dis.ip.321.112&gt;</p></blockquote>
<p>Ayrıca &#8220;#Allow from example.com&#8221; satırını yorum halinden çıkartıp, &#8220;example.com&#8221; yerine bu sefer protokol belirtmeden dış IP adresini yazmanız ve dosyayı kaydedip çıkın.</p>
<p>Ayarların çalıştığından emin olmak için Host makinedeki Apache&#8217;yi yeniden başlatın.</p>
<p>Ayarların çalıştığından emin olduktan sonra Host makinede çalışan Apache&#8217;de, Guest makinedeki yönlendirmeye erişmesi için sanal host dosyası oluşturalım.</p>
<p>&lt;VirtualHost *:80&gt;<br />
ServerName proje.falanca.com.tr<br />
ProxyPass / http://www.falanca.com.tr:2156/<br />
ProxyPassReverse / http://www.falanca.com.tr:2156/<br />
ProxyPreserveHost On<br />
&lt;/VirtualHost&gt;</p>
<p>Ve son olarak Host makinedeki Apache&#8217;yi yeniden başlatıp internet olan herhangi bir yerden http://proje.falanca.com.tr/ adresi ile Sanal makinenizden yayınladığınız projenize ulaşabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.recnes.com/apacheye-gonderilen-isteklerini-baska-makineye-yonlendirmek-apache-proxy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache&#8217;yi DDoS saldırılarından korumak</title>
		<link>http://www.recnes.com/apacheyi-ddos-saldirilarindan-korumak/</link>
		<comments>http://www.recnes.com/apacheyi-ddos-saldirilarindan-korumak/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 00:29:39 +0000</pubDate>
		<dc:creator>RecNes</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sorunlu Teknoloji]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ddos]]></category>
		<category><![CDATA[koruma]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[saldırı]]></category>
		<category><![CDATA[sunucu]]></category>

		<guid isPermaLink="false">http://www.recnes.com/?p=130</guid>
		<description><![CDATA[Apache&#8217;yi kuracağımız bir modül ile DDoS saldırılarından koruyabilirsiniz. MOD_DOSEVASIVE(Apache DoS Evasive Maneuvers Module): Mod_dosevasive apache için DoS , DDoS ve brute force saldırılarını engellemek için yazılmış bir modüldür.Firewall&#8217;ların genellikle etkisiz kaldıkları get,post tipi saldırılarda özellikle yeteneklerini göstermektedir.Böylece sunucunuza aşırı yük binmeden kendini toparlayabilmesini sağlamaktadır.Kolayca firewall, router, ipchain ve iptables ile anlaşabilecek şekilde modülü ayarlayabilirsiniz böylece [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="" src="http://www.hackerscenter.com/images/stories/apache.jpg" title="Apache Web Server" class="alignright" width="128" height="96" />Apache&#8217;yi kuracağımız bir modül ile DDoS saldırılarından koruyabilirsiniz.</p>
<p>MOD_DOSEVASIVE(Apache DoS Evasive Maneuvers Module):</p>
<p>Mod_dosevasive apache için DoS , DDoS ve brute force saldırılarını engellemek için yazılmış bir modüldür.Firewall&#8217;ların genellikle etkisiz kaldıkları get,post tipi saldırılarda özellikle yeteneklerini göstermektedir.Böylece sunucunuza aşırı yük binmeden kendini toparlayabilmesini sağlamaktadır.Kolayca firewall, router, ipchain ve iptables ile anlaşabilecek şekilde modülü ayarlayabilirsiniz böylece saldırganların sunucudan firewall seviyesinde ya da router seviyesinde atılmasını sağlayabilirsiniz.Genel olarak yaptığı işi inceleyelim kullanıcı sunucudaki bir siteye devamlı get, post, put gibi istekler gönderiyorsa mod_dosevasive tarafından kara listeye alınıyor sizin belirlediğiniz süre boyunca kara listeye alınan kişi sunucuya istek göndermeye devam edebilir ama alacağı http 403 forbidden(yasak) cevabını alır.Bu istekler devam etse bile sunucunuz yorulmayacaktır.Kendi deneyimlerimi yazının en sonunda paylaşacağım.Eğer firewall yada router ile anlaşabilecek şekilde ayarlarsanız mod_dosevasive yı kara listeye alınan kullanıcı bekletilmeden direk sunucudan uzaklaştırılacaktır.<br />
<span id="more-130"></span><br />
<strong>Teknik Detaylar:</strong></p>
<p>Tarama işlemi oluşturulan bir dinamik hash tablosunun kontrolü ile yapılır.Bu tablodaki ipler aşağıdaki standart kurulum değerlerini gösteriyorsa kara listeye alınır.</p>
<p>*Saniyede aynı sayfayı birden fazla istek yapılmışsa.<br />
*Aynı çocuk süreç üzerinden 50 istek yapıldı ise.<br />
*Kara listeye alındığı halde istek yapılıyorsa.</p>
<p>bu genellikle bu aralar çok yaygın olarak yapılan http flood scriptlerinden sunucuyu korumaktadır.Hem cpu kullanımını minimal de tutarken hemde sunucuyu bandwith türü yapılan saldırılardan korur.Belirlenen süre içinde engellenen kullanıcılar süre bittiğinde sunucuya takrar istek gönderebilir tabi firewall yada router ile sunucudan atılmadı ise.Sunucudan yasaklı olan ip listesi /tmp dizininde saklanmaktadır ve mod_dosevasive tarafından kontrol edilmektedir</p>
<p><strong>Kurulum İşlemleri</strong></p>
<ol>
Apache 1.3.x için kurulum detayları.</ol>
<p>1.) /usr/local/src dizinine geçiyoruz.</p>
<p><code>cd /usr/local/src</code></p>
<p>2.)Dosyayı sunucuya indiriyoruz.</p>
<p><code>wget http://www.nuclearelephant.com/proje...ve_1.10.tar.gz</code></p>
<p>3.)Sıkıştırılmış arşiv dosyasını açıyoruz.</p>
<p><code>tar -zxvf mod_dosevasive_1.10.tar.gz</code></p>
<p>4.)Ctrl+x tuş kombinasyonunu kullanarak dosyayı kaydedip çıkın.</p>
<p>5.)Apache yi yeniden başlatın.</p>
<p><code>/etc/init.d/apache restart</code></p>
<ol>
Apache 2.x için ayarların yapılması</ol>
<p>1.)Apache ayar dosyası olan httpd.conf dosyasını açın</p>
<p>2.)LoadModule mod_dosevasive.c yazan yeri bulun altına aşağıdakileri ekleyin.</p>
<p><code>&lt;IFMODULE mod_dosevasive20.c&gt;<br />
DOSHashTableSize 3097<br />
DOSPageCount 2<br />
DOSSiteCount 50<br />
DOSPageInterval 1<br />
DOSSiteInterval 1<br />
DOSBlockingPeriod 10<br />
DOSBlockingPeriod 600<br />
&lt;/IFMODULE&gt;<br />
</code></p>
<p>3.)Tekrar ctrl+w tuşlarına basın gelen arama ekranına MaxRequestsPerChild MaxRequestsPerChild = 0 değerini göreceksiniz o değeri MaxRequestsPerChild 10000 olacak şekilde değiştirin.Bu sayede mod_dosevasive süresi dolan hash leri temizleyecektir.Ayrıca gene httpd.conf ta keepalive yazan kısım on olarak kalsın off yaparsanız çalışmayacaktır.</p>
<p>4.)Dosyayı kaydedip apache yi yeniden başlatın.</p>
<p><strong>Eklenen Değerlerin anlamları</strong></p>
<ol>
DOSHashTableSize:</ol>
<p>Her alt süreçteki en üst seviye nodlarının büyüklüğünü belirtir.Bu değeri yükseltmek performans artışını sağlayacaktır fakat aynı zamanda kayıtların kontrolü daha seyrek yapılacaktır.Eğer yoğun bir sunucunuz varsa bu değeri yükseltin .</p>
<ol>
DOSPageCount:</ol>
<p>Aynı sayfaya gelebilecek belirli bir süredeki istek sayısıdır.Belirli bir süre değeri DOSPageINterval değeri ile ayarlanır.Eğer bu istek sayısı aşılırsa ip kara listeye alınır sunucuya ulaşmaya çalıştığında 403 forbidden yanıtını alır.</p>
<ol>
DOSSiteCount</ol>
<p>DOSSiteInterval değerinde belirtilen sürede siteden çekilebilecek obje,nesne sayısıdır.(html, css, resim vs.)</p>
<ol>
DOSPageInterval</ol>
<p>DOSPageCount değeri için ayarlanacak saniyedir.</p>
<ol>
DOSSiteInterval</ol>
<p>DOSSiteCount değeri için ayarlanacak saniyedir.</p>
<ol>
DOSBlockingPeriod:</ol>
<p>Kara listeye alınan iplerin 403 forbidden yanıtını alacağı saniye cinsinden süredir bunu yüksek tutmaya çalışın 10 dakika gibi yani 600</p>
<ol>
DOSEmailNotify</ol>
<p>Herhangi bir saldırı olduğunda maillerin gideceği e-posta adresi.</p>
<ol>
DOSSystemCommand:
</ol>
<p>Sistem tarafından icra edilebilecek komutlar.</p>
<p>Kişisel Deneyim:<br />
Daha önce http flood scriptlerini engellemek için bir çok firewall, apache için eklenti kurdum denedim ve çoğu gerçekten bir işe yaramıyordu kanaatimce ya da beklediğim şekilde etki etmiyordu. Örneğin: mod_throotle, dosevasive varken kesinlikle kurmayın derim. Modu deneme platformum p4 2.4 1024 ram. Yaklaşık 80 siteyi barındıran orta yoğunlukta bir server modülü önce firewall ile iletişim kurmayacak şekilde kurdum böylece kara listeye alınan bir ip hemen serverdan uzaklaştırılmayacak 403 mesajları gönderilecekti. İlk denemememi 1024K adsl ile yaptım, %0.5 seviyesinde seyreden server load ve %30 seviyesinde seyreden ram, saldırının birinci dakikasında yük yoğunluğu %60&#8242;a, ram kullanımı %70 civarına çıktı. Modülün logları incelemeye başlaması ile %60&#8242;a çıkan yük yoğunluğu, saldırıya devam etmeme rağmen 10 dakika içinde %1.3 seviyesine indi buda bu kadar ağır bir saldırı için çok normal herhangi bir önlem alınmamış bir serverda böye bir saldırı yani dinamik php sayfalarına devamlı get isteği gelmesi, önce apache&#8217;yi çükertir sonra mysql&#8217;ın ve sunucunun kendine gelemeyeceğine garanti veririm.</p>
<p>Yaklaşık bir buçuk saat kadar saldırıyı sürdürdüm, bu sürede ortama process sayısı 167.23 requests/sec dır. Görüldüğü gibi aşırı fazla bir sayı. Saldırı sırasında 30-40 arası olan ram kullanımı 80 e çıktı buda gayet doğal bir olay, çünkü linux un işleyişi windows gibi değildir elindeki bütün işlemleri olabildiğince ram&#8217;e yazar, yeterli bellek kalmadığında ise bunları boşaltır ama benim görüşürüz 2gb ram&#8217;li bir sunucuda bu tür ağır bir http flood un mod_dosevasive ile hiç bir etkisi olmayacaktır.APF firewall&#8217;u mod_dosevasive ile iletişim kuracak şekilde ayarladığımda ise saldırı yaptığım ip 3 dakika içinde sistemden uzaklaştırıldı.</p>
<p>Benim kullandığım kurallar biraz daha agresif olmasına karşın server&#8217;da çok yoğun siteler olmadığı için çok iyi sonuç verdiğini düşünüyorum.</p>
<p><strong>Agresif kural zinciri:</strong></p>
<p><code>&lt;IFMODULE mod_dosevasive.c&gt;<br />
DOSHashTableSize 3097<br />
DOSPageCount 1<br />
DOSSiteCount 25<br />
DOSPageInterval 1<br />
DOSSiteInterval 1<br />
DOSBlockingPeriod 600<br />
&lt;/IFMODULE&gt;<br />
</code></p>
<p>mod_dosevasive nın Firewall ile yardımıyla kara listeye alınanları sunucudan uzaklaştırması</p>
<p>1.)Konsolda root iken visudo yazın.Dosyanın en altına girip şunu ekleyin</p>
<p><code>nobOdy HOSTNAME = NOPASSWD: /usr/local/sbin/apf -d *</code></p>
<p>Burada hostname kısmına kendi hostname inizi yazın bunu öğrenmek için konsolda hostname komutunu kullanabilirsiniz.Benim hostname im root.abcd.com diyelim oraya</p>
<p><code>Örnek:<br />
nobOdy root. = NOPASSWD: /usr/local/sbin/apf -d *</code></p>
<p>yazıyorum. Kaydetmek için ESC tuşuna basın ve ardından qw tuşlarına basıp enter deyin.</p>
<p>2.)Apache ayar dosyası olan httpd conf dosyasını gene açıyoruz</p>
<p><code>pico -w /usr/local/apache/conf/httpd.conf</code></p>
<p>3.)Daha önce eklediğimiz kısımı buluyoruz<br />
<code>DOSHashTableSize 3097<br />
DOSPageCount 5<br />
DOSSiteCount 100<br />
DOSPageInterval 2<br />
DOSSiteInterval 2<br />
DOSBlockingPeriod 600<br />
</code></p>
<p>hemen altına şu 2 satırı ekliyoruz</p>
<p><code>DOSEmailNotify color=#22229cemail@adresiniz.com<br />
DOSSystemCommand "sudo /usr/local/sbin/apf -d %s"</code></p>
<p>kendi mail adresinizi değiştirmeyi unutmayın.</p>
<p>4.)Dosyayı kaydedip çıkıyoruz ve apache yi yeniden başlatıyoruz</p>
<p><code>/etc/init.d/apache restart</code></p>
<p>5.)Artık kara listeye alınan ipler firewall tarafından sistemden uzaklaştırılacaktır.</p>
<p>Kaynak: http://www.pembeyesil.com/f46/ddos-korunma-yollari-953/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.recnes.com/apacheyi-ddos-saldirilarindan-korumak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows&#8217;a Webserver Kurulumu (apache + php + mysql)</title>
		<link>http://www.recnes.com/windowsa-webserver-kurulumu-apache-php-mysql/</link>
		<comments>http://www.recnes.com/windowsa-webserver-kurulumu-apache-php-mysql/#comments</comments>
		<pubDate>Wed, 11 Jul 2007 15:00:24 +0000</pubDate>
		<dc:creator>RecNes</dc:creator>
				<category><![CDATA[Sorunlu Teknoloji]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[webserver]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.recnes.com/sorunlu-teknoloji/windowsa-webserver-kurulumu-apache-php-mysql</guid>
		<description><![CDATA[Eveeet. Sanırım bu işe yeni başlayaşlayanların en büyük handikapı, &#8220;Windows&#8217;a nasıl bir webserver kurulur?&#8221; sorusu olsa gerek. Aslında bu sorunun cevabı çok basit. Windows&#8217;unuza birkaç tıklama ile apache, php, mysql, phpmyadmin kurulumunu gerçekleştirip makinanızı bir webserver haline getirebilirsiniz. Bunun için gavur şöyle bi program hazırlamış : AppServ. Bu paket sayesinde ne IIS (Internet Information Server) ile [...]]]></description>
			<content:encoded><![CDATA[<p ALIGN="left">Eveeet. Sanırım bu işe yeni başlayaşlayanların en büyük handikapı, &#8220;Windows&#8217;a nasıl bir webserver kurulur?&#8221; sorusu olsa gerek. Aslında bu sorunun cevabı çok basit. Windows&#8217;unuza birkaç tıklama ile apache, php, mysql, phpmyadmin kurulumunu gerçekleştirip makinanızı bir webserver haline getirebilirsiniz. Bunun için gavur şöyle bi program hazırlamış : <a TARGET="_blank" TITLE="The Appserv open Project" HREF="http://www.appservnetwork.com/">AppServ</a>. Bu paket sayesinde ne IIS (Internet Information Server) ile uğraşmanıza gerek kalıyor, ne de apache, php, mysql, phpmyadmin paketlerini ayrı ayrı indirip, kurup, bir de bunların birbirleri ile entegrasyonuna saatler harcamanıza gerek kalmıyor. <span id="more-60"></span></p>
<p ALIGN="left">Sitesinden indireceğiniz tek parçalık kurulum paketi ile bütün bu ıvır zıvırı kurmanıza olanak sağlayan ve sürekli olarak güncelleştirilen bir paket. Sürekli olarak güncelleştirilmesi çok büyük bir artı. Sonuçta güncelleştikçe pakete apache, mysql, php ve ya phpmyadmin&#8217;in güncel sürümleri ekleniyor. Bu da size php&#8217;nin yeni çıkan komutsetleri ile ya da fonksyonları ile çalışmanıza olanakveriyor.</p>
<p ALIGN="left">&nbsp;</p>
<p ALIGN="left">Sanırım merak ettiğiniz en önemli unsur nasıl kurarım sorusu. Size resimli izahatı ile birlikte kurulum bilgilerini makalemsiler bölümünde anlatacağım.<a TITLE="Windows Üzerine AppServ Kurulumu" HREF="http://www.recnes.com/sf-forum?forum=1&amp;topic=4&amp;page=1"> Lütfen bağlantıyı takip ediniz</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.recnes.com/windowsa-webserver-kurulumu-apache-php-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
