Webekci
WeBekci Nedir?
ModSecurity için yazılmış bir arayüzdür. Php, Mysql ve XAJAX Framework`ü kullanılmıştır. WeBekci bir OWASP projesidir.
Amacı:ModSecurity 2.x konfigurasyonu sağlamak, kural eklemek, sistem, apache ve modsecurity loglarını izlemek (şu an sadece guardian log basit şekilde konulmuştur.)
Yapabildikleri: ModSecurity 2.x konfigurasyonunun %90`ına destek vermektedir. Aynı zamanda manuel olarakta kural eklemeye izin verir. Tek değişkenli kuralların yazılımına ve action ların %70`ine destek verilmektedir. System log`u, Apache log`u ve ModSecurity Guardian log`una destek verilmektedir. Bu logların basit bir görünümünü içinde bulundurmaktadır. Aynı zamanda sistem hakkında ufak bilgiler sunmaktadır.
Eklenecekler:
1.Konfigurasyon: ModSecurity 2.x konfigurasyonunun %100`üne destek vermek.
2.Kural Oluşturucu: ModSecurity 2.x değişken ve etkilerinin hepsini kapsamak. Çoklu değişkenler yardımı ile kural eklemek ve zincir kuralların oluşturulmasını sağlamak.
3.Kayıt Analizi: ModSecurity Auditlog ve Debuglogların düzenlenip anlaşılır bir şekilde ekrana getirilmesi sağlanacak. Aynı zamanda çoklu Apache error ve access logları eklenecek.
4.Çoklu Veritabanı: PostgreSql ve SqLite desteği verilecek.
Gereksinimler:
• Platform Linux/Unix,
• Apache + ModSecurty 2.x
• Php
• Mysql
Geliştiriciler
Bünyamin Demir (bunyamin~owasp.org)
Mail listesi: [email protected]
Kurulum
Download adres: https://sourceforge.net/projects/webekci/
# tar –zxvf webekci-1.0.tar.gz
# mv webekci /usr/local/www/
# cd /usr/local/www/webekci
Öncelikle .htaccess ve .htpasswd dosyalarımızı oluşturalım. WeBekcinin kendi güvenliği bu yolla sağlanmaktadır.
# vi .htaccess
Dosyamızın içinde
AuthUserFile /usr/home/bunyamin/.htpasswd
AuthType Basic
AuthName "Owasp-WeBekci Screet Area"
<LIMIT GET POST>
require valid-user
</LIMIT>
.htpasswd dosyasını koyduğunuz yere göre “AuthUserFile /usr/home/sijiero/.htpasswd†bu path i düzenleyebilirsiniz.
# vi .htpasswd
Dosyamızın içine
webekci:cwc9eWGIM9r5M
Bu kullanıcı adınızın webekci, şifrenizin 123456 anlamına gelir. Lütfen bunu değiştiriniz.
httpd.conf içine directory tanımımızı yapalım.
Alias /webekci/ "/usr/local/www/webekci/"
<Directory "/usr/local/www/webekci/">
Options None
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
Not: Eğer mod_rewrite kullanıyorsanız .htaccess dosyasının okunması için “AllowOverride All†olmalı. Aksi takdir de “AllowOverride None†yazmalısınız.
# apachectl restart
Daha sonra config.php de gerekli değişiklikleri yapalım. Burada dikkat etmeniz gereken.
$config['modsecurity_conf'] = '/usr/local/etc/apache22/extra/mod_security.conf';
Bu dosyayı (mod_security.conf) kendimiz oluşturmalıyız ve httd.conf içine dahil etmeliyiz. Aşşağıdakini httpd.conf içine yazalım (pathleri kendi distronuza göre düzenleyiniz).
Include etc/apache22/extra/mod_security.conf
Daha sonra www kullanıcısının okuyup yazması için.
# chown www /usr/local/etc/apache22/extra/mod_security.conf
Not: www kullanıcısı apachenin çalıştırıldığı kullanıcısıdır. Httpd.conf için de ki
User www
Group www
Parametreleri ile görebilirsiniz. Bu distrodan distroya değişebilir.
WeBekcinin kuralları ve konfigurasyonu yaptıktan sonra değişikliklerin geçerli olması için apacheyi yenden başlatması gerekir. Bunun içinde sudo ayarlarımızı yapmalıyız.
$config['apache_config_test'] = '/usr/local/bin/sudo /usr/local/sbin/httpd -t';
$config['apache_restart'] = '/usr/local/bin/sudo /usr/local/sbin/httpd -k restart';
config.php de bu değişkenleri kendi distronuza göre ayarlayınız.
# vi /usr/local/etc/sudoers
Åžunları yazalım..
www ALL=NOPASSWD:/usr/local/sbin/httpd -k restart
www ALL=NOPASSWD:/usr/local/sbin/httpd -t
Bu sayede www kullanıcısı apache de “config test†ve “restart†işlemlerini şifresiz gerçekleştirecektir.
config.php de ki Mysql ile ilgili değişikliklere emin olduktan sonra
http://www.site.com/webekci/install.php
çalıştıralım. Daha sonra install.php yi siliniz..
# rm install.php
Åžimdi Auit log, Debug log ve Guardian log dosyalarımız için bir hatırlatma yapayım. Konfigurasyon kısmından girilen bu log pathleri için mutlaka www kullanıcısına hak vermelisiniz.
Örneğin; Guardian log için,
Path olarak “/var/log/modsec_guardian.log†verdilğini varsayarsak
# chown www /var/log/modsec_guardian.log
Olarak verilmeli ki log kısmında guardian log`ı görebilesiniz.
Bunun gibi diğer loglar içinde chown atamalısınız.