Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Administración del sistema » Seguridad


Nuevo tema Responder al tema
 [ 25 mensajes ]  Ir a página 1, 2  Siguiente
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Oct 19, 2011 3:03 pm
Mensajes: 16

Nota Publicado: Mié Oct 19, 2011 3:19 pm 
Arriba  
Hola:

Espero estar posteando en la zona correcta.

Soy administrador de un foro SMF (v 1.1.15)con no muchos conocimientos de linux, es largo de explicar cómo llegué aquí. Tenemos instalado Apache y MySQL. El caso es que desde hace semanas tenemos a un usuario que se entretiene tumbándonos el servidor cuando le apetece y estamos intentando saber qué hace para dejarlo frito.

Hace un par de horas ha vuelto a atacar, en principio creía que lo que hacía era hacer un flooding de conexiones para dejar tostado el servidor, pero me equivocaba, estas son el número de conexiones con el server tostado:

root:/etc# netstat -punta | wc -l
397
root


Haciendo un top veo que no tiene la CPU alta, ni está tirando de swap, ni procesos zombie...nada raro vamos. He visto que tenía 147 procesos de apache, no sé si es normal:

root:/var/log# ps -ef | grep apache | wc -l
147
root:


También he visto que hay muchos procesos abiertos de www-data, 131.

He lanzado un vmstat y ha salido esto:

root:/var/log# vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 80 0 521080 0 0 0 0 3 18 0 3 55 6 0 39
0 76 0 538068 0 0 0 0 10 0 0 2357 12 8 0 80
0 78 0 555760 0 0 0 0 0 0 0 1602 8 4 0 88
0 81 0 573800 0 0 0 0 14 0 0 843 18 12 0 69
8 73 0 583532 0 0 0 0 8 0 0 1719 16 12 0 72
0 81 0 582928 0 0 0 0 67 0 0 328 6 5 0 90
0 79 0 580512 0 0 0 0 2053 0 0 674 10 5 0 84
0 78 0 575196 0 0 0 0 5215 0 0 1257 9 5 0 86
0 75 0 565748 0 0 0 0 4150 0 0 1562 11 8 0 82
0 74 0 568000 0 0 0 0 2985 0 0 1624 12 9 0 79
0 72 0 577404 0 0 0 0 9376 0 0 1641 8 7 0 85
0 70 0 597376 0 0 0 0 2045 0 0 998 8 5 0 87
1 79 0 596256 0 0 0 0 42 0 0 340 24 4 0 72
^C
root:


No sé si esos valores son correctos o no. He mirado en el dmesg, messages, syslog, mysql, mysqlerr, en el log del apache...pero no he visto nada raro.

Siempre que se tumba el servidor sale el ya típico mensaje al que estamos empezando a acostumbrarnos, "Sorry, SMF was unable to connect to the database. This may be caused by the server being busy. Please try again later. "

Alguien sabe cómo investigar el tipo de ataque que hace?, qué comandos mirar?, cómo saber si tira la base de datos o vete a saber?. Al rato el foro vuelve a la normalidad, pero, como os digo, lo tira de nuevo a los 5 minutos con una facilidad pasmosa.

Cualquier ayuda para pillarlo será bien recibida (pago en carne opcional).

Gracias!!

 Perfil Email  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Dom Abr 18, 2010 4:30 pm
Mensajes: 2790
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)

Nota Publicado: Mié Oct 19, 2011 7:41 pm 
Arriba  
Primero : por que estas seguro de que es un ataque ? bien podría ser un problema de hardware o un script mal echo ..

Segundo: de que tipo de ataque estas hablando ? osea que tipo de ataque crees que esta sufriendo el servidor.

Tercero: el servidor es compartido ?

www-data, 131 procesos es una suma irrisoria osea que si esa es la máxima cantidad de conexiones que registran los log no creo que sea por allí el ataque lo mismo de netstat -punta | wc -l yo en este momento tengo 4 en el localhost y no tengo mas que una pagina abierta

_________________
... reinstalar un SO cuando produce un error es como tirar un bebe a la basura cuando se hace caca..

Trusted Network and Developer | Reglamento General de los Foros |WIKI-EL | Twitter @SISIAM
Debian| ArchLinux |Linux User #508809

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Oct 19, 2011 3:03 pm
Mensajes: 16

Nota Publicado: Mié Oct 19, 2011 11:56 pm 
Arriba  
Gracias por contestar mcun. Sabemos que es un ataque porque el personaje, a través del chat del foro, avisa siempre de su "proeza", segundos más tarde el foro cae.

No tenemos ni idea de qué tipo de ataque realiza, creía que era un SYN Flood, pero el netstat lo desmiente. Imagino que en alguna parte del servidor ha de dejar una "huella" de lo que pasa, pero no sé dónde mirarlo. A lo mejor está petando el MySQL con unas SELECT malformadas, o tira el apache de alguna forma, estamos muy perdidos.

El servidor es dedicado.

Saludos

 Perfil Email  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Dom Abr 18, 2010 4:30 pm
Mensajes: 2790
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)

Nota Publicado: Jue Oct 20, 2011 6:54 am 
Arriba  
revisa los accesos al servidor corre un roottkit me parece que el ataque es desde dentro, chequea las aplicaciones que están corriendo

_________________
... reinstalar un SO cuando produce un error es como tirar un bebe a la basura cuando se hace caca..

Trusted Network and Developer | Reglamento General de los Foros |WIKI-EL | Twitter @SISIAM
Debian| ArchLinux |Linux User #508809

 Perfil WWW  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Sab Oct 09, 2004 11:00 pm
Mensajes: 1299

Nota Publicado: Jue Oct 20, 2011 7:03 am 
Arriba  
ami0 escribió:
. A lo mejor está petando el MySQL con unas SELECT malformadas, o tira el apache de alguna forma, estamos muy perdidos.


¿Y por qué debería tener acceso al servidor MySQL? ¿No tienen bloqueado ese puerto?

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Oct 19, 2011 3:03 pm
Mensajes: 16

Nota Publicado: Jue Oct 20, 2011 8:01 am 
Arriba  
mcun, cómo puedo hacer eso?, siento la ignorancia.

neurus, sólo hago suposiciones desde los pocos conocimientos que tengo del tema, pueden ser totalmente desacertadas.

Por lo que he visto, el puerto del MySQL está abierto:

root:~# netstat -punta | grep 330
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 15230/mysqld


Debería estar cerrado el puerto?.

Saludos.

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Sab Oct 09, 2004 11:00 pm
Mensajes: 1299

Nota Publicado: Jue Oct 20, 2011 8:13 am 
Arriba  
Claro que debería estar cerrado. Sería muy extraño que ustedes hicieran peticiones SQL desde consola.
Las peticiones se hacen, casi siempre, a través de php, ejecutándose en el servidor (para MySQL, es una petición desde localhost, por lo que no hace falta tener abierto el puerto al exterior).

Mira los logs que cuelgan de /var/log/mysql/ ; tal vez encuentres algo. Pero en cualquier caso, cierra ese puerto.

 Perfil  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Dom Abr 18, 2010 4:30 pm
Mensajes: 2790
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)

Nota Publicado: Jue Oct 20, 2011 8:17 am 
Arriba  
Citar:
mcun, cómo puedo hacer eso?, siento la ignorancia.

pues buscando información para salir de la ignorancia ::lol::

rootkit

las aplicaciones pues revisa el código los directorios que no haya un directorio oculto o código ofuscado etc...

_________________
... reinstalar un SO cuando produce un error es como tirar un bebe a la basura cuando se hace caca..

Trusted Network and Developer | Reglamento General de los Foros |WIKI-EL | Twitter @SISIAM
Debian| ArchLinux |Linux User #508809

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Oct 19, 2011 3:03 pm
Mensajes: 16

Nota Publicado: Jue Oct 20, 2011 9:25 am 
Arriba  
Hacemos un backup diario de la base de datos desde un PC de un administrador, vamos a ver cómo se pondrían las reglas oportunas para bloquear todas las conexiones hacia ese puerto, excepto la IP de este PC. No hay nada en los ficheros de log de mysql, todos están vacíos..


Lo sé mcun, no soy de los que preguntan y esperan a que les contesten. Tengo los ojos secos de buscar documentación, bugs de seguridad, comandos útiles...

Saludos y gracias por toda la ayuda.

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Sab Oct 09, 2004 11:00 pm
Mensajes: 1299

Nota Publicado: Jue Oct 20, 2011 9:35 am 
Arriba  
Los logs no pueden estar vacíos. Probablemente, estés intentando verlos como usuario, y necesitas permisos de root para ver el contenido de los logs.
Si el SMF está conectado a la base de datos (de poco serviría si no lo estuviese), esos logs tienen que ser bastante largos.

Mira qué tamaño tienen, y te darás cuenta de que no están vacíos.

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Oct 19, 2011 3:03 pm
Mensajes: 16

Nota Publicado: Jue Oct 20, 2011 9:40 am 
Arriba  
Yo entro como root al servidor, esto es lo que saca el ls:

root:/var/log/mysql# ls -ltrah
total 64K
-rw-r----- 1 mysql adm 20 Oct 13 03:20 mysql.log.7.gz
-rw-r----- 1 mysql adm 20 Oct 13 03:20 mysql-slow.log.7.gz
-rw-r----- 1 mysql adm 20 Oct 14 03:20 mysql.log.6.gz
-rw-r----- 1 mysql adm 20 Oct 14 03:20 mysql-slow.log.6.gz
-rw-r----- 1 mysql adm 20 Oct 15 03:23 mysql.log.5.gz
-rw-r----- 1 mysql adm 20 Oct 15 03:23 mysql-slow.log.5.gz
-rw-r----- 1 mysql adm 20 Oct 16 03:20 mysql.log.4.gz
-rw-r----- 1 mysql adm 20 Oct 16 03:20 mysql-slow.log.4.gz
-rw-r----- 1 mysql adm 20 Oct 17 03:20 mysql.log.3.gz
-rw-r----- 1 mysql adm 20 Oct 17 03:20 mysql-slow.log.3.gz
-rw-r----- 1 mysql adm 20 Oct 18 03:20 mysql.log.2.gz
-rw-r----- 1 mysql adm 20 Oct 18 03:20 mysql-slow.log.2.gz
-rw-r----- 1 mysql adm 20 Oct 19 03:20 mysql.log.1.gz
-rw-r----- 1 mysql adm 20 Oct 19 03:20 mysql-slow.log.1.gz
-rw-r----- 1 mysql adm 0 Oct 20 03:20 mysql.log
-rw-r----- 1 mysql adm 0 Oct 20 03:20 mysql-slow.log
drwxr-xr-x 11 root root 4.0K Oct 20 03:20 ..
drwxr-s--- 2 mysql adm 4.0K Oct 20 03:20 .

root:/var/log/mysql# more mysql.log
root:/var/log/mysql#




Acabamos de modificar el IPTABLES para que sólo el servidor que hace los backups de la base de datos tenga acceso al puerto 3306, el resto capado. Comprobado que hace drop.

 Perfil Email  

Desconectado
Forista Legendario
Forista Legendario
Avatar de Usuario

Registrado: Lun Mar 31, 2008 12:00 am
Mensajes: 1550

Nota Publicado: Jue Oct 20, 2011 11:15 am 
Arriba  
Podes pasar la dirección del servidor?

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Oct 19, 2011 3:03 pm
Mensajes: 16

Nota Publicado: Jue Oct 20, 2011 11:38 am 
Arriba  
La IP del server es 80.231.171.40.

Otra cosilla, hemos visto que la versión actual del apache2 tiene vulnerabilidades serias de seguridad (2.2.9). He lanzado un apt-get upgrade apache2, ha actualizado y reemplazado 44 paquetes pero aún así seguimos teniendo la misma versión.

Me he bajado la 2.2.21 y dejado en el server, pero me acojona lanzar el Install directamente por problemas de dependencias que pueden surgir. Se puede lanzar o he de hacer algo antes del upgrade a mano?.

 Perfil Email  

Desconectado
Ganador CSEL 2008
Ganador CSEL 2008
Avatar de Usuario

Registrado: Mar May 11, 2004 11:00 pm
Mensajes: 3961
Ubicación: México.

Nota Publicado: Jue Oct 20, 2011 12:13 pm 
Arriba  
ami0 escribió:
Gracias por contestar mcun. Sabemos que es un ataque porque el personaje, a través del chat del foro, avisa siempre de su "proeza", segundos más tarde el foro cae.

No tenemos ni idea de qué tipo de ataque realiza, creía que era un SYN Flood, pero el netstat lo desmiente. Imagino que en alguna parte del servidor ha de dejar una "huella" de lo que pasa, pero no sé dónde mirarlo. A lo mejor está petando el MySQL con unas SELECT malformadas, o tira el apache de alguna forma, estamos muy perdidos.

El servidor es dedicado.

Saludos


si se conecta el tipo a tu foro, hay forma de averiguar su direccion ip y tratar de bloquear sus accesos al servidor, si s eprotege por un proxy instala un plugin antiproxy a tu foro.

te recomiendo esta lectura para proteger accesos por fuerza bruta a tu servidor www.forat.info/2008/03/28/como-proteger ... rza-bruta/

es importante para ello ubiques la ip o con conjunto de ipos que te estan atacando. compara la ip de quien anuncia en tu foro con la sips de los logs del sistema.

usa el comando tail -f /var/log/apache2/access.log para ver ello en vivo al momento del ataque.


igualmente revisa los accesos erroneos al servidor, si te esta atacando con un DDos puede estar utilizando multiples maquinas zombies, muchas de ellas no s epodran conectar.

usa el comando tail -f /var/log/apache2/error.log para verificar eso.

Recomendacion documentate mas, como admin y responsable de un servidor debes hacerlo.

Saludos

_________________
Twitter @calex78
Linux User #394644
Ubuntu 11.10

 Perfil Email WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Oct 19, 2011 3:03 pm
Mensajes: 16

Nota Publicado: Jue Oct 20, 2011 3:41 pm 
Arriba  
Muchas gracias por las recomendaciones calex78, creemos que el ataque es o bien al MySQL o al Apache, no un ataque de SYN Flood o fuerza bruta, ya que cuando éste se produce el resto de webs que no tiene esos paquetes cargan perfectamente.

Gracias a neurus nos hemos dado cuenta de que teníamos abierto el MySQL a todos, eso ya está solucionado. Ahora falta actualizar el Apache a la última versión e instalar mod_evasive.

Te comento que en el fichero access.log del apache2 aparecen estas líneas constantemente:

66.71.247.134 - - [20/Oct/2011:21:23:14 +0200] "GET /mods/index.php?mod=977 HTTP/1.0" 404 287 "-" "Opera/9.21 (PHP/SMF/Aeva; U; fr)"
66.71.247.135 - - [20/Oct/2011:21:23:14 +0200] "GET /mods/index.php?mod=977 HTTP/1.1" 404 287 "-" "-


Esas 2 IPs son las de simplemachines.org. En el archivo no aparece otro mensaje que no sean esos dos:

root:/var/log/apache2# grep -v 66.71.247.* access.log
root:/var/log/apache2#


A raíz de esto, veo que el foro tiene muchas conexiones abiertas a los servidores de simplemachines:

root:netstat -plan|grep :80 | awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -n
672 66.71.247.134


No sé si serán normales tantas conexiones.

Y, por supuesto, te doy toda la razón, he de documentarme más.

Gracias de nuevo.

Editado -- Jue Oct 20, 2011 10:40 pm --

Buenas

Estaba echando un ojo al fichero /var/log/apache2/error.log cuando veo que sale esto:

[Thu Oct 20 23:09:36 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting
[Thu Oct 20 23:09:52 2011] [error] [client 84.20.17.184] File does not exist: /var/www/vhosts/default/htdocs/prueba.txt


Y luego empiezan a salir muchísimos mensajes cada segundo de este tipo:

[Thu Oct 20 23:10:12 2011] [error] [client 66.71.247.135] File does not exist: /var/www/mods

La 66.71.247.135 es simplemachines.org, no sé porqué salen taaaantos mensajes.

Y por último también he visto este tipo de mensaje:

[Thu Oct 20 22:53:39 2011] [error] [client 85.60.92.94] request failed: error reading the headers

La config del apache2.conf es esta:

<IfModule mpm_prefork_module>
StartServers 15
MinSpareServers 5
MaxSpareServers 20
MaxClients 175
MaxRequestsPerChild 4000
</IfModule>


Y los siguientes campos

Timeout 1
MaxKeepAliveRequests 500
KeepAliveTimeout 2


Decidme si veis algo raro en los parámetros del apache2.conf.

Y encima el mamón anuncia que será implacable y atacará una y otra vez la web :evil:

Editado -- Jue Oct 20, 2011 10:41 pm --

Abro otro post distinto para que no sea uno y muy grande. En el momento del ataque, las conexiones abiertas, ordenadas por ip y número de conexiones son estas:

root:/var/log/apache2# netstat -plan|grep :80 | awk {'print $5'}|cut -d: -f 1
1 0.0.0.0
1 118.98.31.4
1 14.98.51.8
1 151.52.95.131
1 151.56.135.248
1 174.142.104.58
1 186.61.26.98
1 188.27.4.114
1 189.19.62.51
1 190.107.37.223
1 190.134.53.61
1 190.219.244.163
1 2.136.63.211
1 2.225.131.219
1 2.36.170.63
1 200.111.20.158
1 200.124.249.25
1 200.69.112.18
1 201.195.217.218
1 203.89.28.101
1 207.46.194.74
1 208.69.40.100
1 208.93.153.70
1 211.53.208.28
1 212.7.202.36
1 218.28.111.46
1 220.181.108.90
1 46.182.120.192
1 50.19.160.30
1 62.83.227.207
1 64.15.158.134
1 64.191.24.22
1 78.139.162.231
1 79.144.69.233
1 80.58.220.161
1 81.47.142.38
1 81.61.2.250
1 83.60.132.58
1 84.121.209.67
1 84.126.55.254
1 85.25.100.8
1 85.56.8.58
1 85.93.2.63
1 87.219.250.79
1 87.220.125.137
1 87.221.189.239
1 88.191.133.78
1 88.7.242.242
1 88.8.246.184
1 91.198.61.11
1 94.228.13.75
1 95.39.174.189
2 189.152.193.244
2 189.195.25.208
2 190.129.169.65
2 190.21.241.194
2 190.230.218.235
2 190.69.53.6
2 200.47.83.166
2 200.8.47.124
2 206.188.81.39
2 217.127.58.126
2 66.50.239.141
2 83.42.222.139
2 87.221.65.204
2 90.170.65.225
2 94.34.163.182
3 186.46.80.190
3 187.195.82.178
3 188.85.56.89
3 189.162.212.216
3 190.18.52.82
3 190.233.226.224
3 83.44.199.104
3 87.219.60.38
3 95.17.97.31
4 187.176.116.237
4 190.136.160.48
4 190.254.241.131
4 67.195.113.223
4 74.177.189.74
4 79.148.91.45
4 85.152.177.68
4 87.218.55.128
5 148.213.234.232
5 189.217.41.97
5 190.222.18.249
5 213.37.9.229
6 186.178.107.247
6 186.81.190.41
6 189.139.11.176
6 190.17.192.170
6 79.144.56.147
6 83.49.143.76
6 84.152.159.191
6 85.84.194.178
6 95.20.2.133
7 190.127.38.109
7 87.221.240.149
8 190.135.24.163
8 190.71.230.12
8 201.200.122.234
8 213.37.180.173
8 79.146.71.105
9 190.240.223.9
10 186.13.159.250
10 190.97.77.21
10 95.22.174.104
14 186.58.80.72
15 187.135.121.109
16 187.159.153.71
18 83.53.30.229
19 95.19.77.168
20 95.22.204.119
24 81.44.164.230
25 188.76.144.231
27 186.69.249.72
39 62.36.44.251
84 66.71.247.134
442 66.71.247.135
root:/var/log/apache2#


ese número de conexiones se puede considerar como ddos?.

 Perfil Email  
Mostrar mensajes previos:  Ordenar por  
 [ 25 mensajes ]  Ir a página 1, 2  Siguiente
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO