service clamd stop
cd /var/run/clamd.amavisd
rm -f /var/run/clamd.amavisd/clamd.sock
service clamd start
sh /scripts/clamd_fix_100_cpu_usage
service clamd stop
cd /var/run/clamd.amavisd
rm -f /var/run/clamd.amavisd/clamd.sock
service clamd start
sh /scripts/clamd_fix_100_cpu_usage
1. CWP güncelleyin. sh /scripts/update_cwp 2. Roundcube güncelleyin. sh /scripts/mail_roundcube_update 3. Mail yetkilerini tamir edin. /scripts/cwp_api account mail_fix_permissions Logları İnceleyin. /usr/local/cwpsrv/var/services/roundcube/logs/errors.log /var/log/dovecot.log Dizinleri kontrol edin. chown vmail.mail /var/vmail chmod 770 /var/vmail
<?php
//MySQL server and database
$dbhost = ‘localhost’;
$dbuser = ‘dbkullaniciadi’;
$dbpass = ‘dbsifre’;
$dbname = ‘dbadi’;
$tables = ‘*’;
//Call the core function
backup_tables($dbhost, $dbuser, $dbpass, $dbname, $tables);
function yandexeyukle($filename)
{
$user = “[email protected]”;
$password = “yandexsifre”;
$credentials = array($user, $password);
$filepath = ‘/home/sitename/public_html/yedek/’ . $filename;
$filesize = filesize($filepath);
$fh = fopen($filepath, ‘r’);
$remoteUrl = ‘https://webdav.yandex.com.tr/’;
$ch = curl_init($remoteUrl . $filename);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, implode(‘:’, $credentials));
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_INFILE, $fh);
curl_setopt($ch, CURLOPT_INFILESIZE, $filesize);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$response = curl_exec($ch);
fclose($fh);
}
//Core function
function backup_tables($host, $user, $pass, $dbname, $tables = ‘*’)
{
$link = mysqli_connect($host, $user, $pass, $dbname);
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit;
}
mysqli_query($link, "SET NAMES 'utf8'");
//get all of the tables
if ($tables == '*') {
$tables = array();
$result = mysqli_query($link, 'SHOW TABLES');
while ($row = mysqli_fetch_row($result)) {
$tables[] = $row[0];
}
} else {
$tables = is_array($tables) ? $tables : explode(',', $tables);
}
$return = '';
//cycle through
foreach ($tables as $table) {
$result = mysqli_query($link, 'SELECT * FROM ' . $table);
$num_fields = mysqli_num_fields($result);
$num_rows = mysqli_num_rows($result);
$return .= 'DROP TABLE IF EXISTS ' . $table . ';';
$row2 = mysqli_fetch_row(mysqli_query($link, 'SHOW CREATE TABLE ' . $table));
$return .= "\n\n" . $row2[1] . ";\n\n";
$counter = 1;
//Over tables
for ($i = 0; $i < $num_fields; $i++) { //Over rows
while ($row = mysqli_fetch_row($result)) {
if ($counter == 1) {
$return .= 'INSERT INTO ' . $table . ' VALUES(';
} else {
$return .= '(';
}
//Over fields
for ($j = 0; $j < $num_fields; $j++) {
$row[$j] = addslashes($row[$j]);
$row[$j] = str_replace("\n", "\\n", $row[$j]);
if (isset($row[$j])) {
$return .= '"' . $row[$j] . '"';
} else {
$return .= '""';
}
if ($j < ($num_fields - 1)) {
$return .= ',';
}
}
if ($num_rows == $counter) {
$return .= ");\n";
} else {
$return .= "),\n";
}
++$counter;
}
}
$return .= "\n\n\n";
}
//save file
$fileName = 'db-yedek-' . time() . '-' . (md5(implode(',', $tables))) . '.sql';
$handle = fopen($fileName, 'w+');
fwrite($handle, $return);
if (fclose($handle)) {
echo "Done, the file name is: " . $fileName;
}
yandexeyukle($fileName);
}
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/*
ilk önce StorageBox hesabınızını Linux Sisteminide Mount edelim.
mount -t davfs https://user-subx.your-storagebox.de /backup
mount: unknown filesystem type ‘davfs’ diye mesaj alırsanız.
Sistem davfs eklentisi yüklü değilir bunu sistem yüklemelisiniz.
yüklemek için Centos İçin
yum install davfs2
ardından kaldığım yerden mount işlemini tamamlayın.
Mount işlemi sırasında kullanıcı adı ve şifre soracaktır.
Kullanıcı ad ve Şifre ile giriş yapınız.
her mount işlemi sonrası kullanıcı adı ve şifre sormamasını istiyorsanız.
/etc/davfs2/secrets
https://user-subx.your-storagebox.de user-subx password
ekliyoruz. bu yaptığımızda bir dahaki mount işlemlerinde kullanıcı adı ve şifresi sormayacaktır.
ardından sistem yeniden başlandığında otomatik mount olmasını istiyorsanız.
nano /etc/fstab
https://user-subx.your-storagebox.de /backup davfs rw,uid=0,gid=0,file_mode=0660,dir_mode=0770,_netdev 0 0
ekliyoruz. (Tek satır olarak) Böylece sistem yeniden başladığındam yedek dizini mount etmiş oluyor.
Linux sistemlerde bir klasör içindeki değişen klasör ve dosyaları listeler ve sıralar find /home/abozdemir/public_html/ $1 -type f -exec stat --format '%Y :%y %n' "{}" \; | sort -nr | cut -d: -f2- | head Son Değişen Dosya ve Dizinleri Görmek İçin Dosya ve Klasör find /home/abozdemir/public_html -newermt "10 day ago" -ls find /home/abozdemir/public_html -mtime -15 -ls Sadece Klasör find /home/abozdemir/public_html -mtime -7 -type d -ls 50MB üzeri ve 1GB altı dosyaları listeler find /home/abozdemir -type f -size +50M -size -1G Büyükten Küçüğe Doğru Dosyaları listeler du -skh * | sort -hr du -skh /var/log/* | sort -hr Dizin veya kelime arama grep -rnw aranacakdizin/ -e 'aranacak kelime' iki dosya ve dizin farklarını bulur. diff -rq /home/abozdemir/public_html /home/bbozdemir/public_html diff -c ilk-dosya.txt ikinci-dosya.txt
Boş klasörleri silme
find /home/abozdemir -empty -type d -delete
Centos Web Panel güncelleme sonrası Net, Error Cert Invalid (Geçersiz Sertifika) hatası alırsanız aşağıdaki komutları kullanarak httpd ve tüm eklentilerini sistemden kaldırıp ardından yeniden kurulum yapın.
yum remove cwp-httpd httpd* -y
yum install cwp-httpd -y
webserver conf yeniden derleyin.
Centos Webpanel kullanıyorsanız ve yüksek boyutlu dosya yüklemeleri veya göndermeleri sırasında default zaman ayarı nedeni ile gateway timeout hatası alıyorsanız öncelikli olarak Php konfigürasyon ayarlarınızı gözden geçiriniz. Php Konfigürasyon ayarlarınızı yaptığınız halde sorun devam ediyorsa aşağıdaki işlemleri Centos WebPanele giriş yaparak gerçekleştiriniz
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 OffSSLStaplingResponderTimeout 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 [email protected]
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.
Centos Web Panel üzerinde yer alan SSL Certificates sekmesinde yer alan AutoSSL Çalışmaması durumunda aşağıdaki hatayı alıyorsanız yapmanız gereken şey ca-certificates sistem yeniden yüklemeniz yeterli olacaktır.
Ancak logları inceleyerek ve yapılması gerekenler sırayla aşağıda yer almaktadır.
tail -f /root/.acme.sh/acme.sh.log
[Wed Jun 5 13:10:30 +03 2019] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 77
[Wed Jun 5 13:10:30 +03 2019] ret=’77’
[Wed Jun 5 13:10:30 +03 2019] Can not connect to https://acme-v01.api.letsencrypt.org/directory to get nonce.
[Wed Jun 5 13:10:30 +03 2019] Can not get domain new authz.
[Wed Jun 5 13:10:30 +03 2019] pid
[Wed Jun 5 13:10:30 +03 2019] No need to restore nginx, skip.
[Wed Jun 5 13:10:30 +03 2019] _clearupdns
[Wed Jun 5 13:10:30 +03 2019] skip dns.
[Wed Jun 5 13:10:30 +03 2019] _on_issue_err
[Wed Jun 5 13:10:30 +03 2019] Please check log file for more details: /root/.acme.sh/acme.sh.log
dilerseniz bu log dosyasınıda inceleye bilirsiniz. cat /var/log/cwp/cwp_sslmod.log
curl -v https://acme-v01.api.letsencrypt.org/directory
komutunu çalıştırın ve aşağıdaki gibi bağlantı hatasını alıryorsanız yeniden ca-certificates kurulum yapın.
About to connect() to acme-v01.api.letsencrypt.org port 443 (#0)
Trying 104.66.95.37…
Connected to acme-v01.api.letsencrypt.org (104.66.95.37) port 443 (#0)
Initializing NSS with certpath: sql:/etc/pki/nssdb
Closing connection 0
curl: (77) Problem with the SSL CA cert (path? access rights?)
yum reinstall ca-certificates
ardından tekrar kontrol için aşağıdaki komut ile kontrol edin. Hata yerine OK aldığınızı göreceksiniz. Ardından artık Centos-WebPanel üzerinden artık AutoSSL sertifikaları üretilebilecektir.
curl -v https://acme-v01.api.letsencrypt.org/directory
Komutu ilede SSL Oluşumu test edilebilir.
sh /root/.acme.sh/acme.sh –home /root/.acme.sh/cwp_certs –issue -d www.alanadi.com -d alanadi.com -w /usr/local/apache/autossl_tmp –debug 2
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” [email protected]
exit 0
chmod +x /usr/local/sbin/postfix_report.sh
crontab -e
0 0 * * * /usr/local/sbin/postfix_report.sh &> /dev/null
Sunucu üzerinde bazen illagel durumları tespit etmek istersiniz. bunun için yapmanız gereken bazı komutları aşağıda verilmektedir. Bu rapor çıktılarını inceleyerek genel bir yorum yapabilir hale gelirsiniz.
Sunucuya IMAP ve POP3 olarak bağlantı yapanları tespit etmek için.
4 Haziran Tarihinde Kim kaçkere Login olmuş.
E-Posta listesini olarak listeler, bağlantı sayıları ile birlikte
grep -i “Login: user” /var/log/dovecot-info.log |grep “Jun 04″|awk {‘print $7’}|sort|uniq -c|sort -n
IP Listesi ile birlikte görmek için
grep -i “Login: user” /var/log/dovecot-info.log |grep “Jun 04″|awk {‘print $7” “$9’}|sort|uniq -c|sort -n
Mail Log kayıtlarında SMTP Kullanarak Giriş Yapanları Tespit Etmek İçin (Web Üzerinden Bağlanma) Genellikle Spam Gönderilerin kimler tespit etmek için kullanılır.
Zaman Damgasız Sorgulama İçin
grep -i “sasl_username” /var/log/maillog |awk {‘print $9’}|sort|uniq -c|sort -n
Belirli Bir tarihi sorgulamak için
grep -i “sasl_username” /var/log/maillog |grep “Jun 4″|awk {‘print $9’}|sort|uniq -c|sort -n
Client ve Ip Adreslerini almak için
grep -i “sasl_username” /var/log/maillog |grep “Jun 4″|awk {‘print $9” “$7’}|sort|uniq -c|sort -n
Sunucu tarafından red edilen e-posta listesi
grep -i “NOQUEUE: reject:” /var/log/maillog |grep “Jun 4″|awk {‘print $10” “$21” “$22’}|sort|uniq -c|sort -n
Postfix Toplu E-posta Çıkış Kaynağını Bulma
Bizler ne kadar sunucuda güvenlik tedbirleri alsakta, mutlaka hepimizin başına abuse bildirim gelmektedir.
Genellikle müşterilerinizin bilgisayarlarına virus bulaşıp e-posta adresinin şifresi kaptırmış olmalarından kaynaklanır.
Her ne kadar abuse bildirimler toplu eposta çıkışımdan kaynaklı olmasada gönderilen içerik sahtekarlık ve aldatıcı e-posta olmasından dolayı acil müdehale edip gereğini yaparak abuse bildirimini sonlandırmanız gerekmektedir. Aksi taktirde sunucudaki IP adresine 24 saat sonunda Blok koyulur.
Postfix maillog kayıtları içinde size rapor edilen e-posta adresini aratınız.
bir dünya sonuç listenecektir. bizim için önemli olan ilk bulduğumuz satırdır.
cat /var/log/maillog [email protected]
Not : sikayet gelmemiş fakat kuyrukta çok fazla e-posta varsa hızlıca
cat /var/log/maillog | grep “sasl_method=LOGIN”
komutu ile login olan kişileri gözden geçirerek bulmaya çalışırsınız. Örneğin bölge dışı aynı IP yada farklı IP den artarda bağlantı olunması gibi aşağıdaki örnekte görüldüğü şekli ile
Oct 18 12:15:20 server postfix/smtpd[21015]: C7CE7C5037FC5: client=unknown[13.72.68.51], sasl_method=LOGIN, sasl_username=eposta@alaadı.com
Oct 18 12:15:23 server postfix/smtpd[21015]: DC391C5037FC7: client=unknown[13.72.68.51], sasl_method=LOGIN, sasl_username=eposta@alaadı.com
Bize abuse ile postaadresi bildirildiğini düşünerek devam edelim.
Örnek :
Jun 3 02:44:21 server postfix/cleanup[12151]: 946E1C048889F: message-id=[email protected]
gibi bir satır bulacaksınız bu satırın bir satır öncesi yada bir kaç satır öncesini dikkatli inceleyiniz.
946E1C048889F id olan client ve sasl_method değerlerini inceleyin. Aşağıdaki gibi satır bulacaksınız.
Jun 3 02:44:20 server postfix/smtpd[1144]: 946E1C048889F: client=localhost.localdomain[127.0.0.1], sasl_method=LOGIN, sasl_username[email protected]
sisteme legal olarak oturum açtığı [email protected] kullanarak, illagel bir gönderimde bulunduğunu yüzlerce e-postayı kuyruğa girdiğinden anlamış olmalısınız.
yine hemen devamında kuyruğa e-posta soktuğu ve peşinden disconnect olduğunu göreceksiniz.
Jun 3 02:44:21 server postfix/qmgr[23595]: 946E1C048889F: from=[email protected], size=1104752, nrcpt=500 (queue active)
Jun 3 02:44:21 server postfix/smtpd[1144]: disconnect from localhost.localdomain[127.0.0.1]
cat /var/log/maillog |grep [email protected]
komutu ilede incelemeye devam edersiniz.
yine
cat /var/log/dovecot-info.log |grep [email protected] ile bağlantı saatine dikkate alarak ip adresini tespit edebilirsiniz.
ardından sistem [email protected] hesabını suspend etmek yada şifresini değiştirmek. Ancak müşterinize şifresini hemen vermeyin, bilgisayarını virus taramasından geçirmesini talep edin. yoksa aynı şey tekrar tekrar devam edecektir. ardından tespit ettiğimiz ip adresini güvenlik duvarından engelleyin.
Sunucunuzda postfix kurulu ise default e-posta gönderim ip adresi Ana IP adresinizdir. Olası bir toplu e-posta çıkışı söz konusu olursa ve bu ip kara listeye girmiş ise, kara listeden çıkarmak için beklenecek vakit söz konusu değil ise hemen yapılması gereken işlem, Sunucu üzerinden gönderilecek e-postaların Farklı bir IP adres üzerinden göndermeyi ayarlamak olacaktır. Bunun için yapmanız gereken işlem
SSH ile Sunucunuza bağlanın
nano /etc/postfix/master.cf dosyasını açın ve aşağıdaki satırı 4 satırı bulun ve kaldırın.
smtp unix – – n – – smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix – – n – – smtp
-o fallback_relay=
Yerine Bu Satırları Ekleyin.
smtp unix – – n – – smtp
-o smtp_bind_address=81.181.81.181-Sizin-IP-Adresiniz-Olmalı
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix – – n – – smtp
-o smtp_bind_address=81.181.81.181-Sizin-IP-Adresiniz-Olmalı
-o smtp_fallback_relay=
Düzenlemeyi kayıt edin ve nano edit programından çıkın.
service postfix restart
komutu ile servisi yeniden başlatın. artık yeni ip adresiniz üzerinden gönderim yapacaktır.
Not : buradaki satırları kopyalayıp yapıştırınca postfix servisi yeniden çalışmayarak bu satırlarda hata var diyebilir.
bunun için dikkat edilmesi gereken – bu işaretler arasında tab boşluğun olmmasından kaynaklanır. Bu neden bu düzenlemeyi yaparken mevcut kayıtlı satırlardan yararlanarak yapılmasını tavsiye ederim.
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 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 == “[email protected]” && $9 == “”) print $1 } ‘ | tr -d ‘!’ | postsuper -d –
bir adrese giden tüm emailleri silmek icin
mailq | tail +2 | awk ‘BEGIN { RS = “” } / [email protected]$/ { print $1 } ‘ | tr -d ‘!’ | postsuper -d – mailq | tail -n +2 | awk ‘BEGIN { RS = “” } / [email protected]$/ { print $1 } ‘ | tr -d ‘!’ | postsuper -d –
bir adresten gönderilen emailleri silmek icin
mailq | grep “[email protected]” | awk ‘{ print $1}’ | postsuper -d –
E-Posta gönderini [email protected] olanları siler
postqueue -p | grep ‘^[A-Z0-9]’|grep [email protected]|cut -f1 -d’ ‘ |tr -d *|postsuper -d –
E-Posta alıcısı [email protected] olanları siler
postqueue -p | awk ‘/^[0-9,A-F].*[email protected] / {print $1}’ | cut -d ‘!’ -f 1 | postsuper -d –
Kuyrukta olan [email protected] ait tün postaları siler
for i in
postqueue -p | grep [email protected] | 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
raspberry SSH üzerinden ek olarak e-posta gönderilmek istenirse sistemde mpack paketi yüklü olmalıdır.
sudo apt-get install ssmtp
sudo apt-get install mailutils
sudo apt-get install mpack
mpack paketi kurulur.
curl -s http://whatismijnip.nl |cut -d ” ” -f 5 > /home/pi/ip.txt
mpack -s “IP Adres Başlığı” /home/pi/ip.txt mail @ 360tr. com
örneğin http://whatismijnip.nl/ sitesinden alınan sayfa ip.txt olarak dosyaya saklanmaktadır. Ardından saklanan dosya ek olarak posta gönderilmektedir.
Raspberrypi veya Linux işletim sistemlerinde hem GSM üzerinden hemde ETHERNET üzerinden internete çıkıyorsanız ve siz internete çıkışının öncelikli GSM (PPP0) üzerinden olmasını istiyorsanız GSM (PPP0) varsayılan Route Geçişiniz GateWay adresine eklemelisiniz.
sudo route add default gw 10.64.64.64
ile ekleye bilirsiniz. böylelikle default olarak eklediğiniz gw ile nete çıkacaktır. route -n komutu ile varsayılan gateway leri görebileceğiniz gibi traceroute google.com komutu ile takip edebilir ve ifconfig netstat -rn komutlarınıda kullanabilirsiniz.
Raspberry üzerinden SMTP ile e-posta göndermek istiyorsanız iki paketi yüklemelisiniz. Bunlar SSMTP ve MailUtils
sudo apt-get install ssmtp
sudo apt-get install mailutils
sudo nano /etc/ssmtp/ssmtp.conf
root=postmaster
mailhub=smtp.gmail.com:587
hostname=raspberrypi
[email protected]
AuthPass=GmailSifreniz
FromLineOverride=YES
UseSTARTTLS=YES
echo “Merhaba E-Posta” | mail -s “Test Başlığı” mail @ 360tr. com
Not : Gmail ayarlarından düşük güvenlik aktif edilmelidir.
Raspberry 3G bağlantısı her seferinde sudo wvdial komutu ile bağlanmak istemiyor ve otomatik Raspberry her açıldığında bağlanılmasını istiyorsanız aşağıdaki ayarları yapmalısınız.
/etc/network/interfaces
auto ppp0
iface ppp0 inet wvdial
ve
/etc/rc.local
sleep 60
/sbin/ifdown ppp0
/sbin/ifup ppp0
satırlarını ilgili dosyaların içine yazıp dosyayı saklayınız. sleep 60 dilerseniz kullanmaya bilirsiniz. Sistem açıldıktan 1 dakika sonra ppp0 bağlantısını kapat ver aç satırını işler.
Raspberry USB port üzerinden 3G modem kullanmak istiyorsanız bu mümkün. Yapmanız gerekenler aşağıdaki komutlardır.
sudo apt-get install ppp
sudo apt-get install usb-modeswitch
sudo apt-get install libusb-dev
sudo apt-get install wvdial
lsusb komuutu ile USB bağlı aygıtları listeleye bilirsiniz.
sudo nano /etc/wvdial.conf
komutu ile ayar dosyası içine aşağıdakiler ekliyoruz.
[Dialer Defaults]
Init1 = ATZ
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init4 = AT+CGDCONT=1, “IP”, “mgb”
Modem = /dev/ttyUSB2
Baud = 460800
ISDN = 0
New PPPD = yes
Modem Type = Analog Modem
Phone = *99#
Username = wap
Password = wap
Stupid Mode = 1
Dial Command = ATDT
Not : mgb yerine internet yazmayınız. yazmanız durumunda hattınız üzerinden cihazınıza dışarıdan erişim sağlayamaz durumuda kullanmak zorunda kalırsınız. ttyUSB? kaçta bağlı ise o ? işareti yerine bağlı olduğu portu yazmalısınız.
sudo wvdial
komutu ile bağlantı İnternet bağlantısı sağlanır
raspberry kendi PHP kamera yönetim yazılımını kullanmak isterseniz aşağıdaki komutları kullanarak sisteme kurabilirsiniz. Apache üzerinden php ile kamerayı yönetebilirsiniz.
git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
cd RPi_Cam_Web_Interface
chmod u+x RPi_Cam_Web_Interface_Installer.sh
./RPi_Cam_Web_Interface_Installer.sh install
kurulum sonrası
./RPi_Cam_Web_Interface_Installer.sh install
tekrar giriş yapılarak configuration girilir ve ardından kamera enable edilir. Eğerki kayıt yerinin farklı bir aygıt olacaksa yine aynı yerden kayıt yolunu ayarlaya bilirsiniz. Kurulum sonrası /var/www/html yoluna kendini entegre ettiğini görecek ve böylece kamerayı dilediğiniz gibi erişebilecek ve yönete bileceksiniz.
Kamera hakkında daha ayrıntılı bilgi için aşağıdaki adresleri ziyaret edebilirsiniz.
http://elinux.org/RPi-Cam-Web-Interface
https://www.raspberrypi.org/learning/getting-started-with-picamera/
Raspberrypi üzerinde php, apache, mysql gibi servisleri çalıştırmak istiyorsanız aşağıdaki komutları kullanarak sistem yükleme yapabilirsiniz.
sudo apt-get install apache2 -y
sudo apt-get install php5 libapache2-mod-php5 -y
sudo apt-get -y install phpmyadmin
Raspberrypi ilk defa satın aldığınızda içinde herhangi bir yüklü sistem olmadan gelir. Siz Mini SD karta yükleyeceğiniz sistemini imaj halini internet üzerinden indirip yüklemelisiniz.
Raspberry indirmek için raspberry.org adresinden download bölümünü ziyaret etmelisiniz. İstediğiniz sistemi seçme indirme ve SD karta yükleme işlemleri bittikten sonra raspberry artık kuruluma hazırdır.
Kurulum adımlarını görebilmek için HDMI çıkışına bir monitör bağlamalısınız. Böylece kurulan paketler ve sistemin ilerleyişini gözlemlersiniz.
Kurulum tamamlanmasın ardından raspberrypi klavye, monitör, fare gibi araçlar olmadan kullanmak zorunda iseniz SSH ile bağlantı kurabilirsiniz.
SSH ile erişim sağlayabilmesi için raspberrypi nin ağ üzerinde IP almış olması gerekir. aldığı IP yi göremiyorsanız ağ üzerinde IP tarama programlarından yararlanarak bulabilirsiniz.
Kurulumlar tamamlandı ve Artık SSH ile bağlanıyoruz.
MAC, Linux kullanıyorsanız
ssh [email protected] komutu ile Windows kullanıyorsanız PUTTY ile bağlantı kurar ve uzak erişim sağlaya bilirsiniz.
Raspberrypi varsayılan olarak aşağıdaki kullanıcı adı ve şifre ile gelir.
user : pi
passwd : raspberry
bağlantı sağladıktan sonra sisteminizi güncellemenizi mutlaka tavsiye ederim. bunları aşağıdaki komutlar ile yapabilirsiniz.
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo apt-get dist-upgrade
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.
Yedek alma
mysqldump -uroot -p –all-databases > tumu.sql
mysqldump -uroot -p –opt –all-databases > tumu.sql
mysqldump -uroot -p –all-databases –skip-lock-tables > tumu.sql
Geri Yükleme
mysql -u root -p < tumu.sql
Linux Centos İşletim Sistemi Versiyonları öğrenmek İçin Aşağıdaki komutları SSH bağlantı kurarak kullanabilirsiniz.
Linux Sunucuya SSH ile bağlantı kurduktan sonra aşağıdaki 2 komuttan birini kullanarak error_log dosyalarını tek seferde toplu olarak silme işlemini yaptırabilirsiniz.
find /home/*/public_html -name ‘error_log*’ | xargs rm -rf
find /home/*/public_html -name ‘error_log’ -exec rm {} \;
Sisteminizdeki Php versiyonu yükseltildiğinde veya Yeni kurulum yaptığınızda FFmpeg yüklemek isterseniz veya çalışmaması durumunda yeniden derlenmesi gerekmektedir.
bu işlem için aşağıdaki komutları sırası ile yaptığınızda derleme işlemi yapılmış olacaktır.
cd /usr/src
wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2?r=&ts=1365651935&use_mirror=garr
tar xjf ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0
phpize
./configure –enable-shared –prefix=/usr
make
make install
eğerki php.ini içinde ffmpeg extensions ekli değilse ekleyeyim.
nano /usr/local/lib/php.ini
extension=ffmpeg.so
Http servisini yeniden başlatıyoruz.
/scripts/restartsrv_httpd
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.
Cpanel Günlük olarak bant genişliği hesabı yapmaktadır. bazı durumlarda sunucuya çok yük bindirmekte ve diskin yavaş çalışmasına neden olarak sunucuyu ağırlaştırmaktadır. bu durunda aşağıdaki işlemleri yaparak çalışan süreçleri durdura bilirsiniz.
touch /etc/cpanellogddisable
killall -9 cpanellogd
mv /usr/local/cpanel/cpanellogd /usr/local/cpanel/cpanellogd.bak
mv /usr/local/cpanel/libexec/cpanellogd /usr/local/cpanel/libexec/cpanellogd.bak
chkconfig –del bandmin
/usr/local/bandmin/bandminstop
Sunucuda oturum açma tip ve tarihlerini aşağıdaki komut ile görebilirsiniz.
last
çok fazla liste gelirse
last | more
sayfa sayfa liste alabilir.
sadece belirli bir kullanıcıyı listelemek için
last | grep root
sadece root kullanıcısına ait oturumları listeler.
Her bir site erişimleri sistem tarafından loglanır.
Bu loglar yüksek ziyaret alan sitelerde GB’ları aşan dosya boyutuna ulaşır.
belirli zamanlarda bu logların yedeklenerek başka ortama almak gerekebilir.
Ayrıca T.C. Kanunları geri loglar’da belirli bir süre saklansı gerekmektedir.
Cpanel yüklü Linux işletim sisteminde aşağıdaki komut ile Logları sıkıştırarak
yedekleye bilirsiniz.
bu komutlar ile logların bulunduğu ilgili dizine giriyoruz.
domlogs dizini tar komutu ile sıkıştırılır.
daha sonra yedeklenen log dosyalarına ihtiyaç kalmadığı için silinir.
web sunucusu yeniden başlatılmaktadır.
cd /usr/local/apache
tar -cf domlogs-XX-XX-2013.tar.gz domlogs
rm -rf /usr/local/apache/domlogs/*
/etc/init.d/httpd restart
Linux İşletim sisteminde root ve mysql gibi kullanıcıların dışında işin ehli olmayan shell erişimi olması oldukça tehlikeli olabilir.
mümkün olduğu kadar hiç bir standart web kullanıcısına user’a shell yetkisini Cpanel paket oluştururken vermeyiniz.
gözden kaçması, dikkat edilmeden verilmiş kullanıcılar olabilir.
bunun için aşağıdaki komutu kullanarak bu yetkiye sahip kullanıcıları görebilirsiniz.
cat /etc/passwd |grep “/bin/bash”
listenilen kullanıcıları cpanel’e gelerek modify account sekmesinden
Shell Access erişimini çeltiğini kaldırınız.
Linux İşlem istemi üzerine antivirus kurma ve tarama yapmak için aşağıdaki komutları sırası ile yapınız.
wget http://files.avast.com/files/linux/avast4workstation-1.3.0.tar.gz
tar -xvf avast4workstation-1.3.0.tar.gz
cd avast4workstation-1.3.0
cd bin/
./avast-update
./avast /home –report=/root/avast.txt
home ve alt dizinlerini tarar.
sonuçları görmek için daha sonra edit ederek bakabilirsiniz.
Shell, Door, Agent gibi scriptler tehlikeli olduğundan zaman geçirmeden siliniz.
Elimizde Elma ve Armut birer sunucu olsun.
Elma Sunucusu : 77.88.12.149
Armut Sunucusu : 77.33.16.148
Öncelikli olarak elma sunucusu içine SSH ile bağlantı kurulur.
Sunucu içinde sshfs yüklü değilse yüklenmeldir.
Yükleme sonrası
komutu ile mnt dizini altına diğer sunucu için dizin açtım. (otherserver)
Komutunu kullandım ve root şifre isteyecektir.
şifreyi girerek sunucusunu mnt/otherserver/ dizine bağladım.
artık /mnt/otherserver eriştiğinizde diğer sunucuya erişmiş olacaksınız.
bu işlem böyle sunucu yeniden başlayıncaya kadar kalır.
yeniden başlayınca otomatik gelsin istenirse
içine
tanımlanmalıdır.
erişimi kaldırmak içinde
komutu kullanılır.
Linux find komutu ile dosya değiştirme veya oluşturma tarihine göre dosyaları listeleyebiliriz.
Aşağıdaki komut ile home dizini altında tüm php dosyalarının içinde aranacak_kelime geçen dosyaları bulur ve dosya.txt içine kayıt ederi.
find /home/ -name “*.php” | xargs grep -l “aranacak_kelime” > dosya.txt
Aşağıdaki konut images dizininde 2 gün içinde php dosya uzantılarında işlem olmuş dosyaların listesini verir.
find /home/domainusername/public_html/images/ -iname ‘*.php’ -type f -mtime -2 -exec ls -lh {} \; | awk ‘{ print $9 “: ” $5 }’
Aşağıdaki konut images dizininde zaman sınırlaması olmaksızın php dosya uzantılarında işlem olmuş dosyaların listesini verir.
find /home/domainusername/public_html/images/ -iname ‘*.php’ -type f -exec ls -lh {} \; | awk ‘{ print $9 “: ” $5 }’
Aşağıdaki komut ise 14 gün içinde public_html dizini altında php dosyalarında değişiklik olmuş ise veya oluşturulmuş ise a.txt dosyasına kayıt eder.
find /home/domainusername/public_html/ -iname ‘*.php’ -type f -mtime -14 -exec ls -lh {} \; | awk ‘{ print $9 “: ” $5 }’ > a.txt
Aşağıdaki komut ise images dizinideki tüm php dosyalarını siler.
find /home/domainusername/public_html/images/ -iname ‘*.php’ -print -exec rm -rf {} \;
Aşağıdaki komut ise images dizinindeki 2 gün içinde (-mtime -2) sayesinde oluşan veya değiştirilen tüm php dosyalarını siler.
find /home/domainusername/public_html/images/ -iname ‘*.php’ -mtime -2 -print -exec rm -rf {} \;
[ERROR] Can not open directory for URI: /!
Proudly Served by LiteSpeed Web Server at www.????????????????.com Port 80
Böyle bir hata alıyorsanız.
Muhtemelen yedekten bir paket kurulumu yaptınız veya farklı bir sunucudan LITESPEED kullanılan sunucuya hostunuzu taşıdınığızda karşılaşılmaktadır. bu çok nadir görülür.
Bunun Sebibi
public_html
Dizininin Grup Sahini NoBody olmamasından kaynaklanır.
Çözüm için Sunucu Sahibine ulaşıp Bu dizinin Grup Sahibi bilgilerini değiştirmesini istemelisiniz.
Linux Sunucularda kullanılan Litespeed Web Sunucusu sunucu yeniden başladığında veya Linux Sunucu Kernel güncellemesi yapıldığında devrede olan Litespeed’in devre dışı olduğu ve Apache’nin aktif olduğunu gördüğümüzde Aşağıdaki komutları kullanarak Apache devre dışı bırakmış ve Litespeed devreye almış oluruz.
CODE :
killall -9 httpd
cd /tmp/
rm -rf sess*
/etc/init.d/lsws start
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.
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
Herhangi bir şekilde sunucuda memcached durmuş ise aşağıdaki hataya benzer bir hata alıyor olacaksınız.
bu hatanın giderilmesi için yine aşağıdaki komutu kullanabilirsiniz.
Could not connect to memcache server
Memcached Start Commad – Memcached Başlatma Komutu
/usr/local/bin/memcached -u nobody -d -m 128 -l 127.0.0.1 -p 11211
Manuel FTP Hesabı Açma
Plesk Panel Yüklü bir LinuX sunucuya SSH bağlantısı ile manuel FTP hesabı açmak için aşağıdaki adımları sırasıyla uygulaya bilirsiniz.
1. Adım FTP Kullanıcı ve yetkili olacağı dizini ayarlıyoruz.
/usr/sbin/useradd -d /var/www/vhosts/alanadi.com/dizin -s /bin/false FTP_USER_NAME (Yeni Ftp Kullanıcı Adı)
2. Kullanıcı modunu belirliyoruz.
/usr/sbin/usermod -G psacln FTP_USER_NAME
3. Yazma Yetkilerini Ayarlıyoruz.
chmod 755 /var/www/vhosts/alanadi.com/dizin
4. Kullanıcıya Sahipliğini ayarlıyoruz.
chown FTP_USER_NAME:psacln /var/www/vhosts/alanadi.com/dizin
5. Oluşan Ftp Kullanıcısına şifre atıyoruz.
passwd FTP_USER_NAME
Sistemde
78.159.99.162 Ana IP olduğunu ve bu Ip nin bloklandığını veya kara listeye girdiğini düşünelim.
Bu IP yerine Kara listede olmayan ve bloklanmamış bir IP olduğunu varsaydığımız IP 78.159.99.53 olsun.
Bunların dışında dilerseniz, Sistemde Tanımlı IP lere ifconfig veya Hosting Panel paketlerinden Bakıbilirsiniz.
Yine dilerseniz. http://www.mxtoolbox.com/ adresinde Ip’nin Temiz Listesinde Olup olmadığı kontrol edebilirsiniz.
1.
ifconfig konutu ile 78.159.99.53 IP nin hangi adı kullandığını tespit ediyoruz. örneğin ifcfg-eth0:16 olduğunu tespit ettik.
2.
cd /et/sysconfig/network-scripts/ dizinindende conf dosyalarınıda görebilirsiniz.
3.
mv ifcfg-eth0 ifcfg-eth0:20 diyerek eth0 -> eth0:20 olarak geçici olacak taşıyoruz.
4.
mv ifcfg-eth0:16 ifcfg-eth0 şeklinde yapıyoruz. 16 ‘yı da > eth0 alıyoruz.
5.
nano ifcfg-eth0 veya herhangi text editorla dosyayı açıp için aşağıdaki gibi düzenliyoruz. DEVICE ile yerini ayarlıyoruz.
DEVICE=”eth0″
IPADDR=”78.159.99.53″
NETMASK=”255.255.255.0″
BROADCAST=78.159.99.255
NETWORK=78.159.99.0
BOOTPROTO=none
TYPE=Ethernet
ONPARENT=yes
6.
mv ifcfg-eth0:20 ifcfg-eth16 komutu ile geçici olarak 20 ye aldığımızı 16 ya koyuyoruz.
7.
nano ifcfg-eth0:16 veya herhangi text editorla dosyayı açıp için aşağıdaki gibi düzenliyoruz. bloklanmiş IP’yi ana IP’den alıp Device ile yeni yerini ayarlıyoruz. örneğin 16’ya
DEVICE=eth0:16
IPADDR=78.159.99.162
NETMASK=255.255.255.0
BOOTPROTO=none
TYPE=Ethernet
ONPARENT=yes
8.
/etc/init.d/network restart ile network servislerini yeniden başlatıyoruz.
9. Aşağıdaki dizinde eğer daha önce ayarlanmış IP ler için dosyalar oluşturulmuşsa örneğin ifcfg-eth0, ifcfg-eth0:1, ifcfg-eth0:2 … gibi bu dosyalarında almak istediğiniz IP yi eth0 yazar, eth0 dakini aldığınız örneğin eth0:12 ye edit ederseniz yukarıdaki işlmeleri yapmadan da hızlıca yapabilirsiniz.
/et/sysconfig/network-scripts/
Not : bu işlemleri yaptıktan sonra bir kaç kez kontrol ediniz. herhangi bir sorun olması halinde ek ip lerden sunucuya ulaşabilirsiniz.
Komutu İle Veri Tabanı Import Yapabilirsiniz.
localhost yerine dilerseniz IP, Domainadı da kullabilirsiniz.
$ mysql -u Db_Kullanıcı_Adı -p -h localhost Veri_Tabanı_Adı < VeriTabani.sql
MySQL veritabanı kullanıyorsanız ve çok fazla MYSQL Veritabanınız varsa zaman zaman RAM ve CPU’da yüklennme görürüz.
Sistem kaynaklarını en çok MYSQL servislerini harcadığını gördüğümüzde yapmaanız gereken işlem MYSQL kim daha çok meşgul ediyorsa onu bulmak olacaktır.
Bu İşlem İçin
mysql -uadmin -sifreniz
şeklinde mysql’e giriş yapıyoruz.
sonra aşağıdaki komutu kullanmamız yeterlidir.
show processlist;
Cpanel’de
Sorry, that domain is already setup (remove it from httpd.conf);
hatası alırsanız yapmanız gereken en hızlı çözüm ‘http.conf’ dosyasını bulmak (usr/local/apache/conf) ve içinde oluşturmaya çalıştığımız alan adını aramak olmalıdır. Bulduğumuzda ilgili yerleri (muhtemelen 2 yer) silmek olacaktır.
Böylelikle bu hatadan kurtularak alan adını oluşturabilirsiniz.
Bu hatayı vermesinin sebebi genelde aha önceden oluşturulmaya çalışırken yarım kalmasından kaynaklı olmaktadır.
Dilerseniz
/scripts/rebuildhttpdconf
komutu ile de yeniden derleme yapabilirsiniz.
cPanel tercih eden Sunucu sahibi müşterilerimiz için SSH tan servisleri resetleme komutları aşağıda yer almaktadır.
Apache yeniden başlatma : /scripts/restartsrv httpd
cPanel yeniden başlatma : /etc/rc.d/init.d/cpanel restart
MySQL Servisini yeniden başlatma : /scripts/restartsrv mysql
DNS(BIND) Resetleme : /scripts/restartsrv named
Exim(mail) Resetleme : /scripts/restartsrv exim
FTP Resetleme : service xinetd restart
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)
CPanel Kontrol Panele giriş yapınız.
1. Security menüsü altındaki SSL/TLS Manager sekmesine tıklayınız.
2. Private Keys (KEY) , Certificate Signing Requests (CSR), Certificates (CRT)
oluşan 3 başlık göreceksiniz.
buradan
1. sırada olan Private Keys (KEY) hemen altında yer alan Generate, view, upload, or delete your private keys. tıklayın
En allta Generate a New Key yer alan Host bölümüne gelerek Host : www.alanadınız.com yazıp Generate Basınız.
Not : SSL bölgesi “www.alanadınız.com” şeklinde olması için www yazmayı unutmayınız. sonra tekrar önceki sayfaya dönünüz.
3. Bu sefer 2. Seçenek ile Certificate Signing Requests (CSR) altında yer alan
Generate, view, or delete SSL certificate signing requests. tıklayın.
Açılan sayfada Generate a New Certificate Signing Request Host : www.alanadınız.com
altında yer alan ülke, bölge, şehir, Firma vb alanları doldurunuz ve Generate basınız.
Oluşan CSR Yi satın almak istediğiniz SSL sertifika merkezine doğrulatın ve satın alma işlemini tamamlayınız.
Not : Doğrulama İşlemi Yapmadan SSL satın almayınız. Hatalı bir Sertifika kodu üretilerek alınmiş Sertifika iadesi yoktur.
4. Oluşan CSR ile satın aldığınız CRT metnini Certificates (CRT) altındaki yazıya
Generate, view, upload, or delete SSL certificates. tıklayınız.
Gelen sayfada Paste the CRT below: altında yer alan kutuya CRT kodunuzu yapiştırıp Generate tuşuna basınız.
5. SSL/TLS Manager de en altta yer alan SSL Installer bölümüne giriniz.
www.alanadınız.com seçiniz ve en allta CA sekmesinede SSL’i Satın aldığınız yerden gelen CA kodunu yapiştırınız ve Install Certificate tuşuna basınız.
tüm işlemler tamamlanmıştır. artık sertifikanızı https://www.alanadınız.com şeklinde bakarak kontrol edebilirsiniz.
Yedeği gürü yüklemek için öncelikle
yedek dosyanız sunucunuzun /home dizini altına kopyalanmalıdır.
kullanıcıadı.tar.gz şeklindeki halini
/scripts/restorepkg kullanıcıadı
komutu ile tüm herşeyi restore edecektir.
nadirde olsa MYSQL de kullanıcı adı var yedek yüklenemez gibi mesaj alırsanız.
/scripts/restorepkg –force –override –skipres kullanıcıadı
yaparak çıkacak hataları göz ardı eder ve üzerine yazarak devam edecektir.
bu komut sonrası eksik kalan bir şeylerin olup olmadığını siteye bakarak kontrol edilmelidir.
Linux Sunucu üzerinde txt dosyalarında arama yaparak bulunan kelimenin değiştirilmesini aşağıdaki konut ile sağlaya bilirsiniz.
find . -name “*.txt” | xargs sed -i .old -e “s/bulunacakkelime/yerineyazilacakkelime/g”
Örnek : Tüm DB uzantılı dosyalarının içinde 81.81.81.81 ip adresine sahip olduğu düşünülerek, bunlar bulunup yerine 34.34.34.34 ip adresi yazacaktır.
Bu komut genelde sunucular arası host taşıma sırasın da DNS kayıtların tümü gelmediğinde veya doğru şekilde taşınmamış olduğunda sistem üzerinden manuel taşınarak ip değişikliği yapılarak çözüm şekillerinden biridir. Önceki sunucudaki /var/named/ dizini altındaki dosyalar yeni sunucuya atılır ve ardından bu işlem yapılır. DNS Sunucu yeniden başlatılır.
find . -name “*.db” | xargs sed -i *.db -e “s/81.81.81.81/34.34.34.34/g”
Bazen hangi dizinlerin ne kadar disk üzerinde yer kapladığını öğrenmek isteriz.
Aşağıdaki komut dizin içindeki tüm klasörlerin boyutlarını gösterecektir.
du -sh *
du -sh * > dosyaadi.txt şeklinde yaparsaniz sonuclari dosyaya kaydedecektir.
WGET dosya indirmek icin kullanilir. HTTP, HTTPS, FTP protokollerini destekler
Kullanım şekli : wget URL
örnek : wget http://www.cansizhayal.com/dizin/ornekdosyaz.zip
Bir sitenin tümünü indirmek için : wget -m site_adresi€ komutunu kullanabilirsiniz.
Plesk Panelde
Statistics Bölümünde yer alan Log Files sekmesinden ulaşabilirsiniz.
Home > Client Accounts > Kayıtlı Hesap Adınız > Domains > AlanAdınız.com > Log files
SSH bağlantısı ile ulaşmak için ise
/var/www/vhosts/domainadi.com/statistics/logs
girmeniz yeterli olacaktır.
MYSQL veritabanınızı yüklerken versiyon farklılıklarından dolayı karakter seti hataları alabilirsiniz.
Bu problemi çözmek için .sql dosyanızı bir text programı ile açıp aşağıdaki değişiklikleri yapın.
Veritabanınızda
“MyISAM DEFAULT CHARSET=latin5” “MyISAM DEFAULT CHARSET=utf8” gibi satırlar görebilirsiniz.
Bu satırlarda “MyISAM DEFAULT CHARSET=latin5” yazan alanı “MyISAM” olarak değiştiriniz.
Daha sonra sorunsuz bir şekilde veritabanınızı yükleyebilirsiniz.
Not: Bu işlemi yapmadan önce yedek almanızı öneriyoruz.