CWP – Delete All Log Files

Centos Web Panel Düşük Disk Alanına Sunucularda zaman zaman tüm günlük log dosyalarını toplu silerek yer kazanım gerektiğinde aşağıdaki SSH komutuları kullanarak işlem yapabilirsiniz.

cd /root
nano deletelog.sh

Root klasörü içine deletelog.sh dosyası oluşturarak aşağıdaki komutları ekleyin ve ardından kaydedin.

 #!/bin/bash

truncate -s 0 /var/log/messages
truncate -s 0 /var/log/maillog
truncate -s 0 /var/log/*log
truncate -s 0 /usr/local/apache/logs/*bytes
truncate -s 0 /usr/local/apache/logs/*log
truncate -s 0 /usr/local/apache/domlogs/*bytes
truncate -s 0 /usr/local/apache/domlogs/*log
truncate -s 0 /opt/alt/*/usr/var/log/php-fpm.log
truncate -s 0 /usr/local/cwpsrv/logs/access_log
truncate -s 0 /usr/local/cwpsrv/logs/error_log
truncate -s 0 /var/log/cron
truncate -s 0 /var/log/secure
truncate -s 0 /var/log/cwp/services_action.log
truncate -s 0 /var/log/cwp/cwp_sslmod.log
truncate -s 0 /var/log/cwp/cwp_cron.log
truncate -s 0 /var/log/cwp/cwp_backup.log
truncate -s 0 /var/log/cwp/activity.log
truncate -s 0 /usr/local/cwpsrv/var/services/roundcube/logs/errors
truncate -s 0 /var/spool/amavisd/.razor/razor-agent.log
truncate -s 0 /usr/local/cwp/php71/var/log/php-fpm.log
truncate -s 0 /root/.acme.sh/cwp_certs/acme.sh.log
rm -rf /var/log/maillog-*
rm -rf /var/log/monit.log-*
rm -rf /var/log/spooler-*
rm -rf /var/log/messages-*
rm -rf /var/log/secure-*
rm -rf /var/log/pureftpd.log-*
rm -rf /var/log/yum.log-*
rm -rf /var/log/monit.log-*
rm -rf /var/log/cron-*
rm -rf /var/lib/clamav/tmp.*

Daha sonra dosya izinlerini çalıştırılabilir olarak ayarlayalım.

chmod 755 /root/deletelog.sh

sonrasında çalıştırdığınızda deletelog.sh dosyası içinde komutları sırasıyla yapacak ve dosyaları silecektir.

sh /root/deletelog.sh

bu işlemin otomatik olarak belirli aralıklar yapılması için cron job tanımlaya bilirsiniz.

/usr/bin/sh /root/deletelog.sh

Ayrıca bunların dışında çok yer kaplamasada cwp_stats kayıtlarını tutuyorsanız silmek isterseniz aşağıdaki komutu kullabilirsiniz

rm -rf /home/*/cwp_stats/*

Centos Web Panel SSL Hatası

Centos Web Panel SSL sertifikası hatası alıyorsanız çözüm için aşağıdakileri sırasıyla yapınız.

Öncelikli olarak aşağıdaki komut ile host ismini öğreniyoruz.
hostname server.bozdemir.com (Örnek)
cat /etc/redhat-release (CentOS Linux release 7.6.1810 (Core) Sistemi)

yum install epel-release (sistemde yüklü bilgisi alabilirsiniz)
yum update (sistemi güncelliyoruz)
yum install certbot (Yüklüyoruz)
yum info mod_ssl openssl (kurulu olup olmadığını kontrol ediyoruz)

letsencrypt.conf dosyasına aşağıdaki gibi açıp içini düzenliyoruz.

nano /usr/local/apache/conf.d/letsencrypt.conf

Alias /.well-known/acme-challenge/ “/usr/local/apache/autossl_tmp/.well-known/acme-challenge/”
<Directory “/usr/local/apache/autossl_tmp/”>
AllowOverride None
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>

certbot certonly –agree-tos –email a h m e t @ bozdemir.com –webroot -w /usr/local/apache/autossl_tmp/ -d server.bozdemir.com

cp /usr/local/apache/conf.d/ssl.conf /usr/local/apache/conf.d/bak.ssl.conf.orig

nano /usr/local/apache/conf.d/ssl.conf

<IfModule !ssl_module>
LoadModule ssl_module modules/mod_ssl.so
</IfModule>
Listen 443
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
Header always set Strict-Transport-Security “max-age=63072000; includeSubDomains; preload”
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off

# OCSP Stapling, only in httpd 2.3.3 and later
SSLUseStapling on
SSLStaplingCache “shmcb:logs/stapling-cache(150000)”
# Requires Apache >= 2.4.11
SSLSessionTickets Off

SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache shmcb:/var/run/ocsp(128000)

Aşağıdaki komut ile mod_ssl ve shmcb modülleri açıyoruz.

nano /usr/local/apache/conf/httpd.conf

LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

hostname-ssl.conf dosyasını açıyoruz ve aşağıdak kodu ekliyoruz.

nano /usr/local/apache/conf.d/hostname-ssl.conf

<VirtualHost *:443>
ServerName server.bozdemir.com
ServerAdmin a h m e t@bozdemir.com
DocumentRoot /usr/local/apache/htdocs/

SSLEngine on
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCertificateFile /etc/letsencrypt/live/server.bozdemir.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/server.bozdemir.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/server.bozdemir.com/fullchain.pem
SetEnvIf User-Agent “.*MSIE.*” nokeepalive ssl-unclean-shutdown

<IfModule mod_suexec.c>
SuexecUserGroup nobody nobody
</IfModule>

<IfModule mod_suphp.c>
suPHP_UserGroup nobody nobody
suPHP_ConfigPath /home/nobody
</IfModule>

<Directory “/usr/local/apache/htdocs/”>
AllowOverride All
</Directory>

</VirtualHost>

cwpsrv.conf dosyasını açıyoruz.

nano /usr/local/cwpsrv/conf/cwpsrv.conf

Aşağıdaki satırları bulun :
ssl_certificate /etc/pki/tls/certs/hostname.crt;
ssl_certificate_key /etc/pki/tls/private/hostname.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

Yukarıdaki Satırların başına # ekleyin ve aşağıdaki satırları ilave edin

ssl_certificate /etc/letsencrypt/live/server.bozdemir.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/server.bozdemir.com/privkey.pem;
ssl_protocols TLSv1.2;
#Apache İçin
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
#NGINX İçin
#ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;

users.conf dosyasını editliyoruz.

nano /usr/local/cwpsrv/conf.d/users.conf

Aşağıdakı Satırları bulun:
ssl_certificate /etc/pki/tls/certs/hostname.crt;
ssl_certificate_key /etc/pki/tls/private/hostname.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

Aşağıdakileri Yapıştırın:
ssl_certificate /etc/letsencrypt/live/server.bozdemir.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/server.bozdemir.com/privkey.pem;
ssl_protocols TLSv1.2;
#Apache İçin
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
#NGINX İçin
#ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;

webmail.conf dosyasını editliyoruz.

nano /usr/local/cwpsrv/conf.d/webmail.conf

Aşağıdakı Satırları bulun:
ssl_certificate /etc/pki/tls/certs/hostname.crt;
ssl_certificate_key /etc/pki/tls/private/hostname.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

Aşağıdakileri Yapıştırın:
ssl_certificate /etc/letsencrypt/live/server.bozdemir.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/server.bozdemir.com/privkey.pem;
ssl_protocols TLSv1.2;
#Apache İçin
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
#NGINX İçin
#ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;

Ayar işlemlerimiz tamamlandı. Artık servisleri yeniden başlatıyoruz.

/usr/local/cwpsrv/bin/cwpsrv -t
systemctl restart cwpsrv
systemctl restart httpd
systemctl status cwpsrv
systemctl status httpd

CWP Admin Panel Linkleri (by hostname)
CWP Admin Panel Link: http://server.bozdemir.com:2030
CWP Admin Panel Link: http://server.bozdemir.com:2086
CWP Admin Panel SSL Link: https://server.bozdemir.com:2031
CWP Admin Panel SSL Link: https://server.bozdemir.com:2087

CWP User Panel Linkleri (by hostname)
CWP User Panel Link: http://server.bozdemir.com:2082
CWP User Panel SSL Link: https://server.bozdemir.com:2083

Not : Başlatma sırasında emerg hatası alırsanız.
Starting cwpsrv: cwpsrv: [emerg] SL_CTX_use_PrivateKey_file(“/etc/pki/tls/private/hostname.key”) failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)

Hostname için SSL oluşturmalısınız.

/usr/local/cwpsrv/htdocs/resources/scripts/generate_hostname_ssl

cwpsrv: [warn] he “ssl” directive is deprecated, use the “listen … ssl” directive instead …i.conf:8
/usr/local/cwpsrv/conf.d/api.conf Uyarı hatası alırsanızda dikkate almaya bilirsiniz.
ssl on; satırından kaynaklıdır.

pflogsumm ile Günlük Rapor

Sunucu üzerinde e-posta gönderimi, alımı gibi işlemlerin neler olduğunu görmej istersiniz. Postfix Mail Sunucusu kullanıyor iseniz pflogsumm kurmanızı ve günlük cron tanımlayarak rapor almanızı öneririm.

Bu raporlama sayesinde, kime kaç tane posta gelmiş, kimlerden gelmiş, hangi saatler arası posta hareketliliği olmuş vb bir çok bilgi gelecektir.

pflogsumm Kurmak İçin

yum install postfix-perl-scripts.x86_64

Aşağıdaki komutu SSH üzerinden çalıştırarak sonuçları görebilirsiniz.

perl /usr/sbin/pflogsumm -e -d yesterday /var/log/maillog

Kendinize günlük rapor gelmesini istiyorsanız. postfix_report.sh dosyasının aşağıdaki gibi oluşturun, içine ilgili satırdaki kodları girin saklayarak dosyadan dıkış yapın ve ardından çalıştırma yetkisini verin. Günlük gece 00:00 raporlama için 0 0 * * * ile cronu ekleyin. cron servislerini yeniden başlatmayı unutmayın.

nano /usr/local/sbin/postfix_report.sh

#!/bin/sh
perl /usr/sbin/pflogsumm -e -d yesterday /var/log/maillog | mail -s “Postfix Mail Statistics” epostaadresiniz@domain.com
exit 0

chmod +x /usr/local/sbin/postfix_report.sh

crontab -e

0 0 * * * /usr/local/sbin/postfix_report.sh &> /dev/null

SSH Ayarları

Sunucu kurulum sonrası yapılması gereken en önemli ayarlardan biri SSH portunun değiştirilmesi ve sunucuyu erişimin belli IP ler üzerinden yapılması sağlanmaktır. Bunun yapılması sunucu güvenlik düzeyini arttırır.

İlk Önce SSH portunu değiştiriyoruz.

/etc/ssh/sshd_config 

dosyası açılarak default port 22 den çıkartılarak örneğin : Port 34380 gibi farklı bir port atanır. Bu kendinize özel belirleyebilirsiniz.

Diğer bir ayar ise herkes ssh üzerinden erişim yapmamasını sağlamaktır.

Bunun için ise /etc/hosts.allow  dosyasını açarak içine izin vermek istediğiniz ip leri yazar ve en son satırınada diğerlerine yasaklama yapmanız yeterlidir.

Örnek :

sshd : 128.118.108.108 : allow

#Evdeki Sabit IP’yi Kabul Et

sshd : 181.181.34.34 : allow

#İşteki Sabit IP ile girişi Kabul et

sshd : ALL : deny

#Herkes Yasakladı.

daha sonra SSD servisini yeniden başlatarak hizmet yeni ayarlar ile aktif etmiş olursunuz.

Postfix Komutları

Postfix mail servisi cevap vermemesi veya mail boyutunun büyük olması, spam yapılması sebebi ile mail kuyruğununda birikime neden olması ve gönderilmiş e-postaların geç gitmesi gibi sorunlarla mücadele için postfix komutları ssh üzerinde kullanılması işinizi kolaylaştıracaktır.

Kuyrukta biriken mailleri görmek için

mailq

Kuyruktaki maillerin kaç tane olduğunu ve maillerin idleri görmek için

postqueue -p

postqueue -p = mailq 

postqueue -p | tail -n 1

postqueue -p | grep -c “^[A-Z0-9]”

postqueue -p | awk ‘/^[0-9,A-F]/ {print $7}’ | sort | uniq -c | sort -n

ID lerini gördükten sonra “AB244A9” idli mailin içeriklerini okumak için

postcat -q AB244A9

Kuyrukta biriken mailleri zorla göndermek için

postfix flush veya postfix -f

Kuyruktaki mailleri silmek için

postsuper -d ALL

İletilmesi ertelenmiş mailleri silmek için

postsuper -d ALL deferred

Id sini bildiğiniz kuyrukta biriken maili silmek için

postsuper -d queue_id

Kuyruktaki bekleyen ve belirli e-postayı silmek için

mailq | tail -n +2 | grep -v ‘^ (‘ | awk ‘BEGIN { RS = “” } { if ($8 == “eposta@domainadresi.com” && $9 == “”) print $1 } ‘ | tr -d ‘!’ | postsuper -d –

bir adrese giden tüm emailleri silmek icin

mailq | tail +2 | awk ‘BEGIN { RS = “” } / user@domain.com$/ { print $1 } ‘ | tr -d ‘!’ | postsuper -d – mailq | tail -n +2 | awk ‘BEGIN { RS = “” } / user@domain.com$/ { print $1 } ‘ | tr -d ‘!’ | postsuper -d –

bir adresten gönderilen emailleri silmek icin

mailq | grep “user@domain.com” | awk ‘{ print $1}’ | postsuper -d –

E-Posta gönderini user@domainadresi.com olanları siler

postqueue -p | grep ‘^[A-Z0-9]’|grep user@domainadresi.com|cut -f1 -d’ ‘ |tr -d *|postsuper -d –

E-Posta alıcısı user@domainadresi.com olanları siler

postqueue -p | awk ‘/^[0-9,A-F].*user@domainadreesi.com / {print $1}’ | cut -d ‘!’ -f 1 | postsuper -d –

Kuyrukta olan user@domain.com ait tün postaları siler

for i in postqueue -p | grep user@domain.com | awk '{print $1}' | grep -v host | grep -v \*; do postsuper -d $i; done

Göndereni @domainadi.com olanları hepsini siler.

postqueue -p | grep ‘^[A-Z0-9]’|grep @domainadi.com|cut -f1 -d’ ‘ |tr -d *|postsuper -d –

Kuyruk ayarlarını görmek için (ayrıntılı görmek için main.cf veya master.cf)

postconf -d | grep queue

Postfix Sürümü öğrenmek için

postconf mail_version

Varsayılan Postfix ayarlarını görmek için

postconf -d

Varsayılan olmayan Postfix ayarlarını görmek için

postconf -n

Canlı Mail Loglarını görmek için

tail -f /var/log/maillog

Ayarları yeniden yüklemek için

service postfix reload

E-Posta servisini yeniden başlatmak için

service postfix restart

chattr ile Dosya Dokunulmazlığı

Cpanel kullanıcıların zaman zaman başlarına e-posta kuyruğunun birikmesinden dolayı posta gönderilemediği şikayetlerinde bulunmaktadırlar. Sistem inceleme neticesinde birçok ayarın doğru olduğu ve kara listede olmadığın gören kullanıcıların etc/mailips dosyasının için dolu olup olmadığını kontrol etmelidirler.

İlgili dosyanın içi incelendiğinde boş olduğu görmeleri, e-posta çıkış IP’nin yazılı olmadığından sunucu üzerinden dışarıya e-posta gönderilemediğini anlaşılacaktır. Bunun için

*: 78.230.120.12

sunucu üzerinde kara listeye girmemiş  e-postanın çıkış yapacağı ip adresi yazılmalıdır. Ardından bu dosyanın tekrar Cpanel müdehalesi ile içinin boşaltılmaması için aşağıdaki komutu kullanabilirsiz.

chattr komutu linux dosya sisteminde (ext2/ext3/ext4)  dosyaya bazı özellikler katma komutudur.

Bu komut ile beraber kullanabileceğiniz parametreler. ayarlama yapmak için root olmanız gerekir.

[R] parametresi dizinleri ve içeriklerinin özelliklerini değiştirir.
[a] parametresi  yazma işlemi yetkisi var ise sadece root kullanıcısı tarafından yapılabilir. (+a, -a)
[i] parametresi dosyayı hiçbir şekilde dosya sil, değiştir, adlandır yapılmaz(+i)/yapılabilir (-i)

chattr +i /etc/mailips  komutu ile dosya kilitlenir dokunulmazlık yapılmış olur.

chattr -i /etc/mailips  komutu ile dosya kilidi kalkar ve dokunulmazlık kaldırılmış olur.

lsattr /etc/mailips komutu ile dosya özelliklerini görebilirsiniz.

Linux E-Posta Kuyruğunu Temizle

Linux sunucularda e-posta sunucusunun kuyruğunda biriken e-postaları aşağıdaki komut ile silebilirsiniz.

exim -bp | awk ‘/^ *[0-9]+[mhd]/{print “exim -Mrm ” $3}’ | bash

exim -bp | exiqgrep -i | xargs exim -Mrm

exim -bp | grep ‘<‘ | awk ‘{ print $3; system(“exim -Mrm “$3)}’

Yukarıdaki 2 komut ile yapılan işlem 100.000 leri aşan posta kuyrukta var ise uzun sürecektir. bu durumda

cd /var/spool
killall -9 exim
killall -9 exim
killall -9 exim
(Exim kesin olarak sonlandırılmış olduğuna emin olunuz)
killall -9 spamd
killall -9 spamc
mv exim exim.old
mkdir -p exim/input
mkdir -p exim/msglog
mkdir -p exim/db
chown -R mailnull:mail exim
/sbin/service exim restart

bu işlemler sonrası sistem e-posta gönderme ve alma sorunları devam ediyorsa

tail -f /var/log/maillog

Komutu ile mail trafiği kontrol edilmelidir. Kontrol sonrası Error mesajları incelenir.

/var/spool/exim/input/

Klasörü altında yer alan 0-9 , a-z , A-Z arası dizinlerin olmadığını hatalar alındığı görülür bu durumda üzerine ilgili klasörler ;
mkdir /var/spool/exim/input/0
mkdir /var/spool/exim/input/1
mkdir /var/spool/exim/input/2

gibi dizinler açılır.

cd /var/spool
chown -R mailnull:mail exim

tekrar dizin yetkilendirilir.

Bu işlemlerin sonunda  SMTP Hatası: [421] Unexpected failure, please try later

şeklinde hata alırsanız.

Cpanel Giriş yapınız.

Home  »  Service Configuration »  Exim Configuration Manager

geliniz.

Önce Backup sekmesinden yedek alınız.

Ardından Reset Sekmesinden

Reset cPanel & WHM Exim configuration files, one option at a time, until the installed Exim configuration is valid

Seçerek reset işlemini yapınız.  artık düzelecektir.

Bir durum daha meydan gelmiş olabilir.

E-posta attığınız halde gitmiyor ise ve geriye size bloklandı mesajı gibi bir hata dönüyor ise.

/etc/mailips dosyasına temiz bir size ait yeni IP adresi giriniz.

Linux’ten Windows Dizinine Erişim

Windows Sunucuda Paylaşıma açılan bir dizine Linux Sunucu üzerinden erişim için aşağıdaki komutları kullana bilirsiniz.

Command : 

mount -t cifs -o username=KullanıcıAdı,password=Şifre //IP.ADRESI/path /home/user/path

/etc/fstab

Dosyasına aşağıdaki satırı ekleyiniz.

//IP.ADRESI/ShareDizin /home/user/mountdizini cifs username=KullanıcıAdı,password=Şifre,_netdev 0 0

Not : Windows Sunucu üzerinde açacağınız kullanıcı için yetkileri mutlaka gözden geçiriniz.
Paylaşım açılacak dizin için sade açtığınız Kullanıcıyı yetkili (Okuma-Yazma) veriniz.
Diğer Kullanıcıları kaldırınız.

Litespeed Şifre Sıfırlama [SSH]

Linux sunucunuz da Litespeed Web Sunucusunu kullanıyorsanız ve uzun süre Litespeed (7080) paneline girmemiş ve şifrenizi hatırlamıyorsanız Şifre değiştirme işlemi için aşağıdaki dizinde bulunan komutu çalıştırabilirsiniz.

Bu komutu kullandığınız da ilk olarak kullanıcı adı istemektedir. Koymak istediğiniz kullanıcı adını belirtiniz.

devamında yeni şifrenizi iki defa isteyecektir. bu işlem ardından şifreniz değişmiş olacaktır.

code :
#cd /usr/local/lsws/admin/misc
#./admpass.sh

 

Dosya İzinleri Toplu Değiştirme [SSH]

Aşağıdaki komutlar için SSH Bağlantısı gerekmektedir.

SSH ile bağlantı kurarak aşağadaki komutlar ile toplu işlem ile dosya ve dizinlere yetki verebilir veya alabilirsiniz.

Standart olarak örneğin Dosyalarda 644 Dizinlerde 755 verebilirsiniz.
find /var/vhosts/www/bozdemir.com/httpsdocs/ -type f -exec chmod 644 {} \; -print
(Belli bir dizin ve alt dizinler içinde “f” parametresi ile Sadece Dosyalara 644 Yetkisi)
find . -type f -exec chmod 644 {} \; -print
(Bulunduğunuz Dizin ve Alt Dizinlerde “f” parametresi ile Sadece Dosyalara 644 Yetkisi)
find /var/vhosts/www/bozdemir.com/httpsdocs/ -type d -exec chmod 755 {} \; -print
(Belli bir dizin ve alt dizinler içinde “d” parametre ile Sadece Dizinlere 755 Yetkisi)
find . -type d -exec chmod 755 {} \; -print
(Bulunduğunuz Dizin ve Alt Dizinlerde “d” parametre ile Sadece Dizinlere 755 Yetkisi)