CentOS 5 Lighttpd – Php Kurulumu
Server kurulumları sırasında yoğun olarak insanlar apache ve php ikilisini tercih etmektedir. Ancak son zamanlarda Alexa , Youtube gibi büyük siteler lighttpd’ye geçiş yapmaya başladılar. lighttpd’nin perfonmans olarak çok daha iyi sonuç vermesi daha az memory kullanması , jail chroot imkanına sahip olması (ki sadece bu bile güvenlik açısından tercih edilmesine sebep olan bir özellik) benimde lighttpd yi test etmek istememe yol açtı. Bu karar sonrasında yaptığım ilk şey Floren ile birlikte gerekli incelemeleri başlatmak ve testlere başlamaktı. Ilk olarak testleri düzgün şekilde yapabilmek için ubuntu’dan vazgeçerek kendi bilgisayarıma CentOs 5 kurdum. CentOs 5 i tercih etmemdeki sebep en yeni sürümü olması ve server da kullanacağımız tüm Rpm’leri Floren ile birlikte kendimizin oluşturacak olmasıydı. Makaleyi kendi serverınıza uygulamak istiyorsanız her adımı sırasıyla takip etmenizi ve aşağıdakiler haricinde RPM kullanmamanızı şiddetle tavsiye ederim. Çünkü tüm RPM’ler özel olarak hazırlanmış ve maksimum perfonmans için optimize edilmişlerdir.
Ilk olarak home klasörümüzde redhat isimli bir klasör oluşturuyoruz.
mkdir -p /home/drazil/redhat
Daha sonra /usr/src/redhat/ altındaki tüm dosyaları yeni oluşturduğumuz klasörün altına kopyalıyoruz. -R kodu alt dizinleride kopyalamak içindir
mkdir -p /home/drazil/redhat
Daha sonra kurulumda gerekli olabilecek tüm gerekli yazılımları yüklüyoruz.
# yum -y install \
autoconf automake \
gcc gcc-c++ \
bzip2 bzip2-devel \
gd glib2 glib2-devel \
ImageMagick \
libaio libaio-devel \
libtool \
openldap openldap-devel \
openssl openssl-devel \
pcre pcre-devel
yum install gmp*
Daha sonra var olan tüm RPM leri kullanabilmeniz için gerekli olan Key’i import edeceksiniz. Bu key olmadan RPM’leri malesef kullanamazsınız.
rpm –import /home/drazil/redhat/RPM-GPG-KEY-TECK
Kurulum sıramızı şu şekilde uygulayacaz.
1. Php
2. memcached
3. Lighttpd
4. xCache
5. Mysql
Php Kurulumu :
Php kurulumu için sırasıyla aşağıdaki RPM’leri import ediniz.
rpm -Uvh /home/drazil/redhat/RPMS/i386/php-common-5.1.6-1.el5.i386.rpm
rpm -Uvh /home/drazil/redhat/RPMS/i386/php-cli-5.1.6-1.el5.i386.rpm
rpm -Uvh /home/drazil/redhat/RPMS/i386/php-5.1.6-1.el5.i386.rpm
rpm -Uvh /home/drazil/redhat/RPMS/i386/php-devel-5.1.6-1.el5.i386.rpm
rpm -Uvh /home/drazil/redhat/RPMS/i386/php-pdo-5.1.6-1.el5.i386.rpm
rpm -Uvh /home/drazil/redhat/RPMS/i386/php-mysql-5.1.6-1.el5.i386.rpm
Memcached Kurulumu :
Rpm’leri sırasıyla import ediniz.
rpm -Uvh /home/drazil/redhat/RPMS/i386/memcached-1.2.2-1.el5.i386.rpm
rpm -Uvh /home/drazil/redhat/RPMS/i386/pecl-memcache-2.1.2-1.el5.i386.rpm
Daha sonra memcached’i aşağıdaki kodları sırasıyla uygulayıp aktif hale getiriniz.
chkconfig memcached on
service memcached start
Lighttpd kurulumu için gerekli olan iki dependencies in ilkini rpm lerden ikincisini yum kullanarak yüklüyoruz.
rpm -Uvh /home/drazil/redhat/RPMS/i386/lua-5.1.2-1.el5.i386.rpm
rpm -Uvh /home/drazil/redhat/RPMS/i386/lua-devel-5.1.2-1.el5.i386.rpm
yum install gamin-devel gdbm-devel
Lighttpd Kurulumu :
Rpm leri sırasıyla import ediyoruz.
rpm -Uvh /home/drazil/redhat/RPMS/i386/lighttpd-1.4.15-1.el5.i386.rpm
rpm -Uvh /home/drazil/redhat/RPMS/i386/lighttpd-fastcgi-1.4.15-1.el5.i386.rpm
lighttpd için özel olarak optimize ettiğimiz lighttpd ini dosyasını php.d klasörüne , lighttpd.conf dosyasını lighttpd klasörüne kopyalıyoruz.
cp /home/drazil/redhat/lighttpd.ini /etc/php.d
cp /home/drazil/redhat/lighttpd.conf /etc/lighttpd
Daha sonra dosya izinlerini değiştirip chown komutu ile log dosyasının sahibini değiştiriyoruz.
chmod 0644 /etc/php.d/lighttpd.ini
chmod 0644 /etc/lighttpd/lighttpd.conf
chown lighttpd:root /var/log/lighttpd
En son lighttpd’yi aktif hale getiriyoruz.
chkconfig lighttpd on
service lighttpd start
chcon -R -t public_content_t /var/www
chcon -R -t samba_share_t /var/www
xCache Kurulumu :
Yine özel oluşturduğumuz xCache rpmlerinden birisini import ediyoruz.
rpm -Uvh /home/drazil/redhat/RPMS/i386/xcache-1.2.0-1.el5.i386.rpm from
Daha sonra içeriği aşağıdaki gibi olucak bir php dosyası oluşturuyoruz ve server’a koyuyoruz
echo md5(‘şifreniz’);
Bu dosyası browserınızdan açtıktan sonra çıkacak olan c635c3dad4d8f8c123319ff45d8a0996 gibi değeri /etc/php.d/xcache.ini dosyasındaki şifre kısmına yazıyoruz. Kullanıcı isminide değiştirmeyi unutmayın. Bunlar xCache panelinize login olmanızı sağlayacaktır.
Dosyayı save ettikten sonra aşağıdaki komut ile lighttpd’yi restart ediyoruz.
service lighttpd restart
Daha sonra domain.com/xcache/ adresinden xcache kontrol panelinize giriş yapabilirsiniz.
MySql Kurulumu :
Mysql kurulumu sırasında dikkat etmeniz gereken ilk olgu yine aşağıdaki sıralarla kurmak olacaktır. Dikkat edin arada yum ile kurmanız gereken ayrı bir gereklilik daha var.
rpm -Uvh /home/drazil/redhat/RPMS/i386/mysql-5.0.22-1.el5.i386.rpm
yum install perl-DBD-MySQL
rpm -Uvh /home/drazil/redhat/RPMS/i386/mysql-server-5.0.22-1.el5.i386.rpm
Kurulum tamamlandıktan sonra mysql i aşağdaki kodla çalıştırıyoruz.
service mysqld start
Mysql’e login olmak için aşağıdaki komutu kullanıyoruz.
mysql -u root
Şimdi mysql serverımızı biraz güvenli hale getiricez. Normal olarak mysql ilk kurulum ile birlikte birden fazla kullanıcı ekler. Ilk olarak root kullanıcısı için yeni bir şifre oluşturmak için aşağıdaki kodu giriyorsunuz.
SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘yenişifre’);
Daha sonra kurulum sırasında oluşmuş iki kullanıcıyı kaldırıyoruz
DELETE FROM mysql.user WHERE User = ”;
FLUSH PRIVILEGES;
DELETE FROM mysql.user WHERE Host = ”;
FLUSH PRIVILEGES;
En son olarak root haricinde bir kullanıcı kalıp kalmadığını kontrol etmek için ilk satırdaki kodu giriyoruz.
SELECT User, Host FROM mysql.user;
Eğer aşağıdaki gibi bir cevap alırsak
+——+——————–+
| User | Host |
+——+——————–+
| root | drazil-desktop.lan |
| root | localhost |
+——+——————–+
2 rows in set (0.00 sec)
Bu kodu uygulayarak son kullanıcıyıda kaldırıcaz.
DELETE FROM mysql.user WHERE Host = ‘drazil-desktop.lan’;
FLUSH PRIVILEGES;
Bir sonraki adımımız lighttpd nin kendine has özelliği olan güvenliği hazırlamak. Ilk önce aşağıdaki komutları girerek (root ile) gerekli klasörleri oluşturuyoruz.
mkdir -p /webroot/tmp
mkdir -p /webroot/etc
mkdir -p /webroot/var/log/lighttpd
chown lighttpd:lighttpd /webroot/var/log/lighttpd
chmod 0640 /webroot/var/log/lighttpd
mkdir -p /webroot/home/lighttpd
chown lighttpd:lighttpd /webroot/home/lighttpd
chmod 0750 /webroot/home/lighttpd
Daha sonra aşağıdaki kodu giriyoruz.
ls -dl /webroot/home/lighttpd
Almamız gereken yanıt şu olucak
drwxr-x— 2 lighttpd lighttpd 4096 Jun 12 22:01 /webroot/home/lighttpd
En son olarak jail chroot için gerekli olan bir script oluşturucaz
Aşağıdaki kodu l2chroot.txt isimli bir dosya oluşturarak içine yapıştırın ve kolay erişebileceğiniz bir dosyaya kaydedin.
#!/bin/bash
BASE=$2
[ ! $BASE ] && mkdir -p $BASE || :
echo “Copying files to $BASE …”
FILES=“$(ldd $1 | awk ‘{ print $3 }’ |egrep -v ^’\(‘)”
for i in $FILES
do
DIRECTORY=“$(dirname $i)”
[ ! -d $BASE$DIRECTORY ] && mkdir -p $BASE$DIRECTORY || :
/bin/cp $i $BASE$DIRECTORY
done
LDDIR=“$(ldd $1 | grep ‘ld-linux’ | awk ‘{ print $1}’)”
LDSUBDIR=“$(dirname $LDDIR)”
if [ ! -f $BASE$LDDIR ]; then
echo “Copying $LDDIR $BASE$LDSUBDIR …”
/bin/cp $LDDIR $BASE$LDSUBDIR
else
:
fi
Dosyayı kaydettikten sonra sırasıyla aşağıdaki kodları giriyoruz.
mv /home/drazil/tmp/l2chroot.txt /bin/l2chroot
chmod +x /bin/l2chroot
Popularity: 18% [?]
Plesk panel apache2, php5 ve mysql5 upgrade
Merhaba,
Bir çok plesk kullanıcısının yaşadığı bir sorundur apache2, php5 ve mysql5 e geçiş. Bu konu hakkında pek fazla makale olmadığı için sizlerle paylaşmak istedim. Aşağıda yapmanız gerek adımları tek tek yazıyorum. Umarım işinize yarar.
Birinci adım :
nano /etc/yum.repos.d/CentOS-Base.repo
İkinci adım :
Popularity: 16% [?]
Ogame Web2.0 Solucanı
OGame bir çesit uzay stratejisi simulasyonudur. Aynı anda binlerce oyuncu tarafından karsılıklı olarak oynanır. Oynayabilmek için sadece normal bir internet gezgini gerekir.*OGame’de oyuncular ittifak kurabilir, varolan ittifakları görebilir ve bunlara katılabilirler. İttifak ana sayfasında diğer kullanıcılar için açıklayıcı yazılar ve resimler yayınlanabilir. Bu yazıları ve resimleri ittifakı kuran oyuncu oluşturur ve yayınlar. İşte bu yazıları ve resimleri girmek için sağlanan arayüzde bulunan girdi denetimi yetersizliği kullanılarak, bir “depolanmış XSS” (stored XSS) saldırısı gerçekleştirilebilmektedir.
Popularity: 7% [?]
İptables ile IP Bloklamak
BLOKLAMAK İÇİN :
iptables -I INPUT -j DROP -s ipadresi
BLOKU KALDIRMAK İÇİN :
iptables -D INPUT -j DROP -s ipadresi
Popularity: 7% [?]
Apf ( Firewall ) Kurulumu
APF Nedir?
APF kural tabanlı bir iptables güvenlik duvarıdır.Ayarlanması ve kullanılması özellikle sunucular için çok kolaydır.
Özellikleri
-
- Kolay anlaşılan kural tabanlı ayar dosyası.
- Bağımsız giriş ve çıkış filtreleme.
- ID tabanlı çıkış kontrolu bu sayede belirtilen uygulamanın sahibine bakarak çıkış yapıp yapmamasına izin verebilirsiniz.
- Genell tcp/udp port ve icmp tipi ayarlar
- Sistemdeki her ip için özel yapılandırma.
- icmp ataklarını önlemek için icmp tabanlı koruma sistemi
- antidos yazılımı
- dshield.org engel listesi bu listede aktif olan saldırganlar tüm apf kullanan sunucularda erişim hakları engellenir.
- tcp/ip saldırılarını engelleemk için özel sysctl ayar dosyası
- İstenmiyen trafiği engellemekiçin özel hazırlanabilen kural dizisi
- Kernel seçeneklerini kullanabilme abort_on_overflow ve tcp syncookies gibi.
- Kolay yönetilebilir bir güvenlik duvarı yazılımı.
- Güvenebileceğiniz ve direk olarak engelleyeceğiniz hostları belirtebileceğiniz kural dosyası.
- APF ile uyumlu 3. parti uygulamaları.
Çok etkili bir güvenlik duvarı olmakla beraber sunucuların genelinde bu güvenlik duvarı kullanılmaktadır.Ayar dosyaları ve kurulumu kolaydır ve etkilidir.
Kurulum
Popularity: 8% [?]
BFD (Brute Force Dedection) kurulumu
Öncelikle bfd(Brute Force Dedection) programını kurmadan önce http://www.rfxnetworks.com/apf.php sitesinden apf[Advanced Policy Firewall) programını kurmalısınız. Bfd apf’nin bir modülü gibi çalışmaktadır ve özelliklerinin bir çoğunu apf den kazanmaktadır.BFD nin standart ayarları APF 0.9.3+ çalışacak şekilde ayarlanmıştır.
Not: Wiki de aşağıdaki adresden APF kurulumu size yardımcı olacktır. APF(Advanced Policy Firewall) Kurulumu
BFD Nedir
BFD bir modüler shell scriptidir.Sitemdeki kayıtları takip ederek sshd,apache,proftpd,pureftpd,imap,pop3 gibi daemonlara yapılan başarısız girişler belli bir limiti aştığı zaman giriş yapmaya çalışan kullanıcı sistemden uzaklaştırılmaktadır.Kurulumu kolay ve fazla bir ayar gerektirmemektedir.
Popularity: 7% [?]
Ntop Nedir (Network İzleme )?
Ntop, iftop, trafshow vb. gibi bir network izleme programidir. Ntop’ in en guzel ozelliklerinden biride bir web arayuzune sahip olmasidir. Izlemeyi ve raporlamayi cok kolaylastiriyor. Bu yazimizda Centos 4.4 uzerine ntop kuracagiz. Ntop’ i kullanmaya basladiginiz anda ne kadar kolay ve rahat bir program oldugunuda anlamis olacaksiniz.
Ntop kisaca sunlari dinler;
- TCP/UDP/ICMP
- (R)ARP
- IPX
- DLC
- Decnet
- AppleTalk
- Netbios
- TCP/UDP
Oncelikle ntop’ u download etmek icin rpmfind’ a gidelim ve ntop diye aratalim.
http://rpmfind.net/linux/rpm2html/search.php?query=ntop
Isletim sistemimize uygun olan ntop’ i download edelim.
wget ftp://rpmfind.net/linux/dag/redhat/el4/en/i386/dag/RPMS/ntop-3.2-2.el4.rf.i386.rpm
[root@web ~]# rpm -Uvh ntop-3.2-2.el4.rf.i386.rpm
warning: ntop-3.2-2.el4.rf.i386.rpm: V3 DSA signature: NOKEY, key ID 6b8d79e6
Preparing… ########################################### [100%]
1:ntop ########################################### [100%]
[root@web ~]#
komutuyla ntop’ i kuralim. Eksik bir paketiniz yokise kurulum gerceklesecektir. Eksik paketiniz var ise yine rpmfind’ dan bulup kurabilirsiniz. Zaten ihtiyac duydugu paket glib olacaktir.
Kurar kurmaz
ntop yazip entera basalim.
[root@web ~]# ntop
Mon Apr 2 13:43:09 2007 NOTE: Interface merge enabled by default
Mon Apr 2 13:43:09 2007 Initializing gdbm databases
Mon Apr 2 13:43:09 2007 ntop will be started as user nobody
Mon Apr 2 13:43:09 2007 ntop v.3.2 (Dag Apt RPM Repository)
Mon Apr 2 13:43:09 2007 Configured on Feb 20 2007 17:55:17, built on Feb 20 2007 17:57:02.
………………
……………..
…………………
Mon 02 Apr 2007 01:43:11 PM EEST INITWEB: Initializing web server
ntop startup – waiting for user response!
Please enter the password for the admin user:
Please enter the password again:
Mon 02 Apr 2007 01:43:24 PM EEST Admin user password has been set
Mon 02 Apr 2007 01:43:24 PM EEST INITWEB: Initializing tcp/ip socket connections for web server
…………..
………..
İki kere sifremizi girelim ve admin sifremizi ayarlamis olalim.
Sonrada browserimizi acip
adresini yazalim.
Iste mukemmel bir web arayuzu.. Admin bolumu altinda birkac temel ayar var bunlarida size birakiyorum. Ntop’ la sizi ben tanistirdim sizde detaylari ogrenip bize aktarin
Popularity: 7% [?]
