Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[apache] /usr/sbin/ports 100% cpu (résolu)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
ibasaw
Tux's lil' helper
Tux's lil' helper


Joined: 27 Aug 2006
Posts: 130
Location: France

PostPosted: Mon Jan 27, 2014 11:10 am    Post subject: [apache] /usr/sbin/ports 100% cpu (résolu) Reply with quote

Salut,

J'ai un load cpu exccesif sur ce process /usr/sbin/ports


C'est lié à apache, que j'ai arrêter, tuer tout ces processus et j'ai restart, mais après ça j'ai encore 100% cpu sur un proc.

Je ne trouve pas de docs à ce sujet sur le net, j'ai regardé tout mes logs, rien de suspect.



Je ne sais plus ou chercher pour que ce proc arrête de bouffer à 100% un cpu de mon serveur.

Merci pour votre aide
++


Last edited by ibasaw on Tue Jan 28, 2014 4:19 pm; edited 2 times in total
Back to top
View user's profile Send private message
ibasaw
Tux's lil' helper
Tux's lil' helper


Joined: 27 Aug 2006
Posts: 130
Location: France

PostPosted: Mon Jan 27, 2014 1:14 pm    Post subject: Reply with quote

je ne sais pas pourquoi, j'ai fais un gdb httpd PID et le process à disparu, donc mon serveur n'est plus chargé

Je ne comprend pas, quelqu'un peu m'expliquer ?

Code:

gdb httpd 18239
GNU gdb (Gentoo 7.5.1 p2) 7.5.1
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.gentoo.org/>...
httpd: No such file or directory.
Attaching to process 18239
/var/tmp/portage/dev-lang/perl-5.12.4-r1/image/usr/bin/perl5.12.4 (deleted): No such file or directory.
A program is being debugged already.  Kill it? (y or n) y
/root/18239: No such file or directory.
(gdb)
exit
Back to top
View user's profile Send private message
ibasaw
Tux's lil' helper
Tux's lil' helper


Joined: 27 Aug 2006
Posts: 130
Location: France

PostPosted: Mon Jan 27, 2014 5:22 pm    Post subject: Reply with quote

c'est revenu, je ne comprend pas ...

y'a un soucis avec apache
Back to top
View user's profile Send private message
ibasaw
Tux's lil' helper
Tux's lil' helper


Joined: 27 Aug 2006
Posts: 130
Location: France

PostPosted: Mon Jan 27, 2014 5:35 pm    Post subject: Reply with quote

voici mon fichier de conf

Code:
# Server-Pool Management (MPM specific)

# PidFile: The file in which the server should record its process
# identification number when it starts.
#
# DO NOT CHANGE UNLESS YOU KNOW WHAT YOU ARE DOING
PidFile /var/run/apache2.pid

# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#LockFile /var/run/apache2.lock

# Only one of the below sections will be relevant on your
# installed httpd.  Use "/usr/sbin/apache2 -l" to find out the
# active mpm.

# common MPM configuration
# These configuration directives apply to all MPMs
#
# StartServers: Number of child server processes created at startup
# MaxClients: Maximum number of child processes to serve requests
# MaxRequestsPerChild: Limit on the number of requests that an individual child
#                      server will handle during its life


# prefork MPM
# This is the default MPM if USE=-threads
#
# MinSpareServers: Minimum number of idle child server processes
# MaxSpareServers: Maximum number of idle child server processes
<IfModule mpm_prefork_module>
   StartServers      5
   MinSpareServers      5
   MaxSpareServers      10
   MaxClients         150
   MaxRequestsPerChild   10000
</IfModule>

# worker MPM
# This is the default MPM if USE=threads
#
# MinSpareThreads: Minimum number of idle threads available to handle request spikes
# MaxSpareThreads: Maximum number of idle threads
# ThreadsPerChild: Number of threads created by each child process
<IfModule mpm_worker_module>
   StartServers      2
   MinSpareThreads      25
   MaxSpareThreads      75
   ThreadsPerChild      25
   MaxClients         150
   MaxRequestsPerChild   10000
</IfModule>

# event MPM
#
# MinSpareThreads: Minimum number of idle threads available to handle request spikes
# MaxSpareThreads: Maximum number of idle threads
# ThreadsPerChild: Number of threads created by each child process
<IfModule mpm_event_module>
   StartServers      2
   MinSpareThreads      25
   MaxSpareThreads      75
   ThreadsPerChild      25
   MaxClients         150
   MaxRequestsPerChild   10000
</IfModule>

# peruser MPM
#
# MinSpareProcessors: Minimum number of idle child server processes
# MinProcessors: Minimum number of processors per virtual host
# MaxProcessors: Maximum number of processors per virtual host
# ExpireTimeout: Maximum idle time before a child is killed, 0 to disable
# Multiplexer: Specify a Multiplexer child configuration.
# Processor: Specify a user and group for a specific child process
<IfModule mpm_peruser_module>
   MinSpareProcessors   2
   MinProcessors      2
   MaxProcessors      10
   MaxClients         150
   MaxRequestsPerChild   1000
   ExpireTimeout      1800

   Multiplexer nobody nobody
   Processor apache apache
</IfModule>

# itk MPM
#
# MinSpareServers: Minimum number of idle child server processes
# MaxSpareServers: Maximum number of idle child server processes
<IfModule mpm_itk_module>
   StartServers      5
   MinSpareServers      5
   MaxSpareServers      10
   MaxClients         150
   MaxRequestsPerChild   10000
</IfModule>

# vim: ts=4 filetype=apache
Back to top
View user's profile Send private message
guilc
Bodhisattva
Bodhisattva


Joined: 15 Nov 2003
Posts: 3326
Location: Paris - France

PostPosted: Mon Jan 27, 2014 8:16 pm    Post subject: Reply with quote

Si tu fais un « strace » du process qui fait du 100% cpu, ça sort quoi ?

Ps: peux-tu mettre ton titre du topic en conformité avec les conventions de notre forum s'il te plaît ? Merci :)

_________________
Merci de respecter les règles du forum.

Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing
Back to top
View user's profile Send private message
ibasaw
Tux's lil' helper
Tux's lil' helper


Joined: 27 Aug 2006
Posts: 130
Location: France

PostPosted: Tue Jan 28, 2014 8:21 am    Post subject: Reply with quote

il y en a plusieurs que je ne comprend pas trop

Code:
socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
poll([{fd=4, events=POLLOUT}], 1, 0)    = 1 ([{fd=4, revents=POLLOUT}])
sendto(4, "\374\264\1\0\0\1\0\0\0\0\0\0\6search\5yippy\3com\7ki"..., 46, MSG_NOSIGNAL, NULL, 0) = 46
poll([{fd=4, events=POLLIN}], 1, 5000)  = 1 ([{fd=4, revents=POLLIN}])
ioctl(4, FIONREAD, [98])                = 0
recvfrom(4, "\374\264\201\203\0\1\0\0\0\1\0\0\6search\5yippy\3com\7ki"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, [16]) = 98
close(4)                                = 0
open("/etc/hosts", O_RDONLY|O_CLOEXEC)  = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=1271, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4213e0b000
read(4, "# /etc/hosts: Local Host Databas"..., 4096) = 1271
read(4, "", 4096)                       = 0
close(4)                                = 0
munmap(0x7f4213e0b000, 4096)            = 0
socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, 16) = 0
poll([{fd=4, events=POLLOUT}], 1, 0)    = 1 ([{fd=4, revents=POLLOUT}])
sendto(4, "\253\231\1\0\0\1\0\0\0\0\0\0\6search\5yippy\3com\0\0\1"..., 34, MSG_NOSIGNAL, NULL, 0) = 34
poll([{fd=4, events=POLLIN}], 1, 5000)  = 1 ([{fd=4, revents=POLLIN}])
ioctl(4, FIONREAD, [102])               = 0
recvfrom(4, "\253\231\201\203\0\1\0\0\0\1\0\0\6search\5yippy\3com\0\0\1"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.0.1")}, [16]) = 102
close(4) 


Code:
recvmsg(512, {msg_name(16)={sa_family=AF_INET, sin_port=htons(49099), sin_addr=inet_addr("127.0.0.1")}, msg_iov(1)=[{"\305\266\1\0\0\1\0\0\0\0\0\0\6search\5yippy\3com\7ki"..., 4096}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 46
sendmsg(512, {msg_name(16)={sa_family=AF_INET, sin_port=htons(49099), sin_addr=inet_addr("127.0.0.1")}, msg_iov(1)=[{"\305\266\201\203\0\1\0\0\0\1\0\0\6search\5yippy\3com\7ki"..., 98}], msg_controllen=0, msg_flags=0}, 0) = 98
recvmsg(512, {msg_name(16)={sa_family=AF_INET, sin_port=htons(33798), sin_addr=inet_addr("127.0.0.1")}, msg_iov(1)=[{"K\213\1\0\0\1\0\0\0\0\0\0\6search\5yippy\3com\7ki"..., 4096}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 46
sendmsg(512, {msg_name(16)={sa_family=AF_INET, sin_port=htons(33798), sin_addr=inet_addr("127.0.0.1")}, msg_iov(1)=[{"K\213\201\203\0\1\0\0\0\1\0\0\6search\5yippy\3com\7ki"..., 98}], msg_controllen=0, msg_flags=0}, 0) = 98
recvmsg(512, {msg_name(16)={sa_family=AF_INET, sin_port=htons(54318), sin_addr=inet_addr("127.0.0.1")}, msg_iov(1)=[{"'\247\1\0\0\1\0\0\0\0\0\0\6search\5yippy\3com\0\0\1"..., 4096}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 34
epoll_wait(5, {}, 64, 0)                = 0
sendmsg(512, {msg_name(16)={sa_family=AF_INET, sin_port=htons(54318), sin_addr=inet_addr("127.0.0.1")}, msg_iov(1)=[{"'\247\201\203\0\1\0\0\0\1\0\0\6search\5yippy\3com\0\0\1"..., 102}], msg_controllen=0, msg_flags=0}, 0) = 102
recvmsg(512, {msg_name(16)={sa_family=AF_INET, sin_port=htons(49208), sin_addr=inet_addr("127.0.0.1")}, msg_iov(1)=[{"pg\1\0\0\1\0\0\0\0\0\0\6search\5yippy\3com\0\0\1"..., 4096}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 34
sendmsg(512, {msg_name(16)={sa_family=AF_INET, sin_port=htons(49208), sin_addr=inet_addr("127.0.0.1")}, msg_iov(1)=[{"pg\201\203\0\1\0\0\0\1\0\0\6search\5yippy\3com\0\0\1"..., 102}], msg_controllen=0, msg_flags=0}, 0) = 102


c'est du chinois pour moi tout ca...
Back to top
View user's profile Send private message
ibasaw
Tux's lil' helper
Tux's lil' helper


Joined: 27 Aug 2006
Posts: 130
Location: France

PostPosted: Tue Jan 28, 2014 10:58 am    Post subject: Reply with quote

j'ai trouvé ca dans mon /log/messages

Code:
Jan 27 16:34:35 ns264652 named[3543]: error (network unreachable) resolving 'ns-1767.awsdns-28.co.uk/AAAA/IN': 2001:630:181:35::83#53
Jan 27 16:34:35 ns264652 named[3543]: error (network unreachable) resolving 'ns1.otenet.gr/AAAA/IN': 2001:678:7::4:10#53
Jan 27 16:34:35 ns264652 named[3543]: error (network unreachable) resolving 'ns-1767.awsdns-28.co.uk/AAAA/IN': 2a01:40:1001:35::2#53


Je pense que ça n'a rien à voir, mais il y en a des tonnes comme ça
Back to top
View user's profile Send private message
El_Goretto
Moderator
Moderator


Joined: 29 May 2004
Posts: 3169
Location: Paris

PostPosted: Tue Jan 28, 2014 12:59 pm    Post subject: Reply with quote

Ton serveur DNS est accessible au public en temps normal? Est-ce que tu peux voir d'où viennent ces requêtes (un coup de tcpdump?)?
Un processus qui s'arrête quand on lui accroche un debugger... mmmm... ça sent pas bon, mais on va dire que je suis parano ^^
_________________
-TrueNAS & jails: µ-serv Gen8 E3-1260L, 16Go ECC + µ-serv N40L, 10Go ECC
-Réseau: APU2C4 (OpenWRT) + GS726Tv3 + 2x GS108Tv2 + Archer C5v1 (OpenWRT)
Back to top
View user's profile Send private message
ibasaw
Tux's lil' helper
Tux's lil' helper


Joined: 27 Aug 2006
Posts: 130
Location: France

PostPosted: Tue Jan 28, 2014 1:03 pm    Post subject: Reply with quote

je viens de toruver ca: ca sent pas bon

c99 injektor sur 2 sites heberge sur mon dedié

J'ai effacé les scripts, relancer apache.

Mais comment me protéger contre ce genre d'attaques ?

Comment ils ont réussi à écrire dans un répertoire sur mon DD, un site utilise wordpress et l'autre un joomla ?

Vos avis, conseils ?
Back to top
View user's profile Send private message
ibasaw
Tux's lil' helper
Tux's lil' helper


Joined: 27 Aug 2006
Posts: 130
Location: France

PostPosted: Tue Jan 28, 2014 4:21 pm    Post subject: Reply with quote

intrusion avec un fichier .gif qui contenait du code php qui contenait un eval + base64_decode
...
Back to top
View user's profile Send private message
Leander256
l33t
l33t


Joined: 05 Jul 2003
Posts: 910
Location: Singapour

PostPosted: Tue Jan 28, 2014 4:39 pm    Post subject: Reply with quote

ibasaw wrote:
je viens de toruver ca: ca sent pas bon

c99 injektor sur 2 sites heberge sur mon dedié

J'ai effacé les scripts, relancer apache.


Je vais faire court à ce sujet: ta machine a été compromise. Tu DOIS formater le(s) disque(s) dur(s) et réinstaller. C'est la seule manière d'être certain que ton système est sain. Mais surtout ne remet pas en ligne les services que tu proposes actuellement, jusqu'à ce que tu aies identifié la(les) faiblesse(s) de ton système, sinon tu vas te refaire trouer illico.

ibasaw wrote:
Mais comment me protéger contre ce genre d'attaques ?

Comment ils ont réussi à écrire dans un répertoire sur mon DD, un site utilise wordpress et l'autre un joomla ?

Vos avis, conseils ?


La sécurité ce n'est malheureusement pas une section "trucs et astuces" au fin fond d'un manuel d'utilisation, c'est une composante essentielle (mais trop négligée) de tout système, et encore plus si ce système est connecté sur un réseau. Vu que tu as l'air étonné de t'être fait trouer par un serveur PHP (le point d'entrée le plus probable), mon premier conseil brut de décoffrage c'est: arrête d'héberger des sites sur ton dédié. Prends le temps de lire de la documentation sur la sécurité, les failles de sécurité, les moyens de limiter les dégâts... Je n'ai pas connaissance d'une "bible" de la sécurité donc si quelqu'un passe par ici qu'il n'hésite pas à compléter ma réponse. Et je n'ai pas envie d'écrire un roman sur ce forum!
Back to top
View user's profile Send private message
DuF
Advocate
Advocate


Joined: 09 Dec 2002
Posts: 2687
Location: Paris

PostPosted: Thu Jan 30, 2014 10:39 am    Post subject: Reply with quote

Comme Leander256 je dirai qu'avant d'ouvrir des services il faut que la sécurité soit mise en place "AVANT", jamais après.

Sur ton dédié, je ne sais pas quelles possibilités tu as mais ce qui est sûr, c'est que la seule démarche à avoir est de repartir de zéro avec des disques nouveaux et tout remonter depuis le début sans rien récupérer du dédié actuel.

Avant d'ouvrir tes services joomla et wordpress à minima il te faut que des services du type :
- rkhunter
- fail2ban (ssh, wootwoot, etc.)
- integrit

Une page que j'aime bien (même si c'est pour debian) : http://www.vogelweith.com/debian_server/01_security.php
et celle-ci aussi : http://www.alsacreations.com/tuto/lire/622-Securite-firewall-iptables.html

Bon forcément en voulant me connecter à mon serveur un peu vite j'ai réussi à me bannir mon IP :) Heureusement il reste la console....

Mais sur 24h rien que pour les tentatives de connexion SSH fail2ban me retournent :
Code:
root@debduf:~# fail2ban-client status ssh
Status for the jail: ssh
|- filter
|  |- File list:   /var/log/auth.log
|  |- Currently failed:   0
|  `- Total failed:   1144
`- action
   |- Currently banned:   13
   |  `- IP list:   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   `- Total banned:   278

et pour apache wootwoot :
Code:
Status for the jail: apache-w00tw00t
|- filter
|  |- File list:   /var/log/apache2/error.log
|  |- Currently failed:   0
|  `- Total failed:   88
`- action
   |- Currently banned:   3
   |  `- IP list:   XXXXXXXXXXXXXXX
   `- Total banned:   88


Et ça c'est juste pour se prémunir des trucs les plus basiques qui tentent en mode robot. Donc tout ça juste pour indiquer qu'il faut être conscient de la sécurité et qu'il ne faut surtout pas la négliger.

Avec rkhunter par exemple, il faut être conscient qu'une fois configuré il faut suivre les changements sinon ça ne sert à rien et toutes les mises à jours systèmes seront marqués comme modifications là où il n'y a aucun risque. Un exemple de ce qu'indique rkhunter :
Code:
Warning: The O/S name or version has changed since the last run:
         Old O/S value: Debian 7.1    New value: Debian 7.2
         Because of the change(s) the file properties checks may give some false-positive results.
         You may need to re-run rkhunter with the '--propupd' option.
Warning: WARNING! It is the users responsibility to ensure that when the '--propupd' option
         is used, all the files on their system are known to be genuine, and installed from a
         reliable source. The rkhunter '--check' option will compare the current file properties
         against previously stored values, and report if any values differ. However, rkhunter
         cannot determine what has caused the change, that is for the user to do.
Warning: The file properties have changed:
         File: /sbin/init
         Current hash: 64d54a652c64c261742017d86599971de6e4effd
         Stored hash : 8fb700b047b7d9921ccdc55da5390f5106d6917b
         Current inode: 9782    Stored inode: 1116
         Current file modification time: 1374117056 (18-juil.-2013 05:10:56)
         Stored file modification time : 1360285189 (08-févr.-2013 01:59:49)
Warning: The file properties have changed:
         File: /sbin/runlevel
         Current hash: bda9ae712c01ac5e4e70c615b767dab918f7444d
         Stored hash : 1377af7a0a57782163e65277e06949db2c471f89
         Current inode: 9787    Stored inode: 1110
         Current file modification time: 1374117056 (18-juil.-2013 05:10:56)
         Stored file modification time : 1360285189 (08-févr.-2013 01:59:49)
Warning: The file properties have changed:
         File: /sbin/sulogin
         Current hash: 31abf98f5cb9eaef52666fdf24d9bc9fe00c0c7f
         Stored hash : 88c9eedf7f8c96e6f1cbc6bb90f81a7c1d169370
         Current inode: 1127    Stored inode: 2017
         Current file modification time: 1374117056 (18-juil.-2013 05:10:56)
         Stored file modification time : 1360285189 (08-févr.-2013 01:59:49)
Warning: The file properties have changed:
         File: /usr/bin/curl
         Current hash: 9d8b0b97bc944825fa6b8328a4a566814847ba59
         Stored hash : 1f0e6a9df7caee3e2e94e0c4a29e5270d40b03b4
         Current inode: 1145    Stored inode: 4500
         Current file modification time: 1376624646 (16-août-2013 05:44:06)
         Stored file modification time : 1365866914 (13-avril-2013 17:28:34)


Du coup vu qu'il s'agit d'une mise à jour de l'OS il faut penser à remettre les bases de référence à jour.

Tout ça pour dire que la sécurité, même une fois mise en place il est difficile de tout automatiser et il faut assurer un suivi régulier. Ce n'est pas facile, contraignant, après j'en connais qui ne se prennent pas la tête :
- installation from scratch
- réplication pour obtenir une sauvegarde à froid
- si problème, ils repartent de la sauvegarde initiale et se retape toute la customisation qu'il y a eu entre temps
ça évite le suivi régulier mais ça contraint à de grosses opérations lors des restaurations.

Pour en revenir à ton cas particulier, si tu as juste jommla et wordpress, je ne vois pas pourquoi un serveur DNS tourne.

Après avoir mis la sécurité "AVANT" de démarrer tes services, il faut enlever tous les services inutiles sur ton serveur (dns, mail, cups, etc.).

Après seulement tu démarres ce qui t'es utile.
Back to top
View user's profile Send private message
GentooUser@Clubic
l33t
l33t


Joined: 01 Nov 2004
Posts: 829

PostPosted: Thu Jan 30, 2014 3:49 pm    Post subject: Reply with quote

Et bien sur avant d'utiliser des outils palliatifs genre rkhunter, penser à bien sécuriser son application PHP, la plupart des failles de PHP (ou des application genre wordpress) sont simplement inopérantes si php ou apache n'a que des droits limités.

- Bien identifier les dossiers où apache et php ont besoin d'écrire.
- Mettre ces dossiers sur une partition montée noexec,nodev.
- Si php doit écrire dans un dossier accessible dans le DocumentsRoot (typiquement le cache js et css) désactiver l’interprétation des fichiers php dans ce répertoire au niveau du serveur web.
- Exécuter PHP et le serveur Web avec des users différents (quitte à utiliser php-fpm plutot que mod_php)
- Ne pas compter que sur les .htaccess, utilisez aussi les droits unix pour définir les droits d'accès à l’intérieur du DocumentsRoot, Apache n'a PAS besoin de pouvoir lire les fichiers .php.

Et plein d'autres choses, n'hésite pas à demander conseil.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum