Başlangıç olarak .htaccess Nedir ?
.htaccess (hypertext access file) Genelde Sunucunun Ana dizininde olan
Adı olmayan Ayarlar Uygulamalar Yapışan Dosyadır. Güvenlik ,Yetki, Düzenleme, Ayar, kısıtlama vb.
işlemleri yapabiliyoruz.
Daha Onlarca işlem Ama bu gün Biz Sadece Güvenliğin Bir kısmını Ele Alacağız .
Güvenlik
----------
Dizin Şifreleme
Hedef site Saldırılarında çok büyük Engel Olarak Görüyorum bunu
Mesala Sql injection Yaptık User bilgilerini Çektik Admine Login olacaz.
koyulduk paneli Aramaya /user/admin/ yazdık Karşımıza Yukarıdaki Resim Gibi
login Çıktı Artık bu konuda Deneme Yanılmadan başka Çaremiz Kalmaz ve bu
önümüze kalın Bir duvar Gibi Engel olur.
Nasıl Yapılır
Bunun için 2 Adet Dosya Oluşturmamız Lazım.
biri .htaccess
diğeri .htpasswd
Bunları Şifrelemek istediğimiz Dizinin içine Atacaz.
.htaccess içeriği.
AuthType Basic
AuthName "Klasör Açıklaması"
AuthUserFile /home/kullancıadınız/sifrelenecek_dizin/.htpasswd
<Limit GET>
require valid-user
</Limit>
AuthUserFile /home/kullancıadınız/sifrelenecekdizin/.htpasswd
/ den sonrasını kendinize Göre düzenlemeniz Gerekmektedir .
"sifrelenecekdizin" yerine şifrelemek isteğiniz Sayfayı yazacaksınız
örnek olarak "/admin/" , "/panel/" gibi
.htpasswd oluşturma
Bu dosyanın içeriğini kullancı Adı ve şifremizi Yazacaz Yalnız dili Ascı karekterlerden
oluşturuldugundan dolayı vereceğim siteden kullancı adı ve şifre oluşturacağız.
http://www.4webhelp.net/us/password.php
"Name" bölümüne kullanıcı adınızı. "Password" ve "Password Again" bölümüne şifrenizi yazın.
Daha sonta "encreypter" butonuna tıklayın.
Çıkan kodu Kopyalıyıp oluşturdgumuz .htpasswd için yapıştırıyoruz.
örnek:
mesela ben kullanıcı adı :black pass:black
yapacam şu şekilde bir kod çıkacak karşıma
black:68hmGImVvL8iY
ve bu kod değişkendir her yaptıgımızda farklı bir kod çıkacak.
dizin şifreleme bu kadar 2 dosyayıda aynı klasörün için atmamız lazım :)
----------
Web Scannerlardan korunma
Bu konu çok önemli Biz bu sayede Acunetix sqlmap dirbuster gibi
Scannerlardan korunmamızı saglıyor bunu yapamak için .htaccess dosyamızın ana dizinde olması
lazım .
Bunu kendinize göre Editleye bilirsiniz Çoğalta bilirsiniz
kod:
RewriteEngine On
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_USER_AGENT} Acunetix [NC,OR]
RewriteCond %{HTTP_USER_AGENT} dirbuster [NC,OR]
RewriteCond %{HTTP_USER_AGENT} jbrofuzz [NC,OR]
RewriteCond %{HTTP_USER_AGENT} webshag [NC,OR]
RewriteCond %{HTTP_USER_AGENT} nikto [NC,OR]
RewriteCond %{HTTP_USER_AGENT} SF [OR]
RewriteCond %{HTTP_USER_AGENT} sqlmap [NC,OR]
RewriteCond %{HTTP_USER_AGENT} fimap [NC,OR]
RewriteCond %{HTTP_USER_AGENT} nessus [NC,OR]
RewriteCond %{HTTP_USER_AGENT} whatweb [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Openvas [NC,OR]
RewriteCond %{HTTP:Acunetix-Product} ^WVS
RewriteRule ^.* http://127.0.0.1/ [R=301,L]
</IfModule>
Yukarıdaki komutları kopyalayıp .htaccess dosyanıza yapıştırın.
Yapmamız yeterlidir netten bakıp buldugum tarama araçları bunlar siz düzenliye bilirsiniz
----------
sql injection Engelleme
Günümüzün En önemli AÇıklarında Biride Sitemizde bulunan Sql Açıkları.
Belki kod bilgimiz Yok Ve Açıgı kapatamıyoruz veya Öncede Güvenlik İçin
yapmak istiyoruz bunu için .htaccess dosyamızın içerisine vereceğim kodu Katıyoruz
ve engellemiş oluyoruz ana dizine koymanız gerekmektedir.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR]
RewriteCond %{HTTP_REFERER} ^(.*)(<|>|’|%0A|%0D|’|<|>|).* [NC,OR]
RewriteCond %{REQUEST_URI} ^/(,|;|<|>|/{2,999}).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(libwww|curl|wget|python|scan).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(<|>|’|%0A|%0D|’|<|>|).* [NC,OR]
RewriteCond %{HTTP_COOKIE} ^.*(<|>|’|%0A|%0D|’|<|>|).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(localhost|loopback|127\\.0\\.0\\.1).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(<|>|’|%0A|%0D|’|<|>|).* [NC,OR]
RewriteCond %{QUERY_STRING} [^a-z](|order|union|declare|char|set|cast|convert|delete|drop|exec|insert|meta|script|select|truncate|update)[^a-z] [NC]
RewriteRule (.*) - [F]
Yukarıdaki komutları kopyalayıp .htaccess dosyanıza yapıştırın.
bu yeterlidir ve Kesin çözüm Değildir Bu Bypass Edilebilir bunu Daha sonraki
makalelerimize Ekliye biliriz.
----------
XSS engelleme
Geleceğin En büyük açıklarından biri olan xss Bazen çık tehlikeli Sonuçlar
doğurabiliyor.
Bunu Kesin çözümü Açıgı kapatmak bir diğer yöntem ise .htaccess ile engelleme
Bu yöntemle muhtemel Saldırılarıda 403 hatası verdirerek önüne Geçiyoruz .
örnek olarak şunu engellemiş oluyoruz .
yaz.php?id=<script>alert(’Black’)</script>
yaptıgımız anda 403 hatası verecektir.
kod:
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode.*\\(.*\\) [OR]
RewriteCond %{QUERY_STRING} (\\<|<).*script.*(\\>|>) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\\[|\\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\\[|\\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php|forum.php|yaz.php [F,L]
Yukarıdaki komutları kopyalayıp .htaccess dosyanıza yapıştırın.
Dosya isimlerini Kendinize Göre düzenleyin Lütfen
----------
Erişim kısıtlama
Erişim Kısıtlama ile isteğimiz Domainden gelenlere izin Veriğ Engelleye Biliriz
kod:
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
order deny,allow
allow from http://Cyber-warrior.org
deny from 192.168.1.1
deny from http://google.com
deny from abd.gov
Yukarıdaki komutları kopyalayıp .htaccess dosyanıza yapıştırın.
Şeklinde
allow from yazarak izin verip
denny from yazarak engellye biliriz .
ihtiyaca göre çoğaltıla bilir.
----------
.htaccess dosyasını olabildiğince küçük tutmaya çalışın.
Çünkü her dosya isteğinde sunucu tarafından kontrol edilirler.
Ve boyutun büyümesi yavaşlamaya neden olabilir.
.htaccess dosyayı olağınca düzenli turmaya çalıçalım çünkü
kural arttıkça sunucunun dosyayı tanıması zorlaşacaktır.
öneri olarakta
# kullanarak isimlendirip ayırın
.htaccess Kullanımı okadar Genişki Tek makalede Anlatmak imkansız
Güvenlik için bu makale buraya kadar dahada ekleme yapabilirim .
bir Başka Makalede Buluşmak üzere Selametle :) ééé
.htaccess (hypertext access file) Genelde Sunucunun Ana dizininde olan
Adı olmayan Ayarlar Uygulamalar Yapışan Dosyadır. Güvenlik ,Yetki, Düzenleme, Ayar, kısıtlama vb.
işlemleri yapabiliyoruz.
Daha Onlarca işlem Ama bu gün Biz Sadece Güvenliğin Bir kısmını Ele Alacağız .
Güvenlik
----------
Dizin Şifreleme
Hedef site Saldırılarında çok büyük Engel Olarak Görüyorum bunu
Mesala Sql injection Yaptık User bilgilerini Çektik Admine Login olacaz.
koyulduk paneli Aramaya /user/admin/ yazdık Karşımıza Yukarıdaki Resim Gibi
login Çıktı Artık bu konuda Deneme Yanılmadan başka Çaremiz Kalmaz ve bu
önümüze kalın Bir duvar Gibi Engel olur.
Nasıl Yapılır
Bunun için 2 Adet Dosya Oluşturmamız Lazım.
biri .htaccess
diğeri .htpasswd
Bunları Şifrelemek istediğimiz Dizinin içine Atacaz.
.htaccess içeriği.
AuthType Basic
AuthName "Klasör Açıklaması"
AuthUserFile /home/kullancıadınız/sifrelenecek_dizin/.htpasswd
<Limit GET>
require valid-user
</Limit>
AuthUserFile /home/kullancıadınız/sifrelenecekdizin/.htpasswd
/ den sonrasını kendinize Göre düzenlemeniz Gerekmektedir .
"sifrelenecekdizin" yerine şifrelemek isteğiniz Sayfayı yazacaksınız
örnek olarak "/admin/" , "/panel/" gibi
.htpasswd oluşturma
Bu dosyanın içeriğini kullancı Adı ve şifremizi Yazacaz Yalnız dili Ascı karekterlerden
oluşturuldugundan dolayı vereceğim siteden kullancı adı ve şifre oluşturacağız.
http://www.4webhelp.net/us/password.php
"Name" bölümüne kullanıcı adınızı. "Password" ve "Password Again" bölümüne şifrenizi yazın.
Daha sonta "encreypter" butonuna tıklayın.
Çıkan kodu Kopyalıyıp oluşturdgumuz .htpasswd için yapıştırıyoruz.
örnek:
mesela ben kullanıcı adı :black pass:black
yapacam şu şekilde bir kod çıkacak karşıma
black:68hmGImVvL8iY
ve bu kod değişkendir her yaptıgımızda farklı bir kod çıkacak.
dizin şifreleme bu kadar 2 dosyayıda aynı klasörün için atmamız lazım :)
----------
Web Scannerlardan korunma
Bu konu çok önemli Biz bu sayede Acunetix sqlmap dirbuster gibi
Scannerlardan korunmamızı saglıyor bunu yapamak için .htaccess dosyamızın ana dizinde olması
lazım .
Bunu kendinize göre Editleye bilirsiniz Çoğalta bilirsiniz
kod:
RewriteEngine On
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_USER_AGENT} Acunetix [NC,OR]
RewriteCond %{HTTP_USER_AGENT} dirbuster [NC,OR]
RewriteCond %{HTTP_USER_AGENT} jbrofuzz [NC,OR]
RewriteCond %{HTTP_USER_AGENT} webshag [NC,OR]
RewriteCond %{HTTP_USER_AGENT} nikto [NC,OR]
RewriteCond %{HTTP_USER_AGENT} SF [OR]
RewriteCond %{HTTP_USER_AGENT} sqlmap [NC,OR]
RewriteCond %{HTTP_USER_AGENT} fimap [NC,OR]
RewriteCond %{HTTP_USER_AGENT} nessus [NC,OR]
RewriteCond %{HTTP_USER_AGENT} whatweb [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Openvas [NC,OR]
RewriteCond %{HTTP:Acunetix-Product} ^WVS
RewriteRule ^.* http://127.0.0.1/ [R=301,L]
</IfModule>
Yukarıdaki komutları kopyalayıp .htaccess dosyanıza yapıştırın.
Yapmamız yeterlidir netten bakıp buldugum tarama araçları bunlar siz düzenliye bilirsiniz
----------
sql injection Engelleme
Günümüzün En önemli AÇıklarında Biride Sitemizde bulunan Sql Açıkları.
Belki kod bilgimiz Yok Ve Açıgı kapatamıyoruz veya Öncede Güvenlik İçin
yapmak istiyoruz bunu için .htaccess dosyamızın içerisine vereceğim kodu Katıyoruz
ve engellemiş oluyoruz ana dizine koymanız gerekmektedir.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR]
RewriteCond %{HTTP_REFERER} ^(.*)(<|>|’|%0A|%0D|’|<|>|).* [NC,OR]
RewriteCond %{REQUEST_URI} ^/(,|;|<|>|/{2,999}).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(libwww|curl|wget|python|scan).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(<|>|’|%0A|%0D|’|<|>|).* [NC,OR]
RewriteCond %{HTTP_COOKIE} ^.*(<|>|’|%0A|%0D|’|<|>|).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(localhost|loopback|127\\.0\\.0\\.1).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(<|>|’|%0A|%0D|’|<|>|).* [NC,OR]
RewriteCond %{QUERY_STRING} [^a-z](|order|union|declare|char|set|cast|convert|delete|drop|exec|insert|meta|script|select|truncate|update)[^a-z] [NC]
RewriteRule (.*) - [F]
Yukarıdaki komutları kopyalayıp .htaccess dosyanıza yapıştırın.
bu yeterlidir ve Kesin çözüm Değildir Bu Bypass Edilebilir bunu Daha sonraki
makalelerimize Ekliye biliriz.
----------
XSS engelleme
Geleceğin En büyük açıklarından biri olan xss Bazen çık tehlikeli Sonuçlar
doğurabiliyor.
Bunu Kesin çözümü Açıgı kapatmak bir diğer yöntem ise .htaccess ile engelleme
Bu yöntemle muhtemel Saldırılarıda 403 hatası verdirerek önüne Geçiyoruz .
örnek olarak şunu engellemiş oluyoruz .
yaz.php?id=<script>alert(’Black’)</script>
yaptıgımız anda 403 hatası verecektir.
kod:
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode.*\\(.*\\) [OR]
RewriteCond %{QUERY_STRING} (\\<|<).*script.*(\\>|>) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\\[|\\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\\[|\\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php|forum.php|yaz.php [F,L]
Yukarıdaki komutları kopyalayıp .htaccess dosyanıza yapıştırın.
Dosya isimlerini Kendinize Göre düzenleyin Lütfen
----------
Erişim kısıtlama
Erişim Kısıtlama ile isteğimiz Domainden gelenlere izin Veriğ Engelleye Biliriz
kod:
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
order deny,allow
allow from http://Cyber-warrior.org
deny from 192.168.1.1
deny from http://google.com
deny from abd.gov
Yukarıdaki komutları kopyalayıp .htaccess dosyanıza yapıştırın.
Şeklinde
allow from yazarak izin verip
denny from yazarak engellye biliriz .
ihtiyaca göre çoğaltıla bilir.
----------
.htaccess dosyasını olabildiğince küçük tutmaya çalışın.
Çünkü her dosya isteğinde sunucu tarafından kontrol edilirler.
Ve boyutun büyümesi yavaşlamaya neden olabilir.
.htaccess dosyayı olağınca düzenli turmaya çalıçalım çünkü
kural arttıkça sunucunun dosyayı tanıması zorlaşacaktır.
öneri olarakta
# kullanarak isimlendirip ayırın
.htaccess Kullanımı okadar Genişki Tek makalede Anlatmak imkansız
Güvenlik için bu makale buraya kadar dahada ekleme yapabilirim .
bir Başka Makalede Buluşmak üzere Selametle :) ééé
Hiç yorum yok: