Eroare in maillog:
autoresponder: stderr: fork_execv: execv("/usr/sbin/sendmail") failed: No such file or directory
Solutie:
ln -s /etc/alternatives/mta /usr/sbin/sendmail
Eroare in maillog:
autoresponder: stderr: fork_execv: execv("/usr/sbin/sendmail") failed: No such file or directory
Solutie:
ln -s /etc/alternatives/mta /usr/sbin/sendmail
Dupa actualizarea grub2 pe un server CentOS, incarcarea sistemului se blocheaza imedat dupa POST fara sa afiseze vreun mesaj de eroare. Concluzia a fost ca o data cu actualizarea grub2 a fost deteriorat fie sectorul de boot (MBR), fie fisierul de configurarea /boot/grub2/grub.conf.
yum install php-devel
yum install libssh2-devel
Descarcare pachet libssh2 de la http://libssh2.org:
cd /opt wget https://libssh2.org/download/libssh2-1.8.0.tar.gz tar vxzf libssh2-1.4.2.tar.gz cd libssh2-1.4.2 ./configure make make install
Descarcare pachet php-ssh2 de la http://pecl.php.net/package/ssh2:
cd /opt wget http://pecl.php.net/get/ssh2-0.13.tgz tar vxzf ssh2-0.11.3 cd ssh2-0.11.3 phpize ./configure --with-ssh2 make make install
La finalul instalarii fisierul ssh2.so va fi copiat la locatia /usr/lib64/php/modules.
Modifica fisierul php.ini adaugand linia urmatoare in sectiunea extensions:
extension=ssh2.so
Verificare utiliand functia phpinfo().
La final trebuie restartat serviciul httpd.
Aceasta este o problema (un bug nerezolvat) in Atmail si poate fi rezolvata doar de un utilizator cu drepturi de root pentru ca implica modificarea unui fisier sursa.
/var/www/atmail/search.php
Cauza problemei este o interogare SQL in care in fata anului este adaugat un prefix din doua cifre:
FROM "test search" BEFORE "31-Dec-202011" SINCE "25-Sep-202010"
Pentru corectare trebuie facute urmatoarele moificari:
//linia 364 $before = "$BeforeDay-$BeforeMonth-$BeforeYear"; //linia 369 $after = "$AfterDay-$AfterMonth-$AfterYear";
Dupa clonarea unui HDD dintr-un server web care ruleaza CentOS 6, la pornire apare eroarea:
Unable To Resolve UUID = 39344b35-14dc-49e2-b6d7-e1d6fd33e484
Cauza, a fost faptul ca la efectuarea clonei a fost modificat identificatorul HDD-ului destinatie.
Solutia era ca acest identificator sa fie corectat in fisierul /etc/fstab de pe HDD-ul sursa (cel de pe care booteaza sistemul de operare). Pasii urmati au fost urmatorii:
[root@web etc]# mount –o remount, rw / [root@web etc]# chmod a+rw fstab
Abia apoi vom putea edita fisierul /etc/fstab pentru a face modificarile necesare:
[root@web etc]# vi /etc/fstab
Adaugare utilizator in unul sau mai multe grupuri:
useradd -G group-name1[,group_name2][,group_name3] username
Adaugare grup:
groupadd group_name
Modificare parola utilizator:
passwd username
Verificare grupuri utilizator:
id username
Adaugare utilizator existent intr-un grup existent:
usermod -a -G group_name username
Modificare grup primar pentru un utilizator:
usermod -g group_name username
Activare acces pentru root via ssh
In fisierul /etc/ssh/sshd_config se seteaza:
PermitRootLogin yes
Partitiile si dimensiunile acestora sunt stabilite in functie de recomandarile Plesk si recomandarile CentOS, pe un harddisk cu capacitatea de 500GB. Sistemul CentOS 7 a fost instalat cu profilul Minimal install.
/swap = 4GB
/boot = 500MB
/ (root) = 15-20GB
/tmp = 3-5GB (min 3GB)
/var = restul
Hostname: web.example.com
IP fix: 192.168.2.7
Dezactivare SELINUX:
In fisierul /etc/selinux/config se efectueaza modificarea:
SELINUX=disabled
Oprire si dezactivare serviciu firewalld:
[root@web tmp]# systemctl stop firewalld [root@web tmp]# systemctl mask firewalld
Instalare serviciu iptables:
[root@web tmp]# yum install iptables-services
Activare serviciu iptables:
[root@web tmp]# systemctl enable iptables
Generare/salvare fisier configuratie iptables:
[root@web tmp]# service iptables save
Acest fisier se poate edita pentru a deschide anumite porturi,
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8447 -j ACCEPT
dupa care serviciul iptables trebuie restartat:
[root@web tmp]# service iptables restart
Instalare diverse utilitare:
[root@web tmp]# yum install wget mc gcc php-devel
Dupa ce toate setarile au fost efectuate este recomandat sa fie restartat si server-ul inainte de pornirea instalarii Plesk. Asadar:
[root@web tmp]# reboot
[root@web tmp]# wget http://autoinstall.plesk.com/plesk-installer [root@web tmp]# sh ./plesk-installer
Daca, in schimb, se doreste instalarea din interfata web se va rula comanda:
[root@web tmp]# ./plesk-installer --web-interface
apoi se va deschide in browser adresa https://ip-address:8447.
Daca instalarea se opreste cu eroarea ca psa-mod_fcgid intra in conflict cu mod_fcgid, atunci trebuie dezinstalat mod_fcgid (conform http://kb.sp.parallels.com/en/116134), dupa care se reporneste manual instalarea:
[root@web tmp]# yum remove mod_fcgid [root@web tmp]# sh ./plesk-installer
Documentatia Plesk:
http://download1.parallels.com/Plesk/PP12/12.0/Doc/en-US/online/plesk-installation-upgrade-migration-guide/index.htm?fileName=65780.htm
Libraria SAPRFC este o extensie pentru php4 si php5 si permite comunicarea cu sistemele SAP R/3. Este distribuita sub licenta PHP si nu este creata de SAP AG. Pentru instalare este necesara si libraria RFCSDK, care poate fi obtinuta din Sap Service Marketplace, asa cum este descris mai jos. Pentru descarcarea din Sap Service Marketplace este necesar un ID de client SAP.
In continuare sunt detaliati pasii pentru instalarea librariei SAPRFC pe un server CentOS 7. Server-ul CentOS 7 a fost instalat cu profilul Basic Web Server si include PHP Support.
Sap Service Marketplace > Products > Software Downloads > Support Packages and Patches > Browse Download Catalog > Additional Components
Se descarca utilitarul SAPCAR pentru platforma corespunzatoare. Pentru ca SAPCAR e mai usor de utilizat in Windows, am descarcat versiunea pentru Windows si toate dezarhivarile le-am efectuat sub Windows apoi am transferat fisierele pe server-ul Linux.
SAPCAR este un utilitar pentru arhivare/dezarhivare construit de SAP. Cateva detalii despre utilizarea lui pot fi gasite aici: http://www.easymarketplace.de/SAPCAR.php. Pentru dezarhivarea unui fisier de tip .sar cu utilitarul SAPCAR, indiferent de platforma, se foloseste comanda:
SAPCAR_[version].exe -xvf [SAR filename].sar
Sap Service Marketplace > Products > Software Downloads > Support Packages and Patches > Browse Download Catalog > Additional Components
De aici se descarca pachetul SAP RFC SDK Non-UNICODE pentru platforma corespunzatoare (in cazul meu am descarcat versiunea 7.20 pentru Linux on x86_64 64bit). Dupa dezarhivare, folderul rfcsdk se copiaza pe serverul Linux la locatia /usr/src/rfcsdk.
Sap Service Marketplace > Products > Software Downloads > Support Packages and Patches > Browse Download Catalog > Additional Components > SAP Kernel > SAP Kernel 64bit > SAP Kernel 7.20 64bit > Linux on x86_64 64bit > #Database independent
De aici se descarca fisierul librfc_715-10007252.sar. Se dezarhiveaza cu utilitarul SAPCAR, apoi se copiaza fisierul librfccm.so pe serverul Linux la locatia /usr/src/rfcsdk/lib. Daca exista deja acolo un fisier cu acelasi nume trebuie suprascris.
Nota 413708 – detalii despre libraria RFC curenta.
Nota 955397 – detalii despre utilizarea RFC SDK sub Linux
Nota 27517 – detalii despre instalarea RFC SDK (sub Windows)
wget http://pkgs.repoforge.org/re2c/re2c-0.13.5-1.el6.rf.x86_64.rpm rpm -Uvh re2c-0.13.5-1.el6.rf.x86_64.rpm
Detalii: http://pkgs.repoforge.org/re2c/
yum install php-devel yum group install Development Tools
[root@localhost tmp]# cd /tmp [root@localhost tmp]# wget http://nchc.dl.sourceforge.net/project/saprfc/saprfc/1.4.1/saprfc-1.4.1.tar.gz [root@localhost tmp]# tar -zxf saprfc-1.4.1.tar.gz [root@localhost tmp]# cp -R saprfc-1.4.1 /usr/src [root@localhost tmp]# cd /usr/src/saprfc-1.4.1 [root@localhost saprfc-1.4.1]# export SAPRFC_DIR=/usr/src/rfcsdk/ [root@localhost saprfc-1.4.1]# export PATH=$SAPRFC_DIR/bin:$PATH [root@localhost saprfc-1.4.1]# phpize [root@localhost saprfc-1.4.1]# ./configure [root@localhost saprfc-1.4.1]# make (se ignora erorile zend deprecated) [root@localhost saprfc-1.4.1]# make install
Daca comanda make se finalizeaza cu eroare:
compilation terminated. make: *** [saprfc.lo] Error 1
atunci se editeaza fisierul saprfc.c, la linia 47, si se modifica function_entry in zend_function_entry (detalii aici).
Daca eroarea se refera la lipsa fisierului rfcsi.h, atunci acest fisier trebuie copiat in /usr/src/rfcsdk/include. Fisierul se poate obtine dintr-o librarie rfcsdk mai veche (versiunea 6.40), care poate fi descarcata dupa instructiunile de la pasul 2.
La final, pentru adaugarea extensiei saprfc in php, se editeaza fisierul /etc/php.ini si se adauga linia:
extension=saprfc.so
dupa care se restarteaza serviciul httpd.
Pentru a testa daca instalarea a avut succes, se copiaza fisierul /usr/src/saprfc-1.4.1/saprfc_test.php in locatia /var/www/html (sau /var/www/vhosts/default – in cazul unui server administrat cu Plesk). Se acceseaza adresa http://sever-ip/saprfc_test.php, si daca se incarca formularul de autentificare inseamna ca libraria a fost instalata cu succes.
Toate fisierele utilizate pentru instalarea SAPRFC pot fi descarcate si de aici:
SAPCAR (windows)
SAPCAR (linux)
SAP RFC SDK Non-UNICODE
LIBRFC (librfc_715-10007252.sar)
Detalii: http://saprfc.sourceforge.net/
Oprire si mascare serviciu firewalld:
systemctl stop firewalld systemctl mask firewalld
Instalare pachet iptables-services:
yum install iptables-services
Activare serviciu iptables la pornirea sistemului:
systemctl enable iptables
Managementul serviciului:
systemctl [stop|start|restart] iptables
Salvarea regulilor de firewall:
service iptables save
Pentru instalarea OpenDKIM se foloseste comanda:
yum install opendkim
Trebuie generata cate o cheie privata si una publica pentru fiecare domeniu pentru care se doreste semnarea email-urilor. Cheia privata se stocheaza pe server si nu este accesibila public, iar cheia publica va fi publicata in inregistrarile DNS asa incat serverele care primesc email-urile sa le poata verifica semnaturile.
La prima rulare, opendkim va genera un set implicit de chei care vor fi stocate in /etc/opendkim/keys/ folosind numele de domeniu al serverului si selectorul “default”. Pentru generarea manuala a cheilor se poate folosi acelasi selector, “default”.
Crearea cheilor se realizeaza cu comenzile urmatoare (se va inlocui example.com cu numele real al domeniului):
mkdir /etc/opendkim/keys/example.com /usr/sbin/opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s default chown -R opendkim:opendkim /etc/opendkim/keys/example.com mv /etc/opendkim/keys/example.com/default.private /etc/opendkim/keys/example.com/default
Optiuni utilizate:
-D: directory
-d: domain
-s: selector
Trebuie create/modificate urmatoarele 4 fisiere de configurare:
1. /etc/opendkim.conf – fisierul principal de configurare
2. /etc/opendkim/KeyTable – lista cheilor disponibile pentru semnarea mesajelor
3. /etc/opendkim/SigningTable – lista domeniilor si conturilor pentru care se permite semnarea
4. /etc/opendkim/TrustedHosts – lista serverelor “de incredere” (trusted) la semnarea sau verificarea mesajelor
Editarea /etc/opendkim.conf si stabilirea valorilor ca mai jos:
## CONFIGURATION OPTIONS # Specifies the path to the process ID file. PidFile /var/run/opendkim/opendkim.pid # Selects operating modes. Valid modes are s (signer) and v (verifier). Default is v. Mode sv # Log activity to the system log. Syslog yes # Log additional entries indicating successful signing or verification of messages. SyslogSuccess yes # If logging is enabled, include detailed logging about why or why not a message was # signed or verified. This causes a large increase in the amount of log data generated # for each message, so it should be limited to debugging use only. #LogWhy yes # Attempt to become the specified user before starting operations. UserID opendkim:opendkim # Create a socket through which your MTA can communicate. Socket inet:8891@127.0.0.1 # Required to use local socket with MTAs that access the socket as a non- # privileged user (e.g. Postfix) Umask 002 # This specifies a file in which to store DKIM transaction statistics. #Statistics /var/spool/opendkim/stats.dat ## SIGNING OPTIONS # Selects the canonicalization method(s) to be used when signing messages. Canonicalization relaxed/simple # Domain(s) whose mail should be signed by this filter. Mail from other domains will # be verified rather than being signed. Uncomment and use your domain name. # This parameter is not required if a SigningTable is in use. Domain example.com # Defines the name of the selector to be used when signing messages. Selector default # Gives the location of a private key to be used for signing ALL messages. #KeyFile /etc/opendkim/keys/default.private # Gives the location of a file mapping key names to signing keys. In simple terms, # this tells OpenDKIM where to find your keys. If present, overrides any KeyFile # setting in the configuration file. KeyTable refile:/etc/opendkim/KeyTable # Defines a table used to select one or more signatures to apply to a message based # on the address found in the From: header field. In simple terms, this tells # OpenDKIM how to use your keys. SigningTable refile:/etc/opendkim/SigningTable # Identifies a set of "external" hosts that may send mail through the server as one # of the signing domains without credentials as such. ExternalIgnoreList refile:/etc/opendkim/TrustedHosts # Identifies a set internal hosts whose mail should be signed rather than verified. InternalHosts refile:/etc/opendkim/TrustedHosts
Trebuie decomentate optiunile Domain, KeyTable, SigningTable, ExternalIgnoreList si InternalHosts, iar, din moment ce se va folosi KeyTable se poate comenta optiunea KeyFile.
Urmeaza crearea/modificarea celor 3 fisiere pe care le-am decomentat in fisierul de configurare.
Crearea/modificarea fisierului /etc/opendkim/KeyTable cu urmatorul continut:
default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default
Pentru cazul in care se vor folosi mai multe chei (pentru semnarea mesajelor de pe diferite domenii virtuale cu diferite chei) se va adauga cate o linie pentru fiecare domeniu, dupa exemplul:
default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default default._domainkey.example2.com example2.com:default:/etc/opendkim/keys/example2.com/default
Crearea/modificarea fisierului /etc/opendkim/SigningTable, in care trebuie doar decomentata linia:
*@example.com default._domainkey.example.com
Crearea/modificarea fisierului /etc/opendkim/TrustedHosts, dupa modelul:
127.0.0.1 hostname1.example.com hostname2.example.com example.com
Pentru Postfix, doar trebuie adaugate urmatoarele linii in fisierul main.cf:
smtpd_milters = inet:127.0.0.1:8891 non_smtpd_milters = $smtpd_milters milter_default_action = accept
Daca se foloseste o versiune a Postfix mai veche de 2.6 mai trebuie adaugata si linia:
milter_protocol = 2
Pentru detalii suplimentare: http://www.postfix.org/MILTER_README.html#version
Nu se restarteaza acum serviciul Postfix, pentru ca mai intai trebuie pornit serviciul opendkim, altfel vor fi generate erori.
Pentru Sendmail trebuie adaugata urmatoarea linie in fisierul /etc/mail/sendmail.mc:
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@127.0.0.1')
Se genereaza fisierul sendmail.cf folosind comanda:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Pornirea OpenDKIM:
service opendkim start
Repornirea Postfix:
postfix reload
Sau, dupa caz, repornirea Sendmail:
service sendmail restart
Pentru pornirea serviciului opendkim la pornirea serverului se executa comanda chkconfig:
chkconfig opendkim on
Informatia care trebuie publicata in DNS este continuta in fisierul /etc/opendkim/keys/example.com/default.txt si poate fi vizualizata cu comanda:
cat /etc/opendkim/keys/example.com/default.txt
Informatia arata cam asa:
default._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHY7Zl+n3SUldTYRUEU1BErHkKN0Ya52gazp1R7FA7vN5RddPxW/sO9JVRLiWg6iAE4hxBp42YKfxOwEnxPADbBuiELKZ2ddxo2aDFAb9U/lp47k45u5i2T1AlEBeurUbdKh7Nypq4lLMXC2FHhezK33BuYR+3L7jxVj7FATylhwIDAQAB" ; ----- DKIM default for example.com
Aceasta informatie trebuie adaugata la finalul fisierului cu zonele DNS pentru domeniul respectiv.
Configurata poate fi testata folosind instrumentul http://www.brandonchecketts.com/emailtest.php
sau prin trimiterea unui email cu semnatura DKIM catre una (sau mai multe) din urmatoarele adrese de email:
autorespond+dkim@dk.elandsys.com
sa-test@sendmail.net
check-auth@verifier.port25.com
http://www.dkim.org/
http://www.opendkim.org/
http://blog.mixu.net/2009/11/03/setting-up-spf-senderid-and-dkim-on-centos-5-3-using-sendmail/
http://www.mylinuxtips.info/linuxtipstutorials/setup-dkim-keys-with-sendmail/
http://server-support.co/blog/sysadmin/centos-configure-dkim-sendmail-multiple-domains/
http://www.elandsys.com/resources/sendmail/dkim.html
Pe un server CentOS proaspat instalat, la trimiterea email-urilor, am observat in maillog urmatoarea eroare:
Sep 12 03:38:32 server sendmail[27862]: s9B9BnMZ003758: to=user@destination.com, ctladdr=user@mydomain.com (501/502), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30099, relay=[127.0.0.1] [127.0.0.1], dsn=4.0.0, <span style="color: #ff0000;" data-mce-style="color: #ff0000;">stat=Deferred: Connection refused by [127.0.0.1]</span>
Pentru ca sendmail rula numai pe level 4, s-a rezolvat asa:
sudo chkconfig --levels 235 sendmail on sudo service sendmail restart
Pentru instalarea si configurarea NTP pe un server CentOS se executa secventa urmatoare de comenzi:
Pentru instalarea NTP:
yum install ntp
Pentru pornirea serviciului la bootarea sistemului:
chkconfig ntpd on
Pentru sincronizarea timpului cu server-ul 0.ro.pool.ntp.org:
ntpdate 0.ro.pool.ntp.org
Pornirea serviciului NTP:
/etc/init.d/ntpd start