Linuxta tüm dosyalarda bul değiştir komutu
Örnek olarak tüm eposta hesaplarının spamassassin config dosyalarında puan değişikliği aşağıdaki şekilde yapılabilir.
find . -name user_prefs -exec sed -i ‘s/required_score 0.0/required_score 5.0/g’ {} \;
Örnek olarak tüm eposta hesaplarının spamassassin config dosyalarında puan değişikliği aşağıdaki şekilde yapılabilir.
find . -name user_prefs -exec sed -i ‘s/required_score 0.0/required_score 5.0/g’ {} \;
grep -Eo ‘([0-9]{1,3}\.){3}[0-9]{1,3}’ maillog | sort | uniq
Aşağıdaki komutla birden fazla satır veri olan dosyanızı tek satır haline çevirebilirsiniz.
tr -d ‘\n’ < dosyaniz.txt
Cloudlinux sunucunuzda kurulu olan tüm php versiyonları için ortak tek dosyada bir kereliğine php ayarlarını değiştirebilirsiniz.Üstelik bu,güncellemelerden etkilenmeyecektir.Çünkü her paket güncellemesinde paket içersinndeki php.ini dosyası sizin dosyasınızın üzerine yazılmaktadır.
Bunu yapmak için öncelikle ssh login olup /etc/cl.selector/ dizinine geçin.
global_php.ini isimli dosyayı nano veya vi gibi bir editorle açın.
[Global PHP Settings] tagı altında tıpkı php.ini standart formatında olduğu gibi kendi direktiflerinizi yazın.Örneğin date.timezone veya disable_functions gibi.Altta sizin için bir örnek;
[Global PHP Settings]
disable_functions= 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, ch
own, 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_wif
exited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, openlog, apache_get_modules, apache_get_version, apache_getenv, apache_note, apache_setenv, vir
tual, eval, allow_url_fopen, pconnect, p_connect,posix_getpwuid,fileowner,sym
Dosyanızı kaydedip editorden çıkın.Tekrar konsola geldiğinizde şu komutla işlemi onaylayın.
[root@srv ~]# selectorctl –apply-global-php-ini
Bunu dilerseniz herhangi bir web hosting altına yükleyebileceğiniz phpinfo ile yaptığınız değişiklikleri görebilirsiniz.
Maxmind geoip servisinin Apache eklentisinin Centos/Cloudlinux 7.2 ve Ubuntu 14.x LTS üzerine kurulumunu anlatıyoruz.
İlk kurulumumuz Centos/Cloudlinux için.Öncelikle yapmanız gereken maxmind kütüphanesini kurup ardından Apache extension tool (apxs) kurulumunun ardından maxmind apache modülünü sistemimize eklemek olacak.Bunun ardından örnek bir apache/maxmind konfigurasyon dosyası ile wordpress kurulu websitelerin wp-login.php dosyasına Türkiye dışından erişimi engelleyeceğiz.
Centos kurulum derleme aşamalarını biraz sadeleştirmek amacıyla önceden bir Cloudlinuxta derlemiş olduğum MaxMind Apache modülünü (.so dosyasını) kullanacağız.
Centos / Cloudlinux Kullananlar İçin hazır batch dosyayı sistemimize indirip çalıştırıyoruz.
wget https://www.linux-destek.com/maxmind/maxmind.sh
Sunucunuza indirdiğiniz maxmind.sh dosyasını çalıştırıyorsunuz.
/bin/bash maxmind.sh
Kurulum işte bu kadar.Sunucunuzda host ettiğiniz bir wordpress siteyi, örneğin www.abc.com/wp-login.php vey xmlrcp.php dosyasının yurt dışından erişilemediğini test etmek size kalıyor.
Debian/Ubuntu Kullanalar için ise kurulum aşamalarımız şöyle;
İlk olarak maxmind kütüphanesini (sistem için gerekli olan) bir apt deposunu ekleyerek kuruyoruz;
sudo add-apt-repository ppa:maxmind/ppa
apt deposunu ekledikten sonra
apt-get update komutunu çalıştırın ve aşağıdaki gerekli paketleri sisteminize kurun
sudo apt install libmaxminddb0 libmaxminddb-dev mmdb-bin apache2-devel automake autoconf libtool git
Paketler sisteminize kurulduktan sonra git client ile sisteminize indirip kurmak için aşağıdaki komutları sırasıyla uygulayın;
git clone –recursive https://github.com/maxmind/mod_maxminddb.git
cd mod_maxminddb/
./bootstrap
./configure –with-apxs=/usr/bin/apxs
make install
Bu aşamadan sonra önceden maxmind ücretsiz servisinden indirmiş olduğumuz dosyayı sunucuda bir klasöre yerleştiriyoruz.
mkdir /usr/local/share/GeoIP/ && cd /usr/local/share/GeoIP/
wget https://www.linux-destek.com/maxmind/modmaxmind/GeoLite2-Country.mmdb
Herşey yolunda giderse artık sistemimizde maxmind kütüphanesi ve apache modülü kurulmuş olacak.Sıra apache için örnek bir konfigurasyon oluşturmakta.Bu örnekte belirttiğimiz gibi wordpress wp-login.php ve xmlrpc.php dosyalarına erişimi geoip tabanlı engelliyoruz.Erişim sadece Türkiye Ip adreslerinden olacak.
Örnek Apache Konfigurasyonu;
#<IfModule mod_maxminddb.c>
LoadModule maxminddb_module modules/mod_maxminddb.so
MaxMindDBEnable On
MaxMindDBFile DB /usr/local/share/GeoIP/GeoLite2-Country.mmdb
MaxMindDBEnv MM_COUNTRY_CODE DB/country/iso_code
<FilesMatch “wp-login.php|xmlrpc.php”>
SetEnvIf MM_COUNTRY_CODE ^(TR) AllowCountry
#Deny from env=BlockCountry
Allow from env=AllowCountry
Deny from All
#RewriteEngine on
#RewriteCond %{ENV:MM_COUNTRY_CODE} !^(RU|DE|FR)$
#RewriteRule ^(.*)$ – [F,L]
</FilesMatch>
#</IfModule>
Üzerinde bazı değişlikler ve iptal edilen satırlar var.Sadece size farklı bir fikir verebilir.Bu şekilde kullanabilirsiniz de.Dosya içeriği bu şekilde.Apache Web sunucusunun dosyayı /etc/apache2/conf-enabled/maxmind.conf ismiyle oluşturmanız ve bu içeriği yapıştırmanız gerekecek.
Dosyanızı kaydettikten sonra service apache2 restart komutu ile webservisini yeniden başlatın.Herhangi bir error seviyesinde hata almaz iseniz kurulum tamam demektir.
Aynı şekilde bir wordpress sitenizdeki wp-login.php dosyanıza yurt dışından erişimi deneyerek testinizi yapınız.Eğer herşey çalışıyorsa Forbidden mesajı ile karşılacaksınız.
Son Söz;
Elbette wordpress veya başka bir website kodunu bu şekilde korumak en iyi yol değildir.Güvenlik kodda başlar.Sistem de güncel kaldığı sürece her bakımdan güvendesiniz demektir.
Burada yapılan çalışma,internet dünyasında bir gerçekten yola çıkılarak düşünülmelidir.O gerçek ise, günümüze wordpress gibi kodlara yapılan bruteforce gibi atakların tamamına yakını Rusya,Çin,Amerika vs gibi ülkelerden gelmekte olduğudur.Şifreniz kırılamasa dahi bu yapılan bot,bruteforce saldırıları sunucuları yormaktadır.
İkinci gerçek ise webmasterları ve sunucu yöneticilerini ilgilendirmekte.Düşünün ki 500 websitesi host ediyorsunuz ve bunun tamamına yakını wordpress.Her gün yüzbinlerce şifre kırma saldırısı host ettiğiniz websitelerinize yapılıyor.Bundan korunmanın en iyi yolu nedir?
Bir vatandaş ücret karşılığı bir websitesi yaptırmış.Webmaster parayı almış,iş bitmiş.Kime neyi anlatacaksınız?Müşterinize nispeten eski kalan wordpressin güvenlik açıklarından bahsetseniz sizi muhtemelen roket bilimi ile uğraşıyorsunuz filan sanır.Ona webmasterin nerde olduğunu sorsanız,adını bile hatırlamayacaktır.
Ancak kötü şeyler herşeyi sorgusuz sualsiz değiştirir.Müşterinizin sitesi gerçekten hackenirse bu sefer sizden bir açıklama bekleyecek,sizi suçlayacak hatta güvenlik açıklarınızın olduğunu söyleyip belki kötü reklamınızı yapacaktır.
Ne yazıkki Internet Sektörü son derece zır cahil seviyesinde yürümekte.O yüzden sunduğumuz çözüm de biraz Türk İşi oldu.Söz de uzadı.Kalın sağlıcakla.
Bazen migrasyon sonucu bazen yanlışlıkla bozulan hosting dosya izinlerinini kolayca onarmak için pleskin hazır komutlarını kullanabilirsiniz.
Sunucuya ssh üzerinden root olarak login olduktan sonra şu komutu uygulayın
plesk repair fs sizin_alanadınız.com
dogurdan ana alanadınızı yazabileceğiniz gibi alt alan adlarınızı onarmak için de kullanabilirsiniz.
İlgili sistem hata mesajı
Unable to open the directory: Unable to find the directory /var/www/vhosts/example.com/httpdocs/dir/: filemng failed: filemng: opendir failed: Permission denied System error 13: Permission denied
Son dönemde ortaya çıkan openssl ve zayıf şifreleme methodlarını kapatın.Özellikle bankalardan sanal pos talep etmeden önce sunucunuzda uygulamanızı tavsiye ederim.
Centos sunucular için
/etc/httpd/conf.d/ssl.conf dosyasının en altına aşağıdaki satırları yerleştirin.Httpd servisini yeniden başlatın.Nispeten güncellenmemiş sunucular için yum update yapmanızı öneriririm.
<IfModule mod_ssl.c>
SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv2 -SSLv3
</IfModule>
<IfModule mod_ssl.c>
#SSLCipherSuite HIGH:!aNULL:!MD5:!RC4-SHA:!RC4
#SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RS
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5::!RC4
</IfModule>
Linux tabanlı herhangi bir web sunucunuzda websitenize atak yapan saldırgan botları engellemek için aşağıdaki adımları uygulayın.
/etc/rc.local dosyanızı açın.İçine uygun bi yere şu satırları yerleştirin.
iptables -F
for x in $(cat /root/bad_bot.txt)
do
iptables -A INPUT -p tcp -s $x –dport 80 -j DROP
iptables -A INPUT -p tcp -s $x –dport 443 -j DROP
done
daha sonra kaydedip çıkın.bu sefer yukarıdaki döngüde satır satır okumasını istediğimiz dosyayı oluşturun
nano /root/bad_bot.txt
Son olarak /etc/rc.local olarak çağırdığınızda ve her sunucu açılışında bu ip adreslerinin web sunucu portlarınıza erişimi engellenecektir.
Bir websitenin fpm pool ayarlarında karşınıza çıkabilecek birkaç method vardır.Bunlardan ondemand tipi en çok önerilen yöntemdir.Aşağıda bir websitenin nasıl pool ayarlarının yapılacağını göreceksiniz.
Öncelikle
/opt/plesk/php/5.6/etc/php-fpm.d/alanadiniz.com.conf
dosyasından bahsedelim.Bu hostinginize özel fpm konfigurasyon dosyasıdır.
; By default use ondemand spawning (this requires php-fpm >= 5.3.9)
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s
; Following pm.* options are used only when ‘pm = dynamic’
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 1
Deneme yapmak için bu dosyada değişiklik yapabilirsiniz.Ancak httpmng çalıştırdığınızda veya plesk hosting ayarlarından birini değiştirip ok butonuna tıkladığınız anda yaptığınız değişikliklerin yok olacağını unutmayın.Kalıcı konfiguraston için zaten dosyanın en başında ne yapmanız gerektiği yazıyor.
; ATTENTION!
;
; DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,
; SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.
; If you need to customize this file, use either custom PHP settings tab in
; Panel or override settings in /var/www/vhosts/system/alanadiniz.com/conf/php.ini.
; To override pool configuration options, specify them in [php-fpm-pool-settings]
; section of /var/www/vhosts/system/alanadiniz.com/conf/php.ini file.
Yapmanız gereken
/var/www/vhosts/system/alanadiniz.com/conf/php.ini dosyasını nano veya vi ile açıp en alta indikten sonra örnek olarak;
[php-fpm-pool-settings] pm.max_children = 100
yazmak olacaktır.Max children zaten ondemand methoduyla ilgili olduğundan dolayı diğer parametreleri yazma gereği duymuyorum.Onlar zaten fpm conf dosyasında var.Dosyayı kaydettikten sonra son olarak yapılan değişikliğin uygulanmasını sağlıyorum.
/usr/local/psa/bin/php_settings -u
Hepsi bu kadar.İlaveten bu ayarlar cloudlinux ile gelen cagefs-lve için geçerli değildir.Cloudlinux php-fpm yi an itibariyle hala desteklemiyor.
Eğer whm/cpanel kullanıyorsanız web arayüzden yapılabiliyor.Plesk Onyx ‘de bunu web arabirimine taşıyacağını duyursa da hala böyle bir kolaylık görememekteyiz.
Redhat/Centos/Fedora:
sudo yum clean all
sudo yum -y install tzdata*2016g*
sudo zdump -c 2016,2017 -v “Europe/Istanbul”
sudo date
Debian ve türevleri:
sudo apt-get update
sudo apt-get install tzdata tzdata-java
sudo zdump -c 2016,2017 -v “Europe/Istanbul”
sudo date
Kaynak: http://www.musabyardim.com/linux-timezone-degisikligi/