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.