{"id":557,"date":"2011-03-02T18:44:21","date_gmt":"2011-03-02T21:44:21","guid":{"rendered":"http:\/\/www.eriberto.pro.br\/blog\/?p=557"},"modified":"2011-10-10T17:58:13","modified_gmt":"2011-10-10T20:58:13","slug":"squid-caindo-por-causa-de-virus-na-rede","status":"publish","type":"post","link":"https:\/\/eriberto.pro.br\/blog\/2011\/03\/02\/squid-caindo-por-causa-de-virus-na-rede\/","title":{"rendered":"Squid lento (ou caindo) por causa de v\u00edrus na rede"},"content":{"rendered":"<p>Esta semana notei que a Internet, em determinados momentos, estava muito lenta somente durante a navega\u00e7\u00e3o em p\u00e1ginas. Imediatamente dei um <em># tail -f \/var\/log\/squid\/access.log<\/em> para ver como estava o fluxo. Notei que havia problemas, pois n\u00e3o era raro as coisas ficarem bem lentas. Algo considerado normal era de 5 a 30 linhas de log por segundo. De repente, o fluxo passava para 1 linha a cada 3 ou 5 segundos. Era evidente que algo estava errado.<\/p>\n<h2>A ca\u00e7ada ao problema<\/h2>\n<p>A pr\u00f3xima provid\u00eancia foi observar o log <em>\/var\/log\/squid\/cache.log<\/em>. Esse log \u00e9 muito \u00fatil em casos de panes. Assim sendo, encontrei entradas como essas:<\/p>\n<pre>2011\/03\/01 11:33:08| WARNING! Your cache is running out of filedescriptors\r\n2011\/03\/01 11:33:24| WARNING! Your cache is running out of filedescriptors\r\n2011\/03\/01 11:33:40| WARNING! Your cache is running out of filedescriptors\r\n...\r\n2011\/03\/01 11:37:49| comm_open: socket failure: (24) Too many open files\r\n2011\/03\/01 11:37:49| comm_open: socket failure: (24) Too many open files\r\n2011\/03\/01 11:37:49| comm_open: socket failure: (24) Too many open files\r\n2011\/03\/01 11:37:49| comm_open: socket failure: (24) Too many open files\r\n2011\/03\/01 11:37:49| comm_open: socket failure: (24) Too many open files\r\n<\/pre>\n<p>A primeira atitude foi parar o Squid para extinguir conex\u00f5es e liberar a mem\u00f3ria. Ao parar o Squid, o log <em>cache.log<\/em> mostrou v\u00e1rias linhas similares \u00e0s seguintes:<\/p>\n<pre>2011\/03\/01 11:39:56| WARNING: Closing client 172.20.11.8 connection due to lifetime timeout\r\n2011\/03\/01 11:39:56|\u00a0\u00a0\u00a0 http:\/\/212.95.32.228\/\r\n2011\/03\/01 11:39:56| WARNING: Closing client 172.20.11.8 connection due to lifetime timeout\r\n2011\/03\/01 11:39:56|\u00a0\u00a0\u00a0 http:\/\/pornorus.info\/\r\n2011\/03\/01 11:39:56| WARNING: Closing client 172.20.11.8 connection due to lifetime timeout\r\n2011\/03\/01 11:39:56|\u00a0\u00a0\u00a0 http:\/\/212.95.32.228\/\r\n2011\/03\/01 11:39:56| WARNING: Closing client 172.20.11.8 connection due to lifetime timeout\r\n2011\/03\/01 11:39:56|\u00a0\u00a0\u00a0 http:\/\/212.95.32.228\/\r\n2011\/03\/01 11:39:56| WARNING: Closing client 172.20.11.8 connection due to lifetime timeout\r\n2011\/03\/01 11:39:56|\u00a0\u00a0\u00a0 http:\/\/pornorus.info\/<\/pre>\n<p>Depois de ver tais ocorr\u00eancias nos logs, coloquei novamente o Squid no ar e iniciei uma sess\u00e3o tcpdump analisando os pacotes oriundos da m\u00e1quina 172.20.11.8 (<em># tcpdump -n src host 172.20.11.8 -i any<\/em>). O resultado, assustador, foi o seguinte (apenas parte dele):<\/p>\n<pre>13:14:43.987252 IP 172.20.11.8.57275 &gt; 69.172.201.37.80: Flags [R.], seq 181, ack 222, win 0, length 0\r\n13:14:44.409406 IP 172.20.11.8.57267 &gt; 66.147.233.129.80: Flags [S], seq 1898618422, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.409410 IP 172.20.11.8.57258 &gt; 199.59.164.43.80: Flags [S], seq 55279041, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.409421 IP 172.20.11.8.57259 &gt; 216.67.236.203.80: Flags [S], seq 932004311, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.409452 IP 172.20.11.8.57261 &gt; 206.188.192.114.80: Flags [S], seq 2750519905, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.409462 IP 172.20.11.8.57264 &gt; 66.147.233.129.80: Flags [S], seq 1119544921, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.409473 IP 172.20.11.8.57266 &gt; 206.188.192.114.80: Flags [S], seq 590383906, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.409475 IP 172.20.11.8.57262 &gt; 97.74.233.172.80: Flags [S], seq 2639837201, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.409485 IP 172.20.11.8.57263 &gt; 199.59.164.43.80: Flags [S], seq 2739288678, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.409495 IP 172.20.11.8.57268 &gt; 212.95.32.228.80: Flags [S], seq 2977967308, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.440659 IP 172.20.11.8.57270 &gt; 97.74.233.172.80: Flags [S], seq 3954006774, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.440659 IP 172.20.11.8.57269 &gt; 212.95.32.228.80: Flags [S], seq 2623039428, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.471860 IP 172.20.11.8.57271 &gt; 216.67.236.203.80: Flags [S], seq 3118322633, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.483034 IP 172.20.11.8.57254 &gt; 69.172.201.37.80: Flags [R.], seq 158, ack 222, win 0, length 0\r\n13:14:44.487431 IP 172.20.11.8.57273 &gt; 184.154.10.250.80: Flags [S], seq 3904042156, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.518571 IP 172.20.11.8.57274 &gt; 66.147.233.129.80: Flags [S], seq 1708211931, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.525773 IP 172.20.11.8.57285 &gt; 216.67.236.203.80: Flags [R.], seq 132, ack 285, win 0, length 0\r\n13:14:44.525840 IP 172.20.11.8.57293 &gt; 212.95.32.228.80: Flags [R.], seq 185, ack 263, win 0, length 0\r\n13:14:44.534239 IP 172.20.11.8.57750 &gt; 206.188.192.114.80: Flags [FP.], seq 0:193, ack 1, win 64240, length 193\r\n13:14:44.598544 IP 172.20.11.8.57755 &gt; 66.147.233.129.80: Flags [S], seq 2940124690, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.598893 IP 172.20.11.8.57755 &gt; 66.147.233.129.80: Flags [.], ack 1072162614, win 64240, length 0\r\n13:14:44.599643 IP 172.20.11.8.57755 &gt; 66.147.233.129.80: Flags [P.], seq 0:209, ack 1, win 64240, length 209\r\n13:14:44.599676 IP 172.20.11.8.57755 &gt; 66.147.233.129.80: Flags [F.], seq 209, ack 1, win 64240, length 0\r\n13:14:44.643413 IP 172.20.11.8.57729 &gt; 212.95.32.228.80: Flags [S], seq 1694411187, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.643434 IP 172.20.11.8.57731 &gt; 69.172.201.37.80: Flags [S], seq 3071298608, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.643451 IP 172.20.11.8.57728 &gt; 216.67.236.203.80: Flags [S], seq 3961495832, win 8192, options [mss 1460,nop,nop,sackOK], length 0\r\n13:14:44.643712 IP 172.20.11.8.57729 &gt; 212.95.32.228.80: Flags [.], ack 1069583567, win 64240, length 0\r\n13:14:44.643860 IP 172.20.11.8.57731 &gt; 69.172.201.37.80: Flags [.], ack 1068018127, win 64240, length 0\r\n13:14:44.643875 IP 172.20.11.8.57728 &gt; 216.67.236.203.80: Flags [.], ack 1060616693, win 64240, length 0\r\n...<\/pre>\n<p>Bem, foram cerca de 250 transa\u00e7\u00f5es por segundo. Estava evidente que era v\u00edrus. E a quantidade de conex\u00f5es em massa estava exaurindo os recursos do Squid. Ent\u00e3o, liguei para o usu\u00e1rio e solicitei que retirasse o cabo de rede (eu poderia ter utilizado uma regra de iptables ao inv\u00e9s disso). Reiniciei o Squid para que o mesmo rompesse as conex\u00f5es estabelecidas. No mesmo instante a rede voltou ao normal.<\/p>\n<h2>A desinfec\u00e7\u00e3o da m\u00e1quina<\/h2>\n<p>O pr\u00f3ximo passo foi ir ao usu\u00e1rio. Eu queria ver qual era o worm que estava destruindo a minha rede. A m\u00e1quina estava com um Windows Vista. Instalei o <a href=\"http:\/\/www.zonealarm.com\/security\/en-us\/zonealarm-pc-security-free-firewall.htm\">Zone Alarm Free<\/a> para ver quais programas iam tentar acessar a Internet quando eu reiniciasse o computador. Um dos primeiros foi um tal <em><strong>svajnager.exe<\/strong><\/em>, localizado em<em><strong> <\/strong><\/em> <em><strong>c:\\windows\\system32\\drivers<\/strong><\/em>. Um lugar suspeit\u00edssimo, uma vez que l\u00e1 s\u00f3 h\u00e1 arquivos <em><strong>.sys<\/strong><\/em>. Imediatamente, realizei um boot com um pendrive contendo um Debian, montei a parti\u00e7\u00e3o e apaguei o arquivo. Reiniciei o Windows. A m\u00e1quina ficou mais r\u00e1pida e a rede normal.<\/p>\n<h2>A preven\u00e7\u00e3o contra problemas futuros<\/h2>\n<p>Bem, para evitar problemas futuros, criei um shell script que varre o log <em>cache.log<\/em> a cada 10 minutos (via cron), procurando por anomalias. Caso encontre alguma coisa, esse shell me avisa, via Jabber, sobre o ocorrido. Para entender como configurar isso e para ver o script, acesse <a title=\"Mensagens Jabber via linha de comando (ideal para servidores de rede)\" href=\"http:\/\/www.eriberto.pro.br\/blog\/?p=561\">este post<\/a>.<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Se voc\u00ea procurar na Internet pelas mensagens de erro mostradas, ver\u00e1 que a maioria dos posts manda aumentar a quantidade poss\u00edvel de arquivos abertos ou outras solu\u00e7\u00f5es num\u00e9ricas. O problema \u00e9 que isso \u00e9 uma solu\u00e7\u00e3o paliativa. Na verdade, temos que descobrir a causa do problema, ao inv\u00e9s de darmos um jeito de convivermos com ele. Ent\u00e3o, neste post, vimos como descobrir tal causa.<\/p>\n<p>Fim!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esta semana notei que a Internet, em determinados momentos, estava muito lenta somente durante a navega\u00e7\u00e3o em p\u00e1ginas. Imediatamente dei um # tail -f \/var\/log\/squid\/access.log para ver como estava o fluxo. Notei que havia problemas, pois n\u00e3o era raro as coisas ficarem bem lentas. Algo considerado normal era de 5 a 30 linhas de log&hellip;&nbsp;<a href=\"https:\/\/eriberto.pro.br\/blog\/2011\/03\/02\/squid-caindo-por-causa-de-virus-na-rede\/\" rel=\"bookmark\">Continue a ler &raquo;<span class=\"screen-reader-text\">Squid lento (ou caindo) por causa de v\u00edrus na rede<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[16,24,3,5,11],"tags":[194,624,238,56,625,242,240,239,621,217,622,60,623,131,216,237,236,190,241,234,235],"class_list":["post-557","post","type-post","status-publish","format-standard","hentry","category-debian","category-internet","category-linux","category-seguranca","category-sistema-operacional","tag-cache","tag-debian","tag-filedescriptors","tag-firewall","tag-internet","tag-lenta","tag-lentidao","tag-lento","tag-linux","tag-proxy","tag-rede","tag-redes","tag-seguranca","tag-squeeze","tag-squid","tag-svajnag","tag-svajnager","tag-tcpdump","tag-trafego","tag-virus-2","tag-worm"],"_links":{"self":[{"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/posts\/557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/comments?post=557"}],"version-history":[{"count":0,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/posts\/557\/revisions"}],"wp:attachment":[{"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/media?parent=557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/categories?post=557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eriberto.pro.br\/blog\/wp-json\/wp\/v2\/tags?post=557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}