Yazılar

Web Sunucu Güvenliği İpuçları-II

Php destekli bir apache web sunucunda kapatılması gerekli php fonksiyonları

mail,system, dl, array_compare, array_user_key_compare, passthru, cat, popen, proc_close, proc_get_status, proc_nice, proc_open,escapeshellcmd,escapeshellarg, show_source, posix_mkfifo, ini_restore, mysql_list_dbs, get_current_user, getmyuid,pconnect, link, symlink, fin, exec, fileread, shell_exec, pcntl_exec, leak, apache_child_terminate, chown, posix_kill, posix_setpgid, posix_setsid, posix_setuid, proc_terminate, syslog, fpassthru, execute, shell, chgrp, stream_select, passthru, socket_select, socket_create, socket_create_listen, socket_create_pair, socket_listen, socket_accept, socket_bind, socket_strerror, pcntl_fork, pcntl_signal, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, openlog, apache_get_modules, apache_get_version, apache_getenv, apache_note, apache_setenv, virtual, eval, allow_url_fopen, pconnect, p_connect,posix_getpwuid,fileowner,symlink,readlink

Debian,Ubuntu root şifresi resetleme,ekran görüntülü anlatım

Debian tabanlı sistemlerde kullanılan açılış yöneticisi olan grub’ı kullanarak root şifresini resetleme

Web Sunucu Güvenliği İpuçları

Linux web sunucularda temp dizini güvenliği

Web sunucunuzdaki geçici işlemler için dosya oluşturulan dizin /tmp dizinidir.Bir web sunucusunda genelde /tmp dizini üzerine tüm kullanıcılar yazma okuma izinlerine sahip oluyor.Böylece herkesin yazabildiği ve okuyabildiği bir alan güvenlik riskini arttırıyor.

Bu riski bir nebze düşürmek için /tmp dizinini ayrı bir partition olarak bağlamalı ve için kod çalıştırılamaz şekilde ayarlamalısınız.

Eğer işin bu kısmını düşünmeden sunucu kurmuşsanız ve diskinizde boş alan yoksa aşağıdaki linux/unix işletim sistemlerine özgü raw disk image mount alternatifini kullanabilirsiniz.

Önce tmp bölümün ne kadar alana gereksinim duyduğuna karar verin ve bunun için diskinizdeki boş alanı kontrol edin

Ssh üzerinden root kullanıcısı ile bağlıyken şu komutu verin;

 

[root@localhost ]# df -h

 

/dev/sda1 214G 130G 74G 64% /

 

 

Burada / dizininde 74 Gb boş alan olduğunu görüyoruz.Bize tahminen 15 gb tmp dizini yeterli olabilir.

Şimdi disk imajı oluşturma ve sisteme bağlama aşamasındayız.Önemli servislerinizi (mysql,apache vb.) durdurup /tmp dizin içeriğinizi bir yere yedekleyin .Daha sonra aşağıdaki komutları sırasıyla yazın.

dd if=/dev/zero of=/usr/tmpMnt bs=1024 count=15000000

 

/sbin/mke2fs /usr/tmpMnt

 

/usr/tmpMnt is not a block special device.
Proceed anyway? (y,n) y

 

 

 

Bu komutları sırasıyla uyguladığınızda artık /usr altında 15 gb ‘lık tmpMnt dosyanızın olduğunu görebilirsiniz.Imajı sisteme tmp olarak bağlayalım;

mount -o loop,noexec,nosuid,rw /usr/tmpMnt /tmp

 

Bu komuttan sonra hiçbir hata çıkmadıysa disk imajı tmp olarak bağlanmış demektir.Daha önce başka bir yere almış olduğunuz dosyaları şimdi /tmp ‘e tekrar aktarıp servislerinizi çalıştırabilirsiniz.

Ayarların her açılışta yüklenmesi için,

nano ile /etc/fstab dosyasını açıp alttaki satırı dosyanın en altına yazın.

/usr/tmpMnt /tmp ext2 loop,noexec,nosuid,rw 0 0

 

Not 1: Bu işlemler sonucunda /tmp dizinin izinleri değişmiş olabilir.

chmod 1777 /tmp çalıştırın.

Not 2: /usr/tmpMnt yolu zorunlu değildir.İstediğiniz klasörde istediğiniz isimle imaj dosyasını oluşturabilirsiniz.Yeterki fstabdaki isimler doğru olsun.

Not 3: Herşey bittikten sonra mount komutu ile /tmp dizinin doğru bağlandığına emin olun.

 

 

 

 

 

 

 

 

Postfix E-Mail Sunucusu , MailScanner ve Clamav Kurulumu + Mailscanner konfigurasyonu

Bölüm 1:Kurulum
————————————————————————

Bu dökümanda anlatılanlar size ne kazandırır?

Kopyala & Yapıştır yöntemiyle bir e-mail sunucusuna sahip olursunuz.
Çok başarılı bir antispam uygulaması olan mailscanner sayesinde spamlara boğulmassınız.
Debian GNU/Linux işletim sistemini ilk kez kullanıyorsanız,program kurmanının ne kadar rahat olduğunu keşfedersiniz.
Daha önce satın aldığınız bu tip bir yazılım varsa “ah! tüh! vah! diyebilirsiniz.Ne diyebilirim ki?Internette biraz araştırma yapsaydınız!Ticari programlara binlerce dolar para vereceğinize bu projelere biraz destek olsaydınız içiniz daha rahat ederdi eminim…

Kullanılan Yazılımlar ve Sürümleri

Debian GNU/Linux 4 (Etch)
Postfix 2.3.8-2
Courier pop 0.53.3-5
Sasl 2.1.22
Mysql 5.0.32
Mailscanner 4.55.10-3
Spamassassin 3.1.7-2

Postfix Kurulumu

Aşağıdaki komutla kuruluma başlayın;

apt-get install mysql-server-5.0 courier-authlib-mysql libpam-mysql libnss-mysql libsasl2-modules sasl2-bin postfix-mysql courier-pop postfix mailscanner

Yukarıdaki paketlerin konfigurasyonu esnasında mysql,postfix,courier size bir takım sorular soracaktır.Varsayılan cevapları verebilirsiniz.Konfigurasyon dosyalarını değiştireceğimiz için vereceğiniz cevaplar çok önemli değil.

Postfix’te çalışacak sanal mail klasörleri için aşağıdaki komutlarla kullanıcıyı sisteminize ekleyin.

groupadd -g 5000 vmail
useradd -m -d /home/vmail -u 5000 -g 5000 vmail

/etc/default klasörü altındaki saslauthd dosyasını açın.aşağıdaki satırları ekleyin.

####################### /etc/default/saslauthd #############################

START=yes

MECHANISMS="pam"

PARAMS="-m /var/spool/postfix/var/run/saslauthd -r"

OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
####################### /etc/default/saslauthd #############################

Yukarıdaki dosyayı editledikten sonra kaydedip çıkın.Az önce postfix için saslauthd dosyasındaki klasörü oluşturun

mkdir -p /var/spool/postfix/var/run/saslauthd

Saslauthd servisini çalıştırın.

/etc/init.d/saslauthd start

Aşağıdaki linkten postfix için konfigurasyon dosyalarını sunucunuza indirin.Bunları /etc/postfix klasörüne kopyalayın.İsterseniz kopyalama yapmadan önce bu klasörü farklı bir isimde kaydedip içindeki dosyaları silebilirsiniz.

/ Link postfix.tar /

Postfixin mysql konfigurasyon dosyalarında göreceğiniz üzere bir mysql veritabanına ihtiyacınız olacak.Aşağıdaki bu veritabanının örnek şemasını indirip,phpmyadminle veya konsoldan mysql sunucunuza import edebilirsiniz.
Bu aşamada,dosyalarda yazılı olan mysql kullanıcı bilgilerini dilediğiniz gibi değiştirebilirsiniz.Yeterki mysql sunucuda oluşturacağınız kullanıcı bilgileriyle aynı olsun.

/ Link mail.sql /

Not: Yukarıda linki verilen sql şeması herhangi bir veri içermiyor.Bu yüzden dosyayı  veritabanınıza import ettikten sonra sisteminize kullanıcı eklemelisiniz.Önce domain tablosuna alanadınızı daha sonra users tablosuna sırasıyla e-mail adresi,şifre (ENCRYPT olmalı) ve kota (BYTE tipinde) bilgilerini eklemelisiniz.

Sıra benim bu kurulumu ilk yaptığımda “niye çalışmıyor!” şeklinde söylenerek,kıvrandığım aşamada.Aşağıdaki linkteki dosyayı /etc/pam.d/ dizinine kopyalayın.Dosyadaki mysql kullanıcı bilgileri,postfix için indirdiğiniz dosyalardakilerle aynı olmalıdır.

/ Link smtp /

Courier Pop Kurulumu

Courier için özel bir konfigurasyone gerek yok.Aşağıdaki dosyaları /etc/courier altına kopyalayın yeterli.Yine belirteyim,authmysqlrc dosyasındaki mysql kullanıcı da aynı veritabanına bağlanabilmesi lazım.

/ Link authmysqlrc/

Mailscanner Kurulumu

Mailscanner size ne avantaj sağlar?

– Yüksek trafikli mail gateway lerde rahatlıkla kullanabilirsiniz.
– Mail trafiğinin çok yüksek olduğu veya spam saldırısının olduğu anlarda bile amavis e göre bellek kullanımı çok daha düşüktür.
– Çok ayrıntılı,kolayca anlaşılır konfigurasyon dosyalarına sahiptir ve esnek bir yapıya sahiptir.
– Acil durumlarda devre dışı bırakılması çok pratiktir.
– Pek çok antivirüs yazılımı ile uyumludur.

-Postfix yapılandırması
Mailscanner ile postfixin beraber çalışabilmesi için main.cf dosyanıza aşağıdaki satırı ekleyin

header_checks = regexp:/etc/postfix/header_checks

Daha sonra yeni /etc/postfix/header_checks dosyanızı açıp aşağıdaki satırı ekleyin.

/^Received:/ HOLD

Mailscanner ile birlikte clam antivirüs ün en güncel versiyonunu kurabilmek için aşağıdaki adresi /etc/apt/sourcelist dosyanıza ekleyin.

deb http://volatile.debian.org/debian-volatile etch/volatile main

Daha sonra mailscanner ile birlikte clamav’ı sisteminize kurun

apt-get install clamav clamav-base clamav-daemon libclamav4 mailscanner

Kurulum tamamlandıktan sonra sırasıyla aşağıdaki dosya izinlerini uygulayın.

chown postfix.postfix /var/spool/MailScanner/ -R
chown postfix.postfix /var/lib/MailScanner/ -R
chown postfix.postfix /var/run/MailScanner/ -R
chown postfix.postfix /var/lock/subsys/MailScanner -R

daha sonra /etc/default/mailscanner dosyasını açıp aşağıdaki satırı aktif hale getirin

#run_mailscanner=1

/etc/MailScanner/MailScanner.conf dosyasını açıp aşağıdaki değişiklikleri yapın.

Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix

Yukarıdaki değişiklikleri yaptıktan sonra mailscanner ve postfix servisleri resetleyin.

/etc/init.d/mailscanner restart
/etc/init.d/postfix restart

Notlar:

Mysql Sunucunuzdaki veritabanınıza ilk kullanıcınızı ekleyip thunderbird veya outlooktan deneme yaptığınızda e-mail istemciniz hata verecektir.Bunun sebebi henüz domain ve kullanıcı klasörleri ( Maildir ) oluşmamasındandır.Klasörlerin otomatik yaratılabilmesi için ,sisteme telnet ile 25.porta bağlanıp veya başka bir e-mail hesabınızdan mail gönderin.Sistem,kendisine gelen e-postaların sahiplerini users ve domains tablolarından kontrol edecek,eğer varsa gerekli klasörleri oluşturacaktır.