[{"content":"Introdução: No âmbito da computação em nuvem, otimizar os custos é fundamental para empresas que utilizam o Microsoft Azure. O Azure oferece dois mecanismos principais de economia de custos: Azure Reservations e Savings Plans. Ambas as opções possuem vantagens, desvantagens e cenários de uso distintos. Neste guia abrangente, exploraremos esses recursos, penalidades e casos de uso ideais para capacitar você a tomar decisões informadas adaptadas às necessidades do seu negócio.\nCompreendendo as Reservas do Azure (Azure Reservations): As Reservas do Azure oferecem às empresas a oportunidade de se comprometerem com planos de um ou três anos para diversos produtos dentro do ecossistema do Azure. O compromisso envolve uma promessa de uso, permitindo descontos significativos de até 72% nos preços de pagamento conforme o uso.\nVantagens: Economia de Custos: Com as Reservas do Azure, as empresas podem obter reduções substanciais nos custos de recursos, proporcionando um modelo de despesas previsível. Desconto na Fatura: O desconto na fatura é aplicado automaticamente aos recursos correspondentes após a compra, garantindo benefícios imediatos de custo. Aplicação Automática: Uma vez adquirido, o desconto se integra automaticamente aos recursos correspondentes, simplificando o gerenciamento. Desvantagens: Flexibilidade Limitada: As Reservas do Azure são otimizadas para cargas de trabalho estáveis e previsíveis. Padrões de uso dinâmicos ou em evolução podem não aproveitar totalmente os benefícios. Especificidade de Recursos: As reservas estão vinculadas a famílias específicas de instâncias de computação e regiões, limitando a adaptabilidade. Penalidades: Use-it-or-Lose-it: A não utilização dos recursos reservados resulta em perda, podendo levar a ineficiências. Limitações de Cancelamento: O Azure impõe restrições a cancelamentos e trocas, exigindo planejamento cuidadoso. (Política de Troca de Reservas do Azure) Casos de Uso Ideais: As Reservas do Azure destacam-se em cenários caracterizados por cargas de trabalho consistentes e ininterruptas, com variação mínima nos requisitos de recursos ou distribuição geográfica.\nDesvendando os Planos de Economia do Azure (Savings Plans): Os Planos de Economia do Azure oferecem uma abordagem mais flexível para economia de custos, atendendo a cargas de trabalho dinâmicas e em evolução. As empresas se comprometem com um gasto fixo por hora por um ou três anos, desbloqueando economias de até 65% nos custos de uso de computação elegíveis.\nVantagens: Economia Flexível: Os Planos de Economia estendem benefícios a uma ampla gama de recursos de computação, proporcionando versatilidade na otimização de custos. Aplicação Global: Os Planos de Economia se aplicam globalmente, acomodando cargas de trabalho diversas em diferentes regiões e famílias de instâncias. Desvantagens: Escopo Limitado: Os Planos de Economia estão restritos aos custos de computação, excluindo outras despesas como armazenamento, rede e licenciamento. Compromisso Não Cancelável: Ao contrário das reservas, as compras de Planos de Economia são finais, sem flexibilidade para cancelamento ou troca. (Cancelamento de Planos de Economia do Azure) Penalidades: Compromisso Irrevogável: Uma vez adquiridos, os Planos de Economia não podem ser cancelados, exigindo uma avaliação cuidadosa antes da aquisição. Casos de Uso Ideais: Os Planos de Economia do Azure são feitos sob medida para organizações com cargas de trabalho dinâmicas, aproveitando famílias de instâncias variadas, serviços de computação ou abrangendo várias regiões de datacenter.\nConclusão: A escolha entre Reservas do Azure e Planos de Economia do Azure depende de uma compreensão detalhada das características da sua carga de trabalho e padrões de uso antecipados. As Reservas do Azure são adequadas para cenários de cargas de trabalho estáveis e previsíveis, enquanto os Planos de Economia do Azure oferecem flexibilidade para ambientes dinâmicos. Ao avaliar cuidadosamente as vantagens, desvantagens e penalidades associadas a cada opção, as empresas podem maximizar a eficiência de custos e otimizar seus gastos no Azure de forma eficaz.\n","permalink":"http://ricardomartins.com.br/desvendando-azure-reservations-e-savings-plans/","summary":"\u003ch2 id=\"introdução\"\u003eIntrodução:\u003c/h2\u003e\n\u003cp\u003eNo âmbito da computação em nuvem, otimizar os custos é fundamental para empresas que utilizam o Microsoft Azure. O Azure oferece dois mecanismos principais de economia de custos: \u003ca href=\"https://learn.microsoft.com/pt-br/azure/cost-management-billing/reservations/save-compute-costs-reservations\"\u003eAzure Reservations\u003c/a\u003e e \u003ca href=\"https://learn.microsoft.com/pt-br/azure/cost-management-billing/savings-plan/savings-plan-compute-overview\"\u003eSavings Plans\u003c/a\u003e. Ambas as opções possuem vantagens, desvantagens e cenários de uso distintos. Neste guia abrangente, exploraremos esses recursos, penalidades e casos de uso ideais para capacitar você a tomar decisões informadas adaptadas às necessidades do seu negócio.\u003c/p\u003e\n\u003cimg src=\"/assets/images/cloud-costs.jpeg\" style=\"width: 50%; height: 50%; margin-left: auto; margin-right: auto;\"\u003e\n\u003ch2 id=\"compreendendo-as-reservas-do-azure-azure-reservations\"\u003eCompreendendo as Reservas do Azure (Azure Reservations):\u003c/h2\u003e\n\u003cp\u003eAs Reservas do Azure oferecem às empresas a oportunidade de se comprometerem com planos de um ou três anos para diversos produtos dentro do ecossistema do Azure. O compromisso envolve uma promessa de uso, permitindo descontos significativos de até 72% nos preços de pagamento conforme o uso.\u003c/p\u003e","title":"Desvendando Azure Reservations e o Azure Savings Plans"},{"content":"Se você estiver desenvolvendo seus aplicativos nativos em nuvem, recomendo fortemente que você consulte este guia mesmo que não esteja usando Azure especificamente.\nEstilos de arquitetura N-tier: divide um aplicativo em camadas lógicas e camadas físicas Web-queue-worker: frontend e backend dissociados por mensagens assíncronas Microserviços: serviços funcionalmente decompostos que chamam uns aos outros por meio de APIs Arquitetura orientada a eventos: produtor/consumidor. Visão independente por subsistema Big data: divida um enorme conjunto de dados em pequenos pedaços. Processamento paralelo em datasets locais Big compute: alocação de dados para milhares de núcleos Escolhas tecnológicas Escolha do serviço de computação Escolha do serviço de armazenamento de dados Escolha do serviço de mensagens assíncronas Design da arquitetura Arquiteturas de referência: Cada arquitetura de referência inclui práticas recomendadas, juntamente com considerações sobre escalabilidade, disponibilidade, segurança, resiliência e outros aspectos do design Princípios de design: 10 princípios de design de alto nível que tornarão seu aplicativo mais escalonável, resiliente e gerenciável Padrões de design: Esses padrões de design são úteis para construir aplicativos confiáveis, escaláveis e seguros na nuvem Práticas recomendadas: abrangem diversas considerações de design, incluindo design de API, escalonamento automático, particionamento de dados, armazenamento em cache e assim por diante. Melhores práticas de segurança: descreva como garantir que a confidencialidade, integridade e disponibilidade da sua aplicação não sejam comprometidas por agentes mal-intencionados. Pilares de qualidade Microsoft Azure Well-Architected Framework Mais detalhes Conceitos básicos de arquitetura de aplicações ","permalink":"http://ricardomartins.com.br/guia-para-arquitetura-de-aplicacoes/","summary":"\u003cp\u003eSe você estiver desenvolvendo seus aplicativos nativos em nuvem, recomendo fortemente que você consulte este guia mesmo que não esteja usando Azure especificamente.\u003c/p\u003e\n\u003ch2 id=\"estilos-de-arquitetura\"\u003eEstilos de arquitetura\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/guide/architecture-styles/n-tier\"\u003eN-tier: divide um aplicativo em camadas lógicas e camadas físicas\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/guide/architecture-styles/web-queue-worker\"\u003eWeb-queue-worker: frontend e backend dissociados por mensagens assíncronas\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/guide/architecture-styles/microservices\"\u003eMicroserviços: serviços funcionalmente decompostos que chamam uns aos outros por meio de APIs\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/guide/architecture-styles/event-driven\"\u003eArquitetura orientada a eventos: produtor/consumidor. Visão independente por subsistema\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/guide/architecture-styles/big-data\"\u003eBig data: divida um enorme conjunto de dados em pequenos pedaços. Processamento paralelo em datasets locais\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/guide/architecture-styles/big-compute\"\u003eBig compute: alocação de dados para milhares de núcleos\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"escolhas-tecnológicas\"\u003eEscolhas tecnológicas\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/guide/technology-choices/compute-decision-tree\"\u003eEscolha do serviço de computação\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/guide/technology-choices/data-store-overview\"\u003eEscolha do serviço de armazenamento de dados\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/guide/technology-choices/messaging\"\u003eEscolha do serviço de mensagens assíncronas\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"design-da-arquitetura\"\u003eDesign da arquitetura\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/browse/\"\u003eArquiteturas de referência: Cada arquitetura de referência inclui práticas recomendadas, juntamente com considerações sobre escalabilidade, disponibilidade, segurança, resiliência e outros aspectos do design\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/guide/design-principles/\"\u003ePrincípios de design: 10 princípios de design de alto nível que tornarão seu aplicativo mais escalonável, resiliente e gerenciável\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/patterns/\"\u003ePadrões de design: Esses padrões de design são úteis para construir aplicativos confiáveis, escaláveis e seguros na nuvem\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/best-practices/api-design\"\u003ePráticas recomendadas: abrangem diversas considerações de design, incluindo design de API, escalonamento automático, particionamento de dados, armazenamento em cache e assim por diante.\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/security/zero-trust/deploy/applications\"\u003eMelhores práticas de segurança: descreva como garantir que a confidencialidade, integridade e disponibilidade da sua aplicação não sejam comprometidas por agentes mal-intencionados.\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"pilares-de-qualidade\"\u003ePilares de qualidade\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/well-architected/\"\u003eMicrosoft Azure Well-Architected Framework\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"mais-detalhes\"\u003eMais detalhes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://learn.microsoft.com/pt-br/azure/architecture/guide/\"\u003eConceitos básicos de arquitetura de aplicações\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cimg src=\"/assets/images/arquitetura.png\" alt=\"image\" width=\"50%\" height=\"auto\"\u003e","title":"Guia para Arquitetura de Aplicações"},{"content":"O Azure é uma excelente plataforma de computação em nuvem com muitos recursos e funcionalidades interessantes, sendo as opções para containers realmente incríveis. Porém uma coisa que percebo em muitos clientes hoje são dúvidas e desconhecimento sobre detalhes destas opções. Pensando nisso estou escrevendo esse artigo para esclarecer um pouco sobre este assunto.\nAtualmente, as opções mais interessantes para containers no Azure são oferecidas nas soluções PaaS, que serão o objetivo deste post. Logo, não irei entrar nos detalhes sobre uso de containers em IaaS por ser o modelo mais tradicional e possuir a mesma forma de implementação independente do cloud provider.\nNeste artigo, a base das demonstrações será nessa aplicação de exemplo: https://github.com/ricmmartins/simple-php-app. Iremos transformá-la em um container e fazer o deployment nas quatro principais opções para containers no Azure:\nAzure Container Instance Azure WebApp for Containers Azure Kubernetes Service Azure Service Fabric Para facilitar a compreensão, antes de tudo vou mostrar como seria o deploy desta aplicação no Azure Webapp hospedada no Azure App Service, onde teremos a aplicação implantada exatamente como ela foi desenvolvida. Para isso, vamos entender o que é o Azure App Service.\nO que é o Azure App Service? O App Service é o serviço PaaS indicado quando você não precisar ter controle total sobre a infraestrutura para rodar sua aplicação ou sobre o runtime escolhido. Neste cenário, você pode se concentrar apenas no desenvolvimento da sua aplicação e fazer o deploy dela. Ela será executada sem que você precise administrar recursos de IaaS como sistema operacional, rede, storage, atualizações de sitema, etc. O App Service é onde estarão hospedadas as suas aplicações de acordo com o tipo de aplicação. Elas podem ser hospedadas escolhendo a categoria mais apropriada.\nAlgumas categorias do App Service:\nWeb Apps para hospedar aplicações web ou APIs; Web Apps para Containers; Mobile Apps para hospedar o back-end de aplicações móveis; Function Apps para execução do Azure Functions, que são pequenos trechos de código que escalam automaticamente e podem ser acionados por serviços externos; Logic Apps nos quais você configura um fluxo de trabalho com triggers, conectores e condições. Estes também escalam automaticamente e podem ser acionados por serviços externos. A principal vantagem de usar o App Service é que ele oferece muitos recursos adicionais prontos para uso, como auto-scalling, autenticação, slots de deployments (blue-green deployment), integração e entrega contínua, dentre muitos outros.\nEm contrapartida, por ser um serviço PaaS você não possui controle sobre o que está instalado à nível de sistema operacional e não há uma maneira de acessar os servidores e fazer instalação manual de pacotes por exemplo.\nAzure WebApp Antes de entrarmos no contexto de containers, conforme mencionei acima vamos ver como seria o deploy desta aplicação exatamente como ela foi desenvolvida dentro do Azure WebApp, rodando no App Service para que você possa ir se familiarizando com o mesmo.\nO primeiro passo é clicar em Create a resource e buscar por Web App. Na sequência escolher conforme abaixo e clicar em Create:\nNeste exemplo, para criar vou escolher o nome da aplicação, a subscription a ser utilizada, o resource group à ser criado, fiz a escolha do sistema operacional onde quero que seja executado, informo que a publicação vai ser via código e não à partir de uma imagem Docker (ainda, veremos mais a frente) e por fim escolhi criar um App Service Plan (S1 nesse caso).\nDepois de clicar em Create o App Service Plan e o Web App são criados dentro do resource group:\nClicando no WebApp podemos ver alguns detalhes, dentre eles a URL:\nAo acessar a URL (neste exemplo http://demoricardo.azurewebsites.net) temos o conteúdo default sendo exibido:\nUma vez que queremos pegar o código fonte da aplicaçao no Github, o próximo passo é ir ao Deployment Center para fazer a configuração:\nDentre as opções disponíveis, neste caso vou escolher Github. Note que no meu exemplo eu já fiz a autorização do Github no Azure então basta clicar para continuar. Essa autorização consiste em uma tela pedindo o usuário e senha do Github que ao aceitar, você permite que o Azure acesse o seu Github para ler o conteúdo.\nNa tela seguinte, vamos escolher o Build Provider, nesse caso vou escolher o próprio Apache Kudu que já vem embutido no WebApp:\nNa próxima tela escolhemos o usuário do Github, repositório da aplicação e o branch a ser usado:\nAvançando é exibido um resumo, e depois basta clicar para finalizar:\nUma vez finalizado, será iniciado o deployment e ao acessar a URL novamente já conseguimos ver a nossa aplicação rodando:\nTrabalhando com containers Agora vamos começar a falar mais sobre containers e as opções de uso no Azure.\nEm linhas gerais, uma das razões para a escolha de trabalhar com containers, é quando ao contrário do uso do App Service, é preciso ter controle do runtime escolhido para rodar uma aplicação.\nEles permitem que você instale qualquer software ou dependência que sua aplicação precise para rodar, sendo que de forma muito mais rápida que se comparado à VMs já que containers podem fazer o spin-up e o start em questão de segundos.\nA portabilidade dos containers, permite que você rode em máquinas virtuais ou em qualquer serviço PaaS com a garantia que o ambiente que você está trabalhando é o mesmo em qualquer lugar.\nCriando o container Para criar o nosso container, o primeiro passo é fazer o clone da aplicação no Github.\ngit clone https://github.com/ricmmartins/simple-php-app.git Entre no diretório simple-php-app e dentro dele crie o Dockerfile com o seguinte conteúdo\nFROM debian MAINTAINER Ricardo Martins - ricmart@microsoft.com # Packages RUN apt-get update RUN apt-get install -y nginx RUN apt-get install -y php7.0-fpm RUN apt-get install -y git # Nginx RUN ln -sf /dev/stdout /var/log/nginx/access.log RUN ln -sf /dev/stderr /var/log/nginx/error.log RUN rm /etc/nginx/sites-available/default ADD ./default /etc/nginx/sites-available/default # Build RUN mkdir -p /var/www/app WORKDIR /var/www/app RUN git clone https://github.com/ricmmartins/simple-php-app.git RUN mv simple-php-app/* /var/www/app EXPOSE 80 CMD service php7.0-fpm start \u0026amp;\u0026amp; nginx -g \u0026#34;daemon off;\u0026#34; No mesmo diretório crie o o arquivo de configuracão do Nginx que será adicionado ao container. Crie um arquivo com nome default com o seguinte conteúdo:\nserver { listen 80; root /var/www/app; index index.php index.html; location ~ \\.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } O próximo passo é fazer o build da imagem:\nsudo docker build . -t simplephpapp E em seguida colocar para rodar:\nsudo docker run -d -p 8080:80 simplephpapp Agora você pode verificar se está ok com o comando abaixo:\ncurl localhost:8080 Se tudo estiver ok, sua saída será similar à esta:\nAgora basta fazer o push da imagem para o Azure Container Registry ou para o próprio Docker Hub que é como vou fazer aqui. Abaixo o procedimento:\nsudo docker login Agora vamos gerar uma tag para nossa imagem:\nsudo docker tag simplephpapp rmartins/simplephpapp E enfim enviá-la para o Docker Hub:\nsudo docker push rmartins/simplephpapp Agora que já temos a imagem da nossa aplicação, vamos ver as opções para usá-las no Azure.\nAzure Container Instance O Azure Container Instance é a oferta mais leve do Azure para permitir que você execute containers que não precisem de orquestração. Você também não precisa provisionar nenhuma máquina virtual ou algum outro serviço de alto nível com a vantagem de pagar apenas pelo tempo que os containers criados estarão sendo executados.\nCaso você queria orquestrar containers que estejam no ACI, você pode usar o Virtual Kubelet, que funciona como um conector do ACI para Kubernetes, então você pode utilizá-lo no Azure Kubernetes Services e gerenciar contaeiners do ACI com ele. Detalhes em:\nhttps://azure.microsoft.com/en-us/resources/videos/using-kubernetes-with-azure-container-instances/\nhttps://azure.microsoft.com/en-us/blog/azure-brings-new-serverless-and-devops-capabilities-to-the-kubernetes-community/ Sobre orquestração de ACI com Virtual Kubelet\nO ACI provê grupos de containers. Um grupo de containers é uma coleção de containers que são executados na mesma máquina host e compartilham o mesmo cilco de vida, rede e storage e isto é bastante similar ao conceito de pod’s do Kubernetes. Mais informações em https://docs.microsoft.com/en-us/azure/container-instances/container-instances-container-groups\nO passo a passo da criação do ACI pelo portal está muito bem demonstrado neste link e por isto não vou mostrar todas as telas aqui do procedimento. No meu caso vou usar o mesmo resource group criado anteriormente:\nDepois de criar, imediatamente nossa aplicação já está disponível:\nAzure WebApp for Containers O Azure WebApp for Containers permite que você utilize containers baseados em Linux ou Windows para fazer o deploy da sua aplicação dentro do Azure WebApp.\nPelo portal, escolha a opção para criar um novo recurso e busque por Web App for Containers. Em seguida escolha a opção correspondente e clique para criar:\nO próximo passo é escolher o nome da app, a subscription a ser usada, o resource group (o mesmo que já estamos trabalhando), sistema operacional e criar um App Service Plan (P1v2 neste caso):\nNa última opção de configuração do container, as opções exibidas são conforme a imagem abaixo:\nNo meu caso escolhi a configuração de um único container e apontei para meu repositório no Docker Hub, mas repare que existem opções para uso do Docker Compose e Kubernetes também. Uma vez aplicada a configuração basta clicar para criar. Em alguns instantes já é possível acessar a URL da aplicação:\nAzure Kubernetes Service O Azure Kubernetes Service é serviço gerenciado de Kubernetes que torna simples e rápido o deployment e gerenciamento de aplicações containerizadas, sem que seja preciso que você seja um expert na orquestração de containers. Além disso, você paga apenas pelos nós agentes, o nó master é gratuito.\nO AKS é uma solução escalável by desing. Ele consegue atender as demandas de escalabilidade das aplicações e neste link você encontra mais detalhes sobre o como escalar uma aplicação.\nO procedimento de criação do AKS via portal também está muito bem documentado e disponível aqui, por essa razão, vou entrar nos detalhes apenas da configuração da nossa aplicação dentro dele.\nBasicamente uma vez criado o serviço, o que você precisa fazer é conectar no cluster e usar o kubectl para gerenciar o Kubernetes. Vamos ao nosso exemplo, e a primeira coisa a fazer é criar o arquivo yaml com as definições básicas da nossa aplicação:\nvim simplephpapp.yaml apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2 kind: Deployment metadata: name: simplephpapp spec: selector: matchLabels: app: simplephpapp replicas: 2 template: metadata: labels: app: simplephpapp spec: containers: - name: simplephpapp image: rmartins/simplephpapp ports: - containerPort: 80 Em seguida vamos criar o deployment da aplicação:\nricardo@Azure:~$ kubectl create -f simplephpapp.yaml deployment.apps/simplephpapp created Em seguida vamos verificar os detalhes do deployment criado:\nricardo@Azure:~$ kubectl describe deployment simplephpapp Name: simplephpapp Namespace: default CreationTimestamp: Sat, 19 Jan 2019 05:44:26 +0000 Labels: Annotations: deployment.kubernetes.io/revision=1 Selector: app=simplephpapp Replicas: 2 desired | 2 updated | 2 total | 2 available | 0 unavailable StrategyType: RollingUpdate MinReadySeconds: 0 RollingUpdateStrategy: 25% max unavailable, 25% max surge Pod Template: Labels: app=simplephpapp Containers: simplephpapp: Image: rmartins/simplephpapp Port: 80/TCP Host Port: 0/TCP Environment: Mounts: Volumes: Conditions: Type Status Reason ---- ------ ------ Available True MinimumReplicasAvailable Progressing True NewReplicaSetAvailable OldReplicaSets: NewReplicaSet: simplephpapp-67f946cb9c (2/2 replicas created) Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal ScalingReplicaSet 1m deployment-controller Scaled up replica set simplephpapp67f946cb9c to 2 Em seguida vamos expor a aplicação de forma balanceada:\nricardo@Azure:~$ kubectl expose deployment simplephpapp --port=80 --type=LoadBalancer service/simplephpapp exposed Fazer a validação:\nricardo@Azure:~$ kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.0.0.1 443/TCP 16m simplephpapp LoadBalancer 10.0.120.71 104.209.196.76 80:31882/TCP 11m E agora aumentar o número de réplicas:\nricardo@Azure:~$ kubectl scale --replicas=5 deployment/simplephpapp deployment.extensions/simplephpapp scaled Conferindo:\nricardo@Azure:~$ kubectl get pods NAME READY STATUS RESTARTS AGE simplephpapp-67f946cb9c-6qxcz 1/1 Running 0 35s simplephpapp-67f946cb9c-8j955 1/1 Running 0 35s simplephpapp-67f946cb9c-q2zvv 1/1 Running 0 35s simplephpapp-67f946cb9c-q48jr 1/1 Running 0 8m simplephpapp-67f946cb9c-qrt9l 1/1 Running 0 8m Ao acessar pelo ip externo obtido no comando kubectl get services (104.209.196.76) já conseguimos acessar a nossa aplicação. Como temos 5 réplicas, se você acessar diversas vezes irá perceber o funcionamento do balanceamento, uma vez que essa aplicação de exemplo exibe o nome do host (nó) que está respondendo pelo request.\nUm outro teste manual que você pode fazer para validar o funcionamento do balanceamento é rodar o comando abaixo, que irá enviar 1000 requests ao serviço. Você também irá conseguir visualizar os diferentes nomes dos nós respondendo:\ntime curl -s \u0026#34;http://104.209.196.76 [1-1000]\u0026#34; Azure Service Fabric O Service Fabric é mais uma opção para você rodar seus containers no Azure. Ele é a camada de mágica que roda debaixo de alguns dos principais serviços do Azure como Azure SQL Database e o próprio App Service há alguns anos e agora está disponível para que os clientes também possam utilizar. Neste link existe uma excelente documentação sobre o Service Fabric.\nQuando você faz o deploy de uma aplicação no Service Fabric, ela já ganha automaticamente balanceamento de carga, self-healing, auto-scalling e alta disponibilidade. E quando você faz o deploy de uma nova versão da sua aplicação, ele realiza o upgrade sem nenhum tipo de downtime, permitindo também que você faça rollback da mesma forma.\nTipicamente, o Azure Service Fabric é conhecido como uma ferramenta para executar arquiteturas de microserviços, no entanto, você pode fazer muito mais que isso, inclusive orquestrar containers e rodar qualquer tipo de executável dentro dele.\nEle é uma solução que está disponível como opensource, permitindo que você rode o Framework do Service Fabric em qualquer lugar, seja no on-premises, no seu computador, no Azure e em qualquer outra cloud. Para dar uma uma olhada no projeto no Github, clique aqui.\nO procedimento de criação do cluster do Service Fabric no Azure, está completamente descrito neste link da documentação oficial.\nConforme comentei acima, o uso de containers no Service Fabric é um cenário amplamente utilizado, e vamos detalhar abaixo sobre esta opção usando nossa aplicação de exemplo.\nUma vez criado o cluster e feita a instalação do certificado PFX para acessar a console, você verá algo assim:\nDashboard do Service Fabric\nInformações sobre os nodes\nMapa do cluster\nPara fazer o deploy da nossa aplicação no Service Fabric, vá até Applications e em seguida dentro do menu Actions escolha Create Compose Application:\nVisão geral das aplicações\nCriando uma aplicação via compose file\nConteúdo do compose file\nAbaixo o conteúdo do arquivo compose para você copiar:\nversion: \u0026#39;3\u0026#39; services: simplephpapp: image: rmartins/simplephpapp deploy: replicas: 3 ports: - \u0026#34;80:80\u0026#34; Após clicar para criar, será iniciado o deploy da aplicação de acordo com a configuração especificad no arquivo compose. Em seguida já temos a aplicação rodando dentro do Service Fabric e você pode explorar cada um dos detalhes apresentados:\nDashboard com a aplicação já implantada\nDetalhe da aplicação\nAcessando a aplicação:\nE o Azure Container Service? Um dos primeiros serviços para rodar containers orquestrados no Azure era o ACS (Azure Containers Service). O que ele faz na verdade é automatizar a criação de um cluster de Kubernetes, DC/OS ou Swarm em máquinas virtuais. Por essa razão eu não poderia deixar de falar sobre ele rapidamente.\nDeste modo você não precisa entender como fazer este tipo de configuração, bastando apenas escolher qual orquestrador gostaria de usar e ele faz o trabalho de subir o cluster de forma automatizada usando templates do Azure Resource Manager.\nComo ele é um “facilitador” para criação de clusters em cima de IaaS, depois de criadas as máquinas virtuais, você tem acesso à elas e precisa gerenciar também a questão de segurança, backup, atualizações e todas as atividades relacionadas com a administração de recursos IaaS.\nCom a evolução do AKS, hoje o ACS ainda está disponível, porém apenas para criação de clusters com o DC/OS ou Docker Swarm como orquestradores.\nReferências :\nhttps://docs.microsoft.com/en-us/azure/container-service/kubernetes/container-service-kubernetes-walkthrough \u0026lt;https://docs.microsoft.com/en-us/azure/container-service/dcos-swarm/ \u0026gt; Uma vez que se formos ao pé da letra a definição do NIST sobre a definição de IaaS, PaaS e SaaS, o ACS está mais para IaaS, eu não vou detalhar aqui sohre o uso dele uma vez que meu objetivo nesse artigo é focar em PaaS.\nConclusão Espero ter esclarecido um pouco sobre as opções existentes para usar containers no Azure. Fique à vontade para deixar um comentário ou dúvida.\nAqui mais algumas referências interessantes:\nDecision tree for Azure compute services: https://docs.microsoft.com/en-us/azure/architecture/guide/technology-choices/compute-decision-tree Choosing Azure compute platforms for container-based applications: https://docs.microsoft.com/en-us/dotnet/standard/modernize-with-azure-and-containers/modernize-existing-apps-to-cloud-optimized/choosing-azure-compute-options-for-container-based-applications Orchestrating microservices and multi-container applications for high scalability and availability: https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/architect-microservice-container-applications/scalable-available-multi-container-microservice-applications ** OpenShift spoiler Alert!** Para você que chegou até o fim deste post, compartilhando uma opção bastante interessante para uso de containers no Azure que em breve já estará totalmente disponível: OpenShift on Azure\nO OpenShift é uma plataforma de código aberto desenvolvida pela Red Hat que auxilia no processo de orquestração de containers baseada em Kubernetes e containers Linux de maneira independente da plataforma na qual os containers serão executados.\nConforme o anúncio do Brendan Burns (sim, ele mesmo, o co-founder do Kubernetes e agora funcionário da Microsoft) feito neste link a Microsoft está trabalhando em parceria com a RedHat em uma versão do OpenShift totalmente gerenciada dentro do Azure.\nNa data de publicação deste artigo ela está em private preview. Mais detalhes em https://docs.microsoft.com/en-us/azure/virtual-machines/linux/openshift-get-started#openshift-on-azure ","permalink":"http://ricardomartins.com.br/conhecendo-as-opcoes-para-containers-no-azure/","summary":"\u003cp\u003eO Azure é uma excelente plataforma de computação em nuvem com muitos recursos e funcionalidades interessantes, sendo as opções para containers realmente incríveis. Porém uma coisa que percebo em muitos clientes hoje são dúvidas e desconhecimento sobre detalhes destas opções. Pensando nisso estou escrevendo esse artigo para esclarecer um pouco sobre este assunto.\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2019/01/docker-azure-new-1024x260.png\"\u003e\u003c/p\u003e\n\u003cp\u003eAtualmente, as opções mais interessantes para containers no Azure são oferecidas nas soluções PaaS, que serão o objetivo deste post. Logo, não irei entrar nos detalhes sobre uso de containers em IaaS por ser o modelo mais tradicional e possuir a mesma forma de implementação independente do cloud provider.\u003c/p\u003e","title":"Conhecendo as opções para containers do Azure"},{"content":"O objetivo deste artigo é descrever de forma detalhada como implementar a Stack ELK (Elasticsearch/Logstash/Kibana) no Azure.\nIntrodução Este artigo é resultado de uma prova de conceito para mostrar a funcionalidade de implementação de toda a stack utilizando a ferramenta de linha de comando do Azure (az-cli)\nArquitetura A ilustração abaixo se refere à arquitetura lógica implantada para provar o conceito. Esta arquitetura contempla um servidor de aplicação, o serviço de Redis do Azure, um servidor com o Logstash, um servidor com ElasticSearch e um servidor com o Kibana e serviço web (Nginx) instalados.\nArquitetura ELK\nDescrição dos componentes da arquitetura Servidor de Aplicação: Para simular um servidor de aplicação gerando logs, foi utilizado um script que gera logs aleatoriamente. O código fonte deste script está disponível em https://github.com/bitsofinfo/log-generator. Ele foi configurado para gerar os logs em /tmp/log-sample.log. Filebeat: Agente instalado no servidor de aplicação e configurado para enviar os logs gerados para o Azure Redis. O Filebeat tem a função de fazer o shipping dos logs usando o protocolo lumberjack. Azure Redis Service: Serviço gerenciado de armazenamento de dados em memória. Foi utilizado pois mecanismos de busca podem ser um pesadelo operacional. A indexação pode derrubar um cluster tradicional e os dados podem acabar sendo reindexados por diversos motivos. Deste modo, a escolha do Redis entre a fonte de eventos e o parsing e processamento é apenas para indexar/parsear tão rápido quanto os nós e os bancos de dados envolvidos possam manipular estes dados permitindo que seja possível extrair diretamente do fluxo de eventos ao invés de ter eventos sendo inseridos no pipeline. Através do Redis Monitor é possível ver exatamente o que está acontecendo no Redis: O Filebeat enviando os dados e o Logstash pedindo por eles: Logstash: Faz o processamento e a indexação dos logs lendo do Redis e enviando ao ElasticSearch. ElasticSearch: Faz o armazenamento dos logs Kibana/Nginx: Interface web para busca e visualização dos logs que são proxiados pelo Nginx Deployment do Ambiente O deployment do ambiente é feito usando comandos do Azure CLI em um script shell. Além de servir como uma documentação sobre os serviços que foram implantados, são uma boa prática de infraestrutura como código.\nInstalação do Azure CLI O pré-requisito é o uso do Azure CLI, cujas instruções de instalação estão contidas de forma detalhada em https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest\nPara instalar no Ubuntu, basicamente os comandos são:\nModificar o sources.list: AZ_REPO=$(lsb_release -cs)\u0026lt;br\u0026gt;\u0026lt;/br\u0026gt;echo \u0026#34;deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main\u0026#34; | sudo tee /etc/apt/sources.list.d/azure-cli.list Obter o Microsoft signin key: curl -L https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - Instalar o CLI: sudo apt-get update sudo apt-get install apt-transport-https azure-cli Fazer login: az login Ir até http://www.microsoft.com/devicelogin e informar o código de autorização gerado no console.\n** Importante destacar que o login não-interativo só é possível para assinaturas que não estejam fazendo uso de MFA.\nSetup da Stack ELK O próximo passo é executar o script de instalação da Stack ELK que por sua vez irá realizar os seguintes passos:\nCriar o grupo de recursos Criar o serviço do Redis Criar uma VNET chamada myVnet com o prefixo 10.0.0.0/16 e uma subnet chamada mySubnet com o prefixo 10.0.1.0/24 Criar a VM do servidor de Aplicação Tamanho: Standard_D2S_v3 Usuário: \u0026lt;usuarioremotoescolhido\u0026gt; Chaves SSH: As chaves pública e privada são geradas em ~/.ssh. O acesso é feito diretamente através do comando ssh -i ~/.ssh/id_rsa \u0026lt;usuarioremotoescolhido\u0026gt;@\u0026lt;ip\u0026gt; Instalação/Configuração do Log Generator Instalação/Configuração do Filebeat Start do Filebeat Criar a VM do servidor de ElasticSearch Tamanho: Standard_D2S_v3 Usuário: \u0026lt;usuarioremotoescolhido\u0026gt; Chaves SSH: As chaves pública e privada são geradas em ~/.ssh. O acesso é feito diretamente através do comando ssh -i ~/.ssh/id_rsa \u0026lt;usuarioremotoescolhido\u0026gt;@\u0026lt;ip\u0026gt; Configurar NSG e liberar acesso na porta 9200 para a subnet 10.0.1.0/24 Instalar o Java Instalação/Configuração do ElasticSearch Start do ElasticSearch Criar a VM do servidor do Logstash Tamanho: Standard_D2S_v3 Usuário: \u0026lt;usuarioremotoescolhido\u0026gt; Chaves SSH: As chaves pública e privada são geradas em ~/.ssh. O acesso é feito diretamente através do comando ssh -i ~/.ssh/id_rsa \u0026lt;usuarioremotoescolhido\u0026gt;@\u0026lt;ip\u0026gt; Instalação/Configuração do Logstash Start do Logstash Criar a VM do servidor do Kibana Tamanho: Standard_D2S_v3 Usuário: \u0026lt;usuarioremotoescolhido\u0026gt; Chaves SSH: As chaves pública e privada são geradas em ~/.ssh. O acesso é feito diretamente através do comando ssh -i ~/.ssh/id_rsa \u0026lt;usuarioremotoescolhido\u0026gt;@\u0026lt;ip\u0026gt; Configurar NSG e liberar acesso na porta 80 para 0.0.0.0/0 Instalação/Configuração do Kibana Instalação/Configuração do Nginx Script de setup da Stack ELK #!/bin/bash # Define variables rg=\u0026#34;$1\u0026#34; location=\u0026#34;$2\u0026#34; redisname=\u0026#34;$3\u0026#34; # Validate parameters if [ \u0026#34;$1\u0026#34; = \u0026#34;\u0026#34; ]; then echo \u0026#34;Wrong usage! You need inform the parameters.\u0026#34; echo \u0026#34;Example: ./elk-setup.sh \u0026lt;resource group name\u0026gt; \u0026lt;location\u0026gt; \u0026lt;redis name\u0026gt;\u0026#34; exit 1 elif [ \u0026#34;$1\u0026#34; != \u0026#34;\u0026#34; ]; then # Create Resource Group az group create --name $rg --location $location # Create Redis Service az redis create --name $redisname --resource-group $rg --location $location --sku Standard --vm-size C1 --enable-non-ssl-port # Get Redis Info az redis show --resource-group $rg --name $redisname az redis list-keys --resource-group $rg --name $redisname # Create VNET az network vnet create --resource-group $rg --name myVnet --address-prefix 10.0.0.0/16 --subnet-name mySubnet --subnet-prefix 10.0.1.0/24 # Create App VM ## Create VM az vm create --resource-group $rg --name app-vm \\ --size Standard_D2S_v3 \\ --image Canonical:UbuntuServer:18.04-LTS:latest \\ --admin-username elk \\ --generate-ssh-keys \\ --no-wait \\ --vnet-name myVnet \\ --subnet mySubnet \\ --nsg nsg-app-vm sleep 60 # Setup Log Generator az vm run-command invoke -g $rg -n app-vm \\ --command-id RunShellScript --scripts \u0026#34;cd /tmp \u0026amp;\u0026amp; git clone https://github.com/bitsofinfo/log-generator.git \u0026amp;\u0026amp; cd /tmp/log-generator \u0026amp;\u0026amp; python ./log_generator.py --logFile /tmp/log-sample.log \u0026amp;\u0026#34; # Setup Filebeat redis_host=\u0026#34;$(az redis show --resource-group $rg --name $redisname | tail -1 | awk \u0026#39;{ print $2 }\u0026#39;)\u0026#34; redis_primary_key=\u0026#34;$(az redis list-keys --resource-group $rg --name $redisname | tail -1 | awk \u0026#39;{ print $2 }\u0026#39;)\u0026#34; az vm run-command invoke -g $rg -n app-vm \\ --command-id RunShellScript --scripts \u0026#34;cd /tmp \u0026amp;\u0026amp; curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.1-amd64.deb \u0026amp;\u0026amp; sudo dpkg -i filebeat-6.4.1-amd64.deb \u0026amp;\u0026amp; sudo /bin/cp /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.ori\u0026#34; az vm run-command invoke -g $rg -n app-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo sed -i.bak \u0026#39;s/enabled: false/enabled: true\u0026#39;/g /etc/filebeat/filebeat.yml\u0026#34; az vm run-command invoke -g $rg -n app-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo sed -i.bak \u0026#39;s/\\/var\\/log\\//\\/tmp\\/\u0026#39;/g /etc/filebeat/filebeat.yml\u0026#34; az vm run-command invoke -g $rg -n app-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo sed -i.bak \u0026#39;s/setup.kibana/#setup.kibana\u0026#39;/g /etc/filebeat/filebeat.yml\u0026#34; az vm run-command invoke -g $rg -n app-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo sed -i.bak \u0026#39;s/output.elasticsearch/#output.elasticsearch\u0026#39;/g /etc/filebeat/filebeat.yml\u0026#34; az vm run-command invoke -g $rg -n app-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo sed -i.bak \u0026#39;s/hosts/#hosts\u0026#39;/g /etc/filebeat/filebeat.yml\u0026#34; az vm run-command invoke -g $rg -n app-vm \\ --command-id RunShellScript --scripts \u0026#34;cat \u0026lt;\u0026lt;\u0026#39;EOT\u0026#39; \u0026gt;\u0026gt; /etc/filebeat/filebeat.yml output.redis: hosts: [\u0026#39;$redis_host\u0026#39;] password: \u0026#39;$redis_primary_key\u0026#39; key: \u0026#39;filebeat\u0026#39; db: 0 timeout: 5 EOT\u0026#34; ## Start Filebeat az vm run-command invoke -g $rg -n app-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo service filebeat start\u0026#34; # Create Elasticsearch VM ## Create VM az vm create --resource-group $rg --name elasticsearch-vm \\ --size Standard_D2S_v3 \\ --image Canonical:UbuntuServer:18.04-LTS:latest \\ --admin-username elk \\ --generate-ssh-keys \\ --no-wait \\ --vnet-name myVnet \\ --subnet mySubnet \\ --nsg nsg-elasticsearch-vm sleep 60 ## Create NSG Rule az network nsg rule create --resource-group $rg --nsg-name nsg-elasticsearch-vm \\ --name port-9200-rule \\ --access Allow \\ --protocol Tcp \\ --direction Inbound \\ --priority 300 \\ --source-address-prefix 10.0.1.0/24 \\ --source-port-range \u0026#34;*\u0026#34; \\ --destination-address-prefix \u0026#34;*\u0026#34; \\ --destination-port-range 9200 ## Install Java az vm run-command invoke -g $rg -n elasticsearch-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo add-apt-repository -y ppa:webupd8team/java \u0026amp;\u0026amp; sudo apt-get update\u0026#34; az vm run-command invoke -g $rg -n elasticsearch-vm \\ --command-id RunShellScript --scripts \u0026#34;echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections \u0026amp;\u0026amp; sudo apt-get -y install oracle-java8-installer\u0026#34; ## Install Elasticsearch az vm run-command invoke -g $rg -n elasticsearch-vm \\ --command-id RunShellScript --scripts \u0026#34;wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -\u0026#34; az vm run-command invoke -g $rg -n elasticsearch-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo apt-get install apt-transport-https\u0026#34; az vm run-command invoke -g $rg -n elasticsearch-vm \\ --command-id RunShellScript --scripts \u0026#34;cat \u0026lt;\u0026lt;\u0026#39;EOT\u0026#39; \u0026gt;\u0026gt; /etc/apt/sources.list.d/elastic-6.x.list deb https://artifacts.elastic.co/packages/6.x/apt stable main EOT\u0026#34; az vm run-command invoke -g $rg -n elasticsearch-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo apt-get update \u0026amp;\u0026amp; sudo apt-get install elasticsearch\u0026#34; ## Configure Elasticsearch az vm run-command invoke -g $rg -n elasticsearch-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo /bin/cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.ori \u0026amp;\u0026amp; \u0026gt; /etc/elasticsearch/elasticsearch.yml\u0026#34; az vm run-command invoke -g $rg -n elasticsearch-vm \\ --command-id RunShellScript --scripts \u0026#34;cat \u0026lt;\u0026lt;\u0026#39;EOT\u0026#39; \u0026gt;\u0026gt; /etc/elasticsearch/elasticsearch.yml network.host: 0.0.0.0 path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch EOT\u0026#34; ## Start ElasticSearch az vm run-command invoke -g $rg -n elasticsearch-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo systemctl enable elasticsearch.service \u0026amp;\u0026amp; sudo systemctl start elasticsearch.service\u0026#34; # Create Logstash VM ## Create VM az vm create --resource-group $rg --name logstash-vm \\ --size Standard_D2S_v3 \\ --image Canonical:UbuntuServer:18.04-LTS:latest \\ --admin-username elk \\ --generate-ssh-keys \\ --no-wait \\ --vnet-name myVnet \\ --subnet mySubnet \\ --nsg nsg-logstash-vm sleep 60 az vm run-command invoke -g $rg -n logstash-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo add-apt-repository -y ppa:webupd8team/java \u0026amp;\u0026amp; sudo apt-get update\u0026#34; az vm run-command invoke -g $rg -n logstash-vm \\ --command-id RunShellScript --scripts \u0026#34;echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections \u0026amp;\u0026amp; sudo apt-get -y install oracle-java8-installer\u0026#34; ## Install Logstash az vm run-command invoke -g $rg -n logstash-vm \\ --command-id RunShellScript --scripts \u0026#34;wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -\u0026#34; az vm run-command invoke -g $rg -n logstash-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo apt-get install apt-transport-https\u0026#34; az vm run-command invoke -g $rg -n logstash-vm \\ --command-id RunShellScript --scripts \u0026#34;cat \u0026lt;\u0026lt;\u0026#39;EOT\u0026#39; \u0026gt;\u0026gt; /etc/apt/sources.list.d/elastic-6.x.list deb https://artifacts.elastic.co/packages/6.x/apt stable main EOT\u0026#34; az vm run-command invoke -g $rg -n logstash-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo apt-get update \u0026amp;\u0026amp; sudo apt-get install logstash\u0026#34; # Configure Logstash redis_host=\u0026#34;$(az redis show --resource-group $rg --name $redisname | tail -1 | awk \u0026#39;{ print $2 }\u0026#39;)\u0026#34; redis_primary_key=\u0026#34;$(az redis list-keys --resource-group $rg --name $redisname | tail -1 | awk \u0026#39;{ print $2 }\u0026#39;)\u0026#34; elasticsearch_host=\u0026#34;$(az vm show -g $rg -n elasticsearch-vm -d --query privateIps -otsv)\u0026#34; az vm run-command invoke -g $rg -n logstash-vm \\ --command-id RunShellScript --scripts \u0026#34;cat \u0026lt;\u0026lt;\u0026#39;EOT\u0026#39; \u0026gt;\u0026gt; /etc/logstash/conf.d/logstash.conf # Logstash Config input { redis { host =\u0026gt; \\\u0026#34;$redis_host\\\u0026#34; port =\u0026gt; \\\u0026#34;6379\\\u0026#34; password =\u0026gt; \\\u0026#34;$redis_primary_key\\\u0026#34; db =\u0026gt; \\\u0026#34;0\\\u0026#34; data_type =\u0026gt; \\\u0026#34;list\\\u0026#34; key =\u0026gt; \\\u0026#34;filebeat\\\u0026#34; } } output { elasticsearch { hosts =\u0026gt; [\\\u0026#34;http://$elasticsearch_host:9200\\\u0026#34;] } } EOT\u0026#34; ## Start Logstash az vm run-command invoke -g $rg -n logstash-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo systemctl enable logstash.service \u0026amp;\u0026amp; sudo systemctl start logstash.service\u0026#34; # Create Kibana VM az vm create --resource-group $rg --name kibana-vm \\ --size Standard_D2S_v3 \\ --image Canonical:UbuntuServer:18.04-LTS:latest \\ --admin-username elk \\ --generate-ssh-keys \\ --no-wait \\ --vnet-name myVnet \\ --subnet mySubnet \\ --nsg nsg-kibana-vm sleep 60 ## Create NSG Rule az network nsg rule create --resource-group $rg --nsg-name nsg-kibana-vm \\ --name port-80-rule \\ --access Allow \\ --protocol Tcp \\ --direction Inbound \\ --priority 300 \\ --source-address-prefix Internet \\ --source-port-range \u0026#34;*\u0026#34; \\ --destination-address-prefix \u0026#34;*\u0026#34; \\ --destination-port-range 80 ## Install Kibana az vm run-command invoke -g $rg -n kibana-vm \\ --command-id RunShellScript --scripts \u0026#34;wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -\u0026#34; az vm run-command invoke -g $rg -n kibana-vm \\ --command-id RunShellScript --scripts \u0026#34;cat \u0026lt;\u0026lt;\u0026#39;EOT\u0026#39; \u0026gt;\u0026gt; /etc/apt/sources.list.d/elastic-6.x.list deb https://artifacts.elastic.co/packages/6.x/apt stable main EOT\u0026#34; az vm run-command invoke -g $rg -n kibana-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo apt-get update \u0026amp;\u0026amp; sudo apt-get install kibana\u0026#34; az vm run-command invoke -g $rg -n kibana-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo /bin/systemctl daemon-reload \u0026amp;\u0026amp; sudo /bin/systemctl enable kibana.service\u0026#34; az vm run-command invoke -g $rg -n kibana-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo /bin/cp /etc/kibana/kibana.yml /etc/kibana/kibana.yml.ori \u0026amp;\u0026amp; \u0026gt; /etc/kibana/kibana.yml\u0026#34; az vm run-command invoke -g $rg -n kibana-vm \\ --command-id RunShellScript --scripts \u0026#34;cat \u0026lt;\u0026lt;EOT \u0026gt;\u0026gt; /etc/kibana/kibana.yml server.host: \u0026#34;localhost\u0026#34; server.port: 5601 elasticsearch.url: http://\u0026#34;$elasticsearch_host:9200\u0026#34; EOT\u0026#34; ## Start Kibana az vm run-command invoke -g $rg -n kibana-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo systemctl start kibana.service\u0026#34; ## Install Nginx az vm run-command invoke -g $rg -n kibana-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo apt-get -y install nginx\u0026#34; az vm run-command invoke -g $rg -n kibana-vm \\ --command-id RunShellScript --scripts \u0026#34;\u0026gt; /etc/nginx/sites-available/default\u0026#34; az vm run-command invoke -g $rg -n kibana-vm \\ --command-id RunShellScript --scripts \u0026#34;cat \u0026lt;\u0026lt;\u0026#39;EOT\u0026#39; \u0026gt;\u0026gt; /etc/nginx/sites-available/default # Nginx Config server { listen 80; server_name _; location / { proxy_pass http://localhost:5601; proxy_http_version 1.1; proxy_set_header Upgrade \\$http_upgrade; proxy_set_header Connection \u0026#39;upgrade\u0026#39;; proxy_set_header Host \\$host; proxy_cache_bypass \\$http_upgrade; } } EOT\u0026#34; ## Start Nginx az vm run-command invoke -g $rg -n kibana-vm \\ --command-id RunShellScript --scripts \u0026#34;sudo systemctl restart nginx\u0026#34; fi exit Finalizando o Setup Para finalizar o setup, o próximo passo consiste em conectar no endereço IP público da VM do Kibana/Nginx. Uma vez conectado, a tela inicial deverá ser semelhante à esta:\nO próximo passo é clicar em Discover onde iremos criar o padrão de indexação:\nNeste caso será criado o padrão logstash*\nAgora clicando em Discover novamente já é possível ver os logs indexados e as mensagens geradas pelo Log Generator:\nAté o próximo artigo ;-D\n","permalink":"http://ricardomartins.com.br/implementando-a-stack-elk-no-azure-via-cli/","summary":"\u003cp\u003eO objetivo deste artigo é descrever de forma detalhada como implementar a Stack ELK (Elasticsearch/Logstash/Kibana) no Azure.\u003c/p\u003e\n\u003ch2 id=\"introdução\"\u003eIntrodução\u003c/h2\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src=\"../wp-content/uploads/2018/10/elk-stack.png\"\u003e\u003c/p\u003e\n\u003cp\u003eEste artigo é resultado de uma prova de conceito para mostrar a funcionalidade de implementação de toda a stack utilizando a ferramenta de linha de comando do Azure (\u003ca href=\"https://docs.microsoft.com/pt-br/cli/azure\"\u003eaz-cli\u003c/a\u003e)\u003c/p\u003e\n\u003ch2 id=\"arquitetura\"\u003eArquitetura\u003c/h2\u003e\n\u003cp\u003eA ilustração abaixo se refere à arquitetura lógica implantada para provar o conceito. Esta arquitetura contempla um servidor de aplicação, o serviço de Redis do Azure, um servidor com o Logstash, um servidor com ElasticSearch e um servidor com o Kibana e serviço web (Nginx) instalados.\u003c/p\u003e","title":"Implementando a Stack ELK no Azure via CLI"},{"content":"Provavelmente você já sabe que o Portal do Azure é totalmente customizável, permitindo que você explore ao máximo as opções criando dashboards para atender as suas necessidades de visualização, organização e monitoramento.\nRecentemente eu estava lendo um post no blog do Azure sobre isso e encontrei duas opções muito interessantes que eu não conhecia: ARM Data e ARM Actions.\nBasicamente o ARM Data permite configurar a exibição de dados/informações sobre seus recursos, enquanto que o ARM Actions permite configurar a execução de ações de forma bastante simples.\nNeste artigo eu vou demonstrar como criar ARM Actions para ligar/desligar máquinas virtuais. Para isto a primeira coisa que precisamos fazer é pegar o Resource ID da VM que vamos usar. O Resource ID está disponível em Propriedades da VM, conforme abaixo:\nNote que o nome da VM é armaction, e o Resource ID: /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/armactions-resourcegroup/providers/Microsoft.Compute/virtualMachines/armaction\nAgora precisamos editar o dashboard:\nEm seguida escolher a opção ARM Actions e inserir no dashboard:\nQuando fizer isto, note que serão abertos os campos para edição do ARM Actions:\nE você deve preencher conforme vou mostrar abaixo:\nTitle: ARM Actions\nSubtitle: Start VM\nURI: /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/armactions-resourcegroup/providers/Microsoft.Compute/virtualMachines/armaction/start?api-version=2017-12-01\nAction name: Initialize VM\nNote que a URI, é o Resource ID da VM seguido da ação que deseja executar na API correspondente. Neste caso: start?api-version=2017-12-01\nNo meu caso ficou assim:\nRepare que ele já mostra um preview de como ficará.\nFiz a mesma coisa para criar um botão para desligar a VM, no caso alterando na URI o start?api-version=2017-12-01 por powerOff?api-version=2017-12-01. Você pode consultar a lista de opções das chamadas de API disponíveis para VMs em https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines.\nAo fim, meu dashboard ficou assim:\nE ao clicar em uma das opções após executar a ação você recebe as notificações também:\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/arm-actions-nos-dashboards-do-portal-do-azure/","summary":"\u003cp\u003eProvavelmente você já sabe que o Portal do Azure é \u003ca href=\"https://docs.microsoft.com/en-us/azure/azure-portal/azure-portal-dashboards.\"\u003etotalmente customizável\u003c/a\u003e, permitindo que você explore ao máximo as opções criando dashboards para atender as suas necessidades de visualização, organização e monitoramento.\u003c/p\u003e\n\u003cp\u003eRecentemente eu estava lendo \u003ca href=\"https://azure.microsoft.com/pt-br/blog/azure-portal-experience/\"\u003eum post no blog do Azure\u003c/a\u003e sobre isso e encontrei duas opções muito interessantes que eu não conhecia: ARM Data e ARM Actions.\u003c/p\u003e\n\u003cp\u003eBasicamente o ARM Data permite configurar a exibição de dados/informações sobre seus recursos, enquanto que o ARM Actions permite configurar a execução de ações de forma bastante simples.\u003c/p\u003e","title":"ARM Actions nos dashboards do portal do Azure"},{"content":"O post de hoje é bem rápido, apenas para compartilhar algumas coisas sobre o Azure File Sync. Caso você ainda não conheça vale a pena dar uma olhada. Neste primeiro vídeo, um breve overview sobre ele:\nE aqui um vídeo que eu fiz demonstrando como fazer o setup:\nVeja mais em :\nPlanejando a implantacão: http://aka.ms/AzureFileSync Guia de deployment: https://docs.microsoft.com/en-us/azure/storage/files/storage-sync-files-deployment-guide FAQ: https://docs.microsoft.com/en-us/azure/storage/files/storage-files-faq Requisito de instalação do Azure PowerShell no Windows: https://docs.microsoft.com/en-us/powershell/azure/install-azurerm-ps ","permalink":"http://ricardomartins.com.br/azure-file-sync/","summary":"\u003cp\u003eO post de hoje é bem rápido, apenas para compartilhar algumas coisas sobre o Azure File Sync. Caso você ainda não conheça vale a pena dar uma olhada. Neste primeiro vídeo, um breve overview sobre ele:\u003c/p\u003e\n\u003ciframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" frameborder=\"0\" height=\"281\" loading=\"lazy\" src=\"https://www.youtube.com/embed/Zm2w8-TRn-o?feature=oembed\" title=\"Azure File Sync Overview\" width=\"500\"\u003e\u003c/iframe\u003e\n\u003cp\u003eE aqui um vídeo que eu fiz demonstrando como fazer o setup:\u003c/p\u003e\n\u003ciframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" frameborder=\"0\" height=\"281\" loading=\"lazy\" src=\"https://www.youtube.com/embed/6lDbvF31jik?feature=oembed\" title=\"Azure File Sync\" width=\"500\"\u003e\u003c/iframe\u003e\n\u003cp\u003eVeja mais em :\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePlanejando a implantacão: \u003ca href=\"http://aka.ms/AzureFileSync\"\u003ehttp://aka.ms/AzureFileSync\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGuia de deployment: \u003ca href=\"https://docs.microsoft.com/en-us/azure/storage/files/storage-sync-files-deployment-guide\"\u003ehttps://docs.microsoft.com/en-us/azure/storage/files/storage-sync-files-deployment-guide\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFAQ: \u003ca href=\"https://docs.microsoft.com/en-us/azure/storage/files/storage-files-faq\"\u003ehttps://docs.microsoft.com/en-us/azure/storage/files/storage-files-faq\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequisito de instalação do Azure PowerShell no Windows: \u003ca href=\"https://docs.microsoft.com/en-us/powershell/azure/install-azurerm-ps\"\u003ehttps://docs.microsoft.com/en-us/powershell/azure/install-azurerm-ps\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e","title":"Azure File Sync"},{"content":"O que é o DSpace? DSpace é um software opensource tipicamente usado para criar repositórios de acesso público para conteúdo digital acadêmico. Enquanto ele possui alguns recursos que se sobrepõem com recursos de sistemas de gerenciamento de conteúdo, ele atende a uma necessidade específica de sistema de arquivos digitais, focado no armazenamento de longo prazo, acesso e preservação de conteúdo digital.\nNeste artigo, vamos fazer o setup baseado em uma imagem docker oficial do Ubuntu e usando o Tomcat para rodar o DSpace conforme as instruções do guia de instalação.\nUtilização O DSpace utiliza o PostgreSQL como banco de dados. Neste artigo, iremos utilizar o Azure Database para PostgreSQL como um banco de dados externo, ao invés de utilizar uma imagem Docker com o PostgreSQL.\nPostgreSQL como Serviço Primeiro, precisamos criar o Azure Database para PostgreSQL. Eu estou usando o Azure CLI para completar os passos descritos em https://docs.microsoft.com/en-us/azure/postgresql/quickstart-create-server-database-azure-cli\nCriando o grupo de recursos az group create --name myresourcegroup --location eastus Adicionando a extensão atualizada do PostgreSQL Adicione a extensão atualizada de gerenciamento do Azure Database para PostgreSQL usando o seguinte comando:\naz extension add --name rdbms Criando o “PostgreSQL as a Service” no Azure az postgres server create --resource-group myresourcegroup --name mydemoserver --location eastus --admin-user myadmin --admin-password \u0026lt;server_admin_password\u0026gt; --performance-tier Basic --ssl-enforcement Disabled Criando a regra de firewall no Network Security Group az postgres server firewall-rule create --resource-group myresourcegroup --server mydemoserver --name AllowAllIps --start-ip-address 0.0.0.0 --end-ip-address 255.255.255.255 Criando o database e instalando a extensão pgcrypto: O DSpace requer a extensão “pgcrypto” instalada no banco de dados. Então vamos criar o banco de dados e instalar esta extensão. Aqui, estou usando o psql para fazer isto:\npsql --host=mydemoserver.postgres.database.azure.com --port=5432 --username=myadmin@mydemoserver --dbname=postgres create database dspace; \\c dspace create extension pgcrypto; Build da imagem Clone do repositório Faça o clone do meu repositório do DSpace no github:\ngit clone https://github.com/rmmartins/docker-dspace-azure.git Faça alguns pequenos ajustes Para construir a imagem Docker, você precisa ajustar o arquivo local.cfg na linha 91. Você precisa alterar o endereço do servidor, nome de usuário e senha pelos parâmetros do PostgreSQL que você criou nos passos anteriores.\ncd docker-dspace-azure/ vim config/local.cfg Após realizar as alterações, a linha 91 do arquivo config/local.cfg deverá estar similar a esta (porém com os seus dados ):\ndb.url = jdbc:postgresql://dspace2.postgres.database.azure.com:5432/dspace?user=dspaceadmin@dspace2\u0026amp;password=Pass0rd1?wx$\u0026amp;ssl=false Criando o build da nossa imagem sudo docker build -t rmartins/docker-dspace-azure . Colocando a nossa imagem para rodar sudo docker run -p 8080:8080 rmartins/docker-dspace-azure Depois de alguns segundos, as interfaces do DSpace estarão acessíveis através dos endereços abaixo:\nJSP User Interface: http://localhost:8080/jspui XML User Interface: http://localhost:8080/xmlui OAI-PMH Interface: http://localhost:8080/oai/request?verb=Identify REST: http://localhost:8080/rest Feito isso, já validamos o nosso setup rodando localmente apontando para o Azure Database para PostgreSQL. Agora no próximo passo vamos configurar no Azure Webapp Container.\nExecutando o DSpace no Azure Webapp Container Esta é a melhor parte! Se você deseja rodar o Dspace sem ter que gerenciar uma máquina virtual e todos os esforços envolvidos em um ambiente IaaS me deixe apresentar à você o Azure Webapp Container. Ele irá permitir que você roda o DSpace usando containers Docker em um ambiente PaaS.\nPreparando a imagem Primeiro salve a imagem que já temos como uma nova imagem. Para isto, você precisa encontrar o container ID (usando o comando docker ps) e então fazer o commit usando um novo nome de imagem:\nsudo docker commit c16378f943fe rmartins/docker-dspace-azure-webapp Envie a nova imagem para o repositório Uma vez que já temos uma nova imagem, com todos os ajustes necessários realizados, vamos enviá-la ao Docker Hub:\nsudo docker login sudo docker push rmartins/docker-dspace-azure-webapp Observação: Caso você não possua uma conta no Docker Hub, basta acessar https://hub.docker.com/ e criar uma gratuitamente. Você também pode usar o Azure Container Registry para armazenar suas imagens.\nSetup do Azure Webapp Container Faça a criação do serviço do Azure Webapp Container e aponte para a imagem Docker no seu repositório do Docker Hub conforme abaixo:\nE certifique-se de ter as seguintes variáveis configuradas:\nFinalizando Em alguns minutos, teremos o DSpace rodando no Azure Webapp Container com Azure Database para PostreSQL. Você pode validar o funcionamento acessando através de uma das interfaces disponíveis:\nJSPUI XMLUI OAI REST API Até a próxima!\n","permalink":"http://ricardomartins.com.br/como-implementar-o-dspace-em-um-webapp-container-no-azure/","summary":"\u003ch1 id=\"o-que-é-o-dspace\"\u003eO que é o DSpace?\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2018/04/dspace-logo.png\"\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2018/04/dspace-logo.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://wiki.duraspace.org/display/DSDOC6x/Introduction\"\u003eDSpace\u003c/a\u003e é um software opensource tipicamente usado para criar repositórios de acesso público para conteúdo digital acadêmico. Enquanto ele possui alguns recursos que se sobrepõem com recursos de sistemas de gerenciamento de conteúdo, ele \u003cspan class=\"\" id=\"result_box\" lang=\"pt\"\u003e\u003cspan class=\"\"\u003e atende a uma necessidade específica de sistema de arquivos digitais, focado no armazenamento de longo prazo, acesso e preservação de conteúdo digital.\u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\n\u003cp\u003eNeste artigo, vamos fazer o setup baseado em uma imagem docker \u003ca href=\"https://hub.docker.com/_/ubuntu/\"\u003eoficial do Ubuntu\u003c/a\u003e e usando o \u003ca href=\"http://tomcat.apache.org/\"\u003eTomcat\u003c/a\u003e para rodar o DSpace conforme as instruções do \u003ca href=\"https://wiki.duraspace.org/display/DSDOC6x/Installing+DSpace\"\u003eguia de instalação\u003c/a\u003e.\u003c/p\u003e","title":"Como implementar o DSpace em um WebApp Container no Azure"},{"content":"Introdução O objetivo deste artigo é demonstrar sobre o setup do Apache Guacamole no Azure abordando os detalhes de arquitetura, segurança e disponibilidade.\nO Apache Guacamole é um “remote desktop gateway clientless” com suporte aos protocolos mais utilizados como SSH, RDP e VNC. É chamado de clientless pois permite o uso sem a necessidade de utilização da plugins ou clientes extras, sendo utilizado diretamente pelo seu browser.\nArquitetura A ilustração abaixo se refere à arquitetura sugerida. Esta arquitetura contempla um balanceador de carga público que recebe os acessos externos e direciona para duas máquinas virtuais na camada web. A camada web se comunica com a camada de dados onde temos um banco de dados MySQL responsável por armazenar as informações de login, acessos e conexões.\nO uso do Availability Set garante o SLA de 99.95% para as máquinas virtuais e o uso do Azure Database for MySQL, um banco de dados como serviço gerenciado, escalável e altamente disponível garante o SLA de 99.99%.\nDeployment do ambiente Abaixo serão descritos os comandos do Azure CLI que podem ser usados para criar o ambiente. Além de servir como uma documentação sobre os serviços que foram implantados, são uma boa prática de infraestrutura como código.\nInstalação do Azure CLI O Azure CLI é a ferramenta que permite o gerenciamento de recursos do Azure via linha de comandos. Ela é um pré-requisito para este tutorial e neste link você encontra as informações sobre como realizar a instalação.\nCriação do Resource Group Uma vez que você já tenha o AZ CLI instalado, vamos aos comandos. A primeira coisa a fazer é rodar o comando “az login” que irá permitir que você se autentique com sua conta do Azure. Será gerado um código e solicitado que você acesse https://microsoft.com/devicelogin para informá-lo.\nAssim que concluir esta etapa, você já estará autenticado em sua assinatura do Azure e pronto para começar a executar os comandos.\nuser@mydesktop:~$ az group create \\ --name rg-guacamole-demo \\ --location eastus Criação do serviço do MySQL user@mydesktop:~$ az mysql server create \\ --resource-group rg-guacamole-demo \\ --name guacamoledemodb \\ --location eastus \\ --admin-user guacadbadminuser \\ --admin-password \u0026#39;Password01@2018!\u0026#39; \\ --performance-tier Basic \\ --compute-units 50 \\ --storage-size 51200 \\ --ssl-enforcement Disabled Criação da regra de firewall para o MySQL user@mydesktop:~$ az mysql server create \\ --resource-group rg-guacamole-demo \\ --name guacamoledemodb \\ --location eastus \\ --admin-user guacadbadminuser \\ --admin-password \u0026#39;Password01@2018!\u0026#39; \\ --performance-tier Basic \\ --compute-units 50 \\ --storage-size 51200 \\ --ssl-enforcement Disabled user@mydesktop:~$ az mysql server firewall-rule create \\ --resource-group rg-guacamole-demo \\ --server guacamoledemodb \\ --name AllowYourIP \\ --start-ip-address 0.0.0.0 \\ --end-ip-address 255.255.255.255 Após setup e testes iniciais, é importante remover esta regra a deixar habilitado apenas a flag que permite comunicação do serviço do MySQL apenas com serviços do Azure:\nCriação da VNET user@mydesktop:~$ az network vnet create \\ --resource-group rg-guacamole-demo \\ --name myVnet \\ --address-prefix 10.0.0.0/16 \\ --subnet-name mySubnet \\ --subnet-prefix 10.0.1.0/24 Criação do Availability Set user@mydesktop:~$ az vm availability-set create \\ --resource-group rg-guacamole-demo \\ --name guacamoleAvSet \\ --platform-fault-domain-count 2 \\ --platform-update-domain-count 3 Criação das VMs user@mydesktop:~$ for i in `seq 1 2`; do az vm create \\ --resource-group rg-guacamole-demo \\ --name Guacamole-VM$i \\ --availability-set guacamoleAvSet \\ --size Standard_DS1_v2 \\ --image Canonical:UbuntuServer:16.04-LTS:latest \\ --admin-username guacauser \\ --generate-ssh-keys \\ --no-wait \\ --vnet-name myVnet \\ --subnet mySubnet \\ --nsg NSG-Guacamole done Após a execução deste bloco de comandos, serão criadas duas máquinas virtuais inseridas dentro do Availability Set criado previamente e com as características definidas nos comandos executados.\nImportante ressaltar que as chaves SSH serão armazenadas no diretório ~/.ssh do host onde os comandos foram executados e para conectar nas VMs basta rodar o comando abaixo:\nuser@mydesktop:~$ ssh -i .ssh/id_rsa guacauser@\u0026lt;ip\u0026gt; Criação do Network Security Group user@mydesktop:~$ az network nsg rule create \\ --resource-group rg-guacamole-demo \\ --nsg-name NSG-Guacamole \\ --name web-rule \\ --access Allow \\ --protocol Tcp \\ --direction Inbound \\ --priority 200 \\ --source-address-prefix Internet \\ --source-port-range \u0026#34;*\u0026#34; \\ --destination-address-prefix \u0026#34;*\u0026#34; \\ --destination-port-range 80 Neste caso, estamos criando a regra de liberar o acesso na porta 80 (HTTP) à partir da Internet. O acesso na porta 22 (SSH) é criado automaticamente. Estas configurações devem ser revisadas futuramente para aumentar a segurança oferecendo um acesso mais restrito sobre a origem destas conexões ao Apache Guacamole.\nInstalação dos pacotes relacionados e devidas configurações Neste ponto iremos usar um arquivo json que irá fazer uma chamada à um shell script e executar a instalação de pacotes necessários no Linux. Abaixo os comandos à serem executados:\nuser@mydesktop:~$ for i in `seq 1 2`; do az vm extension set \\ --resource-group rg-guacamole-demo \\ --vm-name Guacamole-VM$i \\ --name customScript --publisher Microsoft.Azure.Extensions \\ --settings ./guac.json done Conteúdo do arquivo JSON (guac.json) { \u0026#34;fileUris\u0026#34;: [\u0026#34;https://ricardomartins9888.blob.core.windows.net/arquivos/guac-install.sh\u0026#34;], \u0026#34;commandToExecute\u0026#34;: \u0026#34;./guac-install.sh\u0026#34; } Caso o script guac-install.sh esteja armazenado em outra url, alterar no campo correspondente acima.\nConteúdo do script shell (guac-install.sh) #!/bin/bash # Version numbers of Guacamole and MySQL Connector/J to download GUACVERSION=\u0026#34;0.9.14\u0026#34; # Update apt so we can search apt-cache for newest tomcat version supported apt update # Get MySQL root password and Guacamole User password guacdbuserpassword=\u0026#34;Password01@2018!\u0026#34; guacmysqlhostname=\u0026#34;guacamoledemodb.mysql.database.azure.com\u0026#34; guacmysqlport=\u0026#34;3306\u0026#34; guacmysqldatabase=\u0026#34;guacamoledb\u0026#34; guacmysqlusername=\u0026#34;guacadbadminuser@guacamoledemodb\u0026#34; # Ubuntu and Debian have different package names for libjpeg # Ubuntu and Debian versions have differnet package names for libpng-dev source /etc/os-release if [[ \u0026#34;${NAME}\u0026#34; == \u0026#34;Ubuntu\u0026#34; ]] then JPEGTURBO=\u0026#34;libjpeg-turbo8-dev\u0026#34; if [[ \u0026#34;${VERSION_ID}\u0026#34; == \u0026#34;16.04\u0026#34; ]] then LIBPNG=\u0026#34;libpng12-dev\u0026#34; else LIBPNG=\u0026#34;libpng-dev\u0026#34; fi elif [[ \u0026#34;${NAME}\u0026#34; == *\u0026#34;Debian\u0026#34;* ]] then JPEGTURBO=\u0026#34;libjpeg62-turbo-dev\u0026#34; if [[ \u0026#34;${PRETTY_NAME}\u0026#34; == *\u0026#34;stretch\u0026#34;* ]] then LIBPNG=\u0026#34;libpng-dev\u0026#34; else LIBPNG=\u0026#34;libpng12-dev\u0026#34; fi else echo \u0026#34;Unsupported Distro - Ubuntu or Debian Only\u0026#34; exit fi # Tomcat 8.0.x is End of Life, however Tomcat 7.x is not... # If Tomcat 8.5.x or newer is available install it, otherwise install Tomcat 7 if [[ $(apt-cache show tomcat8 | egrep \u0026#34;Version: 8.[5-9]\u0026#34; | wc -l) -gt 0 ]] then TOMCAT=\u0026#34;tomcat8\u0026#34; else TOMCAT=\u0026#34;tomcat7\u0026#34; fi # Uncomment to manually force a tomcat version #TOMCAT=\u0026#34;\u0026#34; # Install features apt -y install build-essential libcairo2-dev ${JPEGTURBO} ${LIBPNG} libossp-uuid-dev libavcodec-dev libavutil-dev \\ libswscale-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev \\ libvorbis-dev libwebp-dev mysql-client mysql-common mysql-utilities libmysql-java ${TOMCAT} freerdp-x11 \\ ghostscript wget dpkg-dev # If apt fails to run completely the rest of this isn\u0026#39;t going to work... if [ $? -ne 0 ]; then echo \u0026#34;apt failed to install all required dependencies\u0026#34; exit fi # Set SERVER to be the preferred download server from the Apache CDN SERVER=\u0026#34;http://apache.org/dyn/closer.cgi?action=download\u0026amp;filename=guacamole/${GUACVERSION}\u0026#34; # Download Guacamole Server wget -O guacamole-server-${GUACVERSION}.tar.gz ${SERVER}/source/guacamole-server-${GUACVERSION}.tar.gz if [ $? -ne 0 ]; then echo \u0026#34;Failed to download guacamole-server-${GUACVERSION}.tar.gz\u0026#34; echo \u0026#34;${SERVER}/source/guacamole-server-${GUACVERSION}.tar.gz\u0026#34; exit fi # Download Guacamole Client wget -O guacamole-${GUACVERSION}.war ${SERVER}/binary/guacamole-${GUACVERSION}.war if [ $? -ne 0 ]; then echo \u0026#34;Failed to download guacamole-${GUACVERSION}.war\u0026#34; echo \u0026#34;${SERVER}/binary/guacamole-${GUACVERSION}.war\u0026#34; exit fi # Download Guacamole authentication extensions wget -O guacamole-auth-jdbc-${GUACVERSION}.tar.gz ${SERVER}/binary/guacamole-auth-jdbc-${GUACVERSION}.tar.gz if [ $? -ne 0 ]; then echo \u0026#34;Failed to download guacamole-auth-jdbc-${GUACVERSION}.tar.gz\u0026#34; echo \u0026#34;${SERVER}/binary/guacamole-auth-jdbc-${GUACVERSION}.tar.gz\u0026#34; exit fi # Extract Guacamole files tar -xzf guacamole-server-${GUACVERSION}.tar.gz tar -xzf guacamole-auth-jdbc-${GUACVERSION}.tar.gz # Make directories mkdir -p /etc/guacamole/lib mkdir -p /etc/guacamole/extensions # Install guacd cd guacamole-server-${GUACVERSION} ./configure --with-init-dir=/etc/init.d make make install ldconfig systemctl enable guacd cd .. # Get build-folder BUILD_FOLDER=$(dpkg-architecture -qDEB_BUILD_GNU_TYPE) # Move files to correct locations mv guacamole-${GUACVERSION}.war /etc/guacamole/guacamole.war ln -s /etc/guacamole/guacamole.war /var/lib/${TOMCAT}/webapps/ ln -s /usr/local/lib/freerdp/guac*.so /usr/lib/${BUILD_FOLDER}/freerdp/ ln -s /usr/share/java/mysql-connector-java.jar /etc/guacamole/lib/ cp guacamole-auth-jdbc-${GUACVERSION}/mysql/guacamole-auth-jdbc-mysql-${GUACVERSION}.jar /etc/guacamole/extensions/ # Configure guacamole.properties echo \u0026#34;mysql-hostname: $guacmysqlhostname\u0026#34; \u0026gt;\u0026gt; /etc/guacamole/guacamole.properties echo \u0026#34;mysql-port: $guacmysqlport\u0026#34; \u0026gt;\u0026gt; /etc/guacamole/guacamole.properties echo \u0026#34;mysql-database: $guacmysqldatabase\u0026#34; \u0026gt;\u0026gt; /etc/guacamole/guacamole.properties echo \u0026#34;mysql-username: $guacmysqlusername\u0026#34; \u0026gt;\u0026gt; /etc/guacamole/guacamole.properties echo \u0026#34;mysql-password: $guacdbuserpassword\u0026#34; \u0026gt;\u0026gt; /etc/guacamole/guacamole.properties # restart tomcat service ${TOMCAT} restart # Create guacamole_db and grant guacamole_user permissions to it # SQL code SQLCODE=\u0026#34; create database $guacmysqldatabase; GRANT SELECT,INSERT,UPDATE,DELETE ON $guacmysqldatabase.* TO \u0026#39;$guacmysqlusername\u0026#39;@\u0026#39;*\u0026#39;; flush privileges;\u0026#34; # Execute SQL code echo $SQLCODE | mysql -h $guacmysqlhostname -u $guacmysqlusername -p$guacdbuserpassword # Add Guacamole schema to newly created database cat guacamole-auth-jdbc-${GUACVERSION}/mysql/schema/*.sql | mysql -h $guacmysqlhostname -u $guacmysqlusername -p$guacdbuserpassword $guacmysqldatabase # Ensure guacd is started service guacd start # Cleanup rm -rf guacamole-* echo -e \u0026#34;Installation Complete\\nhttp://localhost:8080/guacamole/\\nDefault login guacadmin:guacadmin\\nBe sure to change the password.\u0026#34; Alteração para chamar o Guacamole diretamente no “/” ao invés de “/guacamole” Por padrão o acesso no Guacamole se dá acessando o IP do servidor /guacamole. Por exemplo, http://10.20.30.40/guacamole. O objetivo aqui é permitir que o acesso seja feito diretamente em http://10.20.30.40\nuser@mydesktop:~$ for i in `seq 1 2`; do az vm run-command invoke -g rg-guacamole-demo -n Guacamole-VM$i \\ --command-id RunShellScript \\ --scripts \u0026#34;sudo /bin/rm -rf /var/lib/tomcat7/webapps/ROOT/* \u0026amp;\u0026amp; sudo /bin/cp -pr /var/lib/tomcat7/webapps/guacamole/* /var/lib/tomcat7/webapps/ROOT/\u0026#34; done Alteração na porta do Tomcat (de 8080 para 80) Por padrão o Tomcat trabalha escutando requisições na porta 8080. Aqui é feita a alteração para que ele escute por requisições na porta 80.\nuser@mydesktop:~$ for i in `seq 1 2`; do az vm run-command invoke -g rg-guacamole-demo -n Guacamole-VM$i \\ --command-id RunShellScript --scripts \u0026#34;sudo sed -i.bak \u0026#39;s/#AUTHBIND=no/AUTHBIND=yes\u0026#39;/g /etc/default/tomcat7\u0026#34; az vm run-command invoke -g rg-guacamole-demo -n Guacamole-VM$i \\ --command-id RunShellScript --scripts \u0026#34;sudo sed -i.bak \u0026#39;s|\u0026lt;Connector port=\\\u0026#34;8080\\\u0026#34;|\u0026lt;Connector port=\\\u0026#34;80\\\u0026#34;|g\u0026#39; /etc/tomcat7/server.xml\u0026#34; az vm run-command invoke -g rg-guacamole-demo -n Guacamole-VM$i \\ --command-id RunShellScript --scripts \u0026#34;sudo systemctl restart tomcat7\u0026#34; done Criação do Balanceador de Carga A utilização de um balanceador de carga irá distribuir o acesso entre as duas VMs e permitir que no caso de falha em uma delas, isso seja transparente para o usuário. Neste exemplo estará sendo criado um balanceador de carga público, no entanto nada impede que seja utilizado um balanceador de carga interno (privado).\nA criação do balanceador de carga envolve alguns passos, como a criação do IP público que ele terá, seu nome DNS, healthprobe, regra de balanceamento e regras de nat interno (opcional). Nos próximos tópicos serão descritos cada um dos passos.\nCriação do IP Público do Balanceador de Carga user@mydesktop:~$ az network public-ip create \\ -g rg-guacamole-demo \\ -n lbguacamoledemopip \\ -l eastus \\ --dns-name loadbalancerguaca \\ --allocation-method static \\ --idle-timeout 4 Criação do Balanceador de Carga user@mydesktop:~$ az network lb create \\ -g rg-guacamole-demo \\ --name lbguacademo \\ -l eastus \\ --public-ip-address lbguacamoledemopip \\ --backend-pool-name backendpool \\ --frontend-ip-name lbguacafrontend Criação do Healthprobe user@mydesktop:~$ az network lb probe create \\ --resource-group rg-guacamole-demo \\ --lb-name lbguacademo \\ --name healthprobe \\ --protocol \u0026#34;http\u0026#34; \\ --port 80 \\ --path / --interval 15 Criação da regra de balanceamento user@mydesktop:~$ az network lb rule create \\ --resource-group rg-guacamole-demo \\ --lb-name lbguacademo \\ --name lbrule \\ --protocol tcp \\ --frontend-port 80 \\ --backend-port 80 \\ --frontend-ip-name lbguacafrontend \\ --backend-pool-name backendpool \\ --probe-name healthprobe \\ --load-distribution SourceIPProtocol Inserção das máquinas virtuais na regra de balanceamento user@mydesktop:~$ az network nic ip-config update \\ --name ipconfigGuacamole-VM1 \\ --nic-name Guacamole-VM1VMNic \\ --resource-group rg-guacamole-demo \\ --lb-address-pools backendpool \\ --lb-name lbguacademo user@mydesktop:~$ az network nic ip-config update \\ --name ipconfigGuacamole-VM2 \\ --nic-name Guacamole-VM2VMNic \\ --resource-group rg-guacamole-demo \\ --lb-address-pools backendpool \\ --lb-name lbguacademo Criação das regras de INAT As regras de INAT irão permitir que as chamadas feitas diretamente no endereço do balanceador de carga direcionem para cada servidor por baixo dele dependendo da porta chamada.\nNeste caso, ao realizar a chamadda na porta 21 do balanceador, direciona para a porta a VM1 na porta 22 (SSH) e a chamada na porta 23 do balanceador direciona para a VM2 na porta 22 (SSH).\nuser@mydesktop:~$ az network lb inbound-nat-rule create \\ --resource-group rg-guacamole-demo \\ --lb-name lbguacademo \\ --name ssh1 \\ --protocol tcp \\ --frontend-port 21 \\ --backend-port 22 \\ --frontend-ip-name lbguacafrontend user@mydesktop:~$ az network lb inbound-nat-rule create \\ --resource-group rg-guacamole-demo \\ --lb-name lbguacademo \\ --name ssh2 \\ --protocol tcp \\ --frontend-port 23 \\ --backend-port 22 \\ --frontend-ip-name lbguacafrontend user@mydesktop:~$ az network nic ip-config inbound-nat-rule add \\ --inbound-nat-rule ssh1 \\ --ip-config-name ipconfigGuacamole-VM1 \\ --nic-name Guacamole-VM1VMNic \\ --resource-group rg-guacamole-demo \\ --lb-name lbguacademo user@mydesktop:~$ az network nic ip-config inbound-nat-rule add \\ --inbound-nat-rule ssh2 \\ --ip-config-name ipconfigGuacamole-VM2 \\ --nic-name Guacamole-VM2VMNic \\ --resource-group rg-guacamole-demo \\ --lb-name lbguacademo Com isso, você pode alterar a regra default do NSG criado anteriormente que possui a porta 22 exposta para a internet com o comando abaixo:\nuser@mydesktop:~$ az network nsg rule delete \\ --resource-group rg-guacamole-demo \\ --nsg-name NSG-Guacamole \\ --name default-allow-ssh Finalizando o setup Após completar todos os passos anteriores, já teremos finalizado a setup do Apache Guacamole. Para acessá-lo, basta ir até o endereço http://loadbalancerguaca.eastus.cloudapp.azure.com/ e informar o usuário e senha padrão da instalação (guacadmin/guacadmin)\n","permalink":"http://ricardomartins.com.br/implementando-o-apache-guacamole-no-azure/","summary":"\u003ch1 id=\"introdução\"\u003eIntrodução\u003c/h1\u003e\n\u003cp\u003eO objetivo deste artigo é demonstrar sobre o setup do \u003ca href=\"http://guacamole.apache.org/\"\u003eApache Guacamole\u003c/a\u003e no Azure abordando os detalhes de arquitetura, segurança e disponibilidade.\u003c/p\u003e\n\u003cp\u003eO Apache Guacamole é um “\u003cem\u003eremote desktop gateway clientless\u003c/em\u003e” com suporte aos protocolos mais utilizados como SSH, RDP e VNC. É chamado de \u003cem\u003eclientless\u003c/em\u003e pois permite o uso sem a necessidade de utilização da plugins ou clientes extras, sendo utilizado diretamente pelo seu browser.\u003c/p\u003e\n\u003ch1 id=\"arquitetura\"\u003eArquitetura\u003c/h1\u003e\n\u003cp\u003eA ilustração abaixo se refere à arquitetura sugerida. Esta arquitetura contempla um balanceador de carga público que recebe os acessos externos e direciona para duas máquinas virtuais na camada web. A camada web se comunica com a camada de dados onde temos um banco de dados MySQL responsável por armazenar as informações de login, acessos e conexões.\u003c/p\u003e","title":"Implementando o Apache Guacamole no Azure"},{"content":"Este é um post rápido mostrando uma forma básica de configuração do LVM no Linux. É resultado de um laboratório que estive fazendo enquanto estudava para o exame LFCS.\nVou assumir que você já tenha uma VM criada e rodando no Azure. Caso você não tenha uma VM criada, pode seguir este tutorial.\nCom a VM criada, o que você tem a fazer é criar um novo disco de dados e anexá-lo à sua VM. Neste link existe a documentação sobre como fazer isto, e você pode também ver este vídeo onde eu gravei especialmente para este post.\nNote que crio um disco de 50GB chamado lvmdiskL\n[/wp-content/uploads/2018/03/lvmdisk.mp4](/wp-content/uploads/2018/03/lvmdisk.mp4)Em seguida, vamos aos comandos que você precisa executar: sudo cfdisk /dev/sdc sudo pvcreate /dev/sdc1 sudo pvdisplay sudo vgcreate test_vg /dev/sdc1 sudo vgdisplay sudo lvcreate -L 5G -n lv01 test_vg sudo lvdisplay sudo mkfs.ext4 /dev/mapper/test_vg-lv01 sudo mkdir /lvm sudo mount /dev/mapper/test_vg-lv01 /lvm cd /lvm df -h . sudo umount /lvm sudo lvextend -L +3G /dev/mapper/test_vg-lv01 /dev/sdc1 sudo lvdisplay sudo e2fsck -f /dev/mapper/test_vg-lv01 sudo resize2fs /dev/mapper/test_vg-lv01 sudo mount /dev/mapper/test_vg-lv01 /lvm cd /lvm df -h . Explicando as linhas:\nLinha 1: Criando a partição no disco /dev/sdc. Como por padrão a VM já vem com um disco de sistema (sda) e um disco de dados (sdb), o terceiro disco associado à vm segue a ordem e fica alocado em sdc. Para listar os discos, você pode executa # ls /dev/sd*. Neste caso, vamos criar uma partição primária de 10G do tipo Linux LVM (8e)\nLinhas 3 e 4: Criando o volume físico na partição 1 criada e verificando o resultado;\nLinhas 6 e 7: Criando o grupo de volumes chamado test_vg e verificando o resultado;\nLinhas 9 e 10: Criando o volume lógico com o tamanho de 5G chamado lv01 no grupo de volumes chamado test_vg e verificando o resultado;\nLinha 12: Criando o sistema de arquivos ext4 no dispositivo de bloco LVM criado (/dev/mapper/test_vg-lv01). Saiba mais sobre device mapper aqui;\nLinhas 14 e 15: Criando o diretório /lvm e montando o dispositivo de bloco do LVM nele;\nLinhas 17, 18 e 19: Entrando no diretório /lvm para verificar que foi criado com o tamanho especificado e em seguida desmontando o volume;\nLinhas 21 e 22: Estendendo o tamanho do LVM em 3GB e verificando;\nLinhas 24 e 25: Rodando o fsck para que seja possiível redimensionar o dispositivo de bloco. É obrigatória a execução do fsck antes do resize;\nLinha 27: Montando novamente o dispositivo de bloco do LVM em /lvm\nLinhas 29 e 30: Entrando no diretório para verificar que o resize foi feito corretamente.\nVocê pode ver a execução dos comandos em vídeo também:\nNote que neste caso, criamos o LVM usando um único disco, trabalhando apenas com as partições nele. No entanto existem cenários onde você deve trabalhar com um LVM usando mais de um disco. Nestes casos, você cria o volumes físico de cada disco (linhas 3 e 4), e cria o grupo de volumes (linhas 6 e 7) usando os demais discos. No nosso caso seria algo assim: vgcreate test_vg /dev/sdc1 /dev/sdd1, onde o /dev/sdd1 é a partição 1 de um segundo disco que poderia ser usado.\nDa mesma forma, podemos ter diversos volumes lógicos, utilizando o grupo de volumes. Apenas para eslcarecer o conceito, veja imagem abaixo:\nAté a próxima.\n","permalink":"http://ricardomartins.com.br/configurando-lvm-no-linux-rodando-no-azure/","summary":"\u003cp\u003eEste é um post rápido mostrando uma forma básica de configuração do LVM no Linux. É resultado de um laboratório que estive fazendo enquanto estudava para o exame \u003ca href=\"https://training.linuxfoundation.org/certification/lfcs\"\u003eLFCS\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eVou assumir que você já tenha uma VM criada e rodando no Azure. Caso você não tenha uma VM criada, pode seguir \u003ca href=\"https://docs.microsoft.com/en-us/azure/virtual-machines/linux/tutorial-manage-vm\"\u003eeste tutorial\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eCom a VM criada, o que você tem a fazer é criar um novo disco de dados e anexá-lo à sua VM. \u003ca href=\"https://docs.microsoft.com/en-us/azure/virtual-machines/linux/attach-disk-portal\"\u003eNeste link\u003c/a\u003e existe a documentação sobre como fazer isto, e você pode também ver este vídeo onde eu gravei especialmente para este post.\u003c/p\u003e","title":"Configurando LVM no Linux rodando no Azure"},{"content":"Este é um post rápido apenas para compartilhar uma forma de habilitar o uso de SSL para uma aplicação que esteja rodando em um container Docker.\nDigamos que você tem uma aplicação docker exposta na porta 80 do seu servidor e precisa habilitar SSL para ela. Existem algumas maneiras de fazer isso, inclusive eu estive dando uma olhada nas opções abaixo:\nhttps://github.com/SteveLTN/https-portal https://github.com/MarvAmBass/docker-nginx-ssl-secure São opções bastante interessantes, mas eu estava em busca de algo mais rápido para implementar. Então aqui vai a dica.\nObter um SSL Nesse caso as opções eram:\nComprar um certificado; Usar Let’s Encrypt; Usar CloudFlare. Logo de cara a primeira opção já deixa de ser uma opção 😀\nO Let’s Encrypt é uma excelente opção, mas acho chato ter que ficar renovando a cada 3 meses. Existem scripts pra automatizar isso eu sei, mas é mais uma variável no meio de tudo isso.\nEntão para isso eu usei o CloudFlare. Eles possuem um Free Universal SSL, que você pode usar gratuitamente. Dá uma olhada em: https://support.cloudflare.com/hc/en-us/articles/200170516-How-do-I-add-SSL-to-my-site- De quebra ainda dá pra habilitar a CDN deles e ganhar proteção extra gratuitamente também. 😀\nUma vez que você já fez o cadastro no CloudFlare, habilitou seu DNS neles e finalizou essa parte, você pode baixar o arquivo key e o crt. Feito isso vamos lá.\nConfigurando o Nginx Neste caso eu optei por usar o Nginx fazendo proxy_pass para o Docker. A única alteração no Docker foi a porta onde a aplicação estava exposta, uma vez que estava na 80 e agora defini que fosse exposta na porta 8080. Abaixo os comandos para instalação e configuração do Nginx no Ubuntu:\nInstalando os pacotes:\nsudo apt-get install nginx sudo systemctl enable nginx Criando o arquivo de configuração:\nvim /etc/nginx/sites-available/demoapp Definindo as configurações:\nNote que coloquei o Nginx escutando na porta 80, respondendo pelo nome demoapp.azurelab.com.br. Todas as requests que chegarem na porta 80, são automaticamente redirecionadas para a porta 443. Mais ao fim, configuro o proxy_pass de modo que ele repasse as conexões para http://localhost:8080, que é a porta onde está rodando a aplicação Docker.\nserver { listen 80; server_name demoapp.azurelab.com.br; return 301 https://$server_name$request_uri; } server { listen 443; server_name demoapp.azurelab.com.br; ssl_certificate /etc/nginx/cert.crt; ssl_certificate_key /etc/nginx/cert.key; ssl on; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; location / { proxy_pass http://localhost:8080; proxy_read_timeout 90; proxy_redirect http://localhost:8080 https://demoapp.azurelab.com.br; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } Finalizando os ajustes, criando o link para os sites habilitados e removendo a configuração default:\nln -s /etc/nginx/sites-available/demoapp /etc/nginx/sites-enabled/ rm -f /etc/nginx/sites-enabled/default Fazendo restart do serviço:\nsudo systemctl restart nginx Pronto, agora temos as requisições sendo redirecionadas para HTTPS e fazendo o proxy_pass para a porta 8080 onde está exposta a aplicação Docker.\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/docker-e-certificados-ssl/","summary":"\u003cp\u003eEste é um post rápido apenas para compartilhar uma forma de habilitar o uso de SSL para uma aplicação que esteja rodando em um container Docker.\u003c/p\u003e\n\u003cp\u003eDigamos que você tem uma aplicação docker exposta na porta 80 do seu servidor e precisa habilitar SSL para ela. Existem algumas maneiras de fazer isso, inclusive eu estive dando uma olhada nas opções abaixo:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SteveLTN/https-portal\"\u003ehttps://github.com/SteveLTN/https-portal\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MarvAmBass/docker-nginx-ssl-secure\"\u003ehttps://github.com/MarvAmBass/docker-nginx-ssl-secure\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSão opções bastante interessantes, mas eu estava em busca de algo mais rápido para implementar. Então aqui vai a dica.\u003c/p\u003e","title":"Docker e certificados SSL"},{"content":"Recentemente foi lançado um plugin do Azure Monitor para o Grafana que eu resolvi testar e escrever este post.\nEu segui as orientações deste link e neste artigo vou entrar em detalhes do procedimento.\nCriando a VM Criando o Resource Group rmartins@jarvis:~$ az group create --name rg-grafana --location eastus Criando a VM rmartins@jarvis:~$ az vm create --resource-group rg-grafana --name grafana-server --image UbuntuLTS --location eastus --generate-ssh-keys Abrindo a porta correspondente no NSG O Grafana utiliza a porta TCP 3000, portanto é necessário liberar esta porta no Network Security Group da VM criada de modo a liberar o acesso à VM nesta porta.\nrmartins@jarvis:~$ az network nsg list -g rg-grafana -o table Location Name ProvisioningState ResourceGroup ResourceGuid ---------- ----------------- ------------------- --------------- ------------------------------------ eastus grafana-serverNSG Succeeded rg-grafana 9bfbd4f6-95ad-48c9-a3b7-d68af0d707f5 rmartins@jarvis:~$ az network nsg rule create --resource-group rg-grafana --nsg-name grafana-serverNSG --name allow-grafana --description \u0026#34;Allow access to port 3000 for HTTPS\u0026#34; --access Allow --protocol Tcp --direction Inbound --priority 102 --source-address-prefix \u0026#34;*\u0026#34; --source-port-range \u0026#34;*\u0026#34; --destination-address-prefix \u0026#34;*\u0026#34; --destination-port-range \u0026#34;3000\u0026#34; Conectando na VM rmartins@jarvis:~$ az vm show --resource-group rg-grafana --name grafana-server -d --query publicIps -otsv rmartins@jarvis:~$ ssh rmartins@[PublicIP] -i /home/rmartins/.ssh/id_rsa Instalando o grafana Procedimento de instalação seguindo este tutorial.\nAdicionar repositório rmartins@grafana-server:~$ sudo sh -c \u0026#39;echo \u0026#34;deb https://packagecloud.io/grafana/stable/debian/ jessie main\u0026#34; \u0026gt;\u0026gt; /etc/apt/sources.list\u0026#39; Adicionar chave do Package Cloud rmartins@grafana-server:~$ sudo curl https://packagecloud.io/gpg.key | sudo apt-key add - Atualizar repositórios rmartins@grafana-server:~$ sudo apt-get update Instalar Grafana rmartins@grafana-server:~$ sudo apt-get install grafana Inicializar Grafana rmartins@grafana-server:~$ sudo systemctl daemon-reload rmartins@grafana-server:~$ sudo systemctl start grafana-server rmartins@grafana-server:~$ sudo systemctl status grafana-server Habilitar no boot rmartins@grafana-server:~$ sudo systemctl enable grafana-server.service Conectar no serviço Usar o endereço IP público da VM criada apontando para o a porta 3000 e utilizar o usuário e senha que vem configurados por padrão. Usuário admin e senha admin.\nUma vez verificado que o acesso está ok, vamos ao próximo passo que é a instalação do plugin do Azure Monitor\nInstalando o Azure Monitor Plugin A instalação do plugin será feita seguindo esta documentação.\nUma vez conectado na VM, rodar o comando abaixo:\nrmartins@grafana-server:~$ sudo grafana-cli plugins install grafana-azure-monitor-datasource Em seguida reiniciar o serviço do grafana:\nrmartins@grafana-server:~$ sudo systemctl restart grafana-server Após isto será possível verificar que o plugin já foi instalado e já aparece como um datasource:\nCriando o service principal O próximo passo é criar um service principal para o plugin de modo que ele possa se conectar ao Azure Active Directory. Para isto basta seguir as intruções deste link.\nAo registrar a aplicação, no meu caso ficou conforme abaixo:\nApós registrar a aplicação, vamos pegar as informações de Application Id e Authentication Key. Para isto, ainda dentro do App Registration do AAD, vamos procurar pela aplicação criada:\nApós clicar na aplicação, basta copiar o Application ID, neste caso, addd1254-cb9b-4589-a99c-ac382ebd33ba\nPara gerar a Authentication Key, basta ir em Keys dentro de All Settings:\nAo clicar em salvar, a key será gerada e exibida:\nNeste caso, 3NZ4F2FBwm6h8sfF48dE2Owg3si7xHSWtEAnBwAKqjk=\nAgora precisamos do Directory ID do AAD, que é obtido nas propriedades do AAD:\n* Directory ID omitido por questões de segurança\nPor fim, vamos associar a role de Reader para a nossa aplicação. Para isso vá na sua subscription, em seguida acesse o IAM, escolha a opção para adicionar apontando a role Reader e escolha a aplicação criada:\nFinalizando a configuração no Grafana Agora vamos ajustar as configurações no Grafana, adicionando o datasource:\nEm seguida vamos preencher com as informações necessárias:\n– Subscription ID\n– TenantID (ID do AAD)\n– ClientID (Application ID)\n– Client Secret (Key)\n* Neste caso não estou usando o Application Insights. Caso esteja, basta adicionar os dados necessários.\nApós salvar é feito um teste. Se estiver tudo ok você deve ver algo assim:\nCriando o primeiro dashboard Agora vamos ao próximo passo:\nTipo: Graph\nClique em Panel Tile:\nE ao clicar em Edit esta teremos as opções abaixo:\nEm Metrics, você verá que o Azure Monitor foi adicionado como DataSource default. Agora basta criar o gráfico para o recurso desejado:\nNeste caso peguei dados de uso de CPU de duas VMs e salvei o dashboard como CPU VMs:\nVisualizando:\nEspero que tenha sido útil!\n","permalink":"http://ricardomartins.com.br/coletando-informacoes-do-azure-com-grafana/","summary":"\u003cp\u003eRecentemente \u003ca href=\"https://azure.microsoft.com/en-us/blog/monitor-azure-services-and-applications-using-grafana/\"\u003efoi lançado um plugin do Azure Monitor para o Grafana\u003c/a\u003e que eu resolvi testar e escrever este post.\u003c/p\u003e\n\u003cp\u003eEu segui as orientações \u003ca href=\"https://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/monitor-send-to-grafana\"\u003edeste link\u003c/a\u003e e neste artigo vou entrar em detalhes do procedimento.\u003c/p\u003e\n\u003ch2 id=\"criando-a-vm\"\u003eCriando a VM\u003c/h2\u003e\n\u003ch3 id=\"criando-o-resource-group\"\u003eCriando o Resource Group\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ermartins@jarvis:~$ az group create --name rg-grafana --location eastus\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"criando-a-vm-1\"\u003eCriando a VM\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ermartins@jarvis:~$ az vm create --resource-group rg-grafana --name grafana-server --image UbuntuLTS --location eastus --generate-ssh-keys\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"abrindo-a-porta-correspondente-no-nsg\"\u003eAbrindo a porta correspondente no NSG\u003c/h3\u003e\n\u003cp\u003eO Grafana utiliza a porta TCP 3000, portanto é necessário liberar esta porta no Network Security Group da VM criada de modo a liberar o acesso à VM nesta porta.\u003c/p\u003e","title":"Coletando informações do Azure com Grafana"},{"content":"Recentemente precisei acessar um ambiente para coletar informações sobre VMs e estou compartilhando aqui os comandos usados (pode ser útil no futuro).\nListar subscriptions: az account list Tecnologia - TI AzureCloud 35e10abf-9270-4hse-85ff-3895b959e820 Enabled Tecnologia - Arq AzureCloud 83e30abf-2981-4die-88jw-4095b960e790 Enabled Alternar para determinada subscription: az account set -s 35e10abf-9270-4hse-85ff-3895b959e820 Listar VMs pelo nome, estado de execução, tamanho, tipo de sistema operacional e localização: az vm list --show-details --query \u0026#39;[].{Name:name,PowerState:powerState,VMSize:hardwareProfile.vmSize,OSType:storageProfile.osDisk.osType,Location:location}\u0026#39; -o table Name PowerState VMSize OSType Location ------------ ------------ ----------- -------- ----------- vmexemplo1 VM running Standard_A2 Linux brazilsouth ","permalink":"http://ricardomartins.com.br/coletando-informacoes-de-vms-no-azure/","summary":"\u003cp\u003eRecentemente precisei acessar um ambiente para coletar informações sobre VMs e estou compartilhando aqui os comandos usados (pode ser útil no futuro).\u003c/p\u003e\n\u003ch3 id=\"listar-subscriptions\"\u003eListar subscriptions:\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eaz account list\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTecnologia - TI           AzureCloud   35e10abf-9270-4hse-85ff-3895b959e820  Enabled\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTecnologia - Arq          AzureCloud   83e30abf-2981-4die-88jw-4095b960e790  Enabled\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"alternar-para-determinada-subscription\"\u003eAlternar para determinada subscription:\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eaz account \u003cspan class=\"nb\"\u003eset\u003c/span\u003e -s 35e10abf-9270-4hse-85ff-3895b959e820\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"listar-vms-pelo-nome-estado-de-execução-tamanho-tipo-de-sistema-operacional-e-localização\"\u003eListar VMs pelo nome, estado de execução, tamanho, tipo de sistema operacional e localização:\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eaz vm list --show-details --query \u003cspan class=\"s1\"\u003e\u0026#39;[].{Name:name,PowerState:powerState,VMSize:hardwareProfile.vmSize,OSType:storageProfile.osDisk.osType,Location:location}\u0026#39;\u003c/span\u003e -o table\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eName          PowerState    VMSize       OSType    Location\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e------------  ------------  -----------  --------  -----------\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evmexemplo1    VM running    Standard_A2  Linux   brazilsouth\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e","title":"Coletando informações de VMs no Azure"},{"content":"Dica rápida para você que trabalha com Azure WebApps e já precisou trabalhar com redirecionamentos. O Azure WebApp pode ser configurado em um service plan Windows ou Linux.\nSaiba mais sobre o Azure Service Plan nos links abaixo:\nhttps://azure.microsoft.com/en-us/pricing/details/app-service/plans\nhttps://docs.microsoft.com/en-us/azure/app-service/azure-web-sites-web-hosting-plans-in-depth-overview\nEm cada um dos casos a forma de configurar redirecionamentos é diferente. Para WebApps rodando em Service Plan Windows, que é baseado no IIS você precisa editar o arquivo web.config e em WebApps rodando em Service Plan Linux, baseado no Apache, você precisa editar o arquivo .htaccess.\nNeste exemplo simples, vou mostrar como você faz para fazer um redirecionamento permanente (301) para uma página do facebook por exemplo.\nAo criar o WebApp em ambos os casos (Windows/Linux) ele vai ganhar um endereço no Azure que seria http://ricardolab.azurewebsites.net. Inicialmente é este endereço que vamos redirecionar para uma página no Facebook fictícia, por exemplo, http://www.facebook.com/RicardoLab.\nService Plan Windows Configurar o arquivo web.config conforme abaixo:\n\u0026lt;configuration\u0026gt; \u0026lt;system.webServer\u0026gt; \u0026lt;httpRedirect enabled=\u0026#34;true\u0026#34; destination=\u0026#34;https://www.facebook.com/RicardoLab/\u0026#34; httpResponseStatus=\u0026#34;Permanent\u0026#34;/\u0026gt; \u0026lt;/system.webServer\u0026gt; \u0026lt;/configuration\u0026gt; Service Plan Linux Configurar o arquivo .htaccess conforme abaixo:\nOptions +FollowSymLinks RewriteEngine on RewriteRule (.*) https://www.facebook.com/RicardoLab/ [R=301,L] Pronto, agora quando acessarem http://ricardolab.azurewebsites.net será redirecionado para a página http://www.facebook.com/RicardoLab\nSe quiser trabalhar com domínios customizados não teria problema, funciona da mesma forma.Vamos ver abaixo como usar.\nComo criar um domínio customizado A primeira coisa a se fazer é configurar o domínio customizado para ele responder por ricardolab.com.br. Para fazer isso você deve ajustar seu DNS que pode ser o Azure DNS ou outro qualquer que esteja usando.\nPrimeiro é preciso associar o domínio ricardolab.com.br com ricardolab.azurewebsites.net. Para isso crie um registro do tipo A apontando para o IP público do seu Service Plan e também um registro do tipo TXT apontando para ricardolab.azurewebsites.net.\nEm seguida é preciso associar o subdominio www.ricardolab.com.br apontando para ricardolab.azurewebsites.net Para isso crie um registro do tipo CNAME apontando www.ricardolab.com.br para ricardolab.azurewebsites.net\nApós criar estes registros no seu DNS você irá conseguir adicionar ricardolab.com.br e www.ricardolab.com.br como domínios customizados para o WebApp. Assim, quando alguém acessar estes endereços irá cair no conteúdo de ricardolab.azurewebsites.net.\nPara mais detalhes sobre domínios customizados em WebApps, você pode dar uma olhada na documentação oficial: https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-custom-domain ","permalink":"http://ricardomartins.com.br/redirecionando-dominios-no-azure-webapp/","summary":"\u003cp\u003eDica rápida para você que trabalha com Azure WebApps e já precisou trabalhar com redirecionamentos. O Azure WebApp pode ser configurado em um service plan Windows ou Linux.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSaiba mais sobre o Azure Service Plan nos links abaixo:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://azure.microsoft.com/en-us/pricing/details/app-service/plans\"\u003ehttps://azure.microsoft.com/en-us/pricing/details/app-service/plans\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://docs.microsoft.com/en-us/azure/app-service/azure-web-sites-web-hosting-plans-in-depth-overview\"\u003ehttps://docs.microsoft.com/en-us/azure/app-service/azure-web-sites-web-hosting-plans-in-depth-overview\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eEm cada um dos casos a forma de configurar redirecionamentos é diferente. Para WebApps rodando em Service Plan Windows, que é baseado no IIS você precisa editar o arquivo \u003cstrong\u003eweb.config\u003c/strong\u003e e em WebApps rodando em Service Plan Linux, baseado no Apache, você precisa editar o arquivo \u003cstrong\u003e.htaccess\u003c/strong\u003e.\u003c/p\u003e","title":"Redirecionando domínios no Azure WebApp"},{"content":"Neste post vou mostrar como criar uma VM Linux no Azure, associar três discos nesta VM e em seguida configurar um Raid 0 usando estes discos pelo CLI.\nCriando a VM Criar o resource group:\nrmartins@jarvis:~$ az group create --name rg-labraid --location eastus Criar a máquina virtual na localização EastUS e gerar automaticamente as chaves ssh:\nrmartins@jarvis:~$ az vm create --resource-group rg-labraid --name myVM --image UbuntuLTS --location eastus --generate-ssh-keys Criar três discos de 10GB cada:\nrmartins@jarvis:~$ az disk create -g rg-labraid -n MyDisk1 --size-gb 10 rmartins@jarvis:~$ az disk create -g rg-labraid -n MyDisk2 --size-gb 10 rmartins@jarvis:~$ az disk create -g rg-labraid -n MyDisk3 --size-gb 10 Anexar os três discos na VM:\nrmartins@jarvis:~$ az vm disk attach --vm-name myVM --resource-group rg-labraid --disk MyDisk1 rmartins@jarvis:~$ az vm disk attach --vm-name myVM --resource-group rg-labraid --disk MyDisk2 rmartins@jarvis:~$ az vm disk attach --vm-name myVM --resource-group rg-labraid --disk MyDisk3 Obter o IP público da VM e conectar usando a chave SSH:\nrmartins@jarvis:~$ az vm show --resource-group rg-labraid --name myVM -d --query publicIps -otsv rmartins@jarvis:~$ ssh rmartins@[PublicIP] -i /home/rmartins/.ssh/id_rsa Configurar o Raid Sabendo que a VM já vem com 2 discos (o disco de sistema (sda) e o disco temporário (sdb), podemos rodar o comando abaixo apenas para identificar os novos discos (sdc,sdd e sde):\nrmartins@MyVM:~$ sudo fdisk -l Disk /dev/sdb: 7 GiB, 7516192768 bytes, 14680064 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x4df5a995 Device Boot Start End Sectors Size Id Type /dev/sdb1 128 14678015 14677888 7G 7 HPFS/NTFS/exFAT Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: dos Disk identifier: 0x90298f39 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 62914526 62912479 30G 83 Linux Disk /dev/sdc: 10 GiB, 10737418240 bytes, 20971520 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/sdd: 10 GiB, 10737418240 bytes, 20971520 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/sde: 10 GiB, 10737418240 bytes, 20971520 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Agora vamos criar as partições nos discos novos:\nrmartins@MyVM:~$ sudo fdisk /dev/sdc n - criar nova partição p - criar uma partição primária 1 - definir como partição número 1 Type Enter - definir a posicao do primeiro setor do disco como padrão Type Enter - definir a posição do último setor do disco como padrão t - definir um tipo fd - definir Linux Raid Auto w - salvar as mudanças rmartins@MyVM:~$ sudo fdisk /dev/sdd n - criar nova partição p - criar uma partição primária 1 - definir como partição número 1 Type Enter - definir a posicao do primeiro setor do disco como padrão Type Enter - definir a posição do último setor do disco como padrão t - definir um tipo fd - definir Linux Raid Auto w - salvar as mudanças rmartins@MyVM:~$ sudo fdisk /dev/sde n - criar nova partição p - criar uma partição primária 1 - definir como partição número 1 Type Enter - definir a posicao do primeiro setor do disco como padrão Type Enter - definir a posição do último setor do disco como padrão t - definir um tipo fd - definir Linux Raid Auto w - salvar as mudanças Criando o raid array:\nrmartins@MyVM:~$ sudo mdadm --create /dev/md1 --level 0 --raid-devices 3 /dev/sdc1 /dev/sdd1 /dev/sde1 Criando o filesystem:\nrmartins@MyVM:~$ sudo mkfs -t ext4 /dev/md1 Configurando o ponto de montagem do filesystem:\nrmartins@MyVM:~$ sudo mkdir /data rmartins@MyVM:~$ sudo /sbin/blkid | grep /dev/md1 /dev/md1: UUID=\u0026#34;4342cd54-4d87-4ffa-b118-a52e2fbe2d1f\u0026#34; TYPE=\u0026#34;ext4\u0026#34; Abrir o arquivo /etc/fstab e adicionar a seguinte linha:\nUUID=4342cd54-4d87-4ffa-b118-a52e2fbe2d1f /data ext4 defaults 0 2 ** No seu caso o UUID será diferente. Você deve adicionar o UUID gerado na sua VM no lugar deste acima\nMontar o file system:\nrmartins@MyVM:~$ sudo mount -a Verificar:\nrmartins@MyVM:~$ df -h | grep md1 /dev/md1 30G 44M 28G 1% /data Caso queira visualizar a execução, gravei o vídeo abaixo do meu terminal:\n","permalink":"http://ricardomartins.com.br/criando-uma-vm-linux-e-configurando-raid-no-azure/","summary":"\u003cp\u003eNeste post vou mostrar como criar uma VM Linux no Azure, associar três discos nesta VM e em seguida configurar um Raid 0 usando estes discos pelo CLI.\u003c/p\u003e\n\u003ch3 id=\"criando-a-vm\"\u003eCriando a VM\u003c/h3\u003e\n\u003cp\u003eCriar o resource group:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ermartins@jarvis:~$ az group create --name rg-labraid --location eastus\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eCriar a máquina virtual na localização EastUS e gerar automaticamente as chaves ssh:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ermartins@jarvis:~$ az vm create --resource-group rg-labraid --name myVM --image UbuntuLTS --location eastus --generate-ssh-keys\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eCriar três discos de 10GB cada:\u003c/p\u003e","title":"Criando uma VM Linux e configurando Raid no Azure"},{"content":"Pessoal, consolidei abaixo minhas últimas publicações com assuntos relacionados à Azure e estou compartilhando com vocês:\nCriando VMs com disco gerenciado Participação como palestrante no Global Azure Bootcamp – Rio de Janeiro: IaC \u0026amp; DevOps no Azure Containers Docker no Azure WebApp Criando uma stack WordPress no Azure usando Visual Studio Azure Functions Guia de referência para o exame 70-532 Guia de referência para o exame 70-533 Guia de referência para o exame 70-534 Capacitacao em Azure Criando Azure Container Instances Criando uma VM Linux (Ubuntu) à partir do Azure CLI Deployment de um Azure Template à partir do CLI Guias de Referência para Certificação em Azure Repositório com material de Readiness em Azure Webinar para o Quintas da TI falando sobre Infraestrutura como Código e DevOps no Azure ","permalink":"http://ricardomartins.com.br/lista-de-publicacoes-sobre-azure/","summary":"\u003cp\u003ePessoal, consolidei abaixo minhas últimas publicações com assuntos relacionados à Azure e estou compartilhando com vocês:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ricardomartins9888.blob.core.windows.net/arquivos/CriandoVMLinuxcomDiscoGerenciado.pptx\"\u003eCriando VMs com disco gerenciado\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ricardomartins9888.blob.core.windows.net/arquivos/IaC\u0026amp;DevOpsNoAzure-AutomatizandoDeployments.pptx\"\u003eParticipação como palestrante no Global Azure Bootcamp – Rio de Janeiro: IaC \u0026amp; DevOps no Azure\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ricardomartins9888.blob.core.windows.net/arquivos/ContainersDockernoAzureWebApp.pptx\"\u003eContainers Docker no Azure WebApp\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ricardomartins9888.blob.core.windows.net/arquivos/CriandoumastackWordpressusandoVisualStudioAzure.pptx\"\u003eCriando uma stack WordPress no Azure usando Visual Studio\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ricardomartins9888.blob.core.windows.net/arquivos/AzureFunctions.pptx\"\u003eAzure Functions\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://aka.ms/guide70-532\"\u003eGuia de referência para o exame 70-532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://aka.ms/guide70-533\"\u003eGuia de referência para o exame 70-533\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://aka.ms/guide70-534\"\u003eGuia de referência para o exame 70-534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://aka.ms/capacitacaoazure\"\u003eCapacitacao em Azure\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://asciinema.org/a/131745\"\u003eCriando Azure Container Instances\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://asciinema.org/a/126545\"\u003eCriando uma VM Linux (Ubuntu) à partir do Azure CLI\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://asciinema.org/a/133924\"\u003eDeployment de um Azure Template à partir do CLI\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://rmmartins.github.io/AzureCertification/\"\u003eGuias de Referência para Certificação em Azure\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rmmartins/AzureReadiness\"\u003eRepositório com material de Readiness em Azure\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.youtube.com/watch?v=Vx2AwqwucpI\"\u003eWebinar para o Quintas da TI falando sobre Infraestrutura como Código e DevOps no Azure\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e","title":"Lista de publicações sobre Azure"},{"content":"Há algum tempo atrás eu descobri o Oh My Zsh e desde então me tornei usuário. Porém há aproximadamente um ano e meio mudei de emprego e passei a utilizar WIndows no desktop.\nFelizmente existe o Bash for Windows onde cheguei a instalar porém o meu tema preferido (agnoster) não funcionava corretamente pois eu não havia encontrado a fonte correta para ser utilizada.\nComo há alguns tive um problema de hardware no meu note e precisei reinstalar tudo, aproveitei para descobrir exatamente qual fonte usar e escrever este post para mostrar como instalar o Oh My Zsh no Windows.\nSupondo que você já tenha o Bash no Windows instalado, vamos lá:\nInstalando o Zsh sudo apt-get install zsh Tornando o Zsh o shell default vim ~/.bashrc #Add these lines at the end of the file # Launch Zsh if [ -t 1 ]; then exec zsh fi Instalando o Oh My Zsh # sh -c \u0026#34;$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)\u0026#34; Configurando o tema Tomando como o exemplo o tema agnoster, basta editar o arquivo .zshrc e deixar a linha onde consta a variável ZSH_THEME desta forma:\nZSH_THEME=\u0026#34;agnoster\u0026#34; Instalando a fonte correta Faça o download da fonte Menlo for Powerline\nAbra o Bash for Windows, em cima da barra superior clique com o botão direito, em seguida vá em propriedades, escolha a aba Font e depois defina a Menlo for Powerline.\n","permalink":"http://ricardomartins.com.br/instalando-o-oh-my-zsh-no-bash-do-windows/","summary":"\u003cp\u003eHá algum tempo atrás eu descobri o \u003ca href=\"http://ohmyz.sh\"\u003eOh My Zsh \u003c/a\u003ee desde então me tornei usuário. Porém há aproximadamente um ano e meio mudei de emprego e passei a utilizar WIndows no desktop.\u003c/p\u003e\n\u003cp\u003eFelizmente existe o \u003ca href=\"https://msdn.microsoft.com/en-us/commandline/wsl/install_guide\"\u003eBash for Windows\u003c/a\u003e onde cheguei a instalar porém o meu tema preferido (agnoster) não funcionava corretamente pois eu não havia encontrado a fonte correta para ser utilizada.\u003c/p\u003e\n\u003cp\u003eComo há alguns tive um problema de hardware no meu note e precisei reinstalar tudo, aproveitei para descobrir exatamente qual fonte usar e escrever este post para mostrar como instalar o Oh My Zsh no Windows.\u003c/p\u003e","title":"Instalando o Oh My Zsh no Bash do Windows"},{"content":"Este é um post rápido com o propósito de mostrar uma forma rápida de listar os tipos de VMs disponíveis em determinada região do Azure. O único pré-requisito é ter o PowerShell instalado. Clique aqui e faça o download.\nEm seguida você precisará rodar os comandos abaixo:\nLogin-AzureRMAccount $resources = Get-AzureRmResourceProvider -ProviderNamespace Microsoft.Compute Get-AzureRmVmSize -Location \u0026#34;East US\u0026#34; | Sort-Object Name | ft Name, NumberOfCores, MemoryInMB, MaxDataDiskCount -AutoSize Dependendo da região da sua escolha, basta trocar o -Location “Brazil South” pela região que preferir. Veja:\n","permalink":"http://ricardomartins.com.br/descobrindo-os-tipos-de-vms-disponiveis-no-azure-por-regiao/","summary":"\u003cp\u003eEste é um post rápido com o propósito de mostrar uma forma rápida de listar os tipos de VMs disponíveis em determinada região do Azure. O único pré-requisito é ter o PowerShell instalado. \u003ca href=\"https://www.microsoft.com/en-us/download/details.aspx?id=34595\"\u003eClique aqui e faça o download.\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEm seguida você precisará rodar os comandos abaixo:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eLogin-AzureRMAccount\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003e$resources\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e Get-AzureRmResourceProvider -ProviderNamespace Microsoft.Compute\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet-AzureRmVmSize -Location \u003cspan class=\"s2\"\u003e\u0026#34;East US\u0026#34;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e Sort-Object Name \u003cspan class=\"p\"\u003e|\u003c/span\u003e ft Name, NumberOfCores, MemoryInMB, MaxDataDiskCount -AutoSize\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eDependendo da região da sua escolha, basta trocar o -Location “Brazil South” pela região que preferir. Veja:\u003c/p\u003e","title":"Descobrindo os tipos de VMs disponíveis no Azure por região"},{"content":"Criei um repositório no GitHub para usar em demonstrações sobre DevOps no Azure e a facilidade em usar templates para automatizar a criação de ambientes.\nNele mostro como fazer o deploy de uma VM Ubuntu com Nginx, PHP, MySQL e WordPress de forma totalmente automatizada no Azure. Confira em https://github.com/rmmartins/WordpressStack-AzureCLI/\n","permalink":"http://ricardomartins.com.br/criando-uma-stack-wordpress-pelo-azure-cli/","summary":"\u003cp\u003eCriei um repositório no GitHub para usar em demonstrações sobre DevOps no Azure e a facilidade em usar templates para automatizar a criação de ambientes.\u003c/p\u003e\n\u003cp\u003eNele mostro como fazer o deploy de uma VM Ubuntu com Nginx, PHP, MySQL e WordPress de forma totalmente automatizada no Azure. Confira em \u003ca href=\"https://github.com/rmmartins/WordpressStack-AzureCLI/\"\u003ehttps://github.com/rmmartins/WordpressStack-AzureCLI/\u003c/a\u003e\u003c/p\u003e","title":"Criando uma stack WordPress pelo Azure CLI"},{"content":"A RedHat publicou recentemente uma lista de “cheat sheets” para desenvolvedores bastante interessante. Estão disponíveis comandos básicos e avançados do Linux, Wildfly, Containers, MongoDB, Kubernetes, Eclipse, etc.\nVale a pena dar uma olhada em: https://developers.redhat.com/blog/2017/05/23/technical-cheat-sheets-for-developers/\n","permalink":"http://ricardomartins.com.br/technical-cheat-sheets/","summary":"\u003cp\u003eA RedHat publicou recentemente uma lista de “cheat sheets” para desenvolvedores bastante interessante. Estão disponíveis comandos básicos e avançados do Linux, Wildfly, Containers, MongoDB, Kubernetes, Eclipse, etc.\u003c/p\u003e\n\u003cp\u003eVale a pena dar uma olhada em: \u003ca href=\"https://developers.redhat.com/blog/2017/05/23/technical-cheat-sheets-for-developers/\"\u003ehttps://developers.redhat.com/blog/2017/05/23/technical-cheat-sheets-for-developers/\u003c/a\u003e\u003c/p\u003e","title":"Technical Cheat Sheets"},{"content":"Slides da minha palestra no Global Azure Bootcamp que ocorreu no dia 22 de Abril no Rio de Janeiro disponíveis neste link.\n","permalink":"http://ricardomartins.com.br/iac-devops-no-azure/","summary":"\u003cp\u003eSlides da minha palestra no Global Azure Bootcamp que ocorreu no dia 22 de Abril no Rio de Janeiro disponíveis \u003ca href=\"https://mix.office.com/watch/rt9140641d7n\"\u003eneste link\u003c/a\u003e.\u003c/p\u003e\n\u003ciframe class=\"wp-embedded-content\" data-secret=\"BRPsv0mruI\" frameborder=\"0\" height=\"331\" sandbox=\"allow-scripts\" security=\"restricted\" src=\"https://mix.office.com/embed/rt9140641d7n#?secret=BRPsv0mruI\" title=\"Office Mix:IaC \u0026 DevOps no Azure -  Automatizando Deployments\" width=\"500\"\u003e\u003c/iframe\u003e","title":"IaC \u0026amp; DevOps no Azure"},{"content":"Anualmente ocorre o Global Azure Bootcamp e neste ano eu vou participar na edição que acontece no Rio de Janeiro falando sobre Infraestrutura como código e DevOps no Azure.\nAs inscrições podem ser feitas pelo link http://meetu.ps/e/CCMcN/x0407/d. Participe!\n","permalink":"http://ricardomartins.com.br/global-azure-bootcamp/","summary":"\u003cp\u003eAnualmente ocorre o \u003ca href=\"https://global.azurebootcamp.net/\"\u003eGlobal Azure Bootcamp\u003c/a\u003e e neste ano eu vou participar na edição que acontece no Rio de Janeiro falando sobre Infraestrutura como código e DevOps no Azure.\u003c/p\u003e\n\u003cp\u003eAs inscrições podem ser feitas pelo link \u003ca href=\"http://meetu.ps/e/CCMcN/x0407/d\"\u003ehttp://meetu.ps/e/CCMcN/x0407/d\u003c/a\u003e. Participe!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2017/04/gbc2017.jpg\"\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2017/04/gbc2017.jpg\"\u003e\u003c/a\u003e\u003c/p\u003e","title":"Global Azure Bootcamp"},{"content":"\nO movimento DevOps vem ganhando muita força nos últimos anos e ao mesmo tempo centenas de ferramentas relacionadas são lançadas dia após dia. Por outro lado com isto tem se tornado cada vez mais difícil escolher as ferramentas adequadas ainda que para as tarefas mais simples, uma vez que a diversidade de ferramentas é cada vez maior.\nEntão neste artigo eu vou comentar sobre a proposta do Terraform, Packer e o Ansible para implementação e gerenciamento de uma infraestrutura em nuvem. O objetivo será apresentar um método de utilização destas ferramentas de forma integrada.\nTerraform O Terraform é uma ferramenta que está licenciada sob a Mozilla Public License 2.,0 cujo o desenvolvimento é suportado pela Hashicorp. É uma ferramenta para implementações de infraestrutura como código nova, porém com uma comunidade basante ativa e trabalhando de forma correta na evolução técnica, melhorando a cada versão.\nEle permite descrever, em uma sintaxe simples baseada em JSON, sobre o provisionamento de infraestrutura em diferentes players. Note que a proposta não é uma abstração que possa ser portável entre os diferentes players, mas sim uma sintaxe descritiva comum entre os players.\nHoje já existem conectores para Azure, AWS, GCP e OpenStack. A infraestrutura em nuvem tende a precisar de integrações com fornecedores SaaS, assim como também com bancos de dados e serviços DNS, então por este motivo existem também dezenas de conectores disponibilizados pela comunidade para serviços como:\nBancos de Dados (PostgreSQL, MySQL, RethinkDB) VMWare (vSphere e vCloud Director) CloudFlare CloudStack Veja a lista completa em https://www.terraform.io/docs/providers/index.html\nUma vez que você descreveu sua infraestrutura, o Terraform pode implantá-la ou calcular a diferença entre a aplicação atual e o estado atual dela conforme definido nos descritores. Ele pode salvar estes planos de execução como arquivos, para consultá-los novamente antes de executá-lo e causar algum impacto em sua plataforma.\nPacker Agora que já sabemos o que usar para ter a infraestrutura definida vamos em frente!\nMuitas vezes temos que preparar as imagens dos servidores para economizar tempo de instalação e atualização inicial de um sistema. Então é aqui onde entra o Packer. A lógica dele é criar imagens dos servidores ou containers, estejam eles no Azure, AWS, Openstack, Docker e etc.\nO princípio é muito simples, com alguns parâmetros em um arquivo JSON de build o Packer irá:\n– Iniciar as vms/instâncias nos provedores configurados;\n– Aplicar neles uma sucessão de operações de configuração;\n– Criar um snapsthot e armazenar a imagem no provedor configurado (por exemplo no Azure Blob Storage)\nDentre as operações de configurações realizadas, podem ser via shell ou ansible-local. Mas minha sugestão é utilizar o shell minimamente: apenas para instalar o ansible na máquina. Uma vez que ele esteja instalado, você pode usar o provisionador ansible que irá fazer o upload dos playbooks e executá-los na máquina que esteja sendo provisionada.\nAnsible O Ansible é uma ferramenta de orquestração que normalmente não precisa de introdução.\nMas por que Ansible em detrimento de outros, sabendo que o Packer fornece suporte a outros provisionadores como Puppet, Chef e Salt?\nSe você já está habituado a utilizar outras ferramentas para gerenciamento de configuração, continue utilizando. Estamos falando de infraestrutura como código e manutenção dela ao longo do tempo e por isto, dominar suas ferramentas é essencial.\nMas se este não é seu caso, eu sugiro que você utilize o Ansible por ser uma ferramenta que:\nÉ simples como shell script: Portar um shell script para Ansible é simples e rápido de fazer. De forma geral, ele reduz o número de linhas, melhora e legibilidade do código e torna as coisas mais estruturadas; É fácil de aprender: Qualquer experiência de scripting é reutilizável, os mistérios do uso de roles podem vir mais tarde. Você pode começar a ser produtivo em poucas horas; Não requer o uso de agentes: Em termos de provisionamento, você pode tratar os playbooks do Ansible como scripts. Desta forma a complexidade de implementação é zero, basta executá-lo. IaC no Azure Se você se interessou pelo o que poderia fazer com estas ferramentas para começar a trabalhar com infraestrutura como código, saiba que todas elas são suportadas no Azure.\nSeparei alguns links abaixo por onde você pode começar a estudar sobre o assunto e começar a fazer seus laboratórios:\nhttps://www.terraform.io/docs/providers/azurerm/ https://www.youtube.com/watch?v=LzXQsHQOkpM https://www.packer.io/docs/builders/azure-arm.html https://www.youtube.com/watch?v=qtpmn_fRgCw https://docs.ansible.com/ansible/guide_azure.html https://azure.microsoft.com/en-us/try/devops/?tool=ansible\u0026amp;category=deploy DevOps no Azure E se você quer conhecer sobre DevOps no Azure, alguns links:\nhttps://www.microsoft.com/pt-br/cloud-platform/development-operations https://www.microsoft.com/en-us/download/details.aspx?id=53153 https://azure.microsoft.com/pt-br/blog/topics/it-pro-devops/ https://openedx.microsoft.com/courses/course-v1:Microsoft+DevOps200.1+2017_T1/about https://channel9.msdn.com/DevOps https://azure.microsoft.com/en-us/try/devops/ https://customers.microsoft.com/pt-BR/story/devops-com-open-source-no-azure https://www.visualstudio.com/pt-br/devops/ https://openedx.microsoft.com/courses/course-v1:Microsoft+DEVOPS200.5+2017_T1/about https://mva.microsoft.com/search/SearchResults.aspx#!q=devops\u0026amp;lang=1033 ","permalink":"http://ricardomartins.com.br/conhecendo-o-terraform-packer-e-ansible/","summary":"\u003cp\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2017/03/iac.png\"\u003e\u003c/p\u003e\n\u003cp\u003eO movimento DevOps vem ganhando muita força nos últimos anos e ao mesmo tempo centenas de ferramentas relacionadas são lançadas dia após dia. Por outro lado com isto tem se tornado cada vez mais difícil escolher as ferramentas adequadas ainda que para as tarefas mais simples, uma vez que a diversidade de ferramentas é cada vez maior.\u003c/p\u003e\n\u003cp\u003eEntão neste artigo eu vou comentar sobre a proposta do Terraform, Packer e o Ansible para implementação e gerenciamento de uma infraestrutura em nuvem. O objetivo será apresentar um método de utilização destas ferramentas de forma integrada.\u003c/p\u003e","title":"Conhecendo o Terraform, Packer e Ansible"},{"content":"\nHoje eu completo meu primeiro ano trabalhando na Microsoft e por isto assim como eu fiz quando fui reprovado na primeira vez que participei no processo seletivo, e em seguida quando eu consegui ser aprovado e completava o terceiro mês, vou registrar aqui algumas palavras…\nEste foi um ano de muito aprendizado, desenvolvimento de novos skills, muita superação e muito trabalho. É como se todos os dias eu tivesse uma competição comigo mesmo, superando minhas limitações, descobrindo novas aptidões, testando e validando novas idéias/conceitos, assumindo riscos e me tornando um profissional melhor a cada dia. Para alguém que sempre trabalhou no lado do cliente, estar “do outro lado da bancada” tem sido um desafio incrível.\nÉ muito empolgante trabalhar em um lugar onde eu me sinto motivado todos os dias a fazer o meu melhor e também poder aprender um pouco mais sobre alguma coisa diariamente. É algo que eu preciso e me faz me sentir vivo, afinal só o dinheiro não vale a dedicação de 1/3 do meu dia, tem que ter EMOÇÃO.\nA Microsoft é uma empresa em transformação e estar aqui neste momento, fazer parte deste movimento e ver de perto as coisas acontecendo tem sido uma grande experiência. O desafio de empoderar cada pessoa e organização no planeta à conseguir fazer mais e viabilizar formas de transformação digital usando a nossa tecnologia é muito gratificante.\nEu tenho aproveitado cada minuto do meu trabalho da melhor forma possível, afinal a melhor parte não é o destino mas sim a jornada que nos leva à ele. Vou explicar:\nA jornada te expõe: Primeiramente pode parecer um ponto negativo, mas o lado da intenção positiva que algumas emoções negativas geram, como frustração por exemplo, é que ela te força a crescer e ver que precisa melhorar em vários aspectos para que possa atingir seu destino do contrário tem que desistir da jornada ou achar um destino mais fácil. Neste caso pode ser que a solução é traçar caminhos alternativos caso algo não esteja funcionando, ou se adaptar as mudanças do ambiente.\nConcentrar na jornada vai te colocar da direção de domínio profundo do seu assunto: Do contrário que muitos pensam conhecimento profundo não vem de algo que fazemos como mágica do dia pra noite, mas um trabalho consistente feito dia e noite, ou seja, cada passo que avança na sua jornada.\nFoco maior no processo do que nos resultados: Isto quer dizer que o que te dá o resultado não é esperar o resultado ou olhar para ele, mas andar o caminho, pois quanto mais passos você dá mais perto do destino você estará.\nA jornada que te dá prazer e realização: O importante não é o prêmio que recebe no final, mas a felicidade vem em se tornar a pessoa que será capaz de andar o caminho desafiador. Então, neste ponto, é importante celebrar cada vitória, cada marco alcançado e curtir a jornada ao invés de ficar como um bebe chorão reclamando dizendo que quer o prêmio aqui e agora.\nA Jornada te força a ter iniciativa: Em outras palavras é os passos que tem que tomar. Não adianta o quanto você sonhe visualize o resultado, se não der os passos necessários ele nunca se concretizará.\nA Jornada é sua maior escola: Entenda que cada frustração, cada erro cometido ou cada armadilha que cai são apenas elementos colocados para que possa aprender algo e se tornar mais equipado para maiores desafios na frente. Veja isto como um processo de desenvolver músculos a cada dificuldade encontrada, assim poderá carregar um peso maior la na frente em outras palavras mais responsabilidades por exemplo.\nA Jornada te faz ficar mais presente: Isto gera foco no presente que é o único lugar onde pode fazer algo, pois o passado ficou pra trás e o futuro ainda não existe. Assim se quiser andar o caminho tem que dar o passo que cabe a dar hoje. Amanha cabe o passo que tem que dar amanhã. Assim sempre concentre no próximo passo, pois os passos que já deu não pode mudar e os passos de amanhã será apenas distração e não te levará a lugar nenhum.\nEstes são os elementos que colocam a jornada na sua devida importância e no final a conclusão é que o destino é apenas um detalhe.\nEntão que venham pelo menos mais 10 anos de Microsoft, pois continuarei fascinado por cada detalhe da jornada.\n","permalink":"http://ricardomartins.com.br/meu-primeiro-ano-na-microsoft/","summary":"\u003cp\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2016/12/13246354_10206280130913371_918757031935210288_o.jpg\"\u003e\u003c/p\u003e\n\u003cp\u003eHoje eu completo meu primeiro ano trabalhando na Microsoft e por isto assim como eu fiz quando fui \u003ca href=\"https://www.ricardomartins.com.br/perdeu-a-tao-desejada-vaga-e-agora/\"\u003ereprovado na primeira vez que participei no processo seletivo\u003c/a\u003e, e em seguida quando eu consegui ser aprovado e \u003ca href=\"https://www.ricardomartins.com.br/como-e-trabalhar-onde-tantos-gostariam/\"\u003ecompletava o terceiro mês\u003c/a\u003e, vou registrar aqui algumas palavras…\u003c/p\u003e\n\u003cp\u003eEste foi um ano de muito aprendizado, desenvolvimento de novos skills, muita superação e muito trabalho. É como se todos os dias eu tivesse uma competição comigo mesmo, superando minhas limitações, descobrindo novas aptidões, testando e validando novas idéias/conceitos, assumindo riscos e me tornando um profissional melhor a cada dia. Para alguém que sempre trabalhou no lado do cliente, estar “\u003cem\u003edo outro lado da bancada\u003c/em\u003e” tem sido um desafio incrível.\u003c/p\u003e","title":"Meu primeiro ano na Microsoft"},{"content":"Criando e organizando os recursos Nesta segunda parte vamos abordar os resource groups, tags, templates arm e controles\nAgora que você já está familiarizado com os termos Azure Accounts e Subscriptions sabendo exatamente como segmentar seus departamentos de forma apropriada, o próximo ponto é entender como criar os recursos de uma maneira lógica e organizada através dos Resource Groups.\nImportante destacar que associado ao uso dos resource groups, está o uso de tags. Os recursos podem ser “tageados” no formato chave/valor de modo a categorizar e permitir a visualização de recursos entre resource groups e/ou subscriptions distintos.\nSaiba mais sobre tags em: https://azure.microsoft.com/en-us/documentation/articles/resource-group-using-tags/\nDe forma geral, abaixo estão dispostas as principais características dos resorce groups:\nOrganização de múltiplos recursos de forma agrupada; Garantia de que recursos estarão presentes em apenas um resource group, não sendo possível ter um mesmo recurso criado em mais de um resource group; Resource groups podem conter recursos de regiões distintas; Resource groups podem conter tipos de recursos distintos. Visão geral sobre o Azure Resource Manager: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-overview\nGerenciando recursos pelo portal: https://azure.microsoft.com/en-us/documentation/articles/resource-group-portal/\nComeçando a usar o Azure Resource Manager: http://download.microsoft.com/download/E/A/4/EA4017B5-F2ED-449A-897E-BD92E42479CE/Getting_Started_With_Azure_Resource_Manager_white_paper_EN_US.pdf\nO portal v2 do Azure, também conhecido como ARM (Azure Resource Manager) dentre outras funcionalidades, trouxe esta implementação dos resource groups, facilitando bastante a organização dos recursos, gerenciamento e controle de identidade e acessos através do RBAC (Role Based Access Control), além de trazer uma abordagem mais aprimorada para a gestão e controle de custos.\nAlém dos Resources (recursos gerenciados) e dos Resource Groups (grupos de organização lógica dos resources) temos ainda outros dois termos que você precisa conhecer no Azure Resource Manager:\n– Resource Provider: Serviço que provê os recursos que você faz o deploy e gerenciamento através do resource manager. Cada resource provider oferece diferentes operações para trabalhar com os resources que estão sendo deployados. Exemplos de resource providers seriam o Microsoft.Compute, Microsoft.Storage, etc.\n– Resource Manager Template: Arquivo JSON (JavaScript Object Notation) que define os recursos e suas dependências à serem “deployados” em um resource group. Estes templates podem ser usados para deployar os recursos de forma consistente e automatizada no Azure, indo de encontro às metodologias DevOps atuais onde você consegue usar o modelo de infraestrutura como código através do uso de templates, conhecidos como templates arm.\nTemplates ARM Os templates podem ser deployados no Azure à partir do próprio repositório onde estejam hospedados (Github, Bitbucket, entre outros), pelo próprio portal do Azure uma vez que você tenha adicionado à biblioteca ou ainda pelo Visual Studio, que além de permitir criá-los também faz o deployment dos mesmos.\nTudo que é criado no Azure possui seu arquivo JSON e estão disponíveis no próprio recurso e também nos resource groups, na opção conhecida como Automation Scripts, onde você pode fazer download, salvar na biblioteca no próprio azure e deployar novamente.\nSe você quiser ver alguns templates prontos pra usar pode visitar o link https://azure.microsoft.com/en-us/resources/templates/ ou o repositório do Azure no Github onde eles estão disponíveis: https://github.com/Azure/azure-quickstart-templates\nCaso esteja interessado em ver e editar templates ARM, existe uma ferramenta online bastante interessante que você pode conhecer em http://armviz.io\nE caso tenha se interessado pelo assunto, você pode se aprofundar mais em:\n– https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-overview#template-deployment\n– https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authoring-templates\nEntão tenha em mente que existem diversas formas de criar seus recursos no Azure, basta escolher a que funciona melhor para você, seja via portal, Visual Studio, sintaxe imperativa com PowerShell ou ainda sintaxe declarativa via templates JSON.\nE se você tiver interesse em conhecer como funcionam as coisas por baixo do caput, conheça o Azure Resource Explorer, que é uma ferramenta para trabalhar com as APIs do Azure e pode ser acessada em http://resources.azure.com. Com ela você consegue além de trabalhar com as APIs do Azure, criar e editar recursos acessando diretamente o JSON do ambiente.\nSaiba mais sobre ela no link https://azure.microsoft.com/pt-br/blog/azure-resource-explorer-a-new-tool-to-discover-the-azure-api/\nControle no ARM Conforme já vimos, uma das funcionalidades trazidas com o novo portal v2 (ARM) seria a parte de controle, então temos:\n– RBAC\nO controle de acesso basado em papéis faz a gestão de usuários dentro do Azure baseada na função que cada usuário/grupo precisa ter em determinado recurso/grupo de recursos permitindo acesso mais seguro e níveis de permissionamento mais granulares.\nLista de papéis/funções padrões: https://docs.microsoft.com/pt-br/azure/active-directory/role-based-access-built-in-roles\nComo criar papéis/funções personalizados: https://docs.microsoft.com/pt-br/azure/active-directory/role-based-access-control-custom-roles\n– Logs de Auditoria\nPermitem registrar de forma centralizada todas as operações realizadadas no Azure. Conheça em detalhes aqui: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-audit\n– Resource Locks\nO resource lock é uma forma de permitir que adminsitradores criem políticas para prevenir deleção acidental de recursos: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-lock-resources\n– Resource Policy\nResource policies previnem que usuários não utilizem padrões/convenções definidos no que diz respeito ao gerenciamento de recursos no Azure. Podem ser definidas em diversos escopos dentre eles subscriptions, resouce groups ou recursos individuais.\nComo exemplos de policies que podem ser criadas, é proibir que usuários criem recursos sem que estejam com tags ou ainda, garantir que todas as storages accounts criadas sejam de um único tipo, LRS por exemplo.\nLeia mais em: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-policy\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/melhores-praticas-para-administradores-de-sistemas-na-nuvem-da-microsoft-azure-parte-ii/","summary":"\u003ch2 id=\"criando-e-organizando-os-recursos\"\u003eCriando e organizando os recursos\u003c/h2\u003e\n\u003cp\u003eNesta segunda parte vamos abordar os resource groups, tags, templates arm e controles\u003c/p\u003e\n\u003cp\u003eAgora que você já está familiarizado com os termos Azure Accounts e Subscriptions sabendo exatamente como segmentar seus departamentos de forma apropriada, o próximo ponto é entender como criar os recursos de uma maneira lógica e organizada através dos Resource Groups.\u003c/p\u003e\n\u003cp\u003eImportante destacar que associado ao uso dos resource groups, está o uso de tags. Os recursos podem ser “tageados” no formato chave/valor de modo a categorizar e permitir a visualização de recursos entre resource groups e/ou subscriptions distintos.\u003c/p\u003e","title":"Melhores práticas para administradores de sistemas na nuvem da Microsoft (Azure) \u0026#8211; Parte II"},{"content":"Nesta série de artigos gostaria de compartilhar algumas boas práticas para quem administra ambientes no Azure, abordando temas como organização dos recursos, monitoramento, backup, segurança, auditoria, alta disponibilidade, limites, permissionamento, automação, entre outros.\nNesta primeira parte vou abordar conceitos básicos como subscriptions, accounts, suas respectivas hierarquias e diretrizes de uso.\nSubscription e Azure Account Primeiro é importante entender a diferença entre uma subscription e uma azure account.\nUma Azure Account é a conta disponibilizada aos usuários para utilização dos recursos que lhes são concedidos em sua Subscription. Com sua Azure Account, além de utilizar para logar no portal do Azure, você pode acessar https://account.azure.com e obter acesso aos seguintes recursos:\nRelatório de uso dos serviços; Tarifação dos serviços; Administração da conta e subscriptions. Uma Subscription é o que provê:\nOs serviços de maneira geral (Máquinas virtuais, Azure SQL, Azure AD, Redes Virtuais, etc); Controle sobre quem pode usar os recursos. Você pode acessar sua subscription acessando o portal do Azure em https://portal.azure.com\nEntendendo a hierarquia entre Azure Account e Subscription Uma conta pode ter múltiplas subscriptions e uma única subscription pode ter múltiplos serviços.\nSe você é um cliente corporativo e possui um Enterprise Agreement (conhecido como contrato EA), então você pode associar múltiplas contas ao seu contrato EA. O principal benefício de ter um contrato EA é a possibilidade de ter maiores descontos no valor dos serviços que você venha a usar no Azure.\nSe você possui um contrato EA você pode acessá-lo em https://ea.windowsazure.com\nEm resumo:\nClientes enterprise (grandes corporações) possuem um contrato EA e nestes casos, o contrato EA é o nível mais alto na hierarquia e está associado à uma ou mais contas; Para clientes sem um contrato EA, a Azure Account é o nível mais alto na hierarquia; As subscriptions estão associadas às contas (azure account), e podem haver uma ou mais subscriptions por conta. As informações de billing são registradas no nível da subscription. Diretrizes entre Azure Accounts e Subscriptions Dependendo da sua empresa, podem haver diversas formar de organizar contas e subscriptions. Se a empresa é uma multinacional por exemplo, você pode ter uma conta por região e gerenciar as assinaturas à nivel da região. Por exemplo:\nEntão você pode usar a seguinte estrutura:\nE no caso de uma região precisar ter mais de uma subscription associada a um determinado grupo/departamento, a convenção de nomenclatura deve incorporar uma forma de identificar os dados adicionais no nome da conta ou da subscription, por exemplo:\nE neste caso a organização poderia ser desta forma:\nDivisão por departamentos Na hierarquia de organização existe a categoria intermediária chamada departamentos. Ela pode estar entre o EA e as Accounts conforme a imagem abaixo:\nEla é mais uma segmentação que você pode usar na sua estrutura de modo a ter uma organização mais eficiente.\nSendo assim, a divisão em Departamentos ou Accounts são dois níveis de hierarquia que você pode usar para segregar as suas Subscriptions dentro do EA.\nUm link bastante interessante que você pode acessar para complementar seu estudo é este: https://marckean.com/2016/06/03/azure-enterprise-enrollment-hierarchy/\nDe posse destas informações você pode seguir as instruções contidas neste link (https://azure.microsoft.com/en-us/documentation/articles/guidance-naming-conventions/) como diretriz de nomenclatura para recursos no seu ambiente.\nSe estiver interessado em mais diretrizes, abaixo uma lista com diretivas para a criação de recursos no Azure:\nDiretivas de infraestrutura: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-infrastructure-virtual-machine-guidelines/ Diretivas para contas e subscriptions: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-infrastructure-subscription-accounts-guidelines/ Diretivas para Resource Groups: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-infrastructure-resource-groups-guidelines/ Diretivas para Storage: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-infrastructure-storage-solutions-guidelines/ Diretivas para Rede: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-infrastructure-networking-guidelines/ Diretivas para Availability Set: https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-infrastructure-availability-sets-guidelines Até a próxima!\n","permalink":"http://ricardomartins.com.br/melhores-praticas-para-administradores-de-sistemas-na-nuvem-da-microsoft-azure-parte-i/","summary":"\u003cp\u003eNesta série de artigos gostaria de compartilhar algumas boas práticas para quem administra ambientes no Azure, abordando temas como organização dos recursos, monitoramento, backup, segurança, auditoria, alta disponibilidade, limites, permissionamento, automação, entre outros.\u003c/p\u003e\n\u003cp\u003eNesta primeira parte vou abordar conceitos básicos como subscriptions, accounts, suas respectivas hierarquias e diretrizes de uso.\u003c/p\u003e\n\u003ch2 id=\"subscription-e-azure-account\"\u003eSubscription e Azure Account\u003c/h2\u003e\n\u003cp\u003ePrimeiro é importante entender a diferença entre uma \u003cem\u003esubscription\u003c/em\u003e e uma \u003cem\u003eazure account.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eUma \u003cstrong\u003eAzure Account\u003c/strong\u003e é a conta disponibilizada aos usuários para utilização dos recursos que lhes são concedidos em sua \u003cstrong\u003eSubscription\u003c/strong\u003e. Com sua Azure Account, além de utilizar para logar no portal do Azure, você pode acessar \u003ca href=\"https://account.azure.com\"\u003ehttps://account.azure.com\u003c/a\u003e e obter acesso aos seguintes recursos:\u003c/p\u003e","title":"Melhores práticas para administradores de sistemas na nuvem da Microsoft (Azure) \u0026#8211; Parte I"},{"content":"Post rápido mostrando como fazer o backup dos databases de um servidor MySQL em um blob storage no Azure.\nO primeiro passo é desabilitar que o mysqldump solicite senha, e você deve fazer isto editando o arquivo my.cnf adicionando as seguintes linhas:\n[mysqldump] user=mysqluser password=secret * Substitua os valores mysqluser e secret pelo seu usuário e senha do mysql\nEm seguida instale o Azure CLI:\nNeste caso, como usei CentOS, estou usando o yum para realizar a instalação. Caso prefira outra distribuição como Ubuntu por exemplo, utilize o apt-get.\nrmartins@lab:~$ yum install nodejs rmartins@lab:~$ install azure-cli -g Agora vamos criar o script bkpmysql.sh. Eu vou criá-lo em /home/user/bkpmysql/bkpmysql.sh\n#!/bin/sh mkdir /home/user/bkpmysql/backups export BACKUP_FILE=/home/user/bkpmysql/backups/db-backup.sql.gz export DATABASE_SCHEMA_NAME=--all-databases export AZURE_CONTAINER=YOUR_VALUE_HERE export AZURE_STORAGE_NAME=YOUR_VALUE_HERE export AZURE_KEY=\u0026#39;YOUR_VALUE_HERE\u0026#39; export AZURE_BLOB_NAME=db-production-$(date +%Y%m%d%H%M%S).sql.gz /bin/mysqldump $DATABASE_SCHEMA_NAME \u0026gt; temp.sql gzip temp.sql rm -rf $BACKUP_FILE mv temp.sql.gz $BACKUP_FILE azure storage blob upload --container $AZURE_CONTAINER -f $BACKUP_FILE -b $AZURE_BLOB_NAME -a $AZURE_STORAGE_NAME -k $AZURE_KEY Por fim vamos dar permissão de execução no script e configurá-lo no cron para rodar diariamente às 00:00:\nrmartins@lab:~$ chmod 755 /home/user/bkpmysql/bkpmysql.sh rmartins@lab:~$ (crontab -l ; echo \u0026#34;0 0 * * * /home/user/bkpmysql/bkpmysql.sh\u0026#34;) | sort - | uniq - | crontab - ","permalink":"http://ricardomartins.com.br/backup-de-mysql-no-azure-storage/","summary":"\u003cp\u003ePost rápido mostrando como fazer o backup dos databases de um servidor MySQL em um blob storage no Azure.\u003c/p\u003e\n\u003cp\u003eO primeiro passo é desabilitar que o mysqldump solicite senha, e você deve fazer isto editando o arquivo my.cnf adicionando as seguintes linhas:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003emysqldump\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003euser\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003emysqluser\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003epassword\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003esecret\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003cem\u003e* Substitua os valores mysqluser e secret pelo seu usuário e senha do mysql\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eEm seguida instale o Azure CLI:\u003c/p\u003e\n\u003cp\u003eNeste caso, como usei CentOS, estou usando o yum para realizar a instalação. Caso prefira outra distribuição como Ubuntu por exemplo, utilize o apt-get.\u003c/p\u003e","title":"Backup de MySQL no Azure Storage"},{"content":"O Microsoft IT Pro Cloud Essentials e o IT Pro Career Center são as mais novas iniciativa da Microsoft para sua capacitação profissional em Cloud disponibilizadas gratuitamente para você.\nO Cloud Essentials (https://www.itprocloudessentials.com) oferece alguns benefícios exclusivos dentre eles:\nCréditos gratuitos para experimentar o Azure; Assinatura gratuita de 3 meses da Pluralsight para treinamentos online; Desconto em voucher para exame de certificação. O Career Center (http://www.itprocareercenter.com) é o programa da Microsoft para auxiliar IT Pros que desejam evoluir na carreira de tecnologias cloud com os seguintes benefícios:\nMapeamento de carreira na área de cloud; Pesquisa de traços de personalidade para identificar funções de acordo com seu perfil; Orientações de especialistas sobre as habilidades necessárias em cloud; Tendências de carreira em funções relacionadas. Está esperando o quê pra conhecer? Corre lá!\n","permalink":"http://ricardomartins.com.br/conhece-o-microsoft-it-pro-cloud-essentials-ou-no-career-center/","summary":"\u003cp\u003eO Microsoft IT Pro Cloud Essentials e o IT Pro Career Center são as mais novas iniciativa da Microsoft para sua capacitação profissional em Cloud disponibilizadas gratuitamente para você.\u003c/p\u003e\n\u003cp\u003eO Cloud Essentials (\u003ca href=\"http://www.itprocloudessentials.com\"\u003ehttps://www.itprocloudessentials.com\u003c/a\u003e) oferece alguns benefícios exclusivos dentre eles:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCréditos gratuitos para experimentar o Azure;\u003c/li\u003e\n\u003cli\u003eAssinatura gratuita de 3 meses da Pluralsight para treinamentos online;\u003c/li\u003e\n\u003cli\u003eDesconto em voucher para exame de certificação.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eO Career Center (\u003ca href=\"http://www.itprocareercenter.com\"\u003ehttp://www.itprocareercenter.com\u003c/a\u003e) é o programa da Microsoft para auxiliar IT Pros que desejam evoluir na carreira de tecnologias cloud com os seguintes benefícios:\u003c/p\u003e","title":"Conhece o Microsoft IT Pro Cloud Essentials ou no Career Center?"},{"content":"Nos dias de hoje o profissional de TI passa por grandes mudanças. São novos paradigmas, novas tendências e etc. O administrador de sistemas hoje precisa lidar com novas formas de trabalho, culturas, metodologias e ferramentas para continuar em linha com o que o mercado exige dele.\nPensando em uma forma de tentar nortear e dar um caminho sobre por onde começar, o que estudar e etc, separei aqui algumas boas referências que podem ser muito úteis para quem ainda não começou a procurar este tipo de informação.\nE abrindo a lista de links e referências, quero começar com uma apresentação de um cara muito fera e amigo, o Diogo Morales. A apresentação tem um assunto muito similar ao nome deste post que estou escrevendo, mas é que a idéia é mesmo muito semelhante e eu não encontrei uma forma melhor de dizer a mesma coisa então eis o link: http://dgmorales.info/sysadmin/#/\nComplementando deixo aqui um post do Guto Carvalho, uma grande referência no Brasil sobre cultura DevOps pra mim, onde ele fala exatamente sobre por onde iniciar os estudos sobre DevOps: http://gutocarvalho.net/blog/2016/09/06/por-onde-iniciar-os-estudos-sobre-devops/\nPuxando para o lado de containers Docker, lhes apresento o Rafael Gomes – Gomex, um cara que é outro fera. Você pode dar uma olhada no blog dele se estiver estudando sobre Docker, tem tudo lá: http://techfree.com.br\nE pra fechar, falando sobre sysadmin de forma mais informal, temos o Papo de Sysadmin que é uma comunidade criada para troca e compartihamento de informações sobre as mais diversas tecnologias. Conheça mais em https://www.facebook.com/papodesysadmin e no site http://papodesysadmin.org/\nAqui abaixo uma outra lista mais generalizada com assuntos relacionados:\nhttps://www.itprocareercenter.com – Este é um site da Microsoft voltado para lhe auxiliar na sua carreira como IT Pro. http://www.opsschool.org/en/latest – Excelente conteúdo que serve como baseline para times de operações e infraestrutura http://devops-knowledge-base.readthedocs.io/en/latest – DevOps Knowledge Base http://www.devopsbookmarks.com – Overview sobre diversas ferramentas e frameworks do ponto de vista DevOp http://devdocs.io – Uma coletânea de documentos sobre as diversas linguagens de programação http://www.jedi.be/blog – Blog do Patrick Debois, o cara que levantou a bandeira DevOps no mundo https://trello.com/b/ZFVZz4Cd/devops-learning-the-hard-way – Uma lista do trello, com praticamente todas as ferramentas e tecnologias da cultura DevOps e material de leitura recomendado sobre cada uma. http://www.aosabook.org/en/index.html – Coletênea de livros sobre arquitetura de aplicações. Tem alguns tópicos muito interessantes http://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer – Excelente artigo sobre senioridade na carreira E aqui alguns outros links que valem a visita frequente. São blogs e sites que você deveria ter nos seus bookmarks ;-D\nhttps://azure.microsoft.com/en-us/blog/ http://www.lab27.com.br/ http://verticalsysadmin.com/blog/ http://engineering.dailymotion.com/ https://research.facebook.com/publications/ http://www.linuxjournal.com/tag/sysadmin http://highscalability.com/ http://techblog.netflix.com/ https://building.coursera.org/ https://blog.engineyard.com/ https://engineering.linkedin.com/ https://labs.spotify.com/ https://clusterhq.com/blog/ http://techblog.netflix.com/ http://highscalability.com/ https://alestic.com/ https://cloudonaut.io/ http://www.linuxjournal.com/ https://serversforhackers.com/ http://www.slashroot.in/ http://planeta-globo.com/ http://www.mundodocker.com.br/ http://secundados.com.br/ http://www.loadbalancer.org/blog https://www.reddit.com/r/technology/ https://www.awsarchitectureblog.com/ https://www.infoq.com/br https://www.infoq.com/ https://sysadmincasts.com/ http://venturebeat.com/ https://techcrunch.com/ https://gigaom.com/ http://readwrite.com/ http://www.wired.com/ http://thenextweb.com/ http://mashable.com/ http://www.nytimes.com/column/bits http://www.businessinsider.com/sai http://arstechnica.com/ http://www.internetsociety.org/deploy360/blog/ https://news.ycombinator.com/ http://theoldschooldevops.com/ E finalizando alguns links com a descrição da função de Sysadmin e Site Reliability Engineer. Vale a leitura:\nhttp://www.computerweekly.com/photostory/2240205822/How-to-become-a-system-administrator/1/System-administrator-Job-description https://www.tricerat.com/sites/default/files/whitepapers/top_skills_sys_administrator.pdf http://www.cyberciti.biz/faq/what-is-the-role-of-the-system-administrator/ https://www.oreilly.com/ideas/what-is-sre-site-reliability-engineering https://en.wikipedia.org/wiki/System_administrator https://landing.google.com/sre/interview/ben-treynor.html A idéia aqui é manter uma lista de referências viva e atualizada então fique à vontade para fazer suas sugestões ;-D\n","permalink":"http://ricardomartins.com.br/como-se-tornar-um-it-pro-melhor/","summary":"\u003cp\u003eNos dias de hoje o profissional de TI passa por grandes mudanças. São novos paradigmas, novas tendências e etc. O administrador de sistemas hoje precisa lidar com novas formas de trabalho, culturas, metodologias e ferramentas para continuar em linha com o que o mercado exige dele.\u003c/p\u003e\n\u003cp\u003ePensando em uma forma de tentar nortear e dar um caminho sobre por onde começar, o que estudar e etc, separei aqui algumas boas referências que podem ser muito úteis para quem ainda não começou a procurar este tipo de informação.\u003c/p\u003e","title":"Como se tornar um IT Pro melhor"},{"content":"Já pensou você poder conversar via Skype com um bot e executar operações no Azure através de uma conversa usando linguagem natural? Agora você pode! Por enquanto estão disponíveis as funções de iniciar, parar, listar VMs e executar runbooks do Automation, mas muita coisa ainda vem por aí.\nFicou interessado? Então basta acessar https://bots.botframework.com/bot?id=azurebot e adicionar o AzureBot ao seu Skype ou Slack.\nEm seguida, você escreve a palavra login, e receberá as instruções que consistem basicamente em acessar um link para logar na sua conta do Azure e sem seguida e informar um código que será gerado após logar na sua conta.\nFeito isto, você já consegue listar as suas subscriptions conversar com o bot para executar comandos. Veja um exemplo abaixo onde eu fiz o shutdown de uma VM:\nSe você se interessou pelo assunto de BOTs e Conversation-as-a-Service, acesse https://bots.botframework.com/ e confira dezenas de outros Bots disponíveis!\n","permalink":"http://ricardomartins.com.br/usando-bots-no-azure/","summary":"\u003cp\u003eJá pensou você poder conversar via Skype com um bot e executar operações no Azure através de uma conversa usando linguagem natural? Agora você pode! Por enquanto estão disponíveis as funções de iniciar, parar, listar VMs e executar runbooks do Automation, mas muita coisa ainda vem por aí.\u003c/p\u003e\n\u003cp\u003eFicou interessado? Então basta acessar \u003ca href=\"https://bots.botframework.com/bot?id=azurebot\"\u003ehttps://bots.botframework.com/bot?id=azurebot\u003c/a\u003e e adicionar o AzureBot ao seu Skype ou Slack.\u003c/p\u003e\n\u003cp\u003eEm seguida, você escreve a palavra \u003cstrong\u003elogin\u003c/strong\u003e, e receberá as instruções que consistem basicamente em acessar um link para logar na sua conta do Azure e sem seguida e informar um código que será gerado após logar na sua conta.\u003c/p\u003e","title":"Usando Bots no Azure"},{"content":"Preparei um guia passo-a-passo para quem está estudando para o exame Microsoft 70-533 (Implementing Microsoft Azure Infrastructure Solutions). Se você deseja obter esta certificação, este material pode ser muito útil em seus estudos! Confira!\n**[Guia de Referência para o exame de certificação 70-533](https://www.slideshare.net/rmmartins/guia-de-referncia-para-o-exame-de-certificao-70533 \"Guia de Referência para o exame de certificação 70-533\")** from **[Ricardo Martins ☁](https://www.slideshare.net/rmmartins)** ","permalink":"http://ricardomartins.com.br/guia-de-estudos-para-o-exame-microsoft-70-533/","summary":"\u003cp\u003ePreparei um guia passo-a-passo para quem está estudando para o exame Microsoft 70-533 (Implementing Microsoft Azure Infrastructure Solutions). Se você deseja obter esta certificação, este material pode ser muito útil em seus estudos! Confira!\u003c/p\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/DXPn59ynQD7rxt\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003cdiv style=\"margin-bottom:5px\"\u003e  **[Guia de Referência para o exame de certificação 70-533](https://www.slideshare.net/rmmartins/guia-de-referncia-para-o-exame-de-certificao-70533 \"Guia de Referência para o exame de certificação 70-533\")**  from **[Ricardo Martins ☁](https://www.slideshare.net/rmmartins)** \u003c/div\u003e","title":"Guia de estudos para o exame Microsoft 70-533"},{"content":"O objetivo deste artigo é demonstrar passo-a-passo a criação de um ambiente web hospedando um website utilizando a CDN do Azure.\nPara uma melhor compreensão serão abordados os tópicos desde o registro do domínio, passando pela configuração no Azure DNS, criação/configuração do webserver, até a configuração da CDN e testes.\nNeste exemplo será utilizado o domínio azurelab.com.br com registro feito no http://registro.br.\nPreparando o ambiente no Azure A primeira coisa à ser feita é criar o Resource Group no azure, que conterá todos os recursos relacionados com o ambiente à ser criado.\nUma vez criado, vamos configurar o Azure DNS.\nApós escolher o resource group criado, vamos clicar em Add:\nNa caixa de busca, vamos procurar por DNS\nEm seguida clique em create:\nNa próxima tela, vamos definir qual será o nome DNS, a subscription que será usada e qual resource group usar:\nApós criar será exibido conforme abaixo:\nNeste primeiro momento, ao clicar na zona criada, teremos esta tela:\nA primeira coisa à ser feita é tomar nota dos Name Servers do Azure, para configurá-los no Registro.Br. Neste exemplo, os NameServers associados ao nome dns que criamos foram:\nns1-04.azure-dns.com. ns2-04.azure-dns.net. ns3-04.azure-dns.org. ns4-04.azure-dns.info. De posse destas informações, o próximo passo é voltar ao Registro.Br e configurar os NameServers fornecidos.\nBasta escolher o domínio desejado e ir na opção correspondente para alterar os servidores DNS:\nAgora informar os novos name servers:\nCriação da máquina virtual Linux Dentro do resource group que estamos trabalhando, clicar em Add:\nNa caixa de pesquisa que será aberta, escreva CentOS, para usar esta distribuição Linux\nEscolha do modelo de deployment (Resource Manager) e em seguida clique para criar:\nEm seguida será feita a definição do nome da máquina, nome do usuário a ser criado, método de autenticação, escolha do resource group à ser usado e localização:\nEscolha do tipo de máquina virtual:\nO próximo passo é a criação da storage account: Criação da VNet:\nCriação da Subnet:\nDefinição do IP público da máquina virtual como estático:\nConfiguração do Network Security Group:\nPor padrão, como é um servidor Linux o Security Group já vem com a porta SSH (22) aberta. Como este servidor terá a função de webserver, vamos abrir a porta HTTP (80):\nExtensões, Monitoramento e Availability Set:\nNote que não adicionaremos nenhuma extensão (https://azure.microsoft.com/pt-br/blog/automate-linux-vm-customization-tasks-using-customscript-extension/ – https://github.com/Azure/azure-linux-extensions ).\nÉ recomendável deixar o monitoramento habilitado, usando uma conta de storage account separada para os dados de diagnósticos do monitoramento.\nComo se trata de apenas um servidor, não utilizamos o recurso de Availability Set (https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-manage-availability/)\nResumo da configuração:\nApós a validação das configurações, basta dar OK para iniciar a criação da VM.\nDepois da criação da VM, já podemos pegar o IP público que associamos com ela e configurar como endereço do tipo A no DNS:\nCriação do registro no Azure DNS Dentro do Azure DNS, vamos adicionar um novo registro:\nNa tela que se abre, basta informar o ip público associado com a máquina virtual com o nome www e com o tipo A:\nDepois de aguardar alguns instantes para a replicação de DNS, verifique:\nConfigurando o Webserver Neste exemplo, vamos trabalhar com o Nginx como servidor web. Vamos conectar no servidor e em seguida usar rodar os comandos abaixo para realizar a instalação:\nInstalação do repositório epel:\nsudo yum install epel-release -y Instalação do Nginx:\nsudo yum install nginx -y Criando a configuração do servidor web:\nmv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.orig Em seguida rode esta linha de comando:\ncat \u0026lt;\u0026lt;\u0026#39;EOF\u0026#39; \u0026gt;\u0026gt; /etc/nginx/conf.d/default.conf server { listen 80 default_server; server_name www.azurelab.com.br; include /etc/nginx/conf.d/*.conf; location / { root\t/usr/share/nginx/html; index\tindex.html index.html; } } EOF Iniciando o servidor:\n/etc/init.d/nginx start \u0026amp;\u0026amp; chkconfig nginx on Testando o acesso:\nAcesse: http://www.azurelab.com.br\nConfigurando a storage account Os dados estarão hospedados em um container chamado “files” dentro de uma storage account. Para configurar vamos usar uma ferramenta chamada Azure Explorer, que pode ser obtida em http://www.storageexplorer.com/\nDepois de instalar, ele se apresenta desta forma e você deve ir em “Azure Accounts Settings” conforme destacado abaixo:\nEm seguida escolha a opção para adicionar uma conta:\nAo clicar em adicionar conta, será solicitado o email e senha de acesso à sua conta:\nDepois de informar as credenciais, vamos em uma das storage accounts criadas e criaremos um novo container:\nClicando com o botão direito do mouse em “blob container”, temos a opção de criar um novo:\nE vamos criar um novo container chamado “files”:\nClique com o botão direito do mouse no container “files”e em seguida escolha a opção “Set Public Access Level”:\nEntão podemos escolher a opção de “Public read access for blobs only”. Desta forma apenas o acesso aos arquivos será público, não ao container inteiro.\nFeito isso vou fazer o upload de um arquivo de imagem para este container escolhendo a opção correspondente:\nComo é um arquivo de imagem, vou escolher a opção de blob de blocos:\nPronto:\nPara fazer um teste, pegue a URL do arquivo e abra no browser:\nhttp://labcdn4353.blog.core.windows.net/files/hello.png\nConfiguração da CDN O próximo passo, é criar um perfil de CDN no Azure. Dentro do resource group, clique em Add e em seguida digite CDN:\nEm seguida clicar em create:\nPara nosso teste, vou escolher a camada S2 da Akamai para usar:\nCriação do Endpoint da CDN Abra a blade da CDN criada, em seguida clique para adicionar um endpoint e preencha os campos correspondentes:\nFinalizando a configuração no webserver Para que as chamadas em www.azurelab.com.br/cdn sejam direcionadas para o endpoint da CDN, precisamos adicionar o bloco abaixo ao arquivo de configuração do Nginx (/etc/nginx/conf.d/default.conf):\nlocation /cdn { proxy_pass\thttp://labricardo.azureedge.net/files/; proxy_redirect\toff; proxy_set_header\tX-Real-IP $remote_addr; proxy_set_header\tX-Forwarded-For $proxy_add_x_forwarded_for; } O arquivo deve ficar assim:\nserver { listen 80; server_name www.azurelab.com.br; include /etc/nginx/default.d/*.conf; location / { root /usr/share/nginx/html; index index.html index.html; } location /cdn { proxy_pass http://labricardo.azureedge.net/files/; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } Depois faça um reload na configuração com o comando:\n/etc/init.d/nginx reload Validando a configuração Testando o acesso via CDN em http://labricardo.azureedge.net/files/hello.png:\nTestando o acesso pelo webserver, buscando a imagem no storage account via CDN em http://www.azurelab.com.br/cdn/hello.png:\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/azure-cdn-como-realizar-a-implementacao-e-validar-o-funcionamento/","summary":"\u003cp\u003eO objetivo deste artigo é demonstrar passo-a-passo a criação de um ambiente web hospedando um website utilizando a CDN do Azure.\u003c/p\u003e\n\u003cp\u003ePara uma melhor compreensão serão abordados os tópicos desde o registro do domínio, passando pela configuração no Azure DNS, criação/configuração do webserver, até a configuração da CDN e testes.\u003c/p\u003e\n\u003cp\u003eNeste exemplo será utilizado o domínio azurelab.com.br com registro feito no \u003ca href=\"http://registro.br\"\u003ehttp://registro.br\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"preparando-o-ambiente-no-azure\"\u003ePreparando o ambiente no Azure\u003c/h2\u003e\n\u003cp\u003eA primeira coisa à ser feita é criar o Resource Group no azure, que conterá todos os recursos relacionados com o ambiente à ser criado.\u003c/p\u003e","title":"Azure CDN: Como realizar a implementação e validar o funcionamento"},{"content":"Quer saber por onde começar a estudar sobre a plataforma e os serviços de computação em nuvem da Microsoft? Quais as certificações disponíveis, qual caminho à seguir, onde encontrar material de estudo gratuito e como se manter atualizado?\nEste material foi feito pra você. Confira!\n**[Capacitação técnica no Microsoft Azure](https://www.slideshare.net/rmmartins/capacitao-tcnica-no-microsoft-azure \"Capacitação técnica no Microsoft Azure\")** from **[Ricardo Martins ?](http://www.slideshare.net/rmmartins)** ","permalink":"http://ricardomartins.com.br/capacitacao-azure/","summary":"\u003cp\u003eQuer saber por onde começar a estudar sobre a plataforma e os serviços de computação em nuvem da Microsoft? Quais as certificações disponíveis, qual caminho à seguir, onde encontrar material de estudo gratuito e como se manter atualizado?\u003c/p\u003e\n\u003cp\u003eEste material foi feito pra você. Confira!\u003c/p\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/mV5HbAAPsZBgZO\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003cdiv style=\"margin-bottom:5px\"\u003e  **[Capacitação técnica no Microsoft Azure](https://www.slideshare.net/rmmartins/capacitao-tcnica-no-microsoft-azure \"Capacitação técnica no Microsoft Azure\")**  from **[Ricardo Martins ?](http://www.slideshare.net/rmmartins)** \u003c/div\u003e","title":"Capacitação técnica no Microsoft Azure"},{"content":"Hoje eu completo 3 meses na empresa onde estou trabalhando. Tem sido uma experiência incrível e muito além do que eu imaginava que seria em todos os aspectos, seja em relação ao ambiente, as pessoas, o trabalho, a cultura, os desafios, etc.\nMas o motivo deste post é de uma forma despretensiosa, tentar responder a uma pergunta que recebi de um amigo logo que ele soube que eu estava trabalhando aqui: “Como é trabalhar em um lugar onde tantos gostariam?”\nO ponto aqui não vai ser ficar falando sobre a empresa ou como é trabalhar nela. Eu sei que o título do post te fez entender que seria algo nesta linha, mas é que na verdade esta foi a pergunta que eu recebí de um amigo assim que entrei para a empresa e que tanto me fez pensar e resolver escrever à respeito.\nImagino que mais importante do que isso é comentar sobre como eu consegui. Eu ralei duro por muitos anos perseguindo o sonho de conseguir algo assim e isso foi feito dia após dia. Eu não estou aqui contando esta história pra mostrar por aí que sou fera, incrível, ou alguém cheio de estrelinhas… longe de mim por favor. Eu compartilho esta história apenas pra mostrar que não é impossível se você estiver disposto a deixar a zona de conforto de lado, fizer as escolhas corretas e se esforçar pra fazer acontecer. Eu digo isso porque eu não nasci em “berço de ouro”, tive infância difícil, fui aluno de escola pública, trabalhei pra pagar minha faculdade, cursos, certificações, etc. Eu não tive nada fácil, comecei do zero e no fim contrariei as estatísticas. Eu não tinha nenhum super talento ou nenhuma habilidade especial, apenas força de vontade para correr atrás. Aprendi a assumir riscos, desafios, responsabilidades, metas pessoais, etc, e isto fez toda a diferença\nEntão eu gostaria de comentar um pouco sobre mim, minha trajetória, meus erros, acertos, minha motivação. Enfim, mostrar qual foi o meu caminho pelas pedras, a forma que funcionou pra mim. Espero que um pouco desta história sirva pra motivar pessoas e auxiliar para que de alguma forma elas possam descobrir também “como é trabalhar onde tantos gostariam”, independentemente da empresa.\nDigo isso, pois você pode trabalhar numa grande empresa ou em uma pequena start-up da sua cidade, não faz muita diferença. Você pode ajudar a tornar essa empresa um lugar onde tantos gostariam de trabalhar. O fruto do trabalho das pessoas é que define se uma empresa será ou não o local onde muitas pessoas gostariam de trabalhar. Portanto, seja você um empreendedor, um desenvolvedor de software, um comunicador, analista, gestor, enfim, trabalhar onde tantos gostariam depende unicamente de você e suas atitudes.\nPreparação Eu comecei minha carreira profissional em 2003, consegui esta vaga no final de 2015 e por isso gosto de pensar que eu estive me preparando por 12 anos para estar aqui. Hoje é bem claro pra mim o motivo de só ter conseguido algo assim 12 anos depois, mas nem sempre foi assim.\nDentro destes 12 anos enfrentei também minha primeira demissão e acredite, a primeira demissão a gente nunca esquece! Trabalhava em uma start-up incrível, fazendo parte de uma equipe sensacional e sem dúvidas, foi um dos melhores lugares onde já trabalhei. Mas a grana ficou curta, as despesas altas, e nosso time foi sendo desfeito aos poucos. Até que chegou minha vez, o último da lista de demissão da nossa equipe.\nAo longo desta trajetória eu fui muito criticado por algumas pessoas mais próximas pelas mudanças de emprego que acabei tendo. Concordo que realmente muitas vezes isto não é bem visto, porém no meu caso nunca foi problema. Todas as minhas mudanças de emprego tiveram uma justificativa verdadeira e consistente, me permitindo explicar claramente para todos os recrutadores que conversei sem nenhuma objeção.\nHoje, depois de todos esses anos e estas experiências vejo que tudo valeu a pena. Percebo que que a melhor parte de tudo isso é saber que por todos os lugares onde passei aprendi muito, compartilhei conhecimento, fiz amizades, orientei e motivei pessoas, trabalhei em grupos e procurei em todo o tempo, fazer meu trabalho da melhor forma possível. Eu acredito que este último ponto é muito importante, não se limitar a fazer o básico mas sim um trabalho bem executado, acima das expectativas. Lembre-se que o básico é o que a maioria faz então se você quer mais, entregue mais e melhor. Mostre seu diferencial, forneça insumos para que seus superiores tenham como argumentar à seu favor quando for preciso.\nAntes de conseguir estar aqui, eu já me candidatei dezenas de vezes para outras grandes empresas. Pense em todas as grandes empresas de tecnologia da atualidade. Estas são as empresas para as quais eu já me candidatei para vagas, fui entrevistado para quase todas, cheguei a avançar no processo seletivo porém nunca conseguia ser aprovado. Confesso que por muitas vezes isso me deixou um pouco desanimado por não ter a maturidade e entendimento que o problema era minha falta de preparo.\nInclusive para a empresa onde estou hoje eu também não passei de primeira. Eu participei do processo e fui avançando, mas na última etapa acabei não sendo aprovado. Sabe quando você já está quase certo pra conseguir e não consegue? Foi exatamente assim. Então eu escrevi o post anterior à este contando esta experiência (http://www.ricardomartins.com.br/perdeu-a-tao-desejada-vaga-e-agora) e acabou que pouco menos de um mês depois recebi um novo contato me convidando para retornar ao processo, fui aprovado e agora três meses depois estou aqui escrevendo este post 😀\nHoje entendo que muitas vezes um NÃO, não quer dizer que você não seja um bom profissional, ou ainda, que não tenha capacidade para assumir determinado cargo. Este NÃO pode significar apenas um flag setado para que você se aprimore mais em alguns pontos específicos. Você pode ser muito bom em um sentido mas nem tanto em outro e o que as empresas procuram hoje é um profissional completo. Não adianta você ser tecnicamente excepcional mas que não saiba se comunicar bem, por exemplo.\nO profissional que eu vejo como completo é aquele que possui seus soft-skills balanceados com seus hard-skills. O soft-skill está relacionado com inteligência emocional e determina sua capacidade de gestão de tempo e atividades, relacionamento interpessoal, capacidade de trabalho em equipe e atitudes. O hard-skill está relacionado com habilidades técnicas dentro da sua área de atuação.\nO profissional completo precisa ter simplicidade para entender suas deficiências (pontos fracos) e motivação para ir em busca de formas de melhorar estes pontos. A motivação é super importante para não deixar que os “NÃOs” te façam desistir. Você precisa ver o outro lado das coisas quando receber um NÃO, entender o motivo por ter recebido e se motivar a melhorar.\nPara encerrar este ponto, existe um texto bastante interessante sobre motivação que eu recomendo que você leia: http://www.administradores.com.br/mobile/artigos/empreendedorismo/as-10-caracteristicas-de-pessoas-auto-motivadas/85146/\nPersonal Branding Uma vez que você já esteja preparado um outro tópico importante é este. Você precisa que seu nome seja sua marca, se fazer conhecido de modo que as pessoas tenham visibilidade sobre seu trabalho. Não sei se isso é fundamental mas no meu caso, ajudou bastante. Eu já fazia isto por muito tempo mesmo sem ter a mínima noção do que era isso. Em 2006 eu comecei meu primeiro blog escrevendo especificamente sobre dicas de TI relacionadas com meu dia-a-dia de trabalho além de republicar artigos de outros blogs que eu visitava frequentemente. E assim nasceu o blog, sendo uma forma de:\nDocumentar minhas atividades servindo para mim mesmo em consultas futuras; Compartilhar conhecimento e aprendizado. Em 2008 registrei o http://www.ricardomartins.com.br, migrando pra lá todo o conteúdo do blog anterior. Muito inspirado pelo artigo Do things, write about it, continuo escrevendo sobre as coisas que faço e gosto muito disso por ser uma forma de inclusive aprender melhor, pois descobri que documentar é a melhor forma de aprender.\nOutra coisa que me ajudou muito neste sentido e está muito ligada com o próximo ponto que vou comentar foi começar a palestrar em eventos. Como sempre fui bastante introvertido, falar em público nunca foi algo muito fácil pra mim. Então pensando em uma forma de melhorar este ponto eu comecei a me inscrever para palestrar em eventos, o que foi fundamental para aprimorar esta minha deficiência. Existem diversas formas de começar a melhorar seu personal branding, e pode ser criando um blog, participando de comunidades, escrevendo artigos no Linkedin, fazendo vlogs, apresentando webinars e palestras. Em paralelo, divulgue as suas atividades nas redes sociais. Tenha em mente que saber fazer bom uso das redes sociais é super importante uma vez que muitos recrutadores recorrem à elas para conhecer melhor um pouco sobre o profissional que você é.\nResumindo este ponto, o melhor currículo é uma vida online produtiva. Se você não tem uma vida online produtiva, ninguém nunca vai saber que você existe. Sem participar das comunidades, você nunca criará um networking, e acredite, os melhores empregos só existem para quem faz parte deste networking. Sabe o motivo? Na verdade é bem simples: as empresas hoje dão mais valor à indicações de funcionários quando vão fazer uma contratação. É mais seguro para a empresa contratar alguém que tenha boas referências vindas de um funcionário, afinal, um funcionário não indicaria uma pessoa que possa trazer problemas para a empresa tanto quanto para ele que indicou. Ninguém quer se prejudicar indicando uma pessoa que não atenda critérios básicos de profissionalismo, ética, comprometimento, etc. Por isso, o networking se torna algo cada vez mais importante nos dias de hoje.\nUm excelente material de referência sobre personal branding você pode encontrar aqui: https://onedrive.live.com/redir?resid=841332D08ED2E07F!20317\u0026amp;authkey=!AO4ob5HGjPafwz8\u0026amp;ithint=file%2cpdf\nFoco Na área de TI, o caminho mais normal é você acabar se tornando generalista. Isso é bom porque dá uma visão maior sobre uma grande gama de tecnologias. Comigo não foi diferente pois como passei por empresas de pequeno, médio e grande portes, pude trabalhar com diversas tecnologias voltadas para todos estes tipos de empresas sejam soluções proprietárias, abertas, simples e complexas.\nEm TI, todos os dias surgem novas tecnologias, ferramentas, etc, e a tendência é sairmos tentando aprender um pouco de tudo. Não que isso seja ruim, é importante estar sabendo das novidades mas não dá pra saber tudo sobre todas. Então minha dica é: escolha uma área para dar foco e procure priorizar conhecer as novidades relacionadas com seu foco.\nComigo foi assim, escolhi um foco e procurei me especializar nele, conhecer as tendências, ferramentas e tecnologias relacionados à ele. Como eu já estava trabalhando com Cloud Computing, isso acabou interferindo na minha decisão sobre o que focar, afinal, a experiência prática de trabalho no dia-a-dia diminui a curva de aprendizado. Por isto esta é a área que eu tenho focado meus estudos desde meados de 2012.\nReconhecimento Depois de algum tempo trabalhando focado em determinada tecnologia, participando em comunidades, compartilhando conhecimento, participando em eventos, etc, o reconhecimento deste trabalho acaba sendo um caminho natural. Geralmente começa nos seus pares, o pessoal que trabalha junto com você diariamente, podendo se expandir para outras áreas da empresa, sua cidade, por aí vai.\nAs pessoas passam a querer saber o que você acha, como você resolveria, seu ponto de vista, etc. É como se você pudesse ser meio que uma referência para elas e tudo é um reconhecimento pelo que você produz, seja online, seja no ambiente de trabalho, seja nas conversas entre amigos. Neste ponto é quando você percebe que seu personal branding está dando resultado e começa a colher os frutos de tudo isso.\nFinalizando Comigo, foi assim. Depois de muitos anos de preparação, um longo caminho de aprendizado e muito trabalho quando eu menos esperava surgiu a oportunidade para trabalhar com Cloud na empresa que estou hoje. Foi necessária muita preparação, um bom tempo construindo uma vida online produtiva e foco para enfim chegar ao reconhecimento.\nSe eu tivesse tido acesso à estas dicas valiosas no começo da minha trajetória provavelmente teria levado menos tempo para chegar até aqui sem ter que ir descobrindo o caminho das pedras sozinho com erros e acertos. Portanto, aproveite essas dicas e que elas sirvam como atalho para você que busca saber como é trabalhar em uma empresa onde tantos gostariam.\n“Crescimento e conforto não coexistem, você tem que sempre estar fora da sua zona de conforto para estar crescendo e progredindo.” – Rodrigo Kede – Presidente da IBM Brasil.\n“Descubra algo que você gosta tanto de fazer que você vai querer fazer de graça… e você nunca mais vai trabalhar na sua vida.” – Ronald Wayne – Um dos fundadores da Apple.\nUPDATE 12/04/2016: Recentemente descobri os vídeos abaixo que foram feitos pelo time de recrutamento da Microsoft. Eles estão bastante relacionados com o que eu escrevi, então acredito que valha a pena você assistir e conhecer um pouco mais sobre como funciona o processo de recrutamento na Microsoft. O primeiro é bem voltado para candidatos e o segundo com muitas informações para recrutadores, porém com dicas valiosas.\n","permalink":"http://ricardomartins.com.br/como-e-trabalhar-onde-tantos-gostariam/","summary":"\u003cp\u003eHoje eu completo 3 meses na empresa onde estou trabalhando. Tem sido uma experiência incrível e muito além do que eu imaginava que seria em todos os aspectos, seja em relação ao ambiente, as pessoas, o trabalho, a cultura, os desafios, etc.\u003c/p\u003e\n\u003cp\u003eMas o motivo deste post é de uma forma despretensiosa, tentar responder a uma pergunta que recebi de um amigo logo que ele soube que eu estava trabalhando aqui: “Como é trabalhar em um lugar onde tantos gostariam?”\u003c/p\u003e","title":"Como é trabalhar onde tantos gostariam?"},{"content":"Chega um momento na carreira de todos nós que por mais que estejamos satisfeitos com a posição que temos, o cargo que ocupamos e as atividades que desempenhamos, desejamos algo maior. Penso que não ná nenhum problema nisso, afinal, evoluir é preciso.\nVocê deseja expandir seus horizontes, fazer parte de uma grande empresa, um local onde possa crescer não apenas verticalmente, mas também de forma horizontal, ganhando novas responsabilidades, descobrindo novas aptidões. Deseja ter desafios e conquistas maiores, reconhecimento.\nEntão de repente você se vê bem próximo de conseguir isso. Participa de um longo processo seletivo, entrevistas online, entrevistas presenciais, algumas em português, outras em inglês. O tempo vai passando e a ansiedade só aumenta à medida que é convidado para uma nova entrevista, afinal, você fica com a impressão que está indo bem.\nPassam-se alguns dias, você é informado que está no processo final. Nesse ponto, você passa a monitorar seu email 24 horas à espera de uma resposta. Até que um dia a resposta vem mas não é exatamente a resposta que você queria ler. E agora?\nJá passei por isso algumas vezes e posso afirmar, é algo angustiante, difícil de aceitar e compreender.\nEntão o que fazer? As atitudes são mais importantes que os fatos. Neste momento ficar chateado será normal, mas o que não pode acontecer é deixar isto te dominar.\nAssuma o controle! Peça um feedback e tente identificar os pontos onde você não atendeu os requisitos necessários, isto vai te ajudar a traçar os pontos à melhorar. Tenha dedicação, vá até seu último limite e dê o melhor de sí mesmo para melhorar estes pontos. Mantenha seu foco nisso e não desista. A persistência é o menor caminho do êxito!\n","permalink":"http://ricardomartins.com.br/perdeu-a-tao-desejada-vaga-e-agora/","summary":"\u003cp\u003eChega um momento na carreira de todos nós que por mais que estejamos satisfeitos com a posição que temos, o cargo que ocupamos e as atividades que desempenhamos, desejamos algo maior. Penso que não ná nenhum problema nisso, afinal, evoluir é preciso.\u003c/p\u003e\n\u003cp\u003eVocê deseja expandir seus horizontes, fazer parte de uma grande empresa, um local onde possa crescer não apenas verticalmente, mas também de forma horizontal, ganhando novas responsabilidades, descobrindo novas aptidões. Deseja ter desafios e conquistas maiores, reconhecimento.\u003c/p\u003e","title":"Perdeu a tão desejada vaga, e agora?"},{"content":"A idéia deste artigo é compartilhar com vocês um pouco das práticas que eu adoto nos ambientes que administro na nuvem da AWS. Se você gostar e concordar com os pontos levantados aqui, compartilhe este artigo e ajude a divulgar estas informações para outras pessoas. Se você tiver mais sugestões, elas são bem vindas!\nNão use sua conta root da AWS Ao criar sua conta na AWS, você tem acesso à sua conta root da AWS. Esta é a conta que você utiliza para fazer login informando seu email e senha criada no momento do cadastro.\nDepois de criar sua conta, os passos que você deve seguir para proteger melhor sua conta são:\nAtivar o MFA na conta root; Criar um usuário administrativo no IAM; Criar um link de sign-in customizado para sua conta; Criar as contas dos seus usuários no IAM e utilizar o link de sign-in customizado para realizar o acesso na conta. Habilite o uso de Roles para instâncias EC2 Em alguns casos, você pode precisar que uma aplicação, acesse um bucket no S3. O ponto é que criar um usuário para uma aplicação, implica em gerar também uma credencial de segurança (Acccess Key/Secret Access Key) para ele, o que pode se tornar um ponto de insegurança.\nAo invés disso, você pode criar uma role para a instância EC2 onde esta aplicação irá rodar, de modo que esta role permita acesso ao bucket específico. Desta forma automaticamente a aplicação rodando nesta instância terá acesso ao bucket pela role concedida à instância.\nQuando você usa roles desta forma, as credenciais de segurança da instância são temporárias e a própria AWS se encarrega de fazer o rotacionamento dela a cada cinco minutos! Você pode ler mais à respeito disso aqui: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html\nSeja organizado Se você administra uma conta com vários ambientes, por exemplo, desenvolvimento, homologação e produção, você pode criar uma VPC para cada ambiente de modo a menter os ambientes isolados.\nCom uma VPC para cada um dos ambientes, você terá subredes e tabelas de rotas distintas entre eles melhorando a segurança no seu ambiente, além de facilitar a gerência como um todo.\nSe por algum motivo você precisar de algum tráfego entre seus ambientes, como por exemplo de uma VPN, você pode habilitar o VPC Peering e liberar o tráfego entre as VPCs.\nUma outra opção nos casos onde você não tenha que atender à alguns requisitos de PCI-DSS por exemplo, seria ao invés de segmentar os ambientes por VPCs distintas, fazer o uso de subredes para estes ambientes tendo cada um deles em subredes diferentes. Além disso, use o recurso de tags. Coloque tags em tudo e simplifique a busca por recursos. Além das tags com os nomes dos recursos, você pode criar tags para projetos por exemplo, o que vai te dar maior eficiência sempre que precisar procurar por algo que esteja relacionado com um projeto em específico.\nTenha controle total sobre seu ambiente “Se você não pode medir, você não pode gerenciar” (Peter Drucker)\nEssa frase resume bem o principal ponto aqui: monitoramento.\nPara ter total controle sobre um ambiente você precisa saber exatamente tudo o que acontece com ele. Você só vai ter isso, através de um monitoramento refinado.\nMinhas sugestões são Zabbix ou New Relic. O Zabbix é uam ferramenta opensource, que permite ínumeras possibilidades de configurações de monitoramento. O New Relic é um monitoramento no modelo SaaS. Fornece opções para monitoramento de servidores e aplicações, sendo excelente para coleta de informações sobre performance de aplicações. Também possui diversos plugins para todo tipo de coisa, como node, nginx, php, java, etc. No entanto é uma ferramenta onde o único monitoramento gratuito, é o de servidores. As demais funções são pagas.\nUma outra ferramenta muito interessante que eu costumo usar é o Monit. Apenas como informação, a própria Amazon usa o Monit no OpsWorks. É uma excelente ferramenta para monitoramento de processos e serviços. Dentre as diversas coisas que faz, permite executar ações em resposta à eventos monitorados. Você pode conferir um pouco do que ele é capaz de fazer aqui: https://mmonit.com/monit/#slideshow\nO próprio CloudWatch também é uma ferramenta espetacular que você deve ficar de olho. Além de centenas de métricas já definidas, você consegue configurar alertas para notificar quando algum parâmetro que esteja sendo monitorado seja alcançado.\nOutros recursos muito interessantes são o Healthcheck e DNS Failover do Route53. Por exemplo, se você tem um load balancer com duas instâncias sob ele, você tem um healthcheck do próprio ELB que pode tirar uma instância do balanceamento caso ela não esteja saudável ou apresentando problemas na resposta do healtchcheck.\nNo entanto caso você tenha mais de um recurso com a mesma função, por exemplo, mais de um webserver para o mesmo site, mas não esteja com eles sob um ELB, você pode usar o recurso de healtcheck em cima da conexão http de cada um deles e caso um esteja fora, seu DNS não irá mais enviar os requests para o que não está funcionando corretamente.\nAlém disso pode usar o recurso de DNS Failover para responder à requests nos seus servidores usando algoritmos interessantes, tendo rotas definidas por peso, latência, localidade, etc.\nMantenha atenção na segurança, sempre Por último mas não menos importante, alguns detalhes sobre segurança. Aqui o ponto é: atenção aos seus security groups.\nEm um ambiente bem planejado, você deve se preocupar em segmentar sua VPC com subredes públicas e privadas. Isso é importante já que você não vai querer sua instância onde está seu banco de dados com a porta 3306 exposta na internet e vulnerável à tentativas de ataques.\nPara resolver isso, o que você faz:\nColoque na subrede pública, apenas os serviços essenciais que serão acessados pelos seus usuários na internet. De modo geral, você deverá ter apenas seu webserver exposto. Os demais serviços, que não são acessados por usuários, mas apenas por outros serviços, devem estar na subrede privada.\nAdotando este conceito, apenas os seus servidores da subrede pública, precisarão ter IPs públicos. Todos os serviços da subrede privada podem ter apenas IPs privados dentro do range que você tenha definido na criação da sua VPC.\nPara que isto funcione corretamente, você vai precisar colocar servidores NAT na sua rede pública, e na tabela de rotas da sua subrede privada configurar para que a rota para 0.0.0.0/0, saia pela instância de NAT.\nJá na sua subrede pública, a rota para 0.0.0.0/0 é sair pelo IGW.\nOk, e você deve estar se questionando como fazer para acessar as instâncias que estiverem na rede privada, ja que elas não terão IPs públicos para que você possa se conectar…\nBasta adicionar na sua subrede pública um servidor de VPN. Minha sugestão é usar o OpenVPN para isso. Feito isso, crie chaves de acesso VPN para seus usuários.\nDigamos que o CIDR da sua VPC seja 10.0.0.0/16 e você tenha uma subrede privada no range 10.0.1.0/24 e uma subrede pública no range 10.0.0.0/24. Ao configurar seu servidor VPN, você pode configurar para que ele distribua endereços IPs no mesmo escopo da sua VPC evitando ter que criar novas rotas na tabela de rotas da subrede privada.\nAssim, você pode configurar seu servidor VPN para distribuir endereços para os clientes VPN no range 10.0.10.0/24 por exemplo . Em seguida insira configurações adicionais de rotas para a sua subrede privada no OpenVPN. Veja:\npush \u0026#34;route 10.0.0.0 255.255.255.0\u0026#34; push \u0026#34;route 10.0.1.0 255.255.255.0\u0026#34; push \u0026#34;dhcp-option DNS 8.8.4.4\u0026#34; push \u0026#34;dhcp-option DNS 8.8.8.8\u0026#34; Com essas configurações as conexões VPN dos clientes terão rotas para suas subredes e as configurações de DNS definidas para usar os DNS’s do Google. Assim caso precisem acessar à internet estando conectados na VPN, não terão problemas na resolução de nomes.\nVoltando a falar um pouco sobre security groups agora, vou comentar sobre o que eu costumo fazer.\nDe modo geral, procuro sempre criar um security group por instância. A única excessão é nos casos onde você tem por exemplo dois servidores com a mesma função, onde neste caso, associo ambos à um mesmo security group.\nEu já ví por aí coisas como um único security group para tudo, todas as instâncias. Nunca faça isso! Além de acabar abrindo portas excessivamente para todas as instâncias, a gerência sobre isso fica muito complicada.\nTendo um security group para cada instância, você tem a opção de liberar o acesso para security groups específicos. Um detalhe interessante, é que liberando para o security group, ele libera para o IP interno da instância que está associada com este security group.\nPor exemplo, voltando ao caso do nosso servidor mysql. Supondo que a instância do mysql possua um security group dela, e a instância do seu servidor web também possua um security group próprio, você pode ir no security group da instância do mysql e liberar o acesso da porta TCP 3306 para o security group da sua instância que é o servidor web.\nIsto irá liberar o acesso TCP na porta 3306 do mysql para o ip privado do servidor web.\nPara suas instâncias na subrede pública, como elas estarão expostas na internet você tem que ter um trabalho diferenciado para tratar ameaças.\nEm geral, no caso de acesso SSH por exemplo, você deve restringir o acesso para seu range de ips privados. Assim, basta estar conectado à vpn, que você consegue acesso SSH nas instâncias.\nNão é o ideal, mas se precisar deixar a porta SSH aberta para 0.0.0.0/0, use ao menos uma ferramenta como o Fail2Ban, para minimizar o impacto de tentativas de login inválidas.\nNo caso de um servidor Web, se ele estiver sob um ELB, uma boa prática é deixar o acesso do ELB liberado na porta 80 repassando as conexões para a porta 80 da instância e limitar o acesso à porta 80 da instância apenas ao security group do ELB.\nComo a AWS já possui alguns mecanismos de controle e segurança, restringir que o acesso na porta 80 da instância seja liberado apenas para os requests que vierem do ELB, já minimiza boa parte dos problemas.\nEnfim, estas são minhas dicas para você que assim como eu, administra ambientes na nuvem da AWS.\nSe tiver sugestões à acrescentar, fique a vontade.\n","permalink":"http://ricardomartins.com.br/melhores-praticas-para-administradores-de-sistemas-na-nuvem-da-aws/","summary":"\u003cp\u003eA idéia deste artigo é compartilhar com vocês um pouco das práticas que eu adoto nos ambientes que administro na nuvem da AWS. Se você gostar e concordar com os pontos levantados aqui, compartilhe este artigo e ajude a divulgar estas informações para outras pessoas. Se você tiver mais sugestões, elas são bem vindas!\u003c/p\u003e\n\u003ch2 id=\"não-use-sua-conta-root-da-aws\"\u003eNão use sua conta root da AWS\u003c/h2\u003e\n\u003cp\u003eAo criar sua conta na AWS, você tem acesso à sua conta root da AWS. Esta é a conta que você utiliza para fazer login informando seu email e senha criada no momento do cadastro.\u003c/p\u003e","title":"Melhores práticas para administradores de sistemas na nuvem da AWS"},{"content":"Pessoal, no último dia 13/10, eu apresentei um Webcast para o portal Mundo TI Brasil, onde falei sobre computação em nuvem e os primcipais serviços da AWS. Abaixo o link para o vídeo do webcast e os slides apresentados:\nSlides: http://pt.slideshare.net/rmmartins/cloud-aws-da-teoria-prtica\n","permalink":"http://ricardomartins.com.br/cloud-computing-aws-da-teoria-a-pratica/","summary":"\u003cp\u003ePessoal, no último dia 13/10, eu apresentei um Webcast para o portal \u003ca href=\"http://www.mundotibrasil.com.br\"\u003eMundo TI Brasil\u003c/a\u003e, onde falei sobre computação em nuvem e os primcipais serviços da AWS. Abaixo o link para o vídeo do webcast e os slides apresentados:\u003c/p\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"281\" loading=\"lazy\" src=\"https://www.youtube.com/embed/6-eh_3VRZcA?feature=oembed\" width=\"500\"\u003e\u003c/iframe\u003e\n\u003cp\u003eSlides: \u003ca href=\"http://pt.slideshare.net/rmmartins/cloud-aws-da-teoria-prtica\"\u003ehttp://pt.slideshare.net/rmmartins/cloud-aws-da-teoria-prtica\u003c/a\u003e\u003c/p\u003e","title":"Cloud Computing \u0026#038; AWS: Da teoria à prática"},{"content":"A idéia deste post é criar um “mini-howto” da instalação do Jenkins.\nEu não vou entrar em muitos detalhes sobre o que é o Jenkins. Se você quiser saber um pouco mais sobre ele, separei os dois links abaixo, que são uma excelente documentação:\nhttp://imasters.com.br/desenvolvimento/serie-integracao-continua-deploy-automatizando-jenkins-tomcat/\nhttp://www.infoq.com/br/presentations/turbinando-testes-com-jenkins\nA parte de configuração também pode variar muito, e dependerá muito das necessidades do time de desenvolvimento da sua empresa. Por esta razão vamos dar foco apenas na instalação mesmo. Vamos lá:\nNeste caso, estou usando uma instância na Amazon, que utiliza o Amazon Linux (CentOS Based):\n# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo # rpm --import http://pkg.jenkins-ci.org/redhat-stable/jenkins-ci.org.key # yum install jenkins # service jenkins start # chkconfig jenkins on Por fim, acesse no browser:\nhttp://ip.do.seu.servidor:8080\n","permalink":"http://ricardomartins.com.br/como-instalar-o-jenkins/","summary":"\u003cp\u003eA idéia deste post é criar um “mini-howto” da instalação do Jenkins.\u003c/p\u003e\n\u003cp\u003eEu não vou entrar em muitos detalhes sobre o que é o Jenkins. Se você quiser saber um pouco mais sobre ele, separei os dois links abaixo, que são uma excelente documentação:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://imasters.com.br/desenvolvimento/serie-integracao-continua-deploy-automatizando-jenkins-tomcat/\"\u003ehttp://imasters.com.br/desenvolvimento/serie-integracao-continua-deploy-automatizando-jenkins-tomcat/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.infoq.com/br/presentations/turbinando-testes-com-jenkins\"\u003ehttp://www.infoq.com/br/presentations/turbinando-testes-com-jenkins\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eA parte de configuração também pode variar muito, e dependerá muito das necessidades do time de desenvolvimento da sua empresa. Por esta razão vamos dar foco apenas na instalação mesmo. Vamos lá:\u003c/p\u003e","title":"Como instalar o Jenkins"},{"content":"Neste videocast fiz um laboratório prático de AWS. É demonstrado o registro de um domínio no registro.br, configuração deste domínio no route53 e em seguida a criação de uma instância EC2 com o Apache, PHP e WordPress instalado. Em paralelo é criado um RDS com MySQL, para ser usado em conjunto com a instância EC2, criando nosso stack LAMP (Linux, Apache, MySQL e PHP).\nAbaixo os comandos utilizados no vídeo:\n#!/bin/bash yum -y install httpd php php-common php-mysql php-gd php-mbstring php-xml php-xmlrpc chkconfig httpd on /etc/init.d/httpd start cd /tmp wget http://wordpress.org/latest.tar.gz tar xzvf latest.tar.gz mv wordpress/* /var/www/html/ chown -R apache:apache /var/www/html/ Se gostou, curta o vídeo e compartilhe nas redes sociais.\nAté o próximo!\n","permalink":"http://ricardomartins.com.br/videocast-registro-de-um-dominio-e-setup-completo-na-aws/","summary":"\u003cp\u003eNeste videocast fiz um laboratório prático de AWS. É demonstrado o registro de um domínio no registro.br, configuração deste domínio no route53 e em seguida a criação de uma instância EC2 com o Apache, PHP e WordPress instalado. Em paralelo é criado um RDS com MySQL, para ser usado em conjunto com a instância EC2, criando nosso stack LAMP (Linux, Apache, MySQL e PHP).\u003c/p\u003e\n\u003cp\u003eAbaixo os comandos utilizados no vídeo:\u003c/p\u003e","title":"Videocast: Registro de um domínio e setup completo na AWS"},{"content":"\nEste texto é uma conversa franca, um desabafo fruto de reflexões pessoais. Conversa franca com você que de alguma forma tem tido problemas em arrumar um emprego novo, está com receios de ser demitido, ou ainda, desmotivado.\nVolta e meia converso com pessoas que estão em uma das situações acima e sempre acabo chegando nos pontos destacados abaixo. Resolvi publicar pois certamente poderá servir para outras pessoas em situações semelhantes.\nSerá que o mercado que está ruim ou você que está ruim para o mercado? Eu digo isto pois em tempos de crise você pode pensar que isto é um problema do país e acabar não percebendo que na verdade pode ser um problema apenas seu. É fácil descobrir, vamos lá:\nQual foi seu último desafio? Como você resolveu? O que aprendeu com ele? O que faria diferente da próxima vez? Se você não sabe as respostas, certamente o problema é você. Eu digo isso pois se você não tem desafios no seu dia-a-dia, é muito provável que você esteja na sua zona de conforto.\nÉ confortável estar em uma posição onde você domina todas as suas atividades, realiza com destreza todas as novas demandas e usa seu tempo livre para ficar na internet lendo notícias, facebook, etc, afinal você batalhou para isso. Estudou, se qualificou, perdeu horas de sono talvez e agora chegou em um patamar onde você domina o que você faz, parabéns! Mas o problema agora pode ser exatamente este: você ter se tornado um funcionário padrão.\nSim, funcionário padrão. Aquele que chega no horário, cumpre suas tarefas com sucesso e no final do expediente vai pra casa com a sensação de dever cumprido. Mas sabe qual o problema nisso? O problema é que que funcionários “padrão” existem aos montes por aí. Você pode ter deixado de ser raro, afinal, você faz o que todo mundo faz.\nO problema é ser um funcionário padrão. Sabe o que acontece? Hoje você não pode mais ser um funcionário padrão. Se você faz o que todo mundo faz, por qual motivo você seria melhor do que outro? Por qual motivo escolheriam você e não outra pessoa? O que você faz além?\nAs empresas hoje estão de olho nos profissionais raros. Nos profissionais que têm visão de dono, que querem fazer a roda girar e crescer junto com a empresa. Se você é apenas mais um funcionário padrão, desculpe mas você está fora.\nVocê precisa ser aquele profissional que assume riscos e responsabilidades. Que lança uma idéia e se envolve em todos os processos necessários para que ela seja real e funcione. Aquele cara que pensa no coletivo e não apenas no individual. Que dá follow-up, que sabe motivar um colega, que chega junto para matar no peito e fazer gol, não pra divulgar seu nome, mas sua equipe, sua empresa.\nDurante minha trajetória profissional, já trabalhei em empresa de tudo quanto é tamanho. Start-ups, empresas de pequeno, médio e grande portes, e uma coisa elas têm em comum: pessoas que nunca estão satisfeitas.\nÉ verdade que existem empresas que são mal geridas, mal organizadas e com problemas pontuais que precisam ser resolvidos. Mas sabe qual o maior problema das empresas? As pessoas.\nEm geral as pessoas insatisfeitas não usam sua insatisfação para o bem, apenas para o mal. Ao invés delas usarem sua insatisfação para se auto-motivarem, estudar coisas novas, melhorar seus skills, tornarem-se pessoas e profissionais melhores, elas se juntam umas com as outras para falar mal, reclamar e continuarem em suas zonas de conforto.\nCorra na frente! Na minha área de TI muita gente reclama que TI paga mal, que não tem emprego, etc, mas sabe qual o maior problema? Elas não saem das suas zonas de conforto e continuam fazendo o mesmo trabalho de sempre, fazendo o básico, que todo mundo faz.\nExistem centenas de sites na internet ensinando tudo que você queira aprender em TI gratuitamente! Mas é incrivel como elas parecem que só conhecem a Internet para assistir Youtube, Facebook, etc. Enquanto isso, ficam esperando que a empresa pague um treinamento para ela…\nPor favor, saia do lugar! O mercado hoje funciona diferente. Os grandes salários estão nas tecnologias emergentes onde não se encontra mão de obra especializada. Estou falando de Cloud Computing, Big Data, Analytics, Infraestrutura Ágil, Deployment, Gerência de Configuração, Orquestração de ambientes, DevOps, Software-Defined Infrastructure, Software-Defined networking, Content Delivery Networks, IaaS, PaaS, SaaS, etc.\nNão fique esperando sua empresa pagar um curso pra você. Não espere sua empresa começar a usar determinada tecnologia para você ter interesse em saber o que é ou como funciona. Corra na frente, não corra atrás! Estude tudo que puder, se desenvolva, se destaque! Seja um profissional raro, fora da curva.\nPense nisso!\n","permalink":"http://ricardomartins.com.br/o-problema-esta-em-voce-ou-no-mercado/","summary":"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2015/07/Personal-development-plan-template.jpg\"\u003e\u003cimg alt=\"Personal-development-plan-template\" loading=\"lazy\" src=\"/wp-content/uploads/2015/07/Personal-development-plan-template-300x200.jpg\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEste texto é uma conversa franca, um desabafo fruto de reflexões pessoais. Conversa franca com você que de alguma forma tem tido problemas em arrumar um emprego novo, está com receios de ser demitido, ou ainda, desmotivado.\u003c/p\u003e\n\u003cp\u003eVolta e meia converso com pessoas que estão em uma das situações acima e sempre acabo chegando nos pontos destacados abaixo. Resolvi publicar pois certamente poderá servir para outras pessoas em situações semelhantes.\u003c/p\u003e","title":"O problema está em você ou no mercado?"},{"content":"\nEstou finalizando os preparativos para a realização do meu primeiro webinar onde vou fazer uma abordagem sobre computação em nuvem usando os serviços da AWS.\nA idéia será trazer uma visão geral sobre o que é computação em nuvem, tipos, conceitos e camadas. Em seguida veremos um pouco sobre a infraestrutura da Amazon Web Services, características, principais serviços e no final vamos fazer um laboratório. Neste laboratório veremos como iniciar sua primeira instância Linux EC2 junto com uma instância RDS e colocar para funcionar um blog rodando WordPress em cinco minutos!\nPara tentarmos agendar um horário que fique bom para a maioria dos interessados, criei um formulário com duas opções de horários. Basta você preencher e em seguida a maioria decidirá qual será o horário deste webinar.\nDe acordo com a aceitação e a participação dos interessados, serão criados novos webinars abordando assuntos/serviços específicos.\nSe você gostou da idéia, ajude a compartilhar a informação e o questionário. Assim vou poder mensurar melhor a quantidade de pessoas interessadas, o que ajudará também na escolha da ferramenta mais adequada para uso na transmissão do webinar.\nPreencha seus dados no formulário abaixo:\n[ Crie seu próprio questionário de feedback de usuário ](https://pt.surveymonkey.com/mp/customer-satisfaction-surveys/) Se preferir, acesse o formulário neste link: https://pt.surveymonkey.com/s/G2YXC9Q\n** Atualização: **\nO formulário recebeu 45 respostas. Conforme vocês podem ver abaixo, a maioria prefere assistir o webinar durante a semana, das 21:30 às 23:30. Eu vou agendar uma data e informarei à todos os que preencheram o formulário e passaram seu endereço de e-mail.\n","permalink":"http://ricardomartins.com.br/webinar-sobre-computacao-em-nuvem-e-aws/","summary":"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2015/02/Introtoec2vid_2.jpg\"\u003e\u003cimg alt=\"treinamento-cloud\" loading=\"lazy\" src=\"/wp-content/uploads/2015/02/Introtoec2vid_2-300x168.jpg\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEstou finalizando os preparativos para a realização do meu primeiro webinar onde vou fazer uma abordagem sobre computação em nuvem usando os serviços da AWS.\u003c/p\u003e\n\u003cp\u003eA idéia será trazer uma visão geral sobre o que é computação em nuvem, tipos, conceitos e camadas. Em seguida veremos um pouco sobre a infraestrutura da Amazon Web Services, características, principais serviços e no final vamos fazer um laboratório. Neste laboratório veremos como iniciar sua primeira instância Linux EC2 junto com uma instância RDS e colocar para funcionar um blog rodando WordPress em cinco minutos!\u003c/p\u003e","title":"Webinar sobre Computação em Nuvem e AWS"},{"content":"\nConforme prometido, neste post vou mostrar a instalação do CoreOS fazendo uma continuação deste post, porém de forma mais prática mostrando os passos para instalação e configuração básica de um ambiente rodando em cluster.\nVou simular uma instalação Bare Metal através do VirtualBox. Note que no site do CoreOS estão relacionadas diversas opções de instalação para todo tipo de ambiente, seja Bare Metal (PXE, iPXE, diretamente em disco), em serviços Cloud (Amazon, Digital Ocean, Azure, Rackspace) ou em plataformas de virtualizalção (Vagrant, VMWare, QEUMU, OpenStack, Eucalyptus, etc). Para cada uma forma de instalação, existem modos diferentes de instalação.\nO requerimento para este tutorial em particular, é que você tenha o VirtualBox instalado e um Live-CD de sua distribuição Linux preferida. Neste modelo de instalação, o CoreOS não pode ser instalado sem o uso de um Live-CD pois não permite que seja instalado no mesmo dispositivo que tenha sido realizado o boot. Por exemplo, se você botou uma máquina pelo HD, você não poderá instalar o CoreOS neste mesmo HD. Maiores informações aqui: (https://coreos.com/docs/running-coreos/bare-metal/installing-to-disk/)\nPor esta razão, se faz necessário usar um Live-CD para instalar no HD do servidor que estiver usando. Você pode usar qualquer distribuição linux e dar o boot no ambiente do Live-CD para usar o script de instalação usado para realizar a instalação do CoreOS.\nLembrando que instalação “Bare Metal” é quando a instalação do SO é feita diretamente no hardware, sem virtualização. Pense em instalação Bare Metal como uma instalação do seu sistema operacional em um hardware tradicional, por exemplo, uma instalação do CentOS em um servidor Dell/HP.\nA falta de um servidor físico para eu fazer este laboratório, me restringe a realizar esta instalação em uma máquina virtual criada no VirtualBox, simulando assim nosso ambiente Bare Metal.\nO primeiro passo é criar a máquina virtual no Virtual Box e em seguida configurar para dar boot pelo arquivo ISO da distribuição escolhida. Uma vez tendo dado boot no ambiente “Live-CD”, mãos à obra.\nPara incrementar o laboratório, além de instalar o CoreOS vamos configurar um Cluster entre dois “servidores”.\nComo sabemos, o CoreOS é uma distribuição voltada para executar containers que podem consumir bastante memória RAM, então seja generoso na quantidade de memória RAM disponibilizada para a máquina virtual.\nUma vez iniciado o ambiente Live, vamos ao site do CoreOS (https://coreos.com). Lá você nota o campo “Try out CoreOS”. Para nosso ambiente, vamos escolher “Bare Metal – Install to Disk“. Você será redirecionado para este link onde tem as informações sobre a instalação usando o “Install Script”. O script irá remover qualquer coisa existente no HD e instalar o CoreOS. Conforme descrito no site, ele basicamente irá fazer o download da imagem, verificar a integridade e copiar bit a bit para o disco.\nO script está disponivel no Github e você não precisa fazer nenhuma alteração. Basta copiar o conteúdo, salvar em um arquivo localmente, conceder permissão de execução e depois rodar com os parâmetros necessários.\nEm seguida, é preciso criar um arquivo de configuração chamado cloud-config.yaml. O conteúdo dele define basicamente os parâmetros iniciais que você deseja configurar no seu servidor CoreOS. Toda configuração feita neste arquivo será carregada e configurada dentro do ambiente.\nO acesso às máquinas, será feito por chaves SSH. Para gerar seu par de chaves, rode o comando abaixo:\n# ssh-keygen -t rsa -b 2048 Durante o processo, você pode informar onde quer que os arquivos sejam salvos, neste exemplo, vou salvá-los em /tmp. Deste modo basta informar /tmp/CoreOS\nDepois de informar uma senha, serão gerados os dois arquivos abaixo dento do diretório /tmp:\nCoreOS_rsa (Chave Privada); CoreOS_rsa.pub (Chave Pública). O conteúdo do CoreOS_rsa.pub será utilizado no nosso arquivo cloud-config.yaml.\nNo ambiente Live-CD do VirtualBox, vamos baixar do GitHub o script de instalação do CoreOS.\n# wget https://raw.githubusercontent.com/coreos/init/master/bin/coreos-install -O coreos-install.sh # chmod a+x /tmp/coreos-install.sh Agora vamos criar o arquivo cloud-config.yaml, que será interpretado pela instalação do script de instalação. Por ser um YAML você precisa tomar alguns cuidados na formatação e identação, pois caso contrário pode apresentar falha no parsing realizado. Para garantir que esteja correto, você pode validar seu arquivo neste link http://coreos.com/validate\n# vim /tmp/cloud-config.yaml #cloud-config hostname: CoreOS1 ssh_authorized_keys: – ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXq2wdVv3PkauEjXTLcuAKFMhNTGvcSa2ChbcJacgnhpfzRpq1epfvX/M5078e/VDl3IQpjEQeutCJY0idwbD7ft2fNSA8xETYMlirit9AAqIduVWHkK2SDA8Q1JMcuNCopV6+6VkGYDyHufWvHp+WN5yawr4h5m4FawYlY0X02twJjs2eMGd3rZLUbq6wzuX5Lym/AkXGF5eCKOIEc/6bAKzg57qcGdqNTbRXdM7DQO2CstxUFM9m8pYUyp4I5x8zy9rYd8kztpVrd3CLAyVs8u9Sb87Hpnuo8dfPQ9WfJ/v/DMlZOWOdQYqfn44jtHriQfi9/tWCHM/Fc+38Dwij ricardo@martins coreos: etcd: discovery: https://discovery.etcd.io/14b99e8be3992f0f700a818ee469c4a2 addr: 192.168.1.130:4001 peer-addr: 192.168.1.130:7001 units: – name: etcd.service command: start – name: fleet.service command: start – name: static.network content: | [Match] Name=enp0s3 [Network] Address=192.168.1.130/24 Gateway=192.168.1.1 DNS=8.8.8.8 Observações:\nssh_authorized_keys: Neste campo informe o conteúdo da sua chave pública. Se você utilizar a mesma que eu coloquei acima, não vai funcionar uma vez que você não tenha a chave privada correspondente. Importante acrescentar o “-“ no começo da linha; discovery: Neste campo é informado o token gerado para seu cluster. Todo cluster precisa ter um ID específico, um token. Como queremos que ambos o servidores integrem o mesmo cluster, ao criar o token para o primeiro servidor basta usar o mesmo token no arquivo de configuração do segundo servidor. Desta forma o segundo servidor será automaticamente adicionado ao cluster já existente.\nPara gerar o token, basta ir ao endereço http://discovery.etcd.io/new. Ao abrir o link será exibido o token gerado automaticamente. Basta copiar o token e colar no campo discovery do arquivo cloud-config.yaml.\nUma vez com o cloud-config configurado, o próximo passo é executar o script de instalação passando os parâmetros necessários (dispositivo onde será instalado, a versão desejada e o path do cloud-config):\n# /tmp/coreos-install.sh -d /dev/sda -C stable -c /tmp/cloud-config.yaml Mais opções de customização do cloud-config estão disponíveis na documentação: https://coreos.com/docs/cluster-management/setup/cloudinit-cloud-config/\nAutomaticamente será feito download da imagem, particionamento do disco, instalação do CoreOS e configurado o cluster com o token especificado.\nVocê pode notar alguma mensagem de erro dizendo que um componente chamado coreos-cloudinit não foi encontrado e por isto o arquivo de configuração não pôde ser validado. Isto ocorre porque de fato não temos o coreos-cloudinit instalado. Se quiser validar seu arquivo de configuração, basta acessar http://coreos.com/validate conforme dito anteriormente.\nAo término da instalação, basta fazer o restart da máquina virtual e acessar a máquina virtual com a chave SSH:\n# ssh -i /tmp/CoreOS_rsa core@192.168.1.130 Finalizada a instalação do primeiro servidor, basta criar o segundo servidor lembrando dos seguintes detalhes:\nUsar o mesmo token no cloud-config.yaml; Alterar o endereço IP para o correspondente do segundo servidor no cloud-config.yaml. Terminada a instalação, basta logar em uma das máquinas e rodar os comandos abaixo. Estes comandos mostrarão os nós integrantes do cluster e a saúde de cada nó:\n# fleetctl list-machines # etcdctl cluster-health Se você quiser conferir as configurações aplicadas pelo cloud-config, basta verificar o arquivo /run/systemd/system/etcd.service.d/20-cloudinit.conf\nPor hoje ficamos por aqui. Lembrando que este é um tutorial básico e introdutório. Maiores detalhes e possibilidades, consulte a documentação oficial.\nAbaixo o screencast de demonstração:\n","permalink":"http://ricardomartins.com.br/coreos-como-realizar-a-instalacao-basica/","summary":"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2015/05/coreos-logo.png\"\u003e\u003cimg alt=\"coreos-logo\" loading=\"lazy\" src=\"/wp-content/uploads/2015/05/coreos-logo-300x116.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eConforme prometido, neste post vou mostrar a instalação do CoreOS fazendo uma continuação \u003ca href=\"http://www.ricardomartins.com.br/coreos-o-que-e-e-como-funciona/\"\u003edeste post,\u003c/a\u003e porém de forma mais prática mostrando os passos para instalação e configuração básica de um ambiente rodando em cluster.\u003c/p\u003e\n\u003cp\u003eVou simular uma instalação Bare Metal através do VirtualBox. Note que no site do CoreOS estão relacionadas diversas opções de instalação para todo tipo de ambiente, seja Bare Metal (PXE, iPXE, diretamente em disco), em serviços Cloud (Amazon, Digital Ocean, Azure, Rackspace) ou em plataformas de virtualizalção (Vagrant, VMWare, QEUMU, OpenStack, Eucalyptus, etc). Para cada uma forma de instalação, existem modos diferentes de instalação.\u003c/p\u003e","title":"CoreOS: Como realizar a instalação básica em cluster"},{"content":"No post de hoje vou comentar um pouco sobre o Monit. Uma ferramenta extremamente útil e poderosa para monitoramento de aplicações e serviços.\nCom o monit, você pode monitorar praticamente tudo dentro de um ambiente linux. Cpu, processos, memória, uso de disco, checksum de arquivos, etc, e ainda tomar ações para que os problemas se resolvam de forma automática, sem interação manual.\nPor exemplo, você pode monitorar um serviço, e caso seja detecta falha nele por um determinado período de tempo, automaticamente este serviço ser reiniciado. Se preferir, ainda pode receber um email de notificação informando o problema ocorrido e a solução aplicada.\nSe interessou? Então vamos lá.\nNeste cenário de teste, eu vou usar o Vagrant para iniciar uma máquina virtual onde teremos o nosso laboratório rodando. Nesta máquina virtual, teremos um Nginx e uma aplicação em PHP rodando.\nVamos ter dois monitoramentos ativos, um do processo do Nginx, e outro do processo do PHP-FPM. No teste, vou parar o processo do PHP-FPM para que o Nginx comece à responder status code 502 (Bad Gateway, erro que geralmente aparece quando há um problema de configuração e/ou comunicação entre o servidor web e serviços de back-end. Neste exemplo, o Nginx fará um repasse das requisições PHP para o PHP-FPM, que age como um serviço de back-end e por esta razão ao dar stop nele, o site irá passar a responder com erro 502.)\nO monitoramento do PHP-FPM será feito verificando a cada 30 segundos a resposta do servidor web, no caso o Nginx. Se o servidor responder com status code diferente de 200 (padrão de resposta para solicitações HTTP com sucesso), ele automaticamente irá fazer restart no processo do PHP-FPM e enviar um email de notificação.\nNossa máquina virtual terá as seguintes aplicações instaladas:\n– Nginx (servidor web);\n– PHP-FPM (Uma alternativa em substituição ao FastCGI para implementações em PHP. Ele é mais performático que o FastCGI em sites com muitos acessos simultâneos além de ter mais funcionalidades);\n– Exim (Ferramenta MTA mais simples que sendmail e postfix para o envio de alertas/notificações).\nEste laboratório foi feito em vídeo. Os arquivos de configuração utilizados, estão disponíveis neste link do Github: https://github.com/rmmartins/lab-monit\nA aplicação em PHP está neste link: https://github.com/rmmartins/simple-php-app\nImportante ressaltar que o Monit tem diversas outras formas de funcionamento. Veja a que funciona melhor para você e mais adequadamente dentro do seu ambiente ou do que precisa monitorar.\nO próprio arquivo de configuração (/etc/monit.conf) possui diversos exemplos de uso, e você também encontra muitas informações na documentação no site oficial.\nAbaixo o vídeo:\n","permalink":"http://ricardomartins.com.br/monit-monitoramento-de-aplicacoes-e-servicos-de-forma-inteligente/","summary":"\u003cp\u003eNo post de hoje vou comentar um pouco sobre o \u003ca href=\"https://mmonit.com/monit/\"\u003eMonit\u003c/a\u003e. Uma ferramenta extremamente útil e poderosa para monitoramento de aplicações e serviços.\u003c/p\u003e\n\u003cp\u003eCom o monit, você pode monitorar praticamente tudo dentro de um ambiente linux. Cpu, processos, memória, uso de disco, checksum de arquivos, etc, e ainda tomar ações para que os problemas se resolvam de forma automática, sem interação manual.\u003c/p\u003e\n\u003cp\u003ePor exemplo, você pode monitorar um serviço, e caso seja detecta falha nele por um determinado período de tempo, automaticamente este serviço ser reiniciado. Se preferir, ainda pode receber um email de notificação informando o problema ocorrido e a solução aplicada.\u003c/p\u003e","title":"Monit: Monitoramento de aplicações e serviços de forma inteligente"},{"content":"\nPessoal este é um post rápido, apenas para compartilhar dois links interessantes sobre o Nginx.\nO Nginx é um poderoso web server, altamente performático e muito leve. Maiores informações vocês podem encontrar aqui: http://pt.wikipedia.org/wiki/Nginx\nOs links que gostaria de compartilhar são estes dois:\n– Como é arquitetura do Nginx, voltada para perfomence e escalabilidade: http://nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/\n– Curso gratuito do Nginx: http://academy.javacodegeeks.com/course/introduction-to-nginx/\n","permalink":"http://ricardomartins.com.br/nginx-conhecendo-um-pouco-melhor-este-poderoso-servidor-web/","summary":"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2015/02/nginx_logo.gif\"\u003e\u003cimg alt=\"nginx_logo\" loading=\"lazy\" src=\"/wp-content/uploads/2015/02/nginx_logo-300x206.gif\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePessoal este é um post rápido, apenas para compartilhar dois links interessantes sobre o Nginx.\u003c/p\u003e\n\u003cp\u003eO Nginx é um poderoso web server, altamente performático e muito leve. Maiores informações vocês podem encontrar aqui: \u003ca href=\"http://pt.wikipedia.org/wiki/Nginx\"\u003ehttp://pt.wikipedia.org/wiki/Nginx\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eOs links que gostaria de compartilhar são estes dois:\u003c/p\u003e\n\u003cp\u003e– Como é arquitetura do Nginx, voltada para perfomence e escalabilidade: \u003ca href=\"http://nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale\"\u003ehttp://nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale\u003c/a\u003e/\u003c/p\u003e\n\u003cp\u003e– Curso gratuito do Nginx: \u003ca href=\"http://academy.javacodegeeks.com/course/introduction-to-nginx/\"\u003ehttp://academy.javacodegeeks.com/course/introduction-to-nginx/\u003c/a\u003e\u003c/p\u003e","title":"Nginx: Conhecendo um pouco melhor este poderoso servidor web"},{"content":"Vinícius Teles é um grande desenvolvedor de software que dispensa comentários. Existe uma apresentação dele que envolve temas sobre empreendedorismo, carreira, qualidade de vida, motivação, aprimoramento técnico, enfim, uma apresentação que vale para a vida e por isso estou compartilhando com vocês aqui:\n**[Fuja da escravidão antes que ela te alcance](https://www.slideshare.net/viniciusteles/fuja-da-escravido-antes-que-ela-te-alcance-4261724 \"Fuja da escravidão antes que ela te alcance\")** from **[Vinicius Teles](http://www.slideshare.net/viniciusteles)** ","permalink":"http://ricardomartins.com.br/fuja-da-escravidao/","summary":"\u003cp\u003e\u003ca href=\"http://www.viniciusteles.com.br/\"\u003eVinícius Teles\u003c/a\u003e é um grande desenvolvedor de software que dispensa comentários. Existe uma apresentação dele que envolve temas sobre empreendedorismo, carreira, qualidade de vida, motivação, aprimoramento técnico, enfim, uma apresentação que vale para a vida e por isso estou compartilhando com vocês aqui:\u003c/p\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/jDE6cnh1imf7S\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003cdiv style=\"margin-bottom:5px\"\u003e  **[Fuja da escravidão antes que ela te alcance](https://www.slideshare.net/viniciusteles/fuja-da-escravido-antes-que-ela-te-alcance-4261724 \"Fuja da escravidão antes que ela te alcance\")**  from **[Vinicius Teles](http://www.slideshare.net/viniciusteles)** \u003c/div\u003e","title":"Fuja da escravidão"},{"content":"Em tempos de computação em nuvem, micro serviços e containers, o CoreOS é uma distribuição Linux que vem ganhando força. Neste post vou compartilhar um pouco do que tenho estudado e descoberto sobre ele com vocês.\nO CoreOS é um sistema operacional Linux desenvolvido para ser tolerante à falhas, distribuído e fácil de escalar. Ele tem sido utilizado por times de operações e ambientes alinhados com a cultura DevOps.\nA principal diferença do CoreOS para outras distribuições Linux minimalistas é o fato de ser desenvolvido para suportar nativamente o funcionamento em cluster, possuir poucos binários e não possuir um sistema de empacotamento (como apt-get ou yum). O sistema operacional consite apenas no Kernel e no systemd. Ele depende de containers para gerenciar a instalação de software e aplicações no sistema operacional, provendo um alto nível de abstração. Desta forma, um serviço e todas as suas dependências são empacotadas em um container e podem ser executadas em uma ou diversas máquinas com o CoreOS.\nAtualmente o Docker é a ferramenta mais utilizada e indicada para trabalhar com Containers Linux no CoreOS.\nSe você quiser ler mais sobre Docker, faça uma visita nestes links:\nhttp://www.ricardomartins.com.br/docker-um-engine-linux-container/\nhttp://www.ricardomartins.com.br/docker-tutorial-mao-na-massa/\nhttp://www.ricardomartins.com.br/docker-criando-suas-proprias-imagens/\nO CoreOS já possui seu próprio runtime para containers, chamado Rocket (RKT – https://github.com/coreos/rkt). Neste link (https://coreos.com/blog/rocket/) existe uma explicação sobre os principais motivos para a construção do próprio container runtime pelo time de desenvolvimento do CoreOS.\nAqui também tem informações sobre o Docker x Rocket: http://www.cloudtp.com/2015/05/08/docker-vs-coreos-a-container-battle-worth-waging/\nDe modo geral, o RKT é um CLI para rodar containers de apps no Linux. É integrado com o systemd e com as ferramentas de orquestração de clusters do CoreOS (fleet, kubernetes) e totalmente compatível com outras ferramentas para containers linux, como por exemplo o Docker. Isso significa que o RKT pode executar imagens Docker.\nContainers linux provêem benefícios similares à máquinas virtualizadas, mas com foco nas aplicações ao invés de hosts virtualizados. Como containers não executam seu próprio Kernel ou exigem um hypervisor, isso diminui a carga tornando-os muito performáticos. Desta forma, ganham densidade permitindo que menos recursos computacionais sejam necessários para execução.\nA abordagem de uso também é diferenciada. Por exemplo, enquanto em uma outra distribuição Linux qualquer, para ter uma configuração LAMP rodando você teria que instalar as dependências (Apache ou Nginx, Mysql e PHP) na camada do sistema operacional, no CoreOS o que você precisa é criar uma estrutura de containers utilizando a sua ferramenta preferida (Docker por exemplo) contendo as dependências neles, para poderem ser utilizados por sua aplicação web.\nFuncionamento Durante o boot, o CoreOS faz a leitura de um arquivo de configuração provido pelo usuário chamado “cloud-config” para executar configurações iniciais. Este arquivo possibilita que o CoreOS se conecte com outros membros do cluster, inicialize serviços essenciais e reconfigure parâmetros importantes. Esta é a forma como o CoreOS consegue fazer parte imediatamente de um cluster como um nó totalmente funcional desde sua criação.\nGeralmente o que o arquivo “cloud-config” faz é informar para um host como se conectar à um cluster existente, realizar o boot e executar dois serviços chamados etcd e fleet. Estas três ações estão relacionadas e permitem que o novo host se conecte com os servidores existentes de modo a disponibilizar as ferramentas necessárias para configurar e gerenciar cada nó no cluster. Basicamente, estes são os requerimentos para realizar o bootstrap de uma instalação de um nó CoreOS em um cluster.\nInfraestrutura O CoreOS utiliza o etcd (https://coreos.com/etcd/). Ele é um daemon que é executado em todos os servidores de um cluster provendo um registro de configuração dinâmico, permitindo que vários dados de configuração possam ser compartilhados de forma simples entre os membros do cluster.\nComo os dados são armazenados no modelo chave-valor no etcd, eles são distribuídos e replicados automaticamente (com a eleição automática do servidor master). Todas as alterações nos dados armazenados são refletidas em todo o cluster.\nO etcd também fornece um serviço de descoberta permitindo que aplicações “deployadas” anunciem entre os nós do cluster os serviços que elas disponibilizam.\nA comunicação com o etcd é feita através de chamadas API, utilizando JSON sobre HTTP. A API pode ser usada diretamente (através de curl ou wget por exemplo), ou indiretamente através do etcdctl, que é um utilitário de linha de comando do CoreOS.\nComo no CoreOS tudo está dentro de containers, ele possui o systemd para apenas duas funções: executar os containers Docker e permitir que os serviços sejam registrados no etcd. Você não utiliza o systemd para iniciar ou parar nenhum serviço por exemplo.\nOverview geral da arquitetura do CoreOS:\nPara o gerenciamento de aplicações/serviços em um cluster CoreOS, existe o Fleet (https://coreos.com/using-coreos/clustering). Ele funciona como um sistema de inicialização “cluster-wide” que pode ser usado para orquestrar/gerenciar processos dentro de um cluster. Ele simplifica a configuração de aplicações em ambientes de alta disponibilidade assim como também o gerenciamento do cluster à partir de um único nó. Em outras palavras, seria como dizer que o Fleet funciona como uma interface para realizar o gerenciamento centralizado do systemd de cada nó do cluster.\nQualquer membro do cluster pode ser usado para gerenciar o cluster com a ferramenta fleetctl. Ela permite que você faça o agendamento de serviços, gerenciamento de nós e também permite verificar o estado geral dos seus sistemas.\nUm outro recurso interessante do CoreOS é o que ele denomina como FastPatch. É um método de atualização atualmente muito comum para atualização de hardware e firmware em dispositivos como iPhones, roteadores de internet, etc. De modo geral ele possui duas partições no HD onde as atualizações são automaticamente baixadas para o sistema operacional na partição standby e caso a atualização venha a apresentar alguma falha, a outra partição continua funcionando sem problemas.\nOu seja, ao invés de atualizar pacotes de formas separadas, um por vez, o CoreOS faz o download do sistema de arquivos root todo de uma vez e instala na partição standby. Se nenhum problema for detectado, no próximo reboot o CoreOS vai bootar e passar a rodar a última versão. Mais detalhes você encontra aqui: https://coreos.com/using-coreos/updates/\nDetalhes da arquitetura de funcionamento do etcd e do fleet:\nPara a parte de rede, o CoreOS possui mais dois recursos interessantes. O SkyDNS e o Flannel.\nO SkyDNS (https://github.com/skynetservices/skydns) usa o etcd como backend de storage de dados para a criação de um sistema DNS distribuído, permitindo que você implemente a resolução de DNS interno em um sistema distribuído baseado em containers de forma simples.\nO Flannel (https://github.com/coreos/flannel) usa o etcd para armazenar os mapeamentos entre ips virtuais e endereços de host. Um dameon chamado flanneld é executado em cada host e é responsavel por verificar informações no etcd e rotear os pacotes.\nPara um melhor entendimento, vamos tomar como exemplo o uso do Docker. No Docker cada container roda em uma porta e recebe um endereço IP que pode ser usado para se comunicar com outros containers no mesmo host.\nNo entanto para se comunicar pela rede com containers rodando em outros hosts (sabendo-se que os containters estão vinculados ao endereço ip do host), eles precisam fazer o mapeamento de portas para conseguir falar com um outro container em outro host.\nIsto torna difícil para as aplicações em execução dentro dos containers anunciarem seus IPs externos e portas, já que estas informações não estão disponíveis para elas.\nO Flannel resolve este problema fornecendo um IP para cada container, podendo ser usado na comunicação entre containers em diferentes hosts. Ele usa o encapsulamento de pacotes para criar uma rede virtual sobreposta que se estende por todo o cluster. Mais especificamente, o Flannel concede à cada host uma subrede IP (/24 por padrão) à partir da qual o daemon do Docker é capaz de alocar IPs para os containers individualmente.\nEm resumo, assim como o Docker, o CoreOS é mais uma ferramenta que está revolucionando os modelos tradicionais de infraestrutura de servidores, serviços e aplicações web.\nEmpresas como Red Hat, Canonical e Suse, podem vê-lo como um “problema em potencial” e vou explicar o motivo.\nAlgumas empresas que atuam no desenvolvimento de sistemas Linux, como a Red Hat em particular, construíram seus negócios procurando atender profissionais de operações/infraestrutura, não desenvolvedores.\nHistoricamente, sempre houve aquela grande separação entre times de desenvolvimento e operações, onde times de operações eram responsáveis pela infraestrutura dos servidores e times de desenvolvimento pelas aplicações que são executadas nestes servidores.\nAssim, esta estratégia sempre funcionou muito bem, enquanto times de operações estavam no controle da infraestrutura dos servidores/serviços.\nA questão é que hoje com o crescimento da cultura DevOps, a tendência é que cada vez menos existam barreiras impondo limites de atuação entre times de infraestrutura e desenvolvimento, fazendo com que cada vez estejam mais alinhados trabalhando em conjunto, cooperativamente.\nHoje podemos dizer que por exemplo, o RedHat Enterprise Linux é o que você tem quando questiona à times de operações o que eles esperam de um sistema operacional.\nEm contrapartida, o Ubuntu é o que você tem quando questiona à times de operações o que eles pensam que times de desenvolvimento esperam de um sistema operacional.\nJá o CoreOS é o que você tem quando questiona à times de desenvolvimento o que eles esperam em um sistema operacional.\nIsto porque o CoreOS é o primeiro sistema operacional a surgir nativamente voltado para computação em nuvem. Ele é leve, pronto para uso e tenta incorporar práticas DevOps em sua arquitetura.\nO RHEL por exemplo, está sempre ganhando mercado e posições adicionando novos recursos, novas funcionalidades, novos diferenciais, novos binários e novos pacotes. É o seu modelo de negócio.\nEm contra-partida o CoreOS ganha mercado e valor, removendo coisas, se tornando leve, simples, altamente funcional e performático. Ele ganha mais valor, oferecendo menos, lhe dando a opção de fazer mais com menos. É como uma analogia bastante utilizada entre animais de estimação e gados, que você pode ler aqui originalmente em diversos outros lugares.\nA rápida adoção do CoreOS por times de desenvolvimento em todo o mundo indica que eles estão super satisfeitos com um Linux que inclui “nada” por padrão, o que diminui o valor de distribuições “tradicionais” fornecidas por empresas como a RedHat, Canonical ou Suse.\nA questão é que se times de operações seguirem o exemplo aderindo à este modelo, você percebe que podemos estar falando de algo como “Linux as a Service”?\nEste é um importante ponto de partida sobre como distribuições linux tradicionais funcionam, conforme Alex Polvi (CoreOS co-founder e CEO) postou no Twitter:\n“No RHEL, [as atualizações] estão automaticamente disponíveis, no CoreOS elas são automaticamente aplicadas”\nDiante de tudo isso, a RedHat não está disposta a ser prejudicada pelo CoreOS e para combater este “risco em potencial”, lançou o Project Atomic – http://www.projectatomic.io\nDe acordo com o próprio site, o Project Atomic é um sistema operacional minimalista desenvolvido para rodar containers Docker, desenvolvido à partir do CentOS, Fedora e alguns pacotes do RHEL. Fornece todos os benefícios de uma distribuição baseada nestas distribuições, além da capacidade de realizar upgrades e downgrades atômicos provendo o melhor dos dois mundos: um modelo de atualizações moderno à partir de distribuições linux que você conhece e confia.\nCom tudo isso, agora os olhares das grandes empresas do mundo Linux estão com os olhos voltados para os desenvolvedores também, e não mais apenas para os times de operações/infraestrutura.\nO Project Atomic e outros similares mostram que as empresas estão começando a pensar fora da caixa, e dentro de containers Docker.\nUm review interessante comparando o CoreOS com o Project Atomic está disponível em https://major.io/2014/05/13/coreos-vs-project-atomic-a-review\nEm um próximo post, eu vou mostrar a instalação do CoreOS. Até lá!\nMaiores informações:\nhttps://coreos.com/\nhttps://coreos.com/community/all/\nhttp://krenel.org/coreOS.html\nhttp://en.wikipedia.org/wiki/CoreOS\nhttps://www.digitalocean.com/community/tutorials/an-introduction-to-coreos-system-components\nhttp://pt.slideshare.net/romefort1/coreos-introduction-johann-romefort\nhttp://pt.slideshare.net/lorispack/using-coreos-flannel-for-docker-networking\nhttps://coreos.com/docs/cluster-management/setup/flannel-config/\nhttp://pt.slideshare.net/teemow1/coreos-intro\n","permalink":"http://ricardomartins.com.br/coreos-o-que-e-e-como-funciona/","summary":"\u003cp\u003eEm tempos de computação em nuvem, micro serviços e containers, o CoreOS é uma distribuição Linux que vem ganhando força. Neste post vou compartilhar um pouco do que tenho estudado e descoberto sobre ele com vocês.\u003c/p\u003e\n\u003cp\u003eO \u003ca href=\"https://coreos.com\"\u003eCoreOS\u003c/a\u003e é um sistema operacional Linux desenvolvido para ser tolerante à falhas, distribuído e fácil de escalar. Ele tem sido utilizado por times de operações e ambientes alinhados com a cultura DevOps.\u003c/p\u003e\n\u003cp\u003eA principal diferença do CoreOS para outras distribuições Linux minimalistas é o fato de ser desenvolvido para suportar nativamente o funcionamento em cluster, possuir poucos binários e não possuir um sistema de empacotamento (como apt-get ou yum). O sistema operacional consite apenas no Kernel e no systemd. Ele depende de containers para gerenciar a instalação de software e aplicações no sistema operacional, provendo um alto nível de abstração. Desta forma, um serviço e todas as suas dependências são empacotadas em um container e podem ser executadas em uma ou diversas máquinas com o CoreOS.\u003c/p\u003e","title":"CoreOS: O que é e como funciona?"},{"content":"Em mais um vídeo do Foras de Série, uma excelente aula de empreendedorismo com Gustavo Caetano da Samba Tech. Assita aqui:\n","permalink":"http://ricardomartins.com.br/excelente-aula-de-empreendedorismo-com-gustavo-caetano/","summary":"\u003cp\u003eEm mais um vídeo do \u003ca href=\"http://www.forasdeserie.com/\"\u003eForas de Série\u003c/a\u003e, uma excelente aula de empreendedorismo com Gustavo Caetano da \u003ca href=\"http://sambatech.com\"\u003eSamba Tech\u003c/a\u003e. Assita aqui:\u003c/p\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"281\" loading=\"lazy\" src=\"https://www.youtube.com/embed/rFP90504o4U?feature=oembed\" width=\"500\"\u003e\u003c/iframe\u003e","title":"Excelente aula de empreendedorismo com Gustavo Caetano"},{"content":"O post de hoje é pra mostrar como criar suas imagens do docker, publicá-las no Docker Hub (Registry) e depois usar/disponibilizar onde precisar.\nO primeiro passo é instalar o docker:\n[root@rmartins /]# yum install docker-io Loaded plugins: fastestmirror Setting up Install Process Loading mirror speeds from cached hostfile * base: mirror.nbtelecom.com.br * epel: mirror.globo.com * extras: mirror.nbtelecom.com.br * updates: mirror.nbtelecom.com.br Resolving Dependencies --\u0026gt; Running transaction check ---\u0026gt; Package docker-io.x86_64 0:1.4.1-3.el6 will be installed --\u0026gt; Finished Dependency Resolution Dependencies Resolved ============================================================================================================================================================================================================================================== Package Arch Version Repository Size ============================================================================================================================================================================================================================================== Installing: docker-io x86_64 1.4.1-3.el6 epel 4.5 M Transaction Summary ============================================================================================================================================================================================================================================== Install 1 Package(s) Total download size: 4.5 M Installed size: 19 M Is this ok [y/N]: y Downloading Packages: docker-io-1.4.1-3.el6.x86_64.rpm | 4.5 MB 00:02 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : docker-io-1.4.1-3.el6.x86_64 1/1 Verifying : docker-io-1.4.1-3.el6.x86_64 1/1 Installed: docker-io.x86_64 0:1.4.1-3.el6 Complete! Uma vez instalado, vamos iniciá-lo:\n[root@rmartins /]# /etc/init.d/docker start Starting cgconfig service: [ OK ] Starting docker: [ OK ] Agora vamos criar nosso diretório de trabalho\n[root@rmartins /]# mkdir -p /docker/webserver [root@rmartins /]# cd /docker/webserver Dentro do nosso diretório de trabalho vamos criar dois arquivos para serem adicionados à nossa imagem pelo Dockerfile. Uma delas é um arquivo para ser configurado o repositório epel e outro é o conteúdo do index.html que será servido pelo nosso Nginx nesta demonstração:\nO primeiro é o arquivo epel.repo:\ncat \u0026lt;\u0026lt;\u0026#39;EOF\u0026#39; \u0026gt;\u0026gt; epel.repo [epel] name=Extra Packages for Enterprise Linux 6 - $basearch baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6\u0026amp;arch=$basearch failovermethod=priority enabled=1 gpgcheck=0 EOF O segundo o index.html:\ncat \u0026lt;\u0026lt;\u0026#39;EOF\u0026#39; \u0026gt;\u0026gt; index.html \u0026lt;center\u0026gt;Ricardo Martins | Docker Test\u0026lt;/center\u0026gt;EOF Em seguida vamos criar nosso Dockerfile:\n[root@rmartins webserver]# vim Dockerfile FROM centos:6 MAINTAINER Ricardo Martins \u0026lt;contato@ricardomartins.com.br\u0026gt; ADD epel.repo /etc/yum.repos.d/ RUN yum update -y RUN yum install -y nginx RUN echo \u0026#34;daemon off;\u0026#34; \u0026gt;\u0026gt; /etc/nginx/nginx.conf RUN rm -rf /usr/share/nginx/html/* ADD index.html /usr/share/nginx/html/ CMD /usr/sbin/nginx -c /etc/nginx/nginx.conf EXPOSE 80 O que fazem estas linhas de comando:\nFROM centos:6 = Indica que utilizaremos a imagem base do Centos 6, do repositório do CentOS no Dockerhub (Registry) (https://registry.hub.docker.com/_/centos/)\nMAINTAINER Ricardo Martins \u0026lt;contato@ricardomartins.com.br\u0026gt; = O nome e contato do mantenedor da imagem\nADD epel.repo /etc/yum.repos.d/ = Adiciona o conteúdo do arquivo epel.repo dentro de /etc/yum.repos.d. Isto é necessário para que seja utilizado o repositório do Epel para a instalação do Nginx\nRUN yum update -y = Atualiza o sistema\nRUN yum install -y nginx = Instala o Nginx\nRUN echo “daemon off;” \u0026gt;\u0026gt; /etc/nginx/nginx.conf = De acordo com o conceito de funcionamento do Docker, um container deve rodar apenas um serviço. Sendo assim, em vez de rodar serviços em background, devem rodar em foreground. Então este comando desabilita a execução do nginx como daemon.\nRUN rm -rf /usr/share/nginx/html/* = Remove o conteúdo de /usr/share/nginx/html/\nADD index.html /usr/share/nginx/html/ = Adiciona o arquivo index.html em /usr/share/nginx/html/\nCMD /usr/sbin/nginx -c /etc/nginx/nginx.conf = Informa o comando a ser executado ao iniciar o container\nEXPOSE 80 = Usado para informar qual porta o container docker irá “escutar”.\nAgora vamos criar nossa imagem com o comando abaixo:\n[root@rmartins webserver]# docker build -t=rmartins/nginx:teste . Neste caso, estaremos criando a nossa imagem dentro do repositório rmartins/nginx com a tag teste. O “.” no final da linha informa para procurar o Dockerfile no diretório atual. A saída do comando está exibida abaixo, contendo todas as tasks realizadas:\nSending build context to Docker daemon 4.096 kB Sending build context to Docker daemon Step 0 : FROM centos:6 centos:6: The image you are pulling has been verified 511136ea3c5a: Pull complete 5b12ef8fd570: Pull complete f6808a3e4d9e: Pull complete Status: Downloaded newer image for centos:6 ---\u0026gt; f6808a3e4d9e Step 1 : MAINTAINER Ricardo Martins \u0026lt;contato@ricardomartins.com.br\u0026gt; ---\u0026gt; Running in 72bb3ca71976 ---\u0026gt; 0e26bbc4a6fa Removing intermediate container 72bb3ca71976 Step 2 : ADD epel.repo /etc/yum.repos.d/ ---\u0026gt; 3238866cc178 Removing intermediate container f63fa4c5123b Step 3 : RUN yum update -y ---\u0026gt; Running in 8d44ba718c35 Loaded plugins: fastestmirror Setting up Update Process Resolving Dependencies --\u0026gt; Running transaction check ---\u0026gt; Package bind-libs.x86_64 32:9.8.2-0.30.rc1.el6_6.1 will be updated ---\u0026gt; Package bind-libs.x86_64 32:9.8.2-0.30.rc1.el6_6.2 will be an update ---\u0026gt; Package bind-utils.x86_64 32:9.8.2-0.30.rc1.el6_6.1 will be updated ---\u0026gt; Package bind-utils.x86_64 32:9.8.2-0.30.rc1.el6_6.2 will be an update ---\u0026gt; Package cyrus-sasl-lib.x86_64 0:2.1.23-15.el6_6.1 will be updated ---\u0026gt; Package cyrus-sasl-lib.x86_64 0:2.1.23-15.el6_6.2 will be an update ---\u0026gt; Package openssl.x86_64 0:1.0.1e-30.el6_6.5 will be updated ---\u0026gt; Package openssl.x86_64 0:1.0.1e-30.el6.8 will be an update ---\u0026gt; Package shadow-utils.x86_64 2:4.1.4.2-19.el6 will be updated ---\u0026gt; Package shadow-utils.x86_64 2:4.1.4.2-19.el6_6.1 will be an update ---\u0026gt; Package tzdata.noarch 0:2015a-1.el6 will be updated ---\u0026gt; Package tzdata.noarch 0:2015b-1.el6 will be an update --\u0026gt; Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Updating: bind-libs x86_64 32:9.8.2-0.30.rc1.el6_6.2 updates 884 k bind-utils x86_64 32:9.8.2-0.30.rc1.el6_6.2 updates 185 k cyrus-sasl-lib x86_64 2.1.23-15.el6_6.2 updates 136 k openssl x86_64 1.0.1e-30.el6.8 updates 1.5 M shadow-utils x86_64 2:4.1.4.2-19.el6_6.1 updates 899 k tzdata noarch 2015b-1.el6 updates 443 k Transaction Summary ================================================================================ Upgrade 6 Package(s) Total download size: 4.0 M Downloading Packages: -------------------------------------------------------------------------------- Total 583 kB/s | 4.0 MB 00:07 warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Importing GPG key 0xC105B9DE: Userid : CentOS-6 Key (CentOS 6 Official Signing Key) \u0026lt;centos-6-key@centos.org\u0026gt; Package: centos-release-6-6.el6.centos.12.2.x86_64 (@CentOS/$releasever) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Warning: RPMDB altered outside of yum. Updating : openssl-1.0.1e-30.el6.8.x86_64 1/12 Updating : 32:bind-libs-9.8.2-0.30.rc1.el6_6.2.x86_64 2/12 Updating : 32:bind-utils-9.8.2-0.30.rc1.el6_6.2.x86_64 3/12 Updating : 2:shadow-utils-4.1.4.2-19.el6_6.1.x86_64 4/12 Updating : cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64 5/12 Updating : tzdata-2015b-1.el6.noarch 6/12 Cleanup : tzdata-2015a-1.el6.noarch 7/12 Cleanup : 32:bind-utils-9.8.2-0.30.rc1.el6_6.1.x86_64 8/12 Cleanup : 32:bind-libs-9.8.2-0.30.rc1.el6_6.1.x86_64 9/12 Cleanup : openssl-1.0.1e-30.el6_6.5.x86_64 10/12 Cleanup : 2:shadow-utils-4.1.4.2-19.el6.x86_64 11/12 Cleanup : cyrus-sasl-lib-2.1.23-15.el6_6.1.x86_64 12/12 Verifying : openssl-1.0.1e-30.el6.8.x86_64 1/12 Verifying : tzdata-2015b-1.el6.noarch 2/12 Verifying : 32:bind-utils-9.8.2-0.30.rc1.el6_6.2.x86_64 3/12 Verifying : cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64 4/12 Verifying : 2:shadow-utils-4.1.4.2-19.el6_6.1.x86_64 5/12 Verifying : 32:bind-libs-9.8.2-0.30.rc1.el6_6.2.x86_64 6/12 Verifying : cyrus-sasl-lib-2.1.23-15.el6_6.1.x86_64 7/12 Verifying : openssl-1.0.1e-30.el6_6.5.x86_64 8/12 Verifying : 32:bind-utils-9.8.2-0.30.rc1.el6_6.1.x86_64 9/12 Verifying : 2:shadow-utils-4.1.4.2-19.el6.x86_64 10/12 Verifying : 32:bind-libs-9.8.2-0.30.rc1.el6_6.1.x86_64 11/12 Verifying : tzdata-2015a-1.el6.noarch 12/12 Updated: bind-libs.x86_64 32:9.8.2-0.30.rc1.el6_6.2 bind-utils.x86_64 32:9.8.2-0.30.rc1.el6_6.2 cyrus-sasl-lib.x86_64 0:2.1.23-15.el6_6.2 openssl.x86_64 0:1.0.1e-30.el6.8 shadow-utils.x86_64 2:4.1.4.2-19.el6_6.1 tzdata.noarch 0:2015b-1.el6 Complete! ---\u0026gt; 0382a281fc73 Removing intermediate container 8d44ba718c35 Step 4 : RUN yum install -y nginx ---\u0026gt; Running in 45996a2b3d05 Loaded plugins: fastestmirror Setting up Install Process Determining fastest mirrors * base: centos.ufms.br * epel: mirror.uta.edu.ec * extras: centos.ufms.br * updates: centos.ufms.br Resolving Dependencies --\u0026gt; Running transaction check ---\u0026gt; Package nginx.x86_64 0:1.0.15-11.el6 will be installed --\u0026gt; Processing Dependency: nginx-filesystem = 1.0.15-11.el6 for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: perl \u0026gt;= 5.006001 for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: perl(warnings) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: perl(strict) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: perl(constant) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: perl(XSLoader) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: perl(Exporter) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: perl(:MODULE_COMPAT_5.10.1) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: nginx-filesystem for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: libxslt.so.1(LIBXML2_1.0.18)(64bit) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: libxslt.so.1(LIBXML2_1.0.11)(64bit) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: gd for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: GeoIP for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: libxslt.so.1()(64bit) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: libperl.so()(64bit) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: libgd.so.2()(64bit) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: libexslt.so.0()(64bit) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Processing Dependency: libGeoIP.so.1()(64bit) for package: nginx-1.0.15-11.el6.x86_64 --\u0026gt; Running transaction check ---\u0026gt; Package GeoIP.x86_64 0:1.5.1-5.el6 will be installed ---\u0026gt; Package gd.x86_64 0:2.0.35-11.el6 will be installed --\u0026gt; Processing Dependency: libpng12.so.0(PNG12_0)(64bit) for package: gd-2.0.35-11.el6.x86_64 --\u0026gt; Processing Dependency: libpng12.so.0()(64bit) for package: gd-2.0.35-11.el6.x86_64 --\u0026gt; Processing Dependency: libjpeg.so.62()(64bit) for package: gd-2.0.35-11.el6.x86_64 --\u0026gt; Processing Dependency: libfreetype.so.6()(64bit) for package: gd-2.0.35-11.el6.x86_64 --\u0026gt; Processing Dependency: libfontconfig.so.1()(64bit) for package: gd-2.0.35-11.el6.x86_64 --\u0026gt; Processing Dependency: libXpm.so.4()(64bit) for package: gd-2.0.35-11.el6.x86_64 --\u0026gt; Processing Dependency: libX11.so.6()(64bit) for package: gd-2.0.35-11.el6.x86_64 ---\u0026gt; Package libxslt.x86_64 0:1.1.26-2.el6_3.1 will be installed ---\u0026gt; Package nginx-filesystem.noarch 0:1.0.15-11.el6 will be installed ---\u0026gt; Package perl.x86_64 4:5.10.1-136.el6_6.1 will be installed --\u0026gt; Processing Dependency: perl(version) for package: 4:perl-5.10.1-136.el6_6.1.x86_64 --\u0026gt; Processing Dependency: perl(Pod::Simple) for package: 4:perl-5.10.1-136.el6_6.1.x86_64 --\u0026gt; Processing Dependency: perl(Module::Pluggable) for package: 4:perl-5.10.1-136.el6_6.1.x86_64 ---\u0026gt; Package perl-libs.x86_64 4:5.10.1-136.el6_6.1 will be installed --\u0026gt; Running transaction check ---\u0026gt; Package fontconfig.x86_64 0:2.8.0-5.el6 will be installed ---\u0026gt; Package freetype.x86_64 0:2.3.11-15.el6_6.1 will be installed ---\u0026gt; Package libX11.x86_64 0:1.6.0-2.2.el6 will be installed --\u0026gt; Processing Dependency: libX11-common = 1.6.0-2.2.el6 for package: libX11-1.6.0-2.2.el6.x86_64 --\u0026gt; Processing Dependency: libxcb.so.1()(64bit) for package: libX11-1.6.0-2.2.el6.x86_64 ---\u0026gt; Package libXpm.x86_64 0:3.5.10-2.el6 will be installed ---\u0026gt; Package libjpeg-turbo.x86_64 0:1.2.1-3.el6_5 will be installed ---\u0026gt; Package libpng.x86_64 2:1.2.49-1.el6_2 will be installed ---\u0026gt; Package perl-Module-Pluggable.x86_64 1:3.90-136.el6_6.1 will be installed ---\u0026gt; Package perl-Pod-Simple.x86_64 1:3.13-136.el6_6.1 will be installed --\u0026gt; Processing Dependency: perl(Pod::Escapes) \u0026gt;= 1.04 for package: 1:perl-Pod-Simple-3.13-136.el6_6.1.x86_64 ---\u0026gt; Package perl-version.x86_64 3:0.77-136.el6_6.1 will be installed --\u0026gt; Running transaction check ---\u0026gt; Package libX11-common.noarch 0:1.6.0-2.2.el6 will be installed ---\u0026gt; Package libxcb.x86_64 0:1.9.1-2.el6 will be installed --\u0026gt; Processing Dependency: libXau.so.6()(64bit) for package: libxcb-1.9.1-2.el6.x86_64 ---\u0026gt; Package perl-Pod-Escapes.x86_64 1:1.04-136.el6_6.1 will be installed --\u0026gt; Running transaction check ---\u0026gt; Package libXau.x86_64 0:1.0.6-4.el6 will be installed --\u0026gt; Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: nginx x86_64 1.0.15-11.el6 epel 404 k Installing for dependencies: GeoIP x86_64 1.5.1-5.el6 epel 21 M fontconfig x86_64 2.8.0-5.el6 base 186 k freetype x86_64 2.3.11-15.el6_6.1 updates 361 k gd x86_64 2.0.35-11.el6 base 142 k libX11 x86_64 1.6.0-2.2.el6 base 586 k libX11-common noarch 1.6.0-2.2.el6 base 192 k libXau x86_64 1.0.6-4.el6 base 24 k libXpm x86_64 3.5.10-2.el6 base 51 k libjpeg-turbo x86_64 1.2.1-3.el6_5 base 174 k libpng x86_64 2:1.2.49-1.el6_2 base 182 k libxcb x86_64 1.9.1-2.el6 base 110 k libxslt x86_64 1.1.26-2.el6_3.1 base 452 k nginx-filesystem noarch 1.0.15-11.el6 epel 7.9 k perl x86_64 4:5.10.1-136.el6_6.1 updates 10 M perl-Module-Pluggable x86_64 1:3.90-136.el6_6.1 updates 40 k perl-Pod-Escapes x86_64 1:1.04-136.el6_6.1 updates 32 k perl-Pod-Simple x86_64 1:3.13-136.el6_6.1 updates 212 k perl-libs x86_64 4:5.10.1-136.el6_6.1 updates 578 k perl-version x86_64 3:0.77-136.el6_6.1 updates 51 k Transaction Summary ================================================================================ Install 20 Package(s) Total download size: 35 M Installed size: 87 M Downloading Packages: -------------------------------------------------------------------------------- Total 363 kB/s | 35 MB 01:37 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : freetype-2.3.11-15.el6_6.1.x86_64 1/20 Installing : fontconfig-2.8.0-5.el6.x86_64 2/20 Installing : 1:perl-Pod-Escapes-1.04-136.el6_6.1.x86_64 3/20 Installing : 1:perl-Module-Pluggable-3.90-136.el6_6.1.x86_64 4/20 Installing : 4:perl-libs-5.10.1-136.el6_6.1.x86_64 5/20 Installing : 1:perl-Pod-Simple-3.13-136.el6_6.1.x86_64 6/20 Installing : 3:perl-version-0.77-136.el6_6.1.x86_64 7/20 Installing : 4:perl-5.10.1-136.el6_6.1.x86_64 8/20 Installing : libX11-common-1.6.0-2.2.el6.noarch 9/20 Installing : libjpeg-turbo-1.2.1-3.el6_5.x86_64 10/20 Installing : libxslt-1.1.26-2.el6_3.1.x86_64 11/20 Installing : 2:libpng-1.2.49-1.el6_2.x86_64 12/20 Installing : nginx-filesystem-1.0.15-11.el6.noarch 13/20 Installing : GeoIP-1.5.1-5.el6.x86_64 14/20 Installing : libXau-1.0.6-4.el6.x86_64 15/20 Installing : libxcb-1.9.1-2.el6.x86_64 16/20 Installing : libX11-1.6.0-2.2.el6.x86_64 17/20 Installing : libXpm-3.5.10-2.el6.x86_64 18/20 Installing : gd-2.0.35-11.el6.x86_64 19/20 Installing : nginx-1.0.15-11.el6.x86_64 20/20 Verifying : 3:perl-version-0.77-136.el6_6.1.x86_64 1/20 Verifying : freetype-2.3.11-15.el6_6.1.x86_64 2/20 Verifying : libXau-1.0.6-4.el6.x86_64 3/20 Verifying : GeoIP-1.5.1-5.el6.x86_64 4/20 Verifying : 1:perl-Pod-Simple-3.13-136.el6_6.1.x86_64 5/20 Verifying : 1:perl-Module-Pluggable-3.90-136.el6_6.1.x86_64 6/20 Verifying : libXpm-3.5.10-2.el6.x86_64 7/20 Verifying : nginx-filesystem-1.0.15-11.el6.noarch 8/20 Verifying : fontconfig-2.8.0-5.el6.x86_64 9/20 Verifying : libxcb-1.9.1-2.el6.x86_64 10/20 Verifying : 2:libpng-1.2.49-1.el6_2.x86_64 11/20 Verifying : 4:perl-5.10.1-136.el6_6.1.x86_64 12/20 Verifying : nginx-1.0.15-11.el6.x86_64 13/20 Verifying : 4:perl-libs-5.10.1-136.el6_6.1.x86_64 14/20 Verifying : libxslt-1.1.26-2.el6_3.1.x86_64 15/20 Verifying : libjpeg-turbo-1.2.1-3.el6_5.x86_64 16/20 Verifying : 1:perl-Pod-Escapes-1.04-136.el6_6.1.x86_64 17/20 Verifying : libX11-1.6.0-2.2.el6.x86_64 18/20 Verifying : libX11-common-1.6.0-2.2.el6.noarch 19/20 Verifying : gd-2.0.35-11.el6.x86_64 20/20 Installed: nginx.x86_64 0:1.0.15-11.el6 Dependency Installed: GeoIP.x86_64 0:1.5.1-5.el6 fontconfig.x86_64 0:2.8.0-5.el6 freetype.x86_64 0:2.3.11-15.el6_6.1 gd.x86_64 0:2.0.35-11.el6 libX11.x86_64 0:1.6.0-2.2.el6 libX11-common.noarch 0:1.6.0-2.2.el6 libXau.x86_64 0:1.0.6-4.el6 libXpm.x86_64 0:3.5.10-2.el6 libjpeg-turbo.x86_64 0:1.2.1-3.el6_5 libpng.x86_64 2:1.2.49-1.el6_2 libxcb.x86_64 0:1.9.1-2.el6 libxslt.x86_64 0:1.1.26-2.el6_3.1 nginx-filesystem.noarch 0:1.0.15-11.el6 perl.x86_64 4:5.10.1-136.el6_6.1 perl-Module-Pluggable.x86_64 1:3.90-136.el6_6.1 perl-Pod-Escapes.x86_64 1:1.04-136.el6_6.1 perl-Pod-Simple.x86_64 1:3.13-136.el6_6.1 perl-libs.x86_64 4:5.10.1-136.el6_6.1 perl-version.x86_64 3:0.77-136.el6_6.1 Complete! ---\u0026gt; c33cc1e02349 Removing intermediate container 45996a2b3d05 Step 5 : RUN echo \u0026#34;daemon off;\u0026#34; \u0026gt;\u0026gt; /etc/nginx/nginx.conf ---\u0026gt; Running in a2529e48704f ---\u0026gt; 8c4764c39165 Removing intermediate container a2529e48704f Step 6 : RUN rm -rf /usr/share/nginx/html/* ---\u0026gt; Running in f009613f9586 ---\u0026gt; 7367163ddf6b Removing intermediate container f009613f9586 Step 7 : ADD index.html /usr/share/nginx/html/ ---\u0026gt; 6991229431d0 Removing intermediate container ea6eee679788 Step 8 : CMD /usr/sbin/nginx -c /etc/nginx/nginx.conf ---\u0026gt; Running in 406af26140ad ---\u0026gt; 2be3b2ad822b Removing intermediate container 406af26140ad Step 9 : EXPOSE 80 ---\u0026gt; Running in 539a5bb88ce1 ---\u0026gt; 1601aa313bde Removing intermediate container 539a5bb88ce1 Successfully built 1601aa313bde Uma vez finalizado, podemos ver as imagens disponíveis no nosso cache local:\n[root@rmartins webserver]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE rmartins/nginx teste 1601aa313bde 2 minutes ago 398.3 MB centos 6 f6808a3e4d9e 5 weeks ago 215.7 MB Note que temos duas imagens: 1601aa313bde e f6808a3e4d9e. A primeira é a que acabamos de gerar. A segunda é a que foi usada para gerar a nossa, uma vez que especificamos para utilizar uma imagem base do CentOS 6. O que aconteceu é que o docker baixou do repositório do CentOS no Dockerhub (Registry) e a imagem base do CentOS 6.\nO próximo passo é publicar a nossa imagem no repositório do Dockerhub (Registry), uma vez que por enquanto ele existe apenas localmente. Para isso, você deve ter um usuário e senha previamente cadastrados em http://hub.docker.com. Depois de criar seu usuário, rode o comando de login e informe seus dados. No meu caso:\n[root@rmartins webserver]# docker login Username: rmartins Password: ------- Email: contato@ricardomartins.com.br Login Succeeded Feito isso você já está logado no Dockerhub (Registry), então basta fazer o push da sua imagem no seu repositório:\n[root@rmartins webserver]# docker push rmartins/nginx The push refers to a repository [rmartins/nginx] (len: 1) Sending image list Pushing repository rmartins/nginx (1 tags) 511136ea3c5a: Image already pushed, skipping 5b12ef8fd570: Image already pushed, skipping f6808a3e4d9e: Image already pushed, skipping 0e26bbc4a6fa: Image successfully pushed 3238866cc178: Image successfully pushed 0382a281fc73: Image successfully pushed c33cc1e02349: Image successfully pushed 8c4764c39165: Image successfully pushed 7367163ddf6b: Image successfully pushed 6991229431d0: Image successfully pushed 2be3b2ad822b: Image successfully pushed 1601aa313bde: Image successfully pushed Pushing tag for rev [1601aa313bde] on {https://cdn-registry-1.docker.io/v1/repositories/rmartins/nginx/tags/teste} Feito isso, você já pode conferir a imagem no repositório. Neste caso, acesse em https://registry.hub.docker.com/u/rmartins/nginx/\nAgora a imagem do nosso container já está disponibilizada para todos na internet. Aos interessados em usar, basta rodar o comando abaixo depois de instalar o docker:\n[root@rmartins webserver]# docker run -d -p 80:80 rmartins/nginx:teste c985f8c73207ff3ac1b61881b9cdc95657af5109557ca9156e3be7873e1ac27 Por padrão o docker irá procurar informada em cache. Neste caso encontrou pois criamos esta imagem localmente, porém se estivesse apenas testando uma imagem disponibilizada por alguem no Dockerhub (Registry), o docker iria realizar o download para a máquina e em seguida rodar o container desta imagem.\nConferindo a execução do container:\n[root@rmartins webserver]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c985f8c73207 rmartins/nginx:teste \u0026#34;/bin/sh -c \u0026#39;/usr/sb 38 seconds ago Up 35 seconds 0.0.0.0:80-\u0026gt;80/tcp boring_wilson Ao acessar http://ip.do.host será visualizado o nginx rodando, com o index.html customizado:\nFazendo alterações:\nSe quiser, você pode acessar o shell do container e realizar alterações:\n[root@rmartins webserver]# docker exec -it c985f8c73207 bash Seremos direcionados para dentro do container:\n[root@c985f8c73207 /]# Então vou alterar o arquivo index.html, inserindo uma linha a mais, conforme abaixo:\n[root@c985f8c73207 /]# vi /usr/share/nginx/html/index.html \u0026lt;center\u0026gt;Ricardo Martins | Docker Test\u0026lt;/center\u0026gt;\u0026lt;center\u0026gt;Testando alteracoes\u0026lt;/center\u0026gt; Agora vamos sair do container (basta escrever “exit” – sem aspas) e visualizar as alterações:\n[root@rmartins webserver]# docker diff c985f8c73207 C /usr C /usr/share C /usr/share/nginx C /usr/share/nginx/html C /usr/share/nginx/html/index.html C /root A /root/.bash_history C /var C /var/log C /var/log/nginx A /var/log/nginx/access.log A /var/log/nginx/error.log C /var/lib C /var/lib/nginx C /var/lib/nginx/tmp A /var/lib/nginx/tmp/client_body A /var/lib/nginx/tmp/fastcgi A /var/lib/nginx/tmp/proxy A /var/lib/nginx/tmp/scgi A /var/lib/nginx/tmp/uwsgi C /var/run A /var/run/nginx.pid E por fim criar uma nova imagem baseando-se no container atual:\n[root@rmartins webserver]# docker commit c985f8c73207 rmartins/nginx-alterado 9ece9e81425f2727976aa3b2e239c5a30d140413f3f546cf948becb328891eb9 Publicando no Dockerhub (Registry) a imagem alterada:\n[root@rmartins webserver]# docker push rmartins/nginx-alterado The push refers to a repository [rmartins/nginx-alterado] (len: 1) Sending image list Pushing repository rmartins/nginx-alterado (1 tags) 511136ea3c5a: Image already pushed, skipping 5b12ef8fd570: Image already pushed, skipping f6808a3e4d9e: Image already pushed, skipping 0e26bbc4a6fa: Image already pushed, skipping 3238866cc178: Image already pushed, skipping 0382a281fc73: Image already pushed, skipping c33cc1e02349: Image already pushed, skipping 8c4764c39165: Image already pushed, skipping 7367163ddf6b: Image already pushed, skipping 6991229431d0: Image already pushed, skipping 2be3b2ad822b: Image already pushed, skipping 1601aa313bde: Image already pushed, skipping 9ece9e81425f: Image successfully pushed Pushing tag for rev [9ece9e81425f] on {https://cdn-registry-1.docker.io/v1/repositories/rmartins/nginx-alterado/tags/latest} Note que não informei uma tag específica, então esta imagem ganha uma tag padrão, chamada latest.\nAgora vou dar stop no container em execução:\n[root@rmartins /]# docker stop c985f8c73207 c985f8c73207 E subir nossa outra imagem alterada:\n[root@rmartins /]# docker run -d -p 80:80 rmartins/nginx-alterado 236204839ae3680f21c6c9cc4bfe2d2493732a24b2b5b2edbe071379f00ec501 Acessando:\nMais um teste para finalizar. Identificando o container em execução com o nginx alterado:\n[root@rmartins /]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2b1cf57a7ad9 rmartins/nginx-alterado:latest \u0026#34;/bin/sh -c \u0026#39;/usr/sb 3 minutes ago Up 3 minutes 0.0.0.0:80-\u0026gt;80/tcp fervent_colden Dando stop nele:\n[root@rmartins /]# docker stop 2b1cf57a7ad9 2b1cf57a7ad9 Iniciando o container com a imagem do Nginx original:\n[root@rmartins /]# docker run -d -p 80:80 rmartins/nginx:teste 0ab61e5085d8a0bbf820fe0e21d0d7f500215d90c898150876391a05b4cccfbb Validando:\nConferindo os dois no Dockerhub (Registry):\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/docker-criando-suas-proprias-imagens/","summary":"\u003cp\u003eO post de hoje é pra mostrar como criar suas imagens do docker, publicá-las no Docker Hub (Registry) e depois usar/disponibilizar onde precisar.\u003c/p\u003e\n\u003cp\u003eO primeiro passo é instalar o docker:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eroot@rmartins /\u003cspan class=\"o\"\u003e]\u003c/span\u003e\u003cspan class=\"c1\"\u003e# yum install docker-io\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eLoaded plugins: fastestmirror\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up Install Process\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eLoading mirror speeds from cached hostfile\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* base: mirror.nbtelecom.com.br\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* epel: mirror.globo.com\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* extras: mirror.nbtelecom.com.br\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e* updates: mirror.nbtelecom.com.br\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eResolving Dependencies\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--\u0026gt; Running transaction check\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\u0026gt; Package docker-io.x86_64 0:1.4.1-3.el6 will be installed\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--\u0026gt; Finished Dependency Resolution\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDependencies \u003cspan class=\"nv\"\u003eResolved\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e==============================================================================================================================================================================================================================================\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePackage Arch Version Repository \u003cspan class=\"nv\"\u003eSize\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e==============================================================================================================================================================================================================================================\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstalling:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker-io x86_64 1.4.1-3.el6 epel 4.5 M\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTransaction \u003cspan class=\"nv\"\u003eSummary\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e==============================================================================================================================================================================================================================================\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstall \u003cspan class=\"m\"\u003e1\u003c/span\u003e Package\u003cspan class=\"o\"\u003e(\u003c/span\u003es\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTotal download size: 4.5 M\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstalled size: \u003cspan class=\"m\"\u003e19\u003c/span\u003e M\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIs this ok \u003cspan class=\"o\"\u003e[\u003c/span\u003ey/N\u003cspan class=\"o\"\u003e]\u003c/span\u003e: y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDownloading Packages:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker-io-1.4.1-3.el6.x86_64.rpm \u003cspan class=\"p\"\u003e|\u003c/span\u003e 4.5 MB 00:02\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eRunning rpm_check_debug\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eRunning Transaction Test\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTransaction Test Succeeded\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eRunning Transaction\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstalling : docker-io-1.4.1-3.el6.x86_64 1/1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eVerifying : docker-io-1.4.1-3.el6.x86_64 1/1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstalled:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker-io.x86_64 0:1.4.1-3.el6\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eComplete!\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eUma vez instalado, vamos iniciá-lo:\u003c/p\u003e","title":"Docker: Criando suas próprias imagens - Parte III/III"},{"content":"Encontrei nesta semana uma ferramenta interessante, o PimpMyLog. Encontrei por acaso no Github, procurando uma ferramenta simples para visualizar logs via browser. Precisava de algo simples, objetivo e funcional.\nVou mostrar como funciona. A princípio, por padrão ele já detecta logs do PHP, IIS, Apache e Nginx e nada precisa ser configurado para isso. Se você precisar visualizar logs de sistemas específicos, pode customizar e implementar.\nSupondo que você já tem um servidor web instalado e funcionando, vamos lá. Lembrando que ele é feito em PHP, então você precisa estar com suporte ao PHP habilitado e funcionando. No meu caso, tenho um Nginx instalado e rodando a configuração padrão, como você pode visualizar aqui:\nEle está servindo arquivos contidos em /usr/share/nginx/html. Veja:\nComo pode ser visto, acessei o diretório /usr/share/nginx/html, fiz um clone do repositório no Github. Uma vez feito isso, bastou acessar via brower: http://endereco.do.servidor/PimpMyLog:\nEntão clicamos em “Configure Now” e vamos à tela seguinte, onde será solicitada a criação de um usuário/senha:\nE ele pede que seja dada permissão 777 no diretório para que ele consiga criar o arquivo config.auth.user.php, e por isso você notou este comando em uma das telas anteriores:\nDepois de acertar as permissões, voltamos a tela de criação:\nEntão conseguimos definir um nome e senha:\nNa tela seguinte, vamos informar qual log gostaríamos que ele procure, no meu caso, do Nginx:\nE então ele encontrou os logs no diretório padrão (/var/log/nginx). Nos dá ainda a possibilidade de informar o path de outros logs customizados do Nginx:\nFeito isso, configuração finalizada:\nVamos clicar agora em “Pimp my logs now!” e vamos para a proxima tela onde informamos o usuário e senha criados:\nDepois do login, vejamos a interface da ferramenta:\nNote onde alterar para o outro arquivo de log:\nÉ possível fazer diversas configurações, como habilitar notificação no desktop para novas mensagens, configurar um tempo de refresh automático na tela, adicionar usuários, escolher os campos à serem exibidos, etc. Você pode fazer uma demonstração de uso no próprio site deles, em: http://demo.pimpmylog.com/\nEnfim, uma ótima ferramenta, que atende muito bem ao que se propõe fazer.\n","permalink":"http://ricardomartins.com.br/pimpmylog-uma-ferramenta-web-para-visualizacao-de-logs/","summary":"\u003cp\u003eEncontrei nesta semana uma ferramenta interessante, o \u003ca href=\"http://pimpmylog.com/\"\u003ePimpMyLog\u003c/a\u003e. Encontrei por acaso no \u003ca href=\"https://github.com/potsky/PimpMyLog\"\u003eGithub\u003c/a\u003e, procurando uma ferramenta simples para visualizar logs via browser. Precisava de algo simples, objetivo e funcional.\u003c/p\u003e\n\u003cp\u003eVou mostrar como funciona. A princípio, por padrão ele já detecta logs do PHP, IIS, Apache e Nginx e nada precisa ser configurado para isso. Se você precisar visualizar logs de sistemas específicos, pode customizar e implementar.\u003c/p\u003e\n\u003cp\u003eSupondo que você já tem um servidor web instalado e funcionando, vamos lá. Lembrando que ele é feito em PHP, então você precisa estar com suporte ao PHP habilitado e funcionando. No meu caso, tenho um Nginx instalado e rodando a configuração padrão, como você pode visualizar aqui:\u003c/p\u003e","title":"PimpMyLog: Uma ferramenta web para visualização de logs"},{"content":"Finalizando a série de artigos sobre o OpsWorks, neste post veremos como utilizar cookbooks customizadas em nosso ambiente.\nPara começar, entre na console do OpsWorks e vamos criar nossa segunda stack.\nClique em Add Stack e preencha os dados necessários:\nClique em advanced para abrir mais opções e definir que utilizaremos cookbooks customizadas. No caso, alterei o campo “Use custom Chef cookbooks” para yes. Neste caso, vou usar o S3 como repositório, então foi preenchido da seguinte forma:\nNote que eu ainda não criei a cookbook customizada e enviei para o S3, mas já posso definir o nome do arquivo e em qual dos meus buckets ela estará, no caso: https://s3.amazonaws.com/rmartins/cookbook.tar.gz Além disso informei o Access key ID e o Secret access key de um usuário com permissões neste bucket. ** Observe que também alterei para não utilizar os security groups padrões do OpsWorks, e usaremos um security group já criado previamente com apenas o acesso nas portas 80 e 22 liberados.\nNote a opção de “Manage Berkshelf” que foi deixada em “No”. Desta forma a escolha da versão do Berkshelf utilizada será feita pelo próprio OpsWOrks. Caso prefira você mesmo escolher qual versão utilizar, coloque em YES e escolha a versão desejada.\nDe forma geral, o Berkshelf é uam ferramenta utlizada para cuidar automaticamente das dependências dos cookbooks utilizados. Ou seja, caso sua receita faça a instalação de um utilitário ou aplicação que tenha dependência de alguma outra biblioteca ou coisa parecida, o Berkshelf se encarrega de automaticamente isntalar esta dependência para você.\nDepois de clicar em Add stack, temos ela criada. Antes de criarmos a nossa layer e nossa instância de testes, vamos primeiro criar nosso cookbook customizado.\nVamos trabalhar em uma estrutura de diretórios conforme abaixo:\n# mkdir -p /opsworkslab/mycookbooks Dentro da pasta cookbooks, teremos as pastas com as nossas recipes. Cada recipe, com a seguinte estrutura:\nO que vem a ser cada um destes diretórios e arquivos?\n. cookbookname: O nome que você dará ao seu livro de receitas. Sua função é puramente organizacional.\n. attributes: O diretório onde você pode armazenar atributos e/ou parâmetros de configurações. O uso é opcional. Por exemplo, se você deseja especificar que determinada aplicação terá por padrão os logs em um local específico:\ndefault[:application][:dirlog] = “/var/log/application” default[:application][:oldlog] = “/var/log/application/old\\_logs” Em seguida, na receita para criação da estrutura da sua aplicação, você definiria da seguinte forma:\ndirectory “#{node[:application][:dirlog]}” do owner “root” group “root” mode 0755 action :create recursive true end directory “#{node[:application][:oldlog]}” do owner “root” group “root” mode 0755 action :create recursive true end . recipes: Diretório onde estarão as nossas receitas\n. templates: Diretório onde estarão os nossos templates/modelos de configuração. Por exemplo, você poderia ter seu nginx.conf aqui dentro deste diretório.\n. metadata.rb: Neste arquivo, você irá fornecer algumas informações sobre sua recipe.\nPara facilitar o entendimento, vamos criar nossa primeira configuração. É uma configuração simples, que utilizo para ajustar o timezone e criar um cron de sincronismo de data com o ntp.br.\nUma vez que você já criou o diretório /opsworkslab/mycookbooks, vamos lá:\n# cd /opsworkslab/mycookbooks Vamos criar a estrurtura de diretórios:\n# mkdir -p systemconfig/{attributes/default/,recipes,templates/default} Este comando irá criar a seguinte árvore de diretórios dentro de /opsworkslab/mycookbooks:\nNote que os subdiretórios “attributes” e “templates” precisam ter os subdiretórios default dentro, uma vez que os atributos e templates podem variar de acordo com a distribuição utilizada. Por exemplo, sistemas RedHat-like podem ter locais diferentes dos sistemas Debian-like para arquivos e/ou aplicações. Com a árvore de diretórios criada, mãos à obra. Vamos criar os arquivos destes diretórios.\n# vim /opsworkslab/mycookbooks/systemconfig/metadata.rb Neste arquivo vamos passar algumas informações sobre a nossa receita. Insira o seguinte conteúdo no arquivo criado:\nname “systemconfig” description “Default System Configurations” maintainer “Ricardo Martins” version “1.0.0” # vim /opsworkslab/mycookbooks/systemconfig/recipes/timezone.rb Adicione o seguinte conteúdo e salve o arquivo:\ntemplate “/etc/sysconfig/clock” do source “clock.erb” owner “root” group “root” mode 0644 end link “/etc/localtime” do to “/usr/share/zoneinfo/Brazil/East” action :create end template “/etc/cron.daily/ntpdate” do source “ntpdate.erb” mode 0755 owner “root” group “root” end # vim /opsworkslab/mycookbooks/systemconfig/templates/default/clock.erb Adicione o conteúdo:\nZONE=”Brazil/East” UTC=true # vim /opsworkslab/mycookbooks/systemconfig/templates/default/ntpdate.erb Adicione o conteúdo:\n/usr/sbin/ntpdate -u pool.ntp.br Pronto. Já temos nossa primeira receita criada. Agora vamos explicar passo a passo:\nO Arquivo metadata.rb é onde fazemos nossos comentários. Podemos informar também se esta receita depende de alguma outra. Por exemplo, se dependesse da aplicação de alguma outra receita que tivéssemos, você poderia adicionar ao fim do arquivo o texto depends “nome da receita que depende”\nO arquivo timezone.rb é possui o que iremos exatamente fazer. Ele diz para usar o arquivo clock.erb como modelo e colocá-lo em /etc/sysconfig/clock. Também define o dono e grupo do arquivo, além das permissões concedidas sobre ele.\nEm seguida dizemos para criar o link /etc/localtime apontando para /usr/share/zoneinfo/Brazil/East.\nE por fim dizemos para usar como modelo o arquivo ntpdate.erb e colocá-lo em /etc/cron.daily. Da mesma forma definimos dono, grupo e permissões do arquivo.\nO arquivo clock.erb é o conteúdo que será inserido em /etc/sysconfig/clock.\nO arquivo ntpdate.erb é o conteúdo do /etc/cron.daily/ntpdate, que será executado diariamente para fazer o sincronismo de data/hora.\nUma boa documentação sobre cookbooks pode ser encontrada aqui: http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-installingcustom-repo.html\nEm seguida, vamos criar o nosso arquivo compactado e enviá-lo para o S3.\n# cd /opsworkslab # tar czvf coobook.tar.gz mycookbooks Agora vamos abrir a console do S3 e enviar o arquivo para lá.\nAgora que já temos o arquivo no S3, vamos criar a nossa layer no OpsWorks:\nVamos clicar em “Add a layer” e em seguida vamos preencher as informações necessárias:\nNote que o tipo de Layer neste caso foi definido como Custom, uma vez que vou usar cookbooks customizadas. Escolhemos um nome, um shortname e defini um security group já existente, no caso, “webserver”.\nDepois de criada a layer, precisamos ajustar alguns detalhes. Para isso na tela abaixo vamos primeiro clicar em Recipes:\nDentro de “Recipes”, podemos ver as receitas configuradas em cada ciclo de vida da Layer. Observe que inicialmente temos apenas as receitas chamadas “Built-in”, que são as já pre-configuradas pelo próprio OpsWorks para serem executadas.\nAgora vamos editar o ciclo de vida da Layer e inserir as receitas que criamos, dentro de “Custom Chef Recipes”. Clique em Edit e você será direcionado para esta tela:\nVerifique no campo “Repository URL” a existência da localização da nossa recipe criada anteriormente. Agora vamos informar em qual instante do ciclo de vida, queremos que o conteúdo da nossa receita seja aplicado na instância que irá compor esta Layer.\nNosso exemplo é um ajuste de configuração do timezone, então para organização vamos colocá-la no processo de Setup da instância. Sendo assim basta ir na opção correspondente, informar o cookbook e a receita à ser executada. No nosso caso, fica assim:\nFeito isso basta salvar e veremos a tela da seguinte forma, com nossa recipe sendo executado no Setup da instância:\nAgora voltamos no meu Layers, e vamos fazer um ajuste nas configurações de rede. Basta clicar em Network:\nDentro da parte de Network, clicamos em Edit e vamos configurar para que a instância obtenha um endereço ip público quando for iniciada:\nAgora podemos adicionar nossa instância e em seguida ela será inicializada. No processo de setup terá nossa receita customizada aplicada.\nVamos no menu Instances e escolhemos a opção “Add an instance”:\nPreencheremos as informações necessárias:\nE por fim clicamos em “Add Instance”. Seremos direcionados para a tela seguinte, onde podemos dar start na instância:\nUma vez dado start, podemos acompanhar a atualização de status o processo de criação e inicialização da instância até que ela esteja totalmente operacional.\nUma vez a instância inicializada e configurada, vamos conectar nela e conferir a configuração:\nCaso queria visualizar, as nossas receitas são copiadas para a instância dentro de /opw/aws/opsworks:\nCom este útlimo post finalizo a série sobre o OpsWorks que gostaria de compartilhar com vocês. Como já disse anteriormente, o OpsWorks é uma ferramenta excepcional para gerenciar, versionar e controlar ambientes complexos inteiros. Espero que com estas informações básicas que disponibilizei por aqui, você já possa ter pensado algumas possibilidades de uso e aplicação em sua estrutura.\nGostaria de aproveitar para citar sobre uma atualização que foi lançada na última semana, onde agora já é possível gerenciar seu servidor dentro da sua estrutura on-premise através do OpsWorks, bastando instalar o AWS CLI no seu servidor, onde quer que ele esteja. Leia mais em https://aws.amazon.com/blogs/aws/opsworks-on-prem-and-existing-instances/\nAbaixo uma boa referência com informações sobre como buscar conteúdo no S3 para deploy de artefatos via OpsWorks: http://hipsterdevblog.com/blog/2014/06/22/retrieving-files-from-s3-using-chef-on-opsworks/\nAssim que tiver novas informações e descobertas, estarão por aqui também. Até a próxima!\n","permalink":"http://ricardomartins.com.br/opsworks-trabalhando-com-cookbooks-customizadas/","summary":"\u003cp\u003eFinalizando a série de artigos sobre o OpsWorks, neste post veremos como utilizar cookbooks customizadas em nosso ambiente.\u003c/p\u003e\n\u003cp\u003ePara começar, entre na console do OpsWorks e vamos criar nossa segunda stack.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2015/03/opsworks1-1.png\"\u003e\u003cimg alt=\"opsworks1\" loading=\"lazy\" src=\"/wp-content/uploads/2015/03/opsworks1-1.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eClique em Add Stack e preencha os dados necessários:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2015/03/opsworks2.png\"\u003e\u003cimg alt=\"opsworks2\" loading=\"lazy\" src=\"/wp-content/uploads/2015/03/opsworks2.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eClique em advanced para abrir mais opções e definir que utilizaremos cookbooks customizadas. No caso, alterei o campo “Use custom Chef cookbooks” para yes. Neste caso, vou usar o S3 como repositório, então foi preenchido da seguinte forma:\u003c/p\u003e","title":"OpsWorks: Trabalhando com cookbooks customizadas - Parte III/III"},{"content":"Essa é uma dica rápida, mas extremamente útil. Digamos que em um mesmo servidor você tem um nginx configurado com dois sites distintos mas quer evitar que o servidor resposta por acessos via IP. Então abaixo você vai saber como restringir o acesso por nome.\nPor exemplo, dentro do /etc/nginx/conf.d (supondo que você esteja rodando um CentOS), você tem os arquivos abaixo:\n– site1.conf\nserver { listen 80; server_name site1.com; root /var/www/site1; access_log /var/log/nginx/site1\\access.log; error_log /var/log/nginx/site1\\error.log; client_max_body_size 64M; # Deny access to any files with a .php extension in the uploads directory location ~\\* /(?:uploads|files)/.\\*.php$ { deny all; } location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; } } – site2.conf\nserver { listen 80; server_name site2.com; root /var/www/site2; access_log /var/log/nginx/site2\\access.log; error_log /var/log/nginx/site2\\error.log; client_max_body_size 64M; # Deny access to any files with a .php extension in the uploads directory location ~\\* /(?:uploads|files)/.\\*.php$ { deny all; } location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; } } Esta configuração atende muito bem para você ter multiplos sites em um mesmo servidor com apenas um ip público. O problema é que se for acessado pelo endereço IP público, apenas um dos sites responderá. Agora imagine que você hospede dois sites de empresas concorrentes no mesmo servidor. Vamos supor que um cliente da empresa site1.com resolve abrir o site pelo endereço IP e se depara com o conteúdo da empresa do site2.com? Sem dúvidas um sério problema para você.\nMas resolver é fácil basta você criar o seguinte arquivo dentro de /etc/nginx/conf.d:\n– default.conf\nserver { listen 80 default_server; server_name “”; return 444; } Basta fazer um reload no nginx e pronto! Agora se tentarem acessar o servidor pelo IP na porta 80, como o server_name está em branco (“”), se o header da conexão vier com o campo host vazio, como acontece em uma conexão por IP ao invés de nome, a conexão irá receber o código 444 que irá encerrar a conexão. Note que o código http 444 não é um código padrão, mas um código de reposta especial do Nginx exclusivamente.\nReferência: http://nginx.org/en/docs/http/request_processing.html\nAproveitando, algumas referências de configurações de segurança para seu servidor Web:\nhttp://www.cyberciti.biz/tips/linux-unix-bsd-nginx-webserver-security.html\nhttp://www.cyberciti.biz/faq/linux-kernel-etcsysctl-conf-security-hardening\nhttp://www.cyberciti.biz/faq/linux-kernel-tuning-virtual-memory-subsystem\nhttp://www.cyberciti.biz/faq/linux-tcp-tuning\n","permalink":"http://ricardomartins.com.br/nginx-como-desabilitar-acesso-por-ip/","summary":"\u003cp\u003eEssa é uma dica rápida, mas extremamente útil. Digamos que em um mesmo servidor você tem um nginx configurado com dois sites distintos mas quer evitar que o servidor resposta por acessos via IP. Então abaixo você vai saber como restringir o acesso por nome.\u003c/p\u003e\n\u003cp\u003ePor exemplo, dentro do /etc/nginx/conf.d (supondo que você esteja rodando um CentOS), você tem os arquivos abaixo:\u003c/p\u003e\n\u003cp\u003e– site1.conf\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  server \u003cspan class=\"o\"\u003e{\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    listen 80\u003cspan class=\"p\"\u003e;\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    server_name site1.com\u003cspan class=\"p\"\u003e;\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    root /var/www/site1\u003cspan class=\"p\"\u003e;\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    access_log /var/log/nginx/site1\u003cspan class=\"se\"\u003e\\a\u003c/span\u003eccess.log\u003cspan class=\"p\"\u003e;\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    error_log /var/log/nginx/site1\u003cspan class=\"se\"\u003e\\e\u003c/span\u003error.log\u003cspan class=\"p\"\u003e;\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    client_max_body_size 64M\u003cspan class=\"p\"\u003e;\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c1\"\u003e# Deny access to any files with a .php extension in the uploads directory  \u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    location ~\u003cspan class=\"se\"\u003e\\*\u003c/span\u003e /\u003cspan class=\"o\"\u003e(\u003c/span\u003e?:uploads\u003cspan class=\"p\"\u003e|\u003c/span\u003efiles\u003cspan class=\"o\"\u003e)\u003c/span\u003e/.\u003cspan class=\"se\"\u003e\\*\u003c/span\u003e.php$ \u003cspan class=\"o\"\u003e{\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    deny all\u003cspan class=\"p\"\u003e;\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    location / \u003cspan class=\"o\"\u003e{\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    index index.php index.html index.htm\u003cspan class=\"p\"\u003e;\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    try_files \u003cspan class=\"nv\"\u003e$uri\u003c/span\u003e \u003cspan class=\"nv\"\u003e$uri\u003c/span\u003e/ /index.php?\u003cspan class=\"nv\"\u003e$args\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e}\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e– site2.conf\u003c/p\u003e","title":"Nginx: Como desabilitar acesso por IP"},{"content":"\nContinuando o post anterior sobre o OpsWorks, vou mostrar neste post como criar uma instância com Nginx hospedando um site estático bem simples, apenas para teste e demonstração.\nAntes de começar, para entender um pouco mais sobre o conceito de cookbooks e recipes do OpsWorks, você pode dar uma lida aqui: http://docs.aws.amazon.com/opsworks/latest/userguide/gettingstarted-db-recipes.html\nO cookbook é o nosso livro de receitas, contendo todas as nossas recipes (receitas). Uma recipe é onde definimos como queremos que determinada coisa seja feita e/ou configurada no nosso sistema.\nNo OpsWorks é possível utilizar cookbooks default ou utilizar cookbooks customizadas. Primeiramente vou user cookbooks default, que já estão prontas e disponíveis no repositório de cookbooks do OpsWorks no GitHub (https://github.com/aws/opsworks-cookbooks/)\nVamos criar nossa primeira stack para testes? Então vamos à console do OpsWorks:\nClique em “Add Your First Stack” e na tela seguinte preencha as informações necessárias.\nNote que no exemplo eu já tenho uma VPC e uma chave SSH para serem utilizadas.\nExiste a opção Advanced, então vamos clicar nela e ver as opções disponíveis:\nAo clicar temos a opção de escolher a versão do Chef à ser utilizada. No caso podemos escolher se vamos utilizar cookbooks customizadas, JSON customizado e se vamos querer utilizar os security groups nativos ou não. Neste caso vou escolher não utilizar os security groups nativos do OpsWorks e iremos configurar o nosso manualmente, usando regras específicas.\nDefinidas as nossas opções, vamos em “Add Stack”\nCriada a stack, você será direcionado para esta tela:\nCriando a layer: Agora vamos criar nossa Layer. Clique em Layers e depois em “Add a layer”\nNa tela seguinte vamos preencher conforme nossa necessidade. Note que neste instante você pode definir os detalhes da layer e também do RDS caso vá utilizar.\nAlgumas opções já são pré-definidas para layers de Load Balancers, App Servers, Databases, etc. Neste exemplo vou criar uma layer de um servidor web estático, então escolhemos Static Web Server, dentro de App Server.\nO próximo passo é escolher o security group. Neste caso vou escolher um security group que eu já havia criado previamente chamado webserver, onde já tenho as portas 22 e 80 liberadas.\nPoderíamos ainda ter criado previamente um ELB para esta layer e selecionar aqui. Neste caso não foi criado nenhum na VPC que estou usando.\nEm seguida basta clicar em “Add Layer”. Em seguida você verá a tela abaixo, ainda sem instâncias iniciadas.\nConforme a imagem, temos algumas links para serem observados:\nSettings Recipes Aqui é possível ver cada recipe configurada em cada ciclo de vida do Chef (Setup, Configure, Deploy, Undeploy, Shutdown). Em cada caso, você pode clicar e verificar o conteúdo da recipe dentro do repositório de cookbooks do OpsWorks no GitHub (https://github.com/aws/opsworks-cookbooks/)\nNetwork Por padrão ela não virá com ip público ou EIP associado. Precisamos editar para que seja associado um ip público e ela consiga sair para a internet para fazer o download das dependências e fazer as instalações necessárioas. Clique em Edit e troque para YES no campo de Public IP addresses:\nEBS Volumes Conforme podemos observar, não teremos volumes EBS, indicando que a instância utilizará discos efêmeros, que terão seu conteúdo perdido no instante que a instância for desligada.\nSecurity Por fim, na parte de segurança visualizamos o security group associado com nossa instância, o perfil da instância e as roles com as quais ela possa estar associada.\nCriando a instância: Clicando em Instances no menu lateral à esquerda temos a opção de adicionar a nossa primeira instância. Lembrando que podem ser 24/7, Time-Based ou Load-Based. 24/7 são instâncias que estarão ligadas o tempo todo. Time-Based são aquelas que estarão ligadas dentro de um intervalo de tempo especificado por você. Load Based são as instãncias que serão iniciadas ou terminadas de acordo com a configuração definida por você para uso de CPU, memória ou carga na aplicação entre as instâncias de uma layer.\nNeste caso vou criar uma instãncia t2.micro 24×7 dentro de uma das subredes da minha VPC usando uma chave ssh que eu já tenho.\nDepois de clicar em “Add Instance”, teremos a seguinte tela:\nBasta clicar em Start e a instância será inicializada seguindo todos os passos do ciclo de vida do Chef visto acima.\nCriando um App Neste exemplo não vou criar nenhum App para ser “deployado”, mas vou criar um conteúdo para ser “deployado” dentro do nosso Nginx e ser exibido quando nossa instância for acessada. Isto é apenas para fins didáticos. Em um ambiente de produção, você pode configurar uma aplicação específica para ser disponibilizada.\nDentro de Apss, vamos em “Add an app”\nE vamos realizar nossa configuração:\nNote que foi escolhido o tipo estático, e o source da aplicação é um index.zip dentro de um bucket no S3. É apenas um arquivo index.html customizado que criei.\nRealizando o deploy da app Agora podemos fazer o deploy da nossa App:\nUma vez que tenha sido realizado deploy com sucesso, vamos ver o conteúdo disponibilizado:\nVerificando as configurações dentro da instância: Caso você ache interessante, pode conectar na instância e verificar as configurações no Nginx:\n[root@web1 /\\]# cd /etc/nginx/sites-enabled [root@web1 sites-enabled\\]# ls -l total 0 lrwxrwxrwx 1 root root 34 Mar 12 19:11 ricardo -\u0026gt; /etc/nginx/sites-available/ricardo [root@web1 sites-enabled]# cat ricardo server { listen 80; server_name ricardo web1; access_log /var/log/nginx/ricardo.access.log; location / { root /srv/www/ricardo/current/; index index.html index.htm index.php; } # Block all svn access if ($request_uri ~\\* ^.\\*.svn.\\*$) { return 404; } # Block all git access if ($request_uri ~\\* ^.\\*.git.\\*$) { return 404; } location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } } Finalizando: Para terminar a instância basta ir em Instances e em seguida ir STOP:\nNote o alerta que todos os dados armazenados na instância serão destruídos, uma vez que não estamos usando volumes EBS.\nÉ importante parar a instância por dentro da console do OpsWorks, pois como ela está com a função de Auto-Heal habilitada, se você por exemplo dar stop/terminate na isntância pela console do EC2 por exemplo, o Auto-Heal irá entender que a instância está com algum erro e irá substituir por outra. Fazendo pelo próprio OpsWorks ela será de fato parada e em seguida podemos excluí-la:\nLembrando apenas que esta é apenas uma demonstração muito básica e resumida à respeito do que o OpsWorks faz. É possível criar ambientes muito maiores e complexos, envolvendo várias aplicações, bancos de dados, load balancers, etc. O meu foco aqui é mostrar a ferramenta e abrir sua mente e entendimento sobre ela, além de despertar seu interesse para uso. Utilize sem moderação, e você verá como seu dia-a-dia como devop/sysadmin pode ser muito mais produtivo.\nNo próximo post vou criar algo semelhante, porém utilizando as nossas próprias receitas, utilizaremos “custom-cookbooks”. Ate lá!\n","permalink":"http://ricardomartins.com.br/opsworks-tutorial-pratico-de-implementacao-e-uso/","summary":"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2015/01/AWS_OpsWorks-512x320-1.png\"\u003e\u003cimg alt=\"AWS_OpsWorks-512x320\" loading=\"lazy\" src=\"/wp-content/uploads/2015/01/AWS_OpsWorks-512x320-1.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eContinuando o\u003ca href=\"http://www.ricardomartins.com.br/opsworks-conhecendo-ferramenta-de-gerencia-de-configuracao-da-amazon/\"\u003e post anterior\u003c/a\u003e sobre o OpsWorks, vou mostrar neste post como criar uma instância com Nginx hospedando um site estático bem simples, apenas para teste e demonstração.\u003c/p\u003e\n\u003cp\u003eAntes de começar, para entender um pouco mais sobre o conceito de cookbooks e recipes do OpsWorks, você pode dar uma lida aqui: \u003ca href=\"http://docs.aws.amazon.com/opsworks/latest/userguide/getktingstarted-db-recipes.html\"\u003ehttp://docs.aws.amazon.com/opsworks/latest/userguide/gettingstarted-db-recipes.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eO cookbook é o nosso livro de receitas, contendo todas as nossas recipes (receitas). Uma recipe é onde definimos como queremos que determinada coisa seja feita e/ou configurada no nosso sistema.\u003c/p\u003e","title":"OpsWorks: Tutorial prático de implementação e uso - Parte II/III"},{"content":"O SimpleHTTPServer é um módulo do python que representa uma alternativa simples e rápida para servir arquivos à partir de um diretório no seu sistema via HTTP sem que seja necessário instalar o Nginx, Apache ou algum outro servidor web.\nA principal vantagem ao utilizá-lo, é não precisar instalar nada no sistema para disponibilizar algum arquivo via HTTP, uma vez que quase todo sistema linux já vem com o interpretador Python instalado por padrão, e o SimpleHTTPServer é um módulo integrado do python.\nNeste post vou mostrar um script em bash que você pode usar para disponibilizar acesso à arquivos contidos em quaisquer diretórios via HTTP.\nPrimeiro passo: Criar o arquivo http-server Neste exemplo vou colocar o script para usar a porta 8081 e listar o conteúdo do /var/log via HTTP:\n# vim /tmp/http-server #!/bin/bash WWW_PORT=’8081′ WWW_PATH=”/var/log/” case $1 in start) cd $WWW_PATH nohup python -m SimpleHTTPServer $WWW_PORT \u0026gt;\u0026gt; /tmp/nohup.log 2\u0026gt;\u0026amp;1 \u0026amp; sleep 2 stat=`netstat -tlpn | grep $WWW_PORT | grep “python” | cut -d”:” -f2 | cut -d” ” -f1` if [[ $WWW_PORT -eq $stat ]]; then sock=`netstat -tlpn | grep $WWW_PORT | grep “python”` echo -e “Server is running:n$sock” else echo -e “Server is stopped” fi ;; stop) pid=`ps -ef | grep “SimpleHTTPServer $WWW_PORT”| awk ‘{print $2}’` kill -9 $pid 2\u0026amp;gt;/dev/null rm -f /tmp/nohup.log stat=`netstat -tlpn | grep $WWW_PORT | grep “python”| cut -d”:” -f2 | cut -d” ” -f1` if [[ $WWW_PORT -eq $stat ]]; then sock=`netstat -tlpn | grep $WWW_PORT | grep “python”` echo -e “Server is still running:n$sock” else echo -e “Server has stopped” fi ;; status) stat=`netstat -tlpn |grep $WWW_PORT| grep “python” | cut -d”:” -f2 | cut -d” ” -f1` if [[ $WWW_PORT -eq $stat ]]; then sock=`netstat -tlpn | grep $WWW_PORT | grep “python”` echo -e “Server is running:n$sock” else echo -e “Server is stopped” fi ;; \\*) echo “Use $0 start|stop|status” ;; esac Em seguida vamos dar permissões de execução: # chmod a+x /tmp/http-server E finalmente vamos executar e verificar o status: # /tmp/http-server start # /tmp/http-server stop Agora vamos ver o conteúdo do /var/log pelo browser:\nPor padrão o módulo SimpleHTTPServer não exibe uma página web por exemplo. Ele cria apenas uma lista de arquivos e diretórios do path informado (no nosso caso pela variável WWW_PATH — /var/log) para facilitar algum troubleshooting por exemplo. Se quiser exibir uma página web, basta inserir o arquivo index.html dentro do diretório em questão.\nO script http-server também configura para que os logs do SimpleHTTPServer sejam escritos em um arquivo de log em /tmp/nohup.log. Caso queria ver os logs de acesso, basta olha este arquivo.\nHabilitando o http-server no boot. No CentOS, basta criar a seguinte linha no /etc/rc.local antes da linha que contém “exit 0″:\n/tmp/http-server start Para garantir que o rc.local esteja habilitado em sistemas debian, basta instalar o pacote sysv-rc-conf e em seguida rodar:\nsysv-rc-conf rc.local on ","permalink":"http://ricardomartins.com.br/python-usando-o-modulo-simplehttpserver/","summary":"\u003cp\u003eO SimpleHTTPServer é um módulo do python que representa uma alternativa simples e rápida para servir arquivos à partir de um diretório no seu sistema via HTTP sem que seja necessário instalar o Nginx, Apache ou algum outro servidor web.\u003c/p\u003e\n\u003cp\u003eA principal vantagem ao utilizá-lo, é não precisar instalar nada no sistema para disponibilizar algum arquivo via HTTP, uma vez que quase todo sistema linux já vem com o interpretador Python instalado por padrão, e o SimpleHTTPServer é um módulo integrado do python.\u003c/p\u003e","title":"Python: Usando o módulo SimpleHTTPServer"},{"content":"Depois do post demonstrando como criar uma AMI da sua instância utilizando um script shell de dentro de um bastion host (http://www.ricardomartins.com.br/aws-script-para-geracao-automatica-de-ami-de-instancia/), neste post vou mostrar como utilizar o DataPipeline para fazer a mesma tarefa. O Data Pipeline é um serviço web que ajuda na automação de atividades de movimentação, integração e processamento de dados entre os recursos de computação e storage.\nEm resumo o que faremos será criar um Pipeline que irá rodar os comandos necessários dentro do agendamento escolhido. Para isso o Data Pipeline irá iniciar uma instância t1.micro para executar o que definirmos e ao término ele irá terminar a instância. Com isto, você elimina por exemplo a necessidade de manter uma instância ligada 24 horas por dia apenas para executar scripts e/ou tarefas administrativas, reduzindo custos e automatizando tarefas. Basta você criar os scripts e configurar o Data Pipeline para executar nos horários determinados. Assim, você irá pagar apenas pela quantidade de horas que a instância estiver ligada para rodar os scripts. Levando em consideração que a execução é muito rápida e seus scripts rodariam em alguns poucos minutos, como é cobrada a hora cheia, digamos que você pagaria apenas pelo preço de uma hora de uma instância t1.micro.\nEntão vá ao menu, selecione o Data Pipeline e vamos criar nosso Pipeline. Escolha um nome e uma descrição e no campo “source” escolha a opção: Build using a template – Run AWS CLI command.\nNo campo de Parâmetros, em AWS CLI command informe a seguinte linha de comando:\n/opt/aws/bin/ec2-describe-instances –aws-access-key [sua-access-key] –aws-secret-key [sua-secret-key] –filter tag:Name=”[nome-da-sua-instancia]” | /bin/sed -e ‘/^INSTANCE/d’ -e ‘/^BLOCK/d’ -e ‘/^RESERVATION/d’ -e ‘/Description/d’ | /usr/bin/gawk ‘{ print $3,$5 }’ | /usr/bin/tail -1 | /usr/bin/gawk -v date=”$(date +”%d-%m-%Y”)” ‘{print $1,”–name”,$2,”-“,date,”–no-reboot”}’ | /usr/bin/gawk ‘{print $1,$2,$3 $4 $5,$6 $7}’ | /usr/bin/xargs -L 1 ec2-create-image \u0026amp;\u0026amp; /opt/aws/bin/ec2-describe-images –aws-access-key [sua-access-key] –aws-secret-key [sua-secret-key] –owner [id-da-sua-conta] | /bin/grep [nome-da-sua-instancia]-$(date –date=’3 days ago’ ‘+%d-%m-%Y’) | /usr/bin/gawk ‘{print $2}’ | /usr/bin/xargs -L 1 ec2-deregister \u0026amp;\u0026amp; /opt/aws/bin/ec2-describe-snapshots –aws-access-key [sua-access-key] –aws-secret-key [sua-secret-key] | grep [instanceid] | /usr/bin/gawk ‘{print $2,$5}’ | /usr/bin/gawk -F T ‘{print $1}’ | grep “$(date –date=’3 days ago’ ‘+%Y-%m-%d’)” | awk -F ‘{print $1}’ | /usr/bin/xargs -L 1 /opt/aws/bin/ec2-delete-snapshot Atente para trocar os campos entre colchetes (access-key, secret-key, nome da instância e id da conta) pelos seus. E no caso, não insira entre colchetes – eu coloquei entre colchetes apenas para exemplificar. Na parte de agendamento, configure da seguinte maneira:\nRun: on a schedule\nRun every: 1 day\nStarting: [Defina o horário que precisa que seja executado diariamente]\nEnding: [Escolha Never caso queira que seja executado constantemente]\nNa parte de Pipeline Configuration você pode deixar habilitado ou não o registro em log das atividades. Caso escolha deixar habilitado, você precisa definir um bucket no S3 para isto.\nEm Security/Access, você pode deixar em Default ou caso tenha criado suas próprias roles para o Pipeline e a isntância que será criada, escolha Custom.\nEm seguida, clique em Activate.\nPor padrão a instância que será criada será terminada depois de 50 minutos. Caso queira, você pode editar o pipeline e dentro de “Resources” escolher um tempo menor, porém lembre-se que mesmo colocando para que seja terminada por exemplo 30 minutos depois de criada, será cobrado o valor da hora inteira.\nFeito isto, você pode ir ao EC2 Dashboard \u0026gt; Images \u0026gt; AMIs e verificar a AMI criada.\n** Lembrando que o comando ec2-deregister irá procurar por AMIs criadas há 3 dias atrás, então caso seja a primeira vez que você execute irá encontrar uma mensagem de erro como esta: Required parameter ‘AMI’ missing (-h for usage). Ela é gerada pois não encontrará nenhum arquivo criado há 3 dias atrás para remover. No entanto, isto não impede o funcionamento e da quarta vez que rodar em diante, irá encontrar o arquivo e não vai mais apresentar o erro.\nVeja abaixo o vídeo de demonstração:\n","permalink":"http://ricardomartins.com.br/aws-criando-ami-da-sua-instancia-usando-o-data-pipeline/","summary":"\u003cp\u003eDepois do post demonstrando como criar uma AMI da sua instância utilizando um script shell de dentro de um bastion host (\u003ca href=\"http://www.ricardomartins.com.br/aws-script-para-geracao-automatica-de-ami-de-instancia/\"\u003ehttp://www.ricardomartins.com.br/aws-script-para-geracao-automatica-de-ami-de-instancia/\u003c/a\u003e), neste post vou mostrar como utilizar o DataPipeline para fazer a mesma tarefa. O \u003ca href=\"http://aws.amazon.com/datapipeline/\"\u003eData Pipeline\u003c/a\u003e é um serviço web que ajuda na automação de atividades de movimentação, integração e processamento de dados entre os recursos de computação e storage.\u003c/p\u003e\n\u003cp\u003eEm resumo o que faremos será criar um Pipeline que irá rodar os comandos necessários dentro do agendamento escolhido. Para isso o Data Pipeline irá iniciar uma instância t1.micro para executar o que definirmos e ao término ele irá terminar a instância. Com isto, você elimina por exemplo a necessidade de manter uma instância ligada 24 horas por dia apenas para executar scripts e/ou tarefas administrativas, reduzindo custos e automatizando tarefas. Basta você criar os scripts e configurar o Data Pipeline para executar nos horários determinados. Assim, você irá pagar apenas pela quantidade de horas que a instância estiver ligada para rodar os scripts. Levando em consideração que a execução é muito rápida e seus scripts rodariam em alguns poucos minutos, como é cobrada a hora cheia, digamos que você pagaria apenas pelo preço de uma hora de uma instância t1.micro.\u003c/p\u003e","title":"AWS: Criando AMI da sua instância usando o Data Pipeline"},{"content":"Hoje vou mostrar um recurso interessante do Nginx para balanceamento de carga. O Nginx possui suporte para três mecanismos de balanceamento de carga:\n– round-robin: As requisições são distribuidas no modelo round-robin onde a distribuição é feita de forma circular entre os parcicipantes do conjunto. Ou seja, se tivermos dois componentes, funciona assim: 1 – 2 – 1 – 2… Se tivermos três, temos o seguinte funcionamento: 1 – 2 – 3 – 1 – 2 – 3… O round-robin é o modelo padrão de funcionamento;\n– least-connected: A próxima requisição é direcionada para o componente com o menor número de conexões ativas;\n– ip-hash: Usado para distribuir as requisições entre os componentes de baseado no endereço IP do cliente que origina a requisição.\nEu não vou entrar em configurações mais complexas e caso esteja interessado em se aprofundar mais no assunto, e ver outras opções disponíveis como por exemplo atribuição de peso em servidores, slow start, persistência de sessão, limite de conexões, healthcheck e etc, visite: http://nginx.com/resources/admin-guide/load-balancer/\nUm cenário real seria um servidor com o Nginx instalado servindo como loadbalancer, distribuindo a carga entre dois servidores web, como no exemplo abaixo:\nComo neste laboratório não temos dois servidores, cada um com seu respectivo endereço IP, vou direcionar as requisições feitas para loadbalancer.ricardomartins.com.br para dois outros sites via round-robin (no caso para distrowatch.com e br-linux.org) apenas para demonstrar o funcionamento.\nVou fazer assim pois não adiantaria criar outros dois hosts virtuais (server1.ricardomartins.com.br e server2.ricardomartins.com.br) na mesma máquina uma vez que o balanceamento não funcionaria por estarem sob o mesmo endereço IP do próprio loadbalancer.ricardomartins.com.br.\nEm um cenário real, deveria apontar para outros dois servidores web com o mesmo conteúdo, para efetivamente distribuir a carga dois servidores que estejam servindo o mesmo site/conteúdo.\nAbaixo a configuração do /etc/nginx/conf.d/loadbalancer.conf\nserver { listen 80; server_name loadbalancer.ricardomartins.com.br; location / { proxy_pass http://ricardo; } } upstream ricardo { server br-linux.org; server distrowatch.com; } Desta forma, quando chamar loadbalancer.ricardomartins.com.br, como estou usando a configuração padrão de round-robin, cada hora estarei sendo direcionado para um servidor, no nosso caso, para br-linux.org e distrowatch.com. Vejam o teste:\n* Caso queira saber como fazer balanceamento com o HAProxy, veja aqui: http://www.ricardomartins.com.br/balanceamento-de-carga-com-haproxy/\n","permalink":"http://ricardomartins.com.br/nginx-configurando-como-load-balancer/","summary":"\u003cp\u003eHoje vou mostrar um recurso interessante do Nginx para balanceamento de carga. O Nginx possui suporte para três mecanismos de balanceamento de carga:\u003c/p\u003e\n\u003cp\u003e– round-robin: As requisições são distribuidas no modelo round-robin onde a distribuição é feita de forma circular entre os parcicipantes do conjunto. Ou seja, se tivermos dois componentes, funciona assim: 1 – 2 – 1 – 2… Se tivermos três, temos o seguinte funcionamento: 1 – 2 – 3 – 1 – 2 – 3… O round-robin é o modelo padrão de funcionamento;\u003c/p\u003e","title":"Nginx: Configurando como load balancer"},{"content":"Se você administra servidores na nuvem da AWS, certamente este script irá te auxiliar bastante a automatizar a geração da AMI da sua instância. O AMI é uma imagem da sua instância que você pode utilizar em caso de recuperação de desastres.\nVocê pode utilizar uma instância com a função de bastion host para executá-lo. Um bastion host, pode ser utilizado como sua instância de administração de seu ambiente.\nO primeiro passo é você criar um usuário para rodar o script no IAM. Uma vez criado o usuário, pode inserí-lo em um grupo de administração e adicionar uma “user policy” para ele.\nTome nota do Access Key ID e do Secret Access Key do usuário.\nAbaixo o conteúdo da user policy:\n{ “Version”: “2012-10-17”, “Statement”: [ { “Action”: “ec2:*”, “Effect”: “Allow”, “Resource”: “*” } ] } No seu ambiente de produção, recomendo restringir as ações. Note que neste exemplo estou permitindo qualquer ação (ec2:*). Você pode usar este simulador para criar sua policy: http://awspolicygen.s3.amazonaws.com/policygen.html\nEu costumo usar o Amazon Linux cujo usuário padrão é o ec2-user e por isto vamos trabalhar no home deste usuário. Caso use Ubuntu, substituia para o home do usuário ubuntu.\nA primeira coisa, é inserir as suas credenciais no .bashrc do usuário:\nEntão insira o seguinte conteúdo no /home/ec2-user/.bashrc:\nexport AWS_ACCESS_KEY=[insirasuachaveaqui] export AWS_SECRET_KEY=[insirasuasenhaqui] export EC2_URL=https://ec2.[insirasuaregiaoaqui].amazonaws.com Agora crie o script em /home/ec2-user/scripts/create-ami:\n#!/bin/bash # Carrega as credenciais source /home/ec2-user/.bashrc # Cria a AMI /opt/aws/bin/ec2-describe-instances –filter tag:Name=”[nomedasuainstancia]” | /bin/sed -e ‘/^INSTANCE/d’ -e ‘/^BLOCK/d’ -e ‘/^RESERVATION/d’ -e ‘/Description/d’ | /usr/bin/gawk ‘{ print $3,$5 }’ | /usr/bin/tail -1 | /usr/bin/gawk -v date=”$(date +”%d-%m-%Y”)” ‘{print $1,”–name”,$2,”-“,date,”–no-reboot”}’ | /usr/bin/gawk ‘{print $1,$2,$3 $4 $5,$6 $7}’ | /usr/bin/xargs -L 1 ec2-create-image # Remove as AMI criadas há mais de três dias /opt/aws/bin/ec2-describe-images –owner [numeroiddasuaconta] | /bin/grep [nomedasuainstancia]-$(date –date=’3 days ago’ ‘+%d-%m-%Y’) | /usr/bin/gawk ‘{print $2}’ | /usr/bin/xargs -L 1 ec2-deregister # Remove o snapshot gerado automaticamente durante a criação da AMI /opt/aws/bin/ec2-describe-snapshots | grep [instanceid] | /usr/bin/gawk ‘{print $2″_”$5}’ | /usr/bin/gawk -F T ‘{print $1}’ | grep “$(date –date=’3 days ago’ ‘+%Y-%m-%d’)” | awk -F ‘{print $1}’ | /usr/bin/xargs -L 1 /opt/aws/bin/ec2-delete-snapshot Não esqueça de dar permissão de execução no script:\n$ chmod 600 /home/ec2-user/scripts/create-ami Para que rode todos os dias, vamos criar um crontab, de modo que execute diariamente às 20:00. Logado como ec2-user, rode o “crontab -e” e insira o conteúdo abaixo:\n00 20 \\* \\* \\* /home/ec2-user/scripts/create-ami Este script irá criar diariamente uma AMI desta instância sem fazer reboot nela e inserindo a data no nome da AMI no seguinte formato: [nomedasuainstancia]-dd-mm-yyyy. A cada execução ele irá pegar a AMI com data de 3 dias atrás e fazer o deregister da mesma, ou seja, excluir as AMIs com mais de três dias de criação e depois remover o snapshot que é gerado automaticamente durante a criação da imagem que também tiver mais de 3 dias\nNas três primeiras vezes que o script rodar, ele irá gerar dois alertas de erro. Um ao rodar o comando ec2-deregister, pois irá procurar pelo arquivo com data de 3 dias atrás e não encontrará obviamente. E outro ao rodar o comando ec2-delete-snapshot, pois também não encontrará um arquivo criado há mais de três dias. Estes alertas você verá apenas se executar manualmente ou se verificar o log do crontab após a execução. Os alertas serão similar à estes:\nRequired parameter ‘AMI’ missing (-h for usage) Required parameter ‘SNAPSHOT’ missing (-h for usage) À partir do quarto dia, ele irá começar a encontrar os arquivos com data de 3 dias atrás e não apresentará mais o alerta.\n** Atualização **\nCriei um outro script, usando a AWS CLI ao invés da CLI Tool utilizada neste post.\nA AWS CLI é uma ferramenta mais nova, e mais interessante de utilizar. No Amazon Linux, já vem instalado, e você pode configurar rodando o comando “aws configure” e informar seu Access Key, Secret Access Key e sua Região.\nUma vez com ele configurado, você pode utilizar este novo script abaixo. Note que nele, ao invés de gerar a AMI pelo nome dado à instância, por questões de controle e maior segurança, é feito pelo instance-id. Você pode salvar o script em /etc/cron.daily/create-ami, dar permissão de execução, e o próprio sistema operacional se encarrega de executá-lo uma vez ao dia:\n#!/bin/bash INSTANCEID=”$(curl http://169.254.169.254/latest/meta-data/instance-id 2\u0026amp;gt;/dev/null $$ echo)” # Cria AMI /usr/local/bin/aws ec2 describe-instances –filter Name=instance-id,Values=$INSTANCEID | grep $INSTANCEID | /usr/bin/gawk ‘{print $8}’ | /usr/bin/gawk -v date=”$(date +”%d-%m-%Y”)” ‘{print $1,”–name”,$1,”_”,date,”–no-reboot”}’ | /usr/bin/gawk ‘{print $1,$2,$3 $4 $5,$6 $7}’ | /usr/bin/xargs -L 1 /usr/local/bin/aws ec2 create-image –instance-id # Remove AMI com mais de 3 dias /usr/local/bin/aws ec2 describe-images | grep $INSTANCEID\\_$(date –date=’3 days ago’ ‘+%d-%m-%Y’) | /usr/bin/gawk ‘{print $4}’ | /usr/bin/xargs -L 1 /usr/local/bin/aws ec2 deregister-image –image-id # Remove Snapshots criados há mais de 3 dias /usr/local/bin/aws ec2 describe-snapshots | grep $INSTANCEID | /usr/bin/gawk ‘{print $12″_”$13}’ | /usr/bin/gawk -F T ‘{print $1}’ | grep “$(date –date=’3 days ago’ ‘+%Y-%m-%d’)” | awk -F _ ‘{print $1}’ | /usr/bin/xargs -L 1 /usr/local/bin/aws ec2 delete-snapshot –snapshot-id ","permalink":"http://ricardomartins.com.br/aws-script-para-geracao-automatica-de-ami-de-instancia/","summary":"\u003cp\u003eSe você administra servidores na nuvem da AWS, certamente este script irá te auxiliar bastante a automatizar a geração da AMI da sua instância. O AMI é uma imagem da sua instância que você pode utilizar em caso de recuperação de desastres.\u003c/p\u003e\n\u003cp\u003eVocê pode utilizar uma instância com a função de bastion host para executá-lo. Um bastion host, pode ser utilizado como sua instância de administração de seu ambiente.\u003c/p\u003e\n\u003cp\u003eO primeiro passo é você criar um usuário para rodar o script no IAM. Uma vez criado o usuário, pode inserí-lo em um grupo de administração e adicionar uma “user policy” para ele.\u003c/p\u003e","title":"AWS: Script para geração automática de AMI de instância"},{"content":"Encontrei hoje um excelente material contendo as melhores práticas para implementações do WordPress na Amazon e estou compartilhando:\n– WordPress: Best Practices on AWS (Reference Architecture for Scalable WordPress-powered Websites)\n","permalink":"http://ricardomartins.com.br/wordpress-melhores-praticas-na-aws/","summary":"\u003cp\u003eEncontrei hoje um excelente material contendo as melhores práticas para implementações do WordPress na Amazon e estou compartilhando:\u003c/p\u003e\n\u003cp\u003e– \u003ca href=\"http://d0.awsstatic.com/whitepapers/wordpress-best-practices-on-aws.pdf\"\u003eWordPress: Best Practices on AWS\u003c/a\u003e (Reference Architecture for Scalable WordPress-powered Websites)\u003c/p\u003e","title":"WordPress: Melhores práticas de implementação na AWS"},{"content":"Muito boa essa apresentação mostrando os principais problemas de segurança relacionados à cultura de DevOps.\nLasCon 2014 DevOoops from Chris Gates ","permalink":"http://ricardomartins.com.br/devops-problemas-comuns-de-seguranca/","summary":"\u003cp\u003eMuito boa essa apresentação mostrando os principais problemas de segurança relacionados à cultura de DevOps.\u003c/p\u003e\n\u003ciframe src=\"https://www.slideshare.net/slideshow/embed_code/key/qIJatoUU0Cpdg0?startSlide=1\" width=\"597\" height=\"486\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px;max-width: 100%;\" allowfullscreen\u003e\u003c/iframe\u003e\u003cdiv style=\"margin-bottom:5px\"\u003e\u003cstrong\u003e\u003ca href=\"https://pt.slideshare.net/chrisgates/lascon-2014-devooops\" title=\"LasCon 2014 DevOoops \" target=\"_blank\"\u003eLasCon 2014 DevOoops \u003c/a\u003e\u003c/strong\u003e from \u003cstrong\u003e\u003ca href=\"https://pt.slideshare.net/chrisgates\" target=\"_blank\"\u003eChris Gates\u003c/a\u003e\u003c/strong\u003e\u003c/div\u003e","title":"DevOps: Problemas comuns de segurança"},{"content":"\nOlá pessoal, este artigo sobre o OpsWorks está muito relacionado com o tema gerência de configuração, e da mesma forma também com um outro assunto que vem ganhando bastante repercussão atualmente: DevOps.\nO foco não é falar sobre Gerência de Configuração e/ou DevOps, mas como estão relacionados com o OpsWorks, é importante introduzir o conceito além de deixar alguns links essenciais para que você, sysadmin, possa começar a se interessar por isso o quanto antes.\nA gerência de configuração está relacionada com um controle maior sobre arquivos de configuração, versões, documentação, procedimentos, etc. Hoje existem algumas diversas ferramentas para te ajudar neste trabalho, como Puppet, Chef, Ansible, Salt, OpsWorks. A gerência de configuração traz o conceito de infraestrutura como código (infrastructure as a code), que permite uma automação gerenciada e simplifica o processo de documentação.\nAbaixo, algumas leituras altamente recomendadas, do Guto Carvalho:\nhttp://gutocarvalho.net/wordpress/2012/05/13/mantenha-suas-configuracoes-nos-trilhos/;\nhttp://gutocarvalho.net/wordpress/2012/05/22/gerenciando-configuracoes-com-o-puppet/comment-page-1/.\nO conceito de DevOps está relacionado com a integração entre times de desenvolvedores e times de operações. Um DevOp é alguém com skill de implementar infraestrutura através de código, utilizando ferramentas de gerência de configuração, orquestração e provisionamento e utilizando metodologias e práticas muito comuns em times de desenvolvimento como como Kanbam, Scrum, Sprints, Versionamento.\nMais leituras que você deve fazer:\nhttp://pt.slideshare.net/GutoCarvalho/cultura-devops-e-integrao-entre-infra-e-devel/;\nhttp://gutocarvalho.net/octopress/2013/03/16/o-que-e-um-devops-afinal/;\nhttps://sdarchitect.wordpress.com/2013/06/06/slides-ibm-innovate-2013-session-devops-101/;\nhttps://sdarchitect.wordpress.com/understanding-devops/\nE por último, mas não menos importante, um slide sensacional de um grande amigo, Diego Morales, voltado para todos os sysadmins que estejam interessados em melhorar seus skills: http://dgmorales.info/sysadmin/.\nAgora que já tem mais informações sobre os conceitos que envolvem o OpsWorks, vamos falar sobre ele.\nAbaixo um vídeo introdutório, que facilita a compreensão do funcionamento do OpsWorks de um modo geral:\nhttps://www.youtube.com/watch?v=TPc4zdFg12M\nO OpsWorks é a ferramenta que permite criar e gerenciar stacks e aplicações. Com ele você pode provisionar recursos na AWS, gerenciar a configuração e fazer o deploy de aplicações. Informações detalhadas em http://aws.amazon.com/documentation/opsworks/.\nO OpsWorks é baseado no Chef, e assim como outras ferramentas de gerência de configuração funciona baseado no uso de receitas (cookbooks). Nas receitas, você especifica o que quer que realmente seja feito na configuração. Um excelente documento está disponível aqui: http://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-ug.pdf, mas vou comentar algo abaixo.\nO OpsWorks fornece de forma simples e flexível de criar e gerenciar stacks e aplicações. Ele suporta um conjunto de componentes padrões, includindo servidores de aplicação, servidores de banco de dados, balanceadores de carga e outras coisas que você pode usasr em sua stack. Todos estes componentes podem ser iniciados com uma simples configuração e estando imediatamente prontos para serem utilizados.\nNo ecossistema do Opsworks, existem alguns conceitos chave, à seguir:\n– Stack: Uma stack é um componente chave do OpsWorks. É como se fosse um container para os seus recursos, sejam eles instâncias, volumes EBS, endereços EIP, instâncias RDS. A stack ajuda você a gerenciar e organizar seus recursos como um grupo e também define algumas configurações de região. Em outras palavras, pode ser definido como os seus ambientes. Você pode ter uma stack com nome de desenvolvimento, onde estão os seus recursos de desenvolvimento, uma stack de homologação, staging, produção, ou qualquer outro nome que você queira dar.\n– Layer (Camadas): Você define os componentes da sua stack adicionando layers. Uma layer é como se fosse uma role. Você pode ter a layer de servidores web, a layer de servidores proxy, layer de servidores de aplicação, etc. Você pode inserir sua instancia em uma layer, e pela layer será determinado quais pacotes devem ser instaladas na sua instância por exemplo. Vamos supor que você tem uma stack de desenvolvimento. Nela você pode por exemplo ter duas layers de Nginx, sendo uma chamada por exemplo, Nginx-Stable, e outra Nginx-Testing. Uma delas você usa para testar uma versão estável, e outra uma versão em teste do Nginx. Não importa se voc? tiver 1 ou 10 instâncias em cada layer. Se você quer atualizar a versão do Nginx-Stable, com um clique você atualiza todas as suas instâncias da layer Nginx-Stable, por exemplo.\n– Recipes (Receitas) e Eventos LifeCycle (Eventos de ciclo de vida): O OpsWorks depende de recipes (receitas) do Chef (http://docs.chef.io/recipes.html) para realizar tarefas como instalar pacotes nas instâncias, fazer o deploy de aplicações, configurar load balancers, etc. Uma feature interessante é o conjunto de eventos de lifecycle: Setup, Configure, Deploy, Undeploy e Shutdown, que automaticamente rodam as recipes apropriadas no tempo apropriado em cada instância.\nCada layer tem um conjunto de recipes para cada evento de lifecycle que é executado nas instâncias desta layer. Por exemplo, vamos supor que você esteja configurando uma layer que terá uma instância de uma App que rode em PHP. Assim que a instância for inicializada o OpsWorks faria o seguinte:\nExecutar as recipes de Setup da Layer, que irá realizar as tarefas de instalar e configurar o servidor para poder rodar a aplicação em PHP; Executar as recipes de Deploy da Layer, que irá de fato colocar na instância o conteúdo da aplicação php à partir de um repositório que pode ser por exemplo um bucket no S3 ou ainda no Github. Ele pode ainda executar tarefas como fazer um restart de um serviço por exemplo, para validar as configurações do conteúdo disponibilizado; Executar a recipe de Configure em cada instância da stack, para eventualmente ajustar a configuração de demais componentes da sua stack, que sejam necessários para acomodar e/ou funcionar em conjunto com sua nova instância. – Instâncias: Uma instância representa um recurso computacional, como uma instância EC2. Ela define a configuração básica do recurso, como sistema operacional e tamanho. Outras configurações, como endereços EIP’s ou volumes de disco EBS, são definidos na layer. Você pode usar o OpsWorks para criar as suas instâncias e adicioná-las em uma layer específica. Quando você dá um start na instância, o OpsWorks cria sua sua instância EC2 usando as configurações especificadas no tipo de instância escolhida e na layer que ela fará parte. Assim que o processo de boot é finalizado, o OpsWorks instala um agente que irá ser responsável por realizar a comunicação entre a instância e o serviço que executa as recipes apropriadas em resposta aos eventos de lifecycle.\nUm detalhe interessante é que o OpsWorks suporta os seguintes tipos de instâncias, caracterizados por como elas são iniciadas e paradas:\nInstâncias 24/7: São iniciadas manualmente e irão ficar em funcionamento até que você mande parar; Instâncias load-based: São automaticamente iniciadas e paradas pelo OpsWorks, baseado nas métricas especificadas de carga, como por exemplo, uso de CPU. Isto permite que sua stack automaticamente se ajuste à quantidade de tráfego que recebe. Instâncias time-based: São iniciadas pelo OpsWorks em um agendamento diário e/ou semanal especificado por você. Facilita se você tem padrões de comportamento na carga das suas instâncias. O OpsWorks também suporte instâncias “auto-heal”, que são instâncias que se o agente percebe que houve uma perda na comunicação com a instância, automaticamente faz um stop/start na instância. Além disso você também pode incorporar recursos computacionais na sua stack, que tenham sido criados fora do OpsWorks, neste caso, instâncias EC2 que você tenha criado diretamente no console da WEB, na CLI ou via API. E o melhor: suas máquinas rodando em seu próprio hardware no seu datacenter tradicional, ou ainda suas máquinas virtuais no seu hypervisor preferido também podem ser incluídas no OpsWorks.\n– Apps: Você armazenda suas aplicações e arquivos relacionados em repositórios como um bucket no S3. Cada aplicação é representada por um app, que especifica o tipo de aplicação e contém as informações que o OpsWorks precisa para realizar o deploy da aplicação à partir de um repositório nas suas instâncias. Os deploys das aplicações podem ser feitos de duas formas:\nAutomático: Quando você inicializa sua instância com a aplicação, o OpsWorks automaticamente realiza o deploy de todas as aplicações e tipos apropriados. Por exemplo, Aplicações Java serão “deployadas” nas instâncias da layer “Java”; Manualmente: Se você tem uma nova aplicação ou deseja atualizar uma aplicação existente, você pode manualmente realizar o deploy para suas instâncias. Quando você realiza o deploy de uma aplicação, o OpsWorks executa as recipes de Deploy nas suas instâncias. A receita de Deploy realiza o download da aplicação à partir do seu repositório para a instância e realiza as tarefas relacionadas, como configurar o servidor e/ou reinicializar um serviço.\nBom, na minha opinião a melhor forma de aprender, é fazendo. Então, não perca o próximo post. Estou preparando um lab hands-on sobre o OpsWorks 😀\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/opsworks-conhecendo-ferramenta-de-gerencia-de-configuracao-da-amazon/","summary":"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2015/01/AWS_OpsWorks-512x320-1.png\"\u003e\u003cimg alt=\"AWS_OpsWorks-512x320\" loading=\"lazy\" src=\"/wp-content/uploads/2015/01/AWS_OpsWorks-512x320-1.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eOlá pessoal, este artigo sobre o OpsWorks está muito relacionado com o tema gerência de configuração, e da mesma forma também com um outro assunto que vem ganhando bastante repercussão atualmente: DevOps.\u003c/p\u003e\n\u003cp\u003eO foco não é falar sobre Gerência de Configuração e/ou DevOps, mas como estão relacionados com o OpsWorks, é importante introduzir o conceito além de deixar alguns links essenciais para que você, sysadmin, possa começar a se interessar por isso o quanto antes.\u003c/p\u003e","title":"OpsWorks: Conhecendo a ferramenta de gerência de configuração da Amazon - Parte I/III"},{"content":"Se você se interessa pelo assunto, não pode perder esta excelente oportunidade de aprimorar seus conhecimentos.\nVai começar no próximo dia 02 de Fevereiro o curso de Especialização em Cloud Computing da Universidade de Illinois no Coursera.\nEsta especialização conta com os seguintes módulos:\nCloud Computing Concepts; Cloud Computing Concepts – Part 2; Clod Computting Applications; Cloud Networking. Ao término, existe um módulo final, que consiste em uma parte prática, onde você terá a oportunidade de aplicar na prática os conceitos aprendidos no curso.\nSe tiver a oportunidade de fazer, se inscreva o quanto antes:\nhttps://www.coursera.org/specialization/cloudcomputing/19\n","permalink":"http://ricardomartins.com.br/coursera-curso-de-especializacao-em-cloud-computing/","summary":"\u003cp\u003eSe você se interessa pelo assunto, não pode perder esta excelente oportunidade de aprimorar seus conhecimentos.\u003c/p\u003e\n\u003cp\u003eVai começar no próximo dia 02 de Fevereiro o curso de Especialização em Cloud Computing da Universidade de \u003ca href=\"http://illinois.edu/\"\u003eIllinois\u003c/a\u003e no Coursera.\u003c/p\u003e\n\u003cp\u003eEsta especialização conta com os seguintes módulos:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.coursera.org/course/cloudcomputing\"\u003eCloud Computing Concepts\u003c/a\u003e;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.coursera.org/course/cloudcomputing2\"\u003eCloud Computing Concepts – Part 2\u003c/a\u003e;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.coursera.org/course/cloudapplications\"\u003eClod Computting Applications\u003c/a\u003e;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.coursera.org/course/cloudnetworking\"\u003eCloud Networking\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAo término, existe um módulo final, que consiste em uma parte prática, onde você terá a oportunidade de aplicar na prática os conceitos aprendidos no curso.\u003c/p\u003e","title":"Coursera: Curso de especialização em Cloud Computing"},{"content":"Já pensou em fazer um treinamento de Linux à distância com instâncias da Amazon? Há algum tempo tenho vontade de iniciar um projeto de treinamento online. Conversando com alguns amigos, resolvi tirar a idéia do papel e estou planejando para 2015 dar início.\nPara isso, estou fazendo um levantamento sobre possíveis interessados em participarem de um treinamento online de Linux. A idéia é montar um treinamento totalmente prático, utilizando instâncias da Amazon, uma para cada aluno. A princípio seria um curso de 36 horas, com material didático incluso pelo valor de R$ 350,00.\nSe houver algum interessado, por favor envie um email para contato@ricardomartins.com.br ou mande um comentário neste post.\n","permalink":"http://ricardomartins.com.br/treinamento-linux/","summary":"\u003ch2 id=\"já-pensou-em-fazer-um-treinamento-de-linux-à-distância-com-instâncias-da-amazon\"\u003eJá pensou em fazer um treinamento de Linux à distância com instâncias da Amazon?\u003c/h2\u003e\n\u003cp\u003eHá algum tempo tenho vontade de iniciar um projeto de treinamento online. Conversando com alguns amigos, resolvi tirar a idéia do papel e estou planejando para 2015 dar início.\u003c/p\u003e\n\u003cp\u003ePara isso, estou fazendo um levantamento sobre possíveis interessados em participarem de um treinamento online de Linux. A idéia é montar um treinamento totalmente prático, utilizando instâncias da Amazon, uma para cada aluno. A princípio seria um curso de 36 horas, com material didático incluso pelo valor de R$ 350,00.\u003c/p\u003e","title":"Linux: Treinamento à distância com instâncias da Amazon"},{"content":"Cloud computing \u0026 Cloudstack: Como ter sua nuvem sem tempestades from Ricardo Martins ☁ ","permalink":"http://ricardomartins.com.br/minha-palestra-sobre-cloud-computing-e-cloudstack/","summary":"\u003ciframe src=\"https://www.slideshare.net/slideshow/embed_code/key/MsSVoK6HPNywJ9?startSlide=1\" width=\"597\" height=\"486\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px;max-width: 100%;\" allowfullscreen\u003e\u003c/iframe\u003e\u003cdiv style=\"margin-bottom:5px\"\u003e\u003cstrong\u003e\u003ca href=\"https://pt.slideshare.net/rmmartins/cloud-computing-cloudstack-como-ter-sua-nuvem-sem-tempestades\" title=\"Cloud computing \u0026 Cloudstack: Como ter sua nuvem sem tempestades\" target=\"_blank\"\u003eCloud computing \u0026 Cloudstack: Como ter sua nuvem sem tempestades\u003c/a\u003e\u003c/strong\u003e from \u003cstrong\u003e\u003ca href=\"https://pt.slideshare.net/rmmartins\" target=\"_blank\"\u003eRicardo Martins ☁\u003c/a\u003e\u003c/strong\u003e\u003c/div\u003e","title":"Minha palestra sobre CloudComputing e CloudStack"},{"content":"Excelente compilação de videos de eventos como AWS Re-Invent e Webinars. Ótima oportunidade para aprender mais sobre AWS gratuitamente.\nOriginalmente criado para preparação para o exame AWS Certified Solution Architect.\n","permalink":"http://ricardomartins.com.br/material-de-estudo-para-o-exame-aws-certified-solution-architect/","summary":"\u003cp\u003eExcelente compilação de videos de eventos como AWS Re-Invent e Webinars. Ótima oportunidade para aprender mais sobre AWS gratuitamente.\u003c/p\u003e\n\u003cp\u003eOriginalmente criado para preparação para o exame AWS Certified Solution Architect.\u003c/p\u003e\n\u003ciframe allow=\"autoplay; encrypted-media\" allowfullscreen=\"\" frameborder=\"0\" height=\"281\" loading=\"lazy\" src=\"https://www.youtube.com/embed/videoseries?list=PLeHxHfUu7P16dYWFF4x4u3fzHMmdzyH-h\" width=\"500\"\u003e\u003c/iframe\u003e","title":"Material de estudo para o exame AWS Certified Solution Architect"},{"content":"Slides do evento AWSomeday no Rio de Janeiro\nAWSome Day - Rio de Janeiro - Brasil from Amazon Web Services LATAM ","permalink":"http://ricardomartins.com.br/slides-awsome-day-rio-de-janeiro/","summary":"\u003cp\u003eSlides do evento AWSomeday no Rio de Janeiro\u003c/p\u003e\n\u003ciframe src=\"https://www.slideshare.net/slideshow/embed_code/key/fVcrTU1VUVjUd4?startSlide=1\" width=\"597\" height=\"486\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px;max-width: 100%;\" allowfullscreen\u003e\u003c/iframe\u003e\u003cdiv style=\"margin-bottom:5px\"\u003e\u003cstrong\u003e\u003ca href=\"https://pt.slideshare.net/AmazonWebServicesLATAM/awsome-daybrbfreis201409\" title=\"AWSome Day - Rio de Janeiro - Brasil\" target=\"_blank\"\u003eAWSome Day - Rio de Janeiro - Brasil\u003c/a\u003e\u003c/strong\u003e from \u003cstrong\u003e\u003ca href=\"https://pt.slideshare.net/AmazonWebServicesLATAM\" target=\"_blank\"\u003eAmazon Web Services LATAM\u003c/a\u003e\u003c/strong\u003e\u003c/div\u003e","title":"AWS: Slides do evento AWSomeday no Rio de Janeiro"},{"content":"\nHouve centenas de notícias sobre Docker nos últimos meses. É fato que estamos prestes a ver uma grande mudança na maneira de pensar sobre a virtualização.\nJá pensou na possibilidade de não ser obrigado a usar softwares tradicionais de virtualização para obter isolamento e controle de recursos?\nProvavelmente ainda teremos por muito tempo ambos os sistemas em funcionamento, mas já imaginou uma migração para containers?\nO Docker é uma tecnologia disruptiva. Tem o potencial para transformar a indústria de virtualização de cabeça para baixo. Todos os cloud providers percebem como a utilização dos recursos fica melhor, gerando maior desempenho uma vez que não se faz necessário um hypervisor. As empresas privadas não precisariam mais pagar por um hypervisor caro.\nO Docker é mais do que mais um software. É um padrão de container, que pode ser usado em todas as distribuições Linux. É interessante ter essa idéia e pensar sobre como estará a indústria de virtualização daqui a 5 anos e exatamente por isso, é bom que ficar do olho no Docker cada vez mais. Acredito que quem dominar bem a ferramenta hoje, daqui a 5 anos estará muito bem no mercado.\nO Docker nasceu em uma empresa de hospedagem chamada dotCloud. Basicamente, a dotCloud usava containers internamente para executar códigos de clientes, e com o tempo, eles construíram uma monte de ferramentas úteis capazes de gerenciar muitos containers. Em 2013, dotCloud percebeu que suas ferramentas poderiam ser úteis para outras pessoas e então lançaram como opensource, chamando de Docker. Desde então, o projeto tornou vida própria, e tem crescido exponencialmente, além de diversas parcerias com grandes empresas como Google, RedHat, Rackspace e Canonical.\nNeste post (http://www.ricardomartins.com.br/docker-um-engine-linux-container/) fiz uma introdução sobre o Docker. O docker é um projeto opensource que torna a criação e gerenciamento de containers Linux muito fácil.\nDe grosso modo, containers podem ser comparados com pequenas VMs. E eles permitem códigos e aplicações rodarem isoladamente de outros containers de forma muito rápida, compartilhando os mesmos recursos de hardware de forma segura e sem um hypervisor.\nComparação entre virtualização tradicional e containers:\nA base do sistema que envolve o hardware e o sistema operacional é a mesma. O que muda é que no caso de um container, eles fazem uso de funcionalidades do kernel chamadas namespaces, cgroups e chroots que permitem a criação de pequenas áreas operacionais, que podem ser comparadas às máquinas virtuais, porém sem o hypervisor.\nA parte mais legal dos containers é que eles não precisam de um sistema operacional completo rodando, mas apenas do que você estiver executando e suas dependências relacionadas.\nDesta forma, podemos resumir containers como um método de isolamento de ambientes através de namespaces e controle de recursos via cgroups, da mesma forma que na virtualização tradicional, diferenciando-se pela inexistência de um hypervisor e um sistema operacional.\nVamos lembrar apenas que o conceito de linux containers não é algo novo. Ele já existe há pelo menos 30 anos,e é muito similar aos que já é feito nas jails do FreeBSD, containers do Solaris e outras formas de virtualização à nível de sistema operacional como OpenVZ e Linux VServer. Por definição, como utiliza as funcionalidades do kernel do Linux, não preciso dizer que só funciona em Linux 😀\nEntão vamos lá. Recapitulando…\nUma vez que você tem um daemon do docker rodando em sua máquina, ele aceita comandos de um cliente docker. O cliente docker pode ser um utilitário de linha de comando ou uma chamada de API. Em seguinda, o daemon do docker conversa com o kernel do linux através de uma biblioteca chamada libcontainer, integrante do projeto do Docker.\nEntão o cliente do docker faz uma chamada ao Docker server para criar um container usando uma imagem específica. O servidor do docker, através da libcontainer como proxy, trabalha em conjunto com o kernel do linux para criar o container, usando esta imagem.\nO container é construído usando namepspaces, cgroups, chroot entre outras funcionalidades do kernel para construir uma área isolada para sua aplicação. E você deve estar se perguntando: “- De onde vêm a aplicação e as suas bibliotecas?”. Elas vem do Registro (Registry – https://registry.hub.docker.com/). O registro é um repositório provido pelo Docker. Ele está na nuvem, e disponibiliza uma área para envio, download e compartilhamento de imagens (snapshots) de containers.\nE como inserir uma imagem dentro de um container?\nDe forma geral e resumida, funciona assim: O cliente informa ao servidor qual imagem deseja usar, e pede para que seja definido no container. Em seguida o servidor vai até o registro a faz o download da imagem do container caso não possua no cache local. Em seguida, pega a imagem e aplica no container.\nInstalando\nNeste teste, estou rodando a partir de um CentOS 7, 64 bits. Então você verá algumas diferenças por ele usar o SystemD, ao invés do tradicional SysVInit. Aproveitando, aqui tem uma tabela comparativa de comandos e aqui também tem um artigo interessante à respeito desse assunto.\n[root@localhost ~]# yum install docker docker-registry Iniciando o docker, e garantindo a inicialização dele no boot\nHabilitando no boot:\n[root@localhost ~]# systemctl enable docker.service ln -s \u0026#39;/usr/lib/systemd/system/docker.service\u0026#39; \u0026#39;/etc/systemd/system/multi-user.target.wants/docker.service\u0026#39; Iniciando o docker:\n[root@localhost ~]# systemctl start docker.service Verificando o status:\n[root@localhost ~]# systemctl status docker.service docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled) Active: active (running) since Tue 2014-09-09 13:55:47 BRT; 5s ago Docs: http://docs.docker.io Main PID: 2367 (docker) CGroup: /system.slice/docker.service ??2367 /usr/bin/docker -d --selinux-enabled Sep 09 13:55:46 localhost.localdomain docker[2367]: [0ab6a91d.init_networkdriver()] creating new bridge for...ker0 Sep 09 13:55:46 localhost.localdomain docker[2367]: [0ab6a91d.init_networkdriver()] getting iface addr Sep 09 13:55:47 localhost.localdomain docker[2367]: [0ab6a91d] -job init_networkdriver() = OK (0) Sep 09 13:55:47 localhost.localdomain docker[2367]: Loading containers: : done. Sep 09 13:55:47 localhost.localdomain docker[2367]: [0ab6a91d.initserver()] Creating pidfile Sep 09 13:55:47 localhost.localdomain docker[2367]: [0ab6a91d.initserver()] Setting up signal traps Sep 09 13:55:47 localhost.localdomain docker[2367]: [0ab6a91d] -job initserver() = OK (0) Sep 09 13:55:47 localhost.localdomain docker[2367]: [0ab6a91d] +job acceptconnections() Sep 09 13:55:47 localhost.localdomain docker[2367]: [0ab6a91d] -job acceptconnections() = OK (0) Sep 09 13:55:47 localhost.localdomain systemd[1]: Started Docker Application Container Engine. Hint: Some lines were ellipsized, use -l to show in full. Depois de instalado, podemos começar a brincadeira com o Docker. Primeiro vamos rodar o comando sem argumentos, apenas para ver as opções disponíveis:\n[root@localhost ~]# docker Usage: docker [OPTIONS] COMMAND [arg...] -H=[unix:///var/run/docker.sock]: tcp://host:port to bind/connect to or unix://path/to/socket to use A self-sufficient runtime for linux containers. Commands: attach Attach to a running container build Build a container from a Dockerfile commit Create a new image from a container\u0026#39;s changes cp Copy files/folders from the containers filesystem to the host path diff Inspect changes on a container\u0026#39;s filesystem events Get real time events from the server export Stream the contents of a container as a tar archive history Show the history of an image images List images import Create a new filesystem image from the contents of a tarball info Display system-wide information inspect Return low-level information on a container kill Kill a running container load Load an image from a tar archive login Register or Login to the docker registry server logs Fetch the logs of a container port Lookup the public-facing port which is NAT-ed to PRIVATE_PORT ps List containers pull Pull an image or a repository from the docker registry server push Push an image or a repository to the docker registry server restart Restart a running container rm Remove one or more containers rmi Remove one or more images run Run a command in a new container save Save an image to a tar archive search Search for an image in the docker index start Start a stopped container stop Stop a running container tag Tag an image into a repository top Lookup the running processes of a container version Show the docker version information wait Block until a container stops, then print its exit code Estes comandos permitem gerenciar todo o ciclo de vida de um container, coisas como criar, compartilhar, iniciar, inspecionar, parar, matar e remover containers.\nVamos ver a versão instalada:\n[root@localhost ~]# docker version Client version: 0.11.1-dev Client API version: 1.12 Go version (client): go1.2 Git commit (client): 02d20af/0.11.1 Server version: 0.11.1-dev Server API version: 1.12 Go version (server): go1.2 Git commit (server): 02d20af/0.11.1 Vamos trabalhar como no exemplo explicado lá em cima, onde dizemos ao docker para acionar o Registro, fazer o download de um container ubuntu, e rodar o shell dentro do container.\nDamos o comando de run, -t para chamar um tty e o -i para permitir nossa interação com o container, pois por padrão, ele iria rodar em background. Em seguida, precisamos informar um nome para a imagem do container que queremos rodar (no caso, ubuntu:12.04) e finalmente o comando que queremos executar no container. (/bin/bash).\n[root@localhost ~]# docker run -t -i ubuntu:12.04 /bin/bash Unable to find image \u0026#39;ubuntu:12.04\u0026#39; locally Pulling repository ubuntu c17f3f519388: Download complete 511136ea3c5a: Download complete 077c3931a6e9: Download complete e6d0d23ca3e9: Download complete 4e6621283e98: Download complete f51528fc5eae: Download complete 2124c4204a05: Download complete root@28ad8f0dd83f:/# Após dar o enter, o Docker procurou por imagem do Ubuntu 12.04 no cache local. Como não tinha, fez download no Registro.\nNote que o prompt mudou para:\nroot@28ad8f0dd83f:/# Onde 28ad8f0dd83f, é o ID do container. Sendo assim, significa que estamos dentro do container rodando Ubuntu. Vamos rodar o ps para ver o que temos em execução:\nroot@28ad8f0dd83f:/# ps PID TTY TIME CMD 1 ? 00:00:00 bash 8 ? 00:00:00 ps Note que não existem outros processos do sistema operacional rodando. Você só tem dois processos, o bash e o ps.\nPara sair, não use exit. Use ctrl+p+q. O exit sai do container colocando ele em stop.\nVoltando ao console do CentOS, rode o comando docker ps:\n[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 28ad8f0dd83f ubuntu:12.04 /bin/bash 17 minutes ago Up 4 minutes cocky_kirch5 Conseguimos ver o id do nosso container e o que está em execução nele. Como temos apenas um rodando o bash, é o que vemos acima.\nAgora vamos voltar para o nosso container. Basta rodar o comando docker attach \u0026lt;ID do Container\u0026gt;\n[root@localhost ~]# docker attach 28ad8f0dd83f root@28ad8f0dd83f:/# Se você ainda tem dúvidas, vamos dar um ls no /:\nroot@28ad8f0dd83f:/# ls / bin boot dev etc home lib lib64 media mnt opt proc root run sbin selinux srv sys tmp usr var Para os que ainda não acreditam, um cat no /etc/issue.net:\nroot@28ad8f0dd83f:/# cat /etc/issue.net Ubuntu 12.04.5 LTS Uma outra coisa interessante é que o docker faz um tracking de tudo que fazemos em nosso container, muito similar à sistemas de controle de versões. Então você pode passar o ID e ver todas as alterações feitas.\nPor exemplo:\n[root@localhost ~]# docker diff 28ad8f0dd83f A /.bash_history Ou seja, como só rodamos alguns comandos no shell, apenas o que alteramos foi o conteúdo do history, salvo no /root/.bash_history.\nAgora vamos fazer o seguinte. Vamos criar um container instalar algumas coisas nele e salvá-lo como nossa imagem base:\nVoltado para o container:\n[root@localhost ~]# docker attach 28ad8f0dd83f root@28ad8f0dd83f:/# apt-get update root@28ad8f0dd83f:/# apt-get install -y vim curl wget multitail Depois de finalizado, saia (ctrl+p+q) e rode o comando docker ps -a para pegar o ID do seu container (caso já não tenha tomado nota). Agora rode outro diff (docker diff ). Verifique a quantidade de coisas adicionadas (A) e alteradas (C). Bacana né?!\nAgora vamos salvar esta versão para ser nossa imagem base de modo a usarmos ela mais tarde. Nós vamos fazer commit das mudanças, dar um nome e uma tag para elas. Execute:\ndocker commit :\n[root@localhost ~]# docker commit 28ad8f0dd83f ricardo/teste:0.1 eacfb1e33a194803c5c2be11f8bd159424bd4b938123f9f70530d14676d6382b Agora Vamos ver as imagens disponíveis:\n[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ricardo/teste 0.1 eacfb1e33a19 40 seconds ago 192.4 MB ubuntu latest 826544226fdc 5 days ago 194.2 MB ubuntu 12.04 c17f3f519388 5 days ago 106.2 MB Todas as que você já tenha usado aparecerão aqui. Mas o legal é que também temos nossa própria imagem agora.\nConstruindo um servidor com o Dockerfile\nVamos criar nosso servidor web com o Dockerfile agora. O docker file disponibiliza uma série de instruções para o docker rodar no container. Isso nos permite automatizar a instalação de coisas.\nCrie um novo diretório e entre nele. Como vamos instalar o Nginx, vou criar um arquivo de conrfiguração que vamos usar nele.\n[root@localhost ~]# mkdir nginx; cd nginx [root@localhost nginx]# pwd /root/nginx Agora vamos criar um arquivo chamado Dockerfile. Nele vamos inserir o conteúdo abaixo alterando a seção FROM pelo nome dado à sua imagem:\n[root@localhost ~]# vim /root/nginx/Dockerfile FROM ricardo/teste:0.1 # Install Nginx. RUN apt-get update \u0026amp;\u0026amp; apt-get install -y nginx \u0026amp;\u0026amp; rm -rf /var/lib/apt/lists/* \u0026amp;\u0026amp; echo \u0026#34;daemon off;\u0026#34; \u0026gt;\u0026gt; /etc/nginx/nginx.conf # Define working directory. WORKDIR /etc/nginx # Define default command. CMD [\u0026#34;nginx\u0026#34;] # Expose ports. EXPOSE 80 O que estamos fazendo?\nFROM: Informa ao Docker qual imagem (e tag neste caso) será usada como base; RUN: Irá executar o comando informado (como root) , usando sh -c “comando”; EXPOSE: Irá expor a porta para a máquina host. Você pode expor múltiplas portas, como por exemplo EXPOSE 80 443 8080 CMD: Irá executar o comando (sem utilizar sh -c). Geralmente este é o passo mais demorado. No nosso caso, iremos apenas iniciar o Nginx.\nEm produção, geralmente é recomendável algo monitorando o processo do nginx para o caso de falhas. Você pode usar o monit para isso. Uma vez salvo, podemos gerar o nova imagem à partir do Dockerfile:\n[root@localhost ~]# docker build -t nginx-exemplo . Se funcionar, você verá: Successfully built fc9d3f802962 (O ID do seu container será diferente).\nVamos ver o que temos agora:\n[root@localhost nginx]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE nginx-exemplo latest fc9d3f802962 29 seconds ago 205.4 MB ricardo/teste 0.1 eacfb1e33a19 47 minutes ago 192.4 MB ubuntu latest 826544226fdc 5 days ago 194.2 MB ubuntu 12.04 c17f3f519388 5 days ago 106.2 MB Finalmente, vamos executar o webserver:\nUse o comando docker run -p 80:80 -d nginx-exemplo (Assumindo que você tenha dado este mesmo nome quando criamos)\nO -p 80:80 faz o bind entre a porta 80 do container e das máquinas que forem acessá-lo. Então se fizermos um curl localhost ou formos ao endereço IP do servidor no browser, iremos ver o resultado do processamento das requests do Nginx na porta 80 do container.\n[root@localhost nginx]# docker run -p 80:80 -d nginx-exemplo 102326cfb0e85a50b1d358c4a92ad4770d00d8b1383a0d113dfcb88a6ea68a86 Explicando:\ndocker run – Executa o container; -p 80:80 – Fazer o bind entre a porta 80 do host e do container; -d nginx-exemplo – Rodar nossa imagem nginx-exemplo, onde temos o “CMD” para rodar o nginx. [root@localhost nginx]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 102326cfb0e8 nginx-exemplo:latest nginx 30 seconds ago Up 29 seconds 0.0.0.0:80-\u0026amp;gt;80/tcp hungry_feynman1 28ad8f0dd83f ubuntu:12.04 /bin/bash 3 hours ago Up About an hour cocky_kirch5 Como podemos ver, temos dois containers em execução. O que criamos inicialmente e o que acabamos de criar à partir da nossa imagem customizada com nginx. Vamos verificar se o Nginx está funcionando?\n[root@localhost nginx]# curl localhost \u0026lt;center\u0026gt;\u0026lt;/center\u0026gt; \u0026lt;h1\u0026gt;Welcome to nginx\u0026lt;/h1\u0026gt; Beleza! Temos o Nginx funcionando corretamente!\nAgora vamos customizar o conteúdo exibido? Primeiro, vamos criar um arquivo chamado default dentro do nosso diretório onde estamos trabalhando (/root/nginx) e adicionar o seguinte conteúdo:\n[root@localhost nginx]# vim /root/nginx/default server { root /var/www; index index.html index.htm; server_name localhost; location / { try_files $uri $uri/ /index.html; } } Em seguida vamos criar um arquivo index.html com conteúdo customizado para ser exibido:\n[root@localhost nginx]# vim /root/nginx/index.html \u0026lt;center\u0026gt;\u0026lt;/center\u0026gt; \u0026lt;h1\u0026gt;Docker | Nginx!\u0026lt;/h1\u0026gt; \u0026amp;nbsp; \u0026lt;center\u0026gt;\u0026lt;/center\u0026gt; \u0026lt;h1\u0026gt;http://ricardomartins.com.br\u0026lt;/h1\u0026gt; Vamos fazer uma modificação no nosso Docker file, adicionando o comando add, deixando ele assim:\n[root@localhost nginx]# vim /root/nginx/Dockerfile FROM ricardo/teste:0.1 # Install Nginx. RUN apt-get update \u0026amp;\u0026amp; apt-get install -y nginx \u0026amp;\u0026amp; rm -rf /var/lib/apt/lists/* \u0026amp;\u0026amp; echo \u0026#34;daemon off;\u0026#34; \u0026gt;\u0026gt; /etc/nginx/nginx.conf # Define working directory. WORKDIR /etc/nginx # Define default command. CMD [\u0026#34;nginx\u0026#34;] # Add custom content ADD default /etc/nginx/sites-available/default ADD index.html /var/www/ # Expose ports. EXPOSE 80 O que faz o add:\nADD: Irá copiar os arquivos da máquina host para o container nos locais especificados. No caso, o arquivo default contendo nossa configuração do Nginx para /etc/nginx/sites-available e o index.html para o /var/www. Agora vamos gerar uma nova imagem com nosso conteúdo customizado no Nginx:\n[root@localhost nginx]# $ docker build -t nginx-exemplo-custom . Uploading context 4.608 kB Uploading context Step 0 : FROM ricardo/teste:0.1 ---\u0026gt; eacfb1e33a19 Step 1 : RUN apt-get update \u0026amp;\u0026amp; apt-get install -y nginx \u0026amp;\u0026amp; rm -rf /var/lib/apt/lists/* \u0026amp;\u0026amp; echo \u0026#34;daemon off;\u0026#34; \u0026gt;\u0026gt; /etc/nginx/nginx.conf ---\u0026gt; Using cache ---\u0026gt; f11f100bab8f Step 2 : WORKDIR /etc/nginx ---\u0026gt; Using cache ---\u0026gt; 9af9478528d0 Step 3 : CMD [\u0026#34;nginx\u0026#34;] ---\u0026gt; Using cache ---\u0026gt; df3975d470d3 Step 4 : ADD default /etc/nginx/sites-available/default ---\u0026gt; Using cache ---\u0026gt; 4681201a599d Step 5 : ADD index.html /var/www/ ---\u0026gt; Using cache ---\u0026gt; 21fc710d7cc8 Step 6 : EXPOSE 80 ---\u0026gt; Using cache ---\u0026gt;; 8c9b0d33f68a Successfully built 8c9b0d33f68a Agora vamos iniciar nosso novo container. Primeiro você precisa dar um stop no container iniciado antes, caso contrário irá dar um erro informando que a porta 80 já está em uso. (Ou se preferir, rode o novo container em outra porta). Para dar stop, rode o comando:\n[root@localhost nginx]# docker stop Iniciando o novo container:\n[root@localhost nginx]# docker run -p 80:80 -d nginx-exemplo-custom 84e770995a853cdd913195c6498e72ee8e8a3f0ad4196046fdae6c571a99d5ec Agora rodamos novamente o curl:\n[root@localhost nginx]# curl localhost \u0026lt;center\u0026gt;\u0026lt;/center\u0026gt; \u0026lt;h1\u0026gt;Docker | Nginx!\u0026lt;/h1\u0026gt; \u0026lt;center\u0026gt;\u0026lt;/center\u0026gt; \u0026lt;h1\u0026gt;http://ricardomartins.com.br\u0026lt;/h1\u0026gt; … ou melhor ainda, aponte seu browser para o endereço IP do servidor:\nNote que o endereço IP é o endereço do meu servidor de teste com CentOS instalado. Você poderia ter seu container com a própria configuração de rede, mas isto fica para um próximo post 😀\nAhh, já ia esquecendo. Você pode rodar comandos dentro do seu container. Por exemplo, vamos conferir o nosso arquivo index.html dentro do container:\n[root@localhost nginx]# docker run -t -i nginx-exemplo-custom cat /var/www/index.html \u0026lt;center\u0026gt;\u0026lt;/center\u0026gt; \u0026lt;h1\u0026gt;Docker | Nginx!\u0026lt;/h1\u0026gt; \u0026lt;center\u0026gt;\u0026lt;/center\u0026gt; \u0026lt;h1\u0026gt;http://ricardomartins.com.br\u0026lt;/h1\u0026gt; Note que não subimos um novo container, é o mesmo que está em execução:\n[root@localhost nginx]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cb41e8f2b62b nginx-exemplo-custom:latest nginx 10 minutes ago Up 10 minutes 0.0.0.0:80 \u0026gt; 80/tcp trusting_ptolemy9 Dicas úteis\nPara remover um container: docker rm ContainerID\nPara remover todos os containers: docker rm $(docker ps -a -q)\nPara remover imagens: docker rmi ContainerID\nPara remover todas as imagens: docker rmi $(docker ps -a -q)\nFinalizando\nEu não conheço muito o docker e estou dando meus primeiro passos com ele. Mas o fato é que ele é o grande boom hoje, então se quiser se destacar no mercado, não espere uma tecnologia ficar totalmente madura para começar a olhar.\nAumente seu conhecimento sobre ela junto com o crescimento dela. Desta forma você estará mais preparado e qualificado quando ela estiver pronta.\nAssim que tiver novas descobertas (e tempo para postar), coloco por aqui.\nReferências:\nhttp://blog.docker.com/2013/08/containers-docker-how-secure-are-they/\nhttp://dockerfile.github.io/#/nginx\nhttps://coreos.com/using-coreos/docker/\nhttps://github.com/wsargent/docker-cheat-sheet/\nhttp://www.allthingsdistributed.com/2014/04/docker-in-elastic-beanstalk.html\nhttp://pt.slideshare.net/dotCloud/docker-intro-november/\nhttp://www.ricardomartins.com.br/docker-um-engine-linux-container/\nhttps://www.docker.com/tryit/\nhttps://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-getting-started\n","permalink":"http://ricardomartins.com.br/docker-tutorial-mao-na-massa/","summary":"\u003cp\u003e\u003ca href=\"/media/docker1.png\"\u003e\u003cimg alt=\"docker\" loading=\"lazy\" src=\"/media/docker1.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eHouve centenas de notícias sobre Docker nos últimos meses. É fato que estamos prestes a ver uma grande mudança na maneira de pensar sobre a virtualização.\u003c/p\u003e\n\u003cp\u003eJá pensou na possibilidade de não ser obrigado a usar softwares tradicionais de virtualização para obter isolamento e controle de recursos?\u003c/p\u003e\n\u003cp\u003eProvavelmente ainda teremos por muito tempo ambos os sistemas em funcionamento, mas já imaginou uma migração para containers?\u003c/p\u003e\n\u003cp\u003eO Docker é uma tecnologia disruptiva. Tem o potencial para transformar a indústria de virtualização de cabeça para baixo. Todos os cloud providers percebem como a utilização dos recursos fica melhor, gerando maior desempenho uma vez que não se faz necessário um hypervisor. As empresas privadas não precisariam mais pagar por um hypervisor caro.\u003c/p\u003e","title":"Docker: Tutorial mão na massa -  Parte II/III"},{"content":"Minha palestra sobre Cloud Computing apresentada no I no dia 15 de Agosto de 2014\nAWSome Day - Rio de Janeiro - Brasil from Amazon Web Services LATAM ","permalink":"http://ricardomartins.com.br/palestra-sobre-cloud-computing/","summary":"\u003cp\u003eMinha palestra sobre Cloud Computing apresentada no I no dia 15 de Agosto de 2014\u003c/p\u003e\n\u003ciframe src=\"https://www.slideshare.net/slideshow/embed_code/key/fVcrTU1VUVjUd4?startSlide=1\" width=\"597\" height=\"486\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px;max-width: 100%;\" allowfullscreen\u003e\u003c/iframe\u003e\u003cdiv style=\"margin-bottom:5px\"\u003e\u003cstrong\u003e\u003ca href=\"https://pt.slideshare.net/AmazonWebServicesLATAM/awsome-daybrbfreis201409\" title=\"AWSome Day - Rio de Janeiro - Brasil\" target=\"_blank\"\u003eAWSome Day - Rio de Janeiro - Brasil\u003c/a\u003e\u003c/strong\u003e from \u003cstrong\u003e\u003ca href=\"https://pt.slideshare.net/AmazonWebServicesLATAM\" target=\"_blank\"\u003eAmazon Web Services LATAM\u003c/a\u003e\u003c/strong\u003e\u003c/div\u003e","title":"Cloud Computing: Palestra apresentada no Senac/RJ"},{"content":"O Elastic Search é uma poderosa ferramenta com muitas informações interessantes de serem analisadas e monitoradas. No entanto pela ampla variedade de informações disponíveis nele, pode ser complexo obter as informações.\nPara facilitar, existem alguns plugins bastante interessantes que tornam o trabalho mais simples. Eu vou citar algumas e demontrar as que considero mais interessantes, o Marvel e o Head.\nDentre as que serão apenas citadas, são as listadas abaixo. Acesse o site de cada uma veja detalhes específicos de cada uma.\nElasticHQ; Kopf; Paramedic; BigDesk Agora vamos ver as que achei mais interessantes…\nMarvel O Marvel é um plugin do ElasticSearch para monitorar e gerenciar o elasticsearch, seja ele em uma instalação de um único node, ou um cluster.\nEle é um dashboard que permite visualizar a saúde e o status da infraestrutura do ElasticSearch. Infelizmente não é gratuito, mas é uma excelente ferramenta.\nPara instalar, basta acessar o diretório onde o ElasticSearch foi instalado e rodar alguns comandos. Veja:\n# cd /usr/share/elasticsearch # bin/plugin -i elasticsearch/marvel/latest # /etc/init.d/elasticsearch restart Em seguida, basta acessar o seu ElasticSearch, informando o caminho correspondente (…/_plugin/marvel). No nosso caso: http://54.187.88.5:9200/_plugin/marvel/\nAbaixo algumas telas:\nObtendo detalhes sobre o nó:\nAgora vamos expandir todos os filtros\nNote que o nome do node na imagem acima mudou de Stick para Trump. Isto é apenas pois como não defini um nome para o nó e fiz um restart no ElasticSearch, ele trocou o nome.\nHead O plugin Head, foi o primeiro plugin criado para gerenciar e monitorar o elasticsearch.\nEle oferece poucos recursos se comparado ao Marvel, e concentra tudo em sua página inicial em uma visão geral que mostra o status do cluster, seus nós, índices, a distribuição dos fragmentos primários e réplicas, etc. No entanto é gratuito.\nAlém disso, ele possui um navegador de dados com uma função de pesquisa simples, um construtor de consulta gráfica onde você pode clicar em um conjunto de consultas de pesquisa, selecionar o índice, campos disponíveis, tipo e texto da consulta, além de um editor JSON para a formulação de qualquer pedido HTTP a ser enviado para o servidor elasticsearch.\nUma segunda questão é que com o navegador de dados, você pode facilmente ver os dados. Por padrão, ele mostra todos os documentos, e portanto, simplesmente abrindo o navegador você pode ver os dados textuais que pertencem aos seus clientes.\nComo instalar:\n[cc lang=”bash”]# cd /usr/share/elasticsearch\n# bin/plugin -install mobz/elasticsearch-head\n# /etc/init.d/elasticsearch restart[/cc]\nEm seguida acesse http://54.187.88.5:9200/_plugin/head/ (lembre de alterar para o endereço do seu servidor…)\nAgora fique a vontade para brincar e descobrir melhor o que rola por baixo do caput no seu ElasticSearch 😀\n","permalink":"http://ricardomartins.com.br/adicionando-plugins-de-gerenciamento-e-monitoramento-ao-elasticsearch/","summary":"\u003cp\u003eO Elastic Search é uma poderosa ferramenta com muitas informações interessantes de serem analisadas e monitoradas. No entanto pela ampla variedade de informações disponíveis nele, pode ser complexo obter as informações.\u003c/p\u003e\n\u003cp\u003ePara facilitar, existem alguns plugins bastante interessantes que tornam o trabalho mais simples. Eu vou citar algumas e demontrar as que considero mais interessantes, o Marvel e o Head.\u003c/p\u003e\n\u003cp\u003eDentre as que serão apenas citadas, são as listadas abaixo. Acesse o site de cada uma veja detalhes específicos de cada uma.\u003c/p\u003e","title":"ElasticSearch: Adicionando plugins de gerenciamento"},{"content":"No post anterior sobre como implementar a Stack ELK (ElasticSearch, Logstash e Kibana) fiz um setup default com todos os serviços no mesmo servidor. Aproveitando para fazer o marketing, o post foi rapidamente citado no blog oficial do ElasticSearch nesta url. o/\nAlém disso foi incluído o Redis na stack, recebendo os dados e direcionando para o Logstash. Este é um recurso útil para ganho de performance.\nPara facilitar o entendimento, vamos relembrar informações sobre a instalação da nossa stack:\nFizemos a instalação do Logstash, Elasticsearch, Nginx, Redis e do Kibana.\nInicialmente, fizemos o download do Kibana e configuramos ele no Nginx. Na configuração, especificamos onde estaria nossa instalação do ElasticSearch e em qual porta ele estaria configurado. No exemplo, estava na mesmo servidor onde as demais aplicações estariam instaladas, porém poderia estar em um servidor distinto. Além disto alteramos a rota padrão para que fosse utilizado o Dashboard do Logstash ao invés da tela de boas vindas do Kibana.\nEm seguida foi feita a configuração do Redis, onde optamos por uma configuração mínima, apenas definindo o endereço IP no qual ele estaria respondendo às requisições.\nO próximo passo foi realizar a configuração do Logstash. Em nossa configuração, definimos como input uma fila do Redis chamada logstash (key =\u0026gt; “logstash”) e também os arquivos de log contidos em /var/log/*.log, /var/log/messages e /var/log/syslog. Também habilitamos o recebimento de mensagens de syslog remotas na porta 5544, filtramos os dados com o Grok e passamos o elasticsearch como output dos dados.\nDesta forma, temos os dados chegando no Logstash de duas formas:\nPelo Redis na lista nomeada como logstash; E os arquivos diretamente especificados contidos em /var/log/*.log, /var/log/messages e /var/log/syslog. Em seguida estes dados são lidos pelo Logstash, armazenados no ElasticSearch e lidos pelo Kibana. Em resumo, o fluxo é o seguinte:\nNo nosso exemplo do post anterior, eu configurei o syslog da máquina para encaminhar os dados do syslog para o Logstash na porta 5544. Isto foi feito no nosso arquivo /etc/rsylog.conf. Por fim, tínhamos todos os dados de syslog disponíveis no Kibana.\nAdicionalmente foram feitos também dois testes com arquivos específicos: os logs do Nginx e do Yum.\nAgora vamos fazer um novo teste, enviando os logs do Apache de um segundo servidor para a nossa stack.\nPara fazer isto, basta você instalar o logstash na máquina via YUM, ou baixando o arquivo .tar.gz. Para deixar o post mais didático, vamos realizar a instalação manualmente com o arquivo .tar.gz:\n# cd /tmp # wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.1.tar.gz # tar xzvf logstash-1.4.1.tar.gz # mv logstash-1.4.1.tar.gz logstash # vim conf/shipper.conf input { file { path =\u0026gt; “/home/ricmmart/logs/ricardomartins.com.br/http/access.log” type =\u0026gt; “apache” } } filter { if [type] == “apache-access” { grok { add_tag =\u0026gt; [“apache”, “grokked”] match =\u0026gt; { “message” =\u0026gt; “%{COMMONAPACHELOG}” } } } } output { stdout { codec =\u0026gt; rubydebug } redis { host =\u0026gt; “192.168.33.100” data_type =\u0026gt; “list” key =\u0026gt; “logstash” } } Conforme demonstrado acima, passamos o path do arquivo de log como input, informamos como deverá ser feita a filtragem dos dados, e por fim definimos o output direcionando para o Redis do nosso servidor com a stack instalada. Lembrando de informar a lista logstash através do parâmetro: key =\u0026gt; “logstash”\nFeito isto, vamos rodar o logstash passando o path do nosso arquivo de configuração:\n# bin/logstash -f conf/shipper.conf Caso você receba uma mensagem de erro similar à esta:\nLoadError: Could not load FFI Provider: (NotImplementedError) FFI not available: null Você precisa ajustar uma variável de ambiente. Insira o comando abaixo:\n# export _JAVA_OPTIONS=-Djava.io.tmpdir=/home/ricmmart/tmp No caso, alterando o tmpdir para um path onde você tenha permissão de escrita.\nPronto! Imediatamente você comecará a ver as mensagens do log do seu apache na tela:\nE no Kibana teremos:\nAgora sim! Você já tem como ter qualquer tipo de log no seu stack ELK.\nAgradecimentos especiais ao meu amigo Rafael Lopes, que colaborou bastante para este post sair.\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/enviando-dados-externos-para-a-stack-elk/","summary":"\u003cp\u003eNo post anterior sobre \u003ca href=\"/implementando-a-stack-elk-elasticsearch-logstash-kibana-no-centos/\"\u003ecomo implementar a Stack ELK\u003c/a\u003e (ElasticSearch, Logstash e Kibana) fiz um setup default com todos os serviços no mesmo servidor. Aproveitando para fazer o marketing, o post foi rapidamente citado no blog oficial do ElasticSearch \u003ca href=\"http://www.elasticsearch.org/blog/2014-06-04-this-week-in-elasticsearch/\"\u003enesta url.\u003c/a\u003e o/\u003c/p\u003e\n\u003cp\u003eAlém disso foi incluído o \u003ca href=\"http://redis.io/\"\u003eRedis\u003c/a\u003e na stack, recebendo os dados e direcionando para o Logstash. Este é um recurso útil para ganho de performance.\u003c/p\u003e\n\u003cp\u003ePara facilitar o entendimento, vamos relembrar informações sobre a instalação da nossa stack:\u003c/p\u003e","title":"Enviando dados externos para a stack ELK"},{"content":"Se você perdeu o AWS Summit, confira neste link todas as apresentações que rolaram por lá.\n","permalink":"http://ricardomartins.com.br/material-do-aws-summit-2014-em-sao-paulo/","summary":"\u003cp\u003eSe você perdeu o AWS Summit, confira \u003ca href=\"http://www.slideshare.net/AmazonWebServicesLATAM/tag/aws-summit-brasil-2014?mkt_tok=3RkMMJWWfF9wsRohu6XMZKXonjHpfsX56OkvX6axlMI%2F0ER3fOvrPUfGjI4ARcpiPK%2BTFAwTG5toziV8R7jML81rzNQQUhDr\" title=\"AWS Summit 2014\"\u003eneste link\u003c/a\u003e todas as apresentações que rolaram por lá.\u003c/p\u003e","title":"Material do AWS Summit 2014 em São Paulo"},{"content":"O que é a stack ELK? A stack ELK nada mais é que o conjunto formado pelas ferramentas ElasticSearch, Logstash e o Kibana. O uso destas três ferramentas em conjunto, provê uma excelente ferramenta para análilse de dados em tempo real.\nAqui iremos fazer um teste simples com os logs de uma máquina com o CentOS. Este artigo pode te ajudar a começar a enterder as peculiaridades de cada uma delas, e testá-las.\nDe modo geral, você faz um parsing dos dados com o Logstash diretamente no ElasticSearch. O ElasticSearch vai realizar um tratamento nestes dados, e o Kibana vai exibir os dados para você.\nElasticSearch O ElasticSearch é uma engine de busca com foco na análise de dados em tempo real, baseado na arquitetura RESTful. É bastante similar ao Solr e ao CloudSearch (Amazon)\nEle possui compatibilidade com a funcionalidade de pesquisa de texto completo padrão, mas também diversas opções poderosas de realização de queries. O ElasticSearch é baseado em documentos orientados e você pode armazenar tudo o que quiser no formato JSON. Isto o torna mais poderoso, simples e flexível.\nFoi desenvolvido sobre o Apache Lucene e por default roda na porta 9200.\nLogstash O Logstash é uma solução para gerenciamento e agregação de logs. Você consegue agregar logs de máquinas, sistemas operacionais e aplicações distintas em um único lugar. O Logstash permite pegar dados ou qualquer outro registro baseado em tempo, de onde quiser, processar e analisar exatamente como você quiser. O formato estruturado do JSON é o padrão, e também é a forma como o ElasticSearch vai tratá-lo. Existem diversas opções de filtros e funcionalidades similares que você pode experimentar. É muito útil para agilizar a leitura dos logs, compreensão e filtragem.\nPlus: Cookbooks para o Logstash: http://cookbook.logstash.net/\nKibana O Kibana é o frontend do nosso stack, que irá apresentar os dados armazenados pelo Logstash no ElasticSearch, em uma interface altamente customizável com histograma e outros painéis que irão te dar um excelente overview sobre os seus dados. Muito bom para análises em tempo real e pesquisa de dados que você tenha parseado no ElasticSearch.\nEle permite transformar os logs em informações úteis, pois permite realizar correlação de eventos, filtrar logs por origem, hosts, e N outras combinações.\nAdicionando o Redis em nossa Stack Geralmente a stack ELK é composta apenas pelos três componentes já citados. Porém para melhorar nossa performance, vou incluir o Redis.\nO Redis é um storage de dados, projetado para armazenar dados na memória RAM e permitir acesso fácil e rápido de qualquer informação via uso de APIs. A principal vantagem dele sobre o Memcached é que ele implementa alguns recursos adicionais como transactions e publish-subscribe-pattern, que permite um uso mais robusto e versátil em vários contextos de aplicação.\nComo é um serviço de rede, ele trabalha sobre IP:Porta. Assim é importante atentar para regras básicas de segurança (regras de iptables, bind para localhost, etc.). No entanto o Redis possui uma funcionalidade interessante que habilita a autenticação antes da execução de queries. Neste link você encontra boas práticas de segurança para o Redis.\nBora botar isso pra funcionar!\nHabilitar repositório EPEL e os repositórios dos pacotes à serem instalados # rpm -Uvh http://mirror.1000mbps.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm # vim /etc/yum.repos.d/logstash.repo [logstash] name=logstash repository for 1.4.x packages baseurl=http://packages.elasticsearch.org/logstash/1.4/centos gpgcheck=1 gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch enabled=1 # vim /etc/yum.repos.d/elasticsearch.repo [elasticsearch] name=Elasticsearch repository for 1.0.x packages baseurl=http://packages.elasticsearch.org/elasticsearch/1.0/centos gpgcheck=1 gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch enabled=1 ```bash # vim /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1 Instalar os pacotes necessários # yum -y install elasticsearch redis nginx logstash Instalando e configurando o Kibana # wget https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz # tar -xvzf kibana-3.1.0.tar.gz # mv kibana-3.1.0 /usr/share/kibana3 Agora precisamos informar ao Kibana onde encontrar o ElasticSearch. Abra o arquivo de configuração e modifique o parâmetro correspondente:\n# vim /usr/share/kibana3/config.js Procure pelo parâmetro “elasticsearch:” e modifique de acordo com seu ambiente. Note que no neste post, eu estou usando como exemplo o servidor abaixo, rodando Centos 6.4:\nelk.ricardomartins.com.br (192.168.33.100)\nelasticsearch: \u0026#34;http://192.168.33.100:9200\u0026#34; Você também precisa modificar o parâmetro da rota padrão para que o Dashboard do Logstash seja utilizado por padrão ao invés da tela de boas vindas do Kibana:\ndefault_route : ‘/dashboard/file/logstash.json’, E por fim, precisamos colocar o Kibana disponível no Nginx. O Elasticsearch tem um arquivo de exemplo que você pode usar para habilitar o Kibana:\n# wget https://github.com/elastic/kibana/blob/kibana3/sample/nginx.conf # mv nginx.conf /etc/nginx/conf.d/ # mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.off Agora vamos abrir o arquivo de configuração e alterar o parâmetro “server_name” de acordo com nosso ambiente de teste:\n# vim /etc/nginx/conf.d/nginx.conf server_name elk.ricardomartins.com.br; Vamos alterar também o nome do arquivo de log:\naccess_log /var/log/nginx/elk.ricardomartins.com.br.access.log; Configurando o Redis Vamos configurar o Redis para ouvir na interface de rede correta:\n# vim /etc/redis.conf bind 192.168.33.100 Configurando o Logstash Agora vamos criar nossa configuração do Logstash. Basicamente o que ela faz:\nFazer a leitura do /var/log; Abrir a porta 5544 para habilitar o recebimento de mensagens de syslog remotas; Informar ao Logstash para usar nossa instalação do ElasticSearch ao invés da instalação que vem nele. # vim /etc/logstash/conf.d/logstash-complex.conf input { file { type =\u0026gt; “syslog” path =\u0026gt; [ “/var/log/*.log”, “/var/log/messages”, “/var/log/syslog” ] sincedb_path =\u0026gt; “/opt/logstash/sincedb-access” } redis { host =\u0026gt; “192.168.33.100” type =\u0026gt; “redis-input” data_type =\u0026gt; “list” key =\u0026gt; “logstash” } syslog { type =\u0026gt; “syslog” port =\u0026gt; “5544” } } filter { grok { type =\u0026gt; “syslog” match =\u0026gt; [ “message”, “%{SYSLOGBASE2}” ] add_tag =\u0026gt; [ “syslog”, “grokked” ] } } output { elasticsearch { host =\u0026gt; “elk.ricardomartins.com.br” } } Hora do Teste!\nIniciando e habilitando os serviços # service redis start; chkconfig redis on # service elasticsearch start; chkconfig –add elasticsearch; chkconfig elasticsearch on # service logstash start; chkconfig logstash on # service nginx start; chkconfig nginx on Verificando se todos os serviços subiram conforme esperado:\n# lsof -i tcp:9200,80,5544,6379 Se todas as portas estiverem escutando corretamente, você deverá ver algo assim:\nCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME redis-ser 9777 redis 4u IPv4 32483 0t0 TCP elk.ricardomartins.com.br:6379 (LISTEN) redis-ser 9777 redis 5u IPv4 32859 0t0 TCP elk.ricardomartins.com.br:6379-\u0026gt;elk.ricardomartins.com.br:48889 (ESTABLISHED) java 9803 elasticsearch 88u IPv6 32763 0t0 TCP *:wap-wsp (LISTEN) java 9826 logstash 19u IPv6 32858 0t0 TCP elk.ricardomartins.com.br:48889-\u0026gt;elk.ricardomartins.com.br:6379 (ESTABLISHED) java 9826 logstash 42u IPv6 32863 0t0 TCP *:5544 (LISTEN) nginx 9882 root 7u IPv4 32800 0t0 TCP *:http (LISTEN) nginx 9885 nginx 7u IPv4 32800 0t0 TCP *:http (LISTEN) Para o rsyslog, você pode adicionar estas linhas ao /etc/rsyslog.conf\n# ### begin forwarding rule ### # The statement between the begin … end define a SINGLE forwarding # rule. They belong together, do NOT split them. If you create multiple # forwarding rules, duplicate the whole block! # Remote Logging (we use TCP for reliable delivery) # # An on-disk queue is created for this action. If the remote host is # down, messages are spooled to disk and sent when it is up again. $WorkDirectory /var/lib/rsyslog # where to place spool files $ActionQueueFileName fwdRule1 # unique name prefix for spool files $ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible) $ActionQueueSaveOnShutdown on # save messages to disk on shutdown $ActionQueueType LinkedList # run asynchronously $ActionResumeRetryCount -1 # infinite retries if host is down # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional *.* @@192.168.33.100:5544 # ### end of the forwarding rule ### # /etc/init.d/rsyslog restart Se você seguiu cuidadosamente os passos, tudo irá iniciar sem problemas.\nAgora aponte seu browser para o endereço IP do seu servidor e veja a tela do Kibana com os arquivos de log do seu /var/log*\nUsando esta configuração, você pode receber as mensagens de syslog dos seus servidores remotos também. Estas mensagens serão recebidas pelo logstash diretamente, omitindo a passagem pelo Redis.\nAté este ponto, você já tem seu ELK Stack totalmente funcional. No primeiro acesso, mais abaixo você imediatamente as informações mais recentes coletadas nos logs do /var/log*. No meu caso, são mensagens dos acessos no Nginx:\nPlus: Criando uma configuração específica para logs do Nginx Ok, agora vamos fazer um teste mais objetivo. Que tal ter os logs do seu servidor Web em uma tela amigável como a do Kibana? Vamos lá:\n# vim /etc/rsyslog.d/logstash-nginx.conf ]# Teste com os logs de acesso do Nginx $ModLoad imfile $InputFileName /var/log/nginx/elk.ricardomartins.com.br.access.log $InputFileTag nginx-accesslog: $InputFileStateFile state-nginx-accesslog $InputRunFileMonitor $InputFilePollInterval 10 if $programname == ‘nginx-accesslog’ then @@192.168.33.100:5544 if $programname == ‘nginx-accesslog’ then ~ # /etc/init.d/rsyslog restart Veja como podemos pegar agora as mensagens específicas dos logs de acesso do Nginx:\nBusque por *.nginx na barra de pesquisa:\nOu ainda:\nClique em program, e escolha nginx-accesslog, que neste caso foi a tag que definimos quando fizemos nossa configuração no rsyslog logo acima.\nDa mesma forma, você pode criar para qualquer tipo de log desejado. Vamos fazer um teste com os logs do Yum:\nCriaremos o arquivo logstash-yum.conf e inserimos o conteúdo abaixo:\n# vim /etc/rsyslog.d/logstash-yum.conf # Teste com os logs do Yum $ModLoad imfile $InputFileName /var/log/yum.log $InputFileTag yum-log: $InputFileStateFile yum-log $InputRunFileMonitor $InputFilePollInterval 10 if $programname == ‘yum-log’ then @@192.168.33.100:5544 if $programname == ‘yum-log’ then ~ # /etc/init.d/rsyslog restart Procure por *.yum:\nSerá gerada uma lista com todos os eventos registrados pelo yum:\nEscolha uma das entradas e verifique o conteúdo da mensagem na íntegra.\nUm outro exemplo pode ser pesquisar por programas instalados. Basta usar o campo de pesquisa e procurar por installed\nAgora nos resultados exibidos na parte inferior você terá apenas eventos registrados que possuam a palavra installed:\nNote que as informações foram registradas na configuração que criamos chamada yum-log. Observe o campo program acima.\nAbra uma das mensagens e descubra mais detalhes sobre a instalação realizada:\nOlha aí a instalação do wget que eu fiz!\nPor enquanto ficamos por aqui. Ainda estou descobrindo melhor sobre o uso destas ferramentas, e isto é tudo que sei por enquanto.\nLembre-se que se você tiver um firewall rodando, você precisa liberar as portas correspondentes. Abaixo a relação de portas necessárias:\n80 (para a interface web); 5544 (para receber mensagens de syslog remotas); 6379 (para o Redis); 9200 (para a interface web acessar o elasticsearch) Referências:\nhttp://michael.bouvy.net/blog/en/2013/11/19/collect-visualize-your-logs-logstash-elasticsearch-redis-kibana/ http://www.linuxfunda.com/2013/09/27/log-management-using-logstash-and-kibina-on-centos-rhel-ubuntu/ http://www.ericvb.com/archives/getting-started-on-centralized-logging-with-logstash-elasticsearch-and-kibana http://www.chriscowley.me.uk/blog/2014/03/21/logstash-on-centos-6/ http://www.jaddog.org/2014/01/16/openstack-logstash-elasticsearch-kibana/ http://www.denniskanbier.nl/blog/logging/installing-logstash-on-rhel-and-centos-6/ http://blog.basefarm.com/blog/how-to-install-logstash-with-kibana-interface-on-rhel/ ","permalink":"http://ricardomartins.com.br/implementando-a-stack-elk-elasticsearch-logstash-kibana-no-centos/","summary":"\u003ch3 id=\"o-que-é-a-stack-elk\"\u003eO que é a stack ELK?\u003c/h3\u003e\n\u003cp\u003eA stack ELK nada mais é que o conjunto formado pelas ferramentas ElasticSearch, Logstash e o Kibana. O uso destas três ferramentas em conjunto, provê uma excelente ferramenta para análilse de dados em tempo real.\u003c/p\u003e\n\u003cp\u003eAqui iremos fazer um teste simples com os logs de uma máquina com o CentOS. Este artigo pode te ajudar a começar a enterder as peculiaridades de cada uma delas, e testá-las.\u003c/p\u003e","title":"Implementando a stack ELK (ElasticSearch, Logstash e Kibana) no CentOS"},{"content":"Aprenda a implementar esta excelente ferramenta. Recentemente eu mostrei como configurar balanceamento de carga com o HAProxy. Caso você não tenha visto, pode acessá-lo aqui.\nNele eu demonstrei como configurar um servidor funcionando como balanceador, jogando as requisições para dois servidores, dividindo a carga entre eles. Muito útil para equilibrar a carga entre dois ou mais servidores, e/ou por exemplo garantir que um site continuará acessível no caso de falha em um dos servidores que compõem a arquitetura.\nNo cenário de teste, eu havia colocado um arquivo html em cada servidor web contendo o nome do servidor em cada caso. Por exemplo, o Server1, exibia o texto “Server1” e o Server2 o texto “Server2” sempre que respondia a uma requisição de acesso. Assim conseguia mostrar que de fato o balanceamento estava funcionando, pois ao realizar o acesso, o conteúdo exibido era alterado de acordo com o servidor que respondia. Foi a forma didática que encontrei para demonstrar o funcionamento do balanceamento.\nNo entanto em um cenário real, você irá desejar ter o mesmo conteúdo em todos os servidores web. Mas como fazer isto? Para fazer isso existe o modo prático, e digamos, o modo profissional.\nO modo prático, porém não menos eficiente, é manter um cronjob fazendo o rsync do diretório do site (/var/www/html, por exemplo) entre os servidores a cada X minutos.\nO modo profissional, é montar um cluster. Existem N ferramentas para trabalhar com Clusters, (Linux-HA, OneSIS, Pacemaker, Corosync, DRBD), mas eu vou demonstrar como fazer com o GlusterFS.\nO GlusterFS permite a criação de diferentes tipos de configurações, muitas delas parecidas com os níveis de RAID. Neste post vou criar uma matriz de armazenamento redundante, ou seja, um sistema de arquivos distribuído. Será como um RAID espelhado pela rede onde cada servidor terá sua própria cópia dos dados, permitindo que os acessos sejam feitos de forma distribuída.\nEu vou usar o Vagrant neste laboratório, e cada máquina terá dois discos. Um com 8GB contendo a instalação do sistema operacional (CentOS 6.4) e outro de 1GB que será usado como storage na nossa configuração de Cluster.\nLaboratório usado:\nserver1.ricardomartins.com.br (192.168.1.110)\nserver2.ricardomartins.com.br (192.168.1.120)\nclient.ricardomartins.com.br (192.168.1.130)\n/dev/sda – 8GB (Sistema Operacional)\n/dev/sdb – 1GB (Storage)\nConfiguração do Storage Criar partição:\n# cfdisk /dev/sdb New \u0026gt; Primary \u0026gt; Size: (Deixe o padrão) \u0026gt; Write \u0026gt; Yes \u0026gt; Quit Criar sistema de arquivos e formatar:\n# mkfs.ext4 /dev/sdb1 Criar diretório do cluster:\n# mkdir -p /dados/cluster Configurar o Fstab:\n# vi /etc/fstab Adicionar:\n/dev/sdb1 /dados/cluster ext4 defaults 1 2 Montar:\n# mount -a \u0026amp;\u0026amp; mount Habilitar EPEL e o repositório do GlusterFS # wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo Instalação do GlusterFS # yum install glusterfs-server Iniciar o daemon de gerenciamento do GlusterFS\n# service glusterd start Garantir que ele seja iniciado durante o boot\n# chkconfig glusterd on Para evitar erros por conta de regras de Firewall e do Selinux, vamos desabilitá-lo:\nAbra o /etc/sysconfig/selinux e deixe da seguinte forma:\nSELINUX=disabled Agora faça um flush nas regras de iptables ou pare o serviço:\n# iptables -F ou\n# /etc/init.d/iptables stop Configurar o Trusted Pool Rodar o seguinte comando no Server1:\n# gluster peer probe server2 Rodar o seguinte comando no Server2:\n# gluster peer probe server1 Nota: Uma vez que o pool já estiver conectado, apenas servidores “Trusted” podem adicionar novos servidores no Pool.\nConfigurar o Volume do GlusterFS Criar em ambos os servidores:\n# mkdir /dados/cluster/vg Criar o volume em qualquer um dos servidores e iniciar o volume. Eu fiz no Server1\n# gluster volume create vg replica 2 server1:/dados/cluster/vg server2:/dados/cluster/vg # gluster volume start vg Agora vamos confirmar o estado do volume criado:\n# gluster volume info Caso o volume não for iniciado, as mensagens de erro estarão em /var/log/glusterfs em ambos os servidores.\nTestando nos clientes Agora no Client, vamos testar. Instale o cliente do glusterfs:\n# yum install glusterfs-client Em seguida vamos criar um diretório onde montaremos o cluster:\n# mkdir /clusterfs E agora montamos o cluster nesse diretório:\n# mount -t glusterfs server1:/dados/cluster/vg /clusterfs Para montar automaticamente, basta inserir no /etc/fstab da seguinte maneira:\nserver1.ricardomartins.com.br:/dados/cluster/vg /cluster glusterfs defaults,_netdev 0 0 Agora vamos criar arquivos neste diretório:\n# cd /clusterfs # touch arquivo{1..10} Para validar, vamos em um dos outros servidores, e dê um ls no diretório do cluster. Os arquivos estarão lá!\n# ls /dados/cluster/vg Nota: Se você quiser testar dentro de um dos servidores, você precisa instalar o cliente do glusterfs (glusterfs-client) e usar o mesmo procedimento acima. Escrever diretamente em /dados/cluster/vg/ não irá replicar a configuração para o outro servidor.\nOutros testes que você DEVE fazer para validar que realmente funciona:\nLogado no cliente, entre no diretório /clusterfs e crie alguns arquivos; Acesse um dos servidores e verifique a existência dos arquivos criados em /dados/cluster/vg; Desligue um dos servidores e crie novos arquivos pelo cliente. Verifique no outro servidor que os novos arquivos criados com um dos servidores delisgados estará lá; Ligue o servidor que desligou e verifique o conteúdo do /dados/cluster/vg. Os arquivos criados enquanto ele estava desligado estarão lá; Agora inverta, desligue o outro servidor e refaça o teste acima. Da mesma forma quando ligar ele novamente, os arquivos estarão sincronizados nele. Se estiver tudo conforme acima, seu Raid via rede está totalmente funcional agora!\nRestringindo acesso ao volume Agora que nós verificamos que nosso storage pool está disponível e replicando os dados entre as máquinas do cluster, nos podemos querer proteger nosso pool. Atualmente, qualquer computador cliente pode se conectar ao nosso storage sem nenhuma restrição. Nós podemos alterar isso definindo uma opção no nosso volume.\nEm um dos servidores, digite:\n# gluster volume set volume1 auth.allow ip.do.cliente1,ip.do.cliente2 Alguns comandos importantes do glusterfs Obtendo informações sobre ós volumes:\n# gluster volume info Obtendo informações sobre os nós integrantes do cluster que estão conectados ao servidor que você estiver logado:\n# gluster peer status Se você quiser informações detalhadas sobre o que cada nó está fazendo, você pode traçar um perfil sobre o volume:\n# gluster volume profile nome_do_volume start # gluster volume profile nome_do_volume info Para obter uma lista de todos os componentes associados ao GlusterFS rodando em cada um dos nós (servidores):\n# gluster volume status Para entrar no console de administração do GlusterFS\n# gluster Um prompt de comandos será aberto. Digite “help” para ver todas as opções disponíveis para você. Para sair, digite “exit”.\nPlus: Conceitos de Storage Brick: Brick é basicamente qualquer diretório criado para ser compartilhado entre o trusted storage pool; Trusted Storage Pool: É a coleção destes arquivos e diretórios compartilhados, que são baseados no protocolo desenvolvido; Block Storage: Dispositivos através dos quais os dados são movidos entre os sistemas no formato de blocos; Cluster: Quando falamos de RedHat Storage, cluster e trusted storage pool remetem a mesma idéia de servidores de armazenamento baseados em um protocolo definido; Distributed File System: Sistema de arquivos no qual os dados são distribuídos entre diferentes nós (servidores), onde os usuários podem acessar os arquivos sem saber a localização real deles; Fuse: É um módulo do Kernel que pode ser carregado e permite aos usuários criarem sistemas de arquivos sobre o kernel sem envolver nenhum código de Kernel; Glusterd: É o daemon de gerenciamento do GlusterFS. Funciona como a espinha dorsal do sistema de arquivos que fica em execução em todo o tempo, sempre que os servidores estão no estado de ativos; Posix: Portable Operating System Interface, é o conjunto de normas definidas pelo IEEE como uma solução para compatibilidade entre o Unix e seus variantes na forma de APIs Raid: Redundant Array of Independent Disks, é uma tecnologia que dá maior confiabilidade em sistemas de armazenamento através de redundância; Subvolume: Um brick, depois de ter sido processado por ao menos um Translator; Translator: Um translator é aquele pedaço de código que executa as ações básicas iniciadas pelo usuário à partir do ponto de montagem. Ele se conecta com um ou mais subvolumes; Volume: Um volume é um conjunto lógico de bricks. Todas as operações são baseadas em diferentesd tipos de volumes criados pelo usuário. ","permalink":"http://ricardomartins.com.br/como-configurar-um-storage-em-alta-disponibilidade-com-glusterfs/","summary":"\u003ch2 id=\"aprenda-a-implementar-esta-excelente-ferramenta\"\u003eAprenda a implementar esta excelente ferramenta.\u003c/h2\u003e\n\u003cp\u003e\u003cimg alt=\"glusterfs\" loading=\"lazy\" src=\"/media/orange-ant-glusterfs.png\"\u003e\u003c/p\u003e\n\u003cp\u003eRecentemente eu mostrei como configurar balanceamento de carga com o HAProxy. Caso você não tenha visto, pode acessá-lo \u003ca href=\"http://www.ricardomartins.com.br/balanceamento-de-carga-com-haproxy/\"\u003eaqui\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eNele eu demonstrei como configurar um servidor funcionando como balanceador, jogando as requisições para dois servidores, dividindo a carga entre eles. Muito útil para equilibrar a carga entre dois ou mais servidores, e/ou por exemplo garantir que um site continuará acessível no caso de falha em um dos servidores que compõem a arquitetura.\u003c/p\u003e","title":"Como configurar um storage em alta disponibilidade com GlusterFS"},{"content":"Para quem não pode ir, estou disponibilizando no SlideShare a miha palestra sobre CloudComputing no Flisol 2014.\nComputação em nuvem from Ricardo Martins ☁ ","permalink":"http://ricardomartins.com.br/slides-da-palestra-da-flisol-2014/","summary":"\u003cp\u003ePara quem não pode ir, estou disponibilizando no SlideShare a miha palestra sobre CloudComputing no \u003ca href=\"http://flisol.info/FLISOL2014/Brasil/Niteroi\" title=\"Flisol 2014\"\u003eFlisol 2014\u003c/a\u003e.\u003c/p\u003e\n\u003ciframe src=\"https://www.slideshare.net/slideshow/embed_code/key/i8uzowesgY3I42?startSlide=1\" width=\"597\" height=\"486\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px;max-width: 100%;\" allowfullscreen\u003e\u003c/iframe\u003e\u003cdiv style=\"margin-bottom:5px\"\u003e\u003cstrong\u003e\u003ca href=\"https://pt.slideshare.net/rmmartins/computacao-em-nuvem-34029146\" title=\"Computação em nuvem\" target=\"_blank\"\u003eComputação em nuvem\u003c/a\u003e\u003c/strong\u003e from \u003cstrong\u003e\u003ca href=\"https://pt.slideshare.net/rmmartins\" target=\"_blank\"\u003eRicardo Martins ☁\u003c/a\u003e\u003c/strong\u003e\u003c/div\u003e","title":"Slides da Palestra da Flisol 2014"},{"content":"No próximo dia 26/04 estará acontecendo em Niterói o FliSol 2014, no qual eu terei o prazer de palestrar sobre o assunto de Computação em Nuvem.\nO FliSol é um evento internacional, realizado anualmente que ocorre de forma simultânea em diversas cidades. É um evento descentralizado, considerado o maior evendo da América Latina de divulgação de Software Livre onde diversas comunidades organizam e realizam seu festival, de forma voluntária, tendo como principal objetivo promover o uso de software livre, apresentando sua filosofia, alcance, avanços e desenvolvimento ao público em geral.\nLocal do Evento: NPD (Núcleo de Produção Digital) – Rua Visconde de Uruguai Nº:300 – Niterói – RJ\nHorário: Das 09:00 às 18:00\nA minha palestra será no Auditório 01 das 11:30 às 12:30. Se estiver com a data livre na sua agenda, participe!\nMaiores informações e inscrições: http://flisol.info/FLISOL2014/Brasil/Niteroi\n","permalink":"http://ricardomartins.com.br/participacao-no-flisol-2014/","summary":"\u003cp\u003eNo próximo dia 26/04 estará acontecendo em Niterói o FliSol 2014, no qual eu terei o prazer de palestrar sobre o assunto de Computação em Nuvem.\u003c/p\u003e\n\u003cp\u003eO FliSol \u003cspan style=\"color: #252525;\"\u003eé um evento internacional, realizado anualmente que ocorre de forma simultânea em diversas cidades. \u003c/span\u003e\u003cspan style=\"color: #252525;\"\u003eÉ um evento descentralizado, considerado o maior evendo da América Latina de divulgação de Software Livre onde diversas comunidades organizam e realizam seu festival, de forma voluntária, tendo como principal objetivo promover o uso de software livre, apresentando sua filosofia, alcance, avanços e desenvolvimento ao público em geral.\u003c/span\u003e\u003c/p\u003e","title":"Participação no FliSol 2014"},{"content":"Interessante artigo aborando diversos tópicos no que diz respeito ao trabalho remoto.\nConfira: http://www.infoq.com/articles/remote-working-works\n","permalink":"http://ricardomartins.com.br/trabalho-remoto-funciona/","summary":"\u003cp\u003eInteressante artigo aborando diversos tópicos no que diz respeito ao trabalho remoto.\u003c/p\u003e\n\u003cp\u003eConfira: \u003ca href=\"http://www.infoq.com/articles/remote-working-works\"\u003ehttp://www.infoq.com/articles/remote-working-works\u003c/a\u003e\u003c/p\u003e","title":"Trabalho remoto funciona?"},{"content":"\nConfigurar o balanceamento de carga entre vários servidores web pode parecer um desafio, porém na verdade não é. O HAProxy é uma ferramenta poderosa, leve, fácil de configurar e com um grande número de recursos sofisticados para gerenciar e servir conteúdo.\nNeste artigo, tenho um cenário simples usando três servidores:\nNode1-LB (192.168.10.10): O nó com o HAProxy configurado e com função de load balancer Node2 (192.168.10.20): Servidor Web Node3 (192.168.10.30): Servidor Web Todos os servidores estão com CentOS 5.8 e rodando dentro do Vagrant.\nConfiguração do Node1-LB: Instalação do repositório EPEL # wget http://dl.fedoraproject.org/pub/epel/5/x86\\_64/epel-release-5-4.noarch.rpm # wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm # rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm Instalação e Configuração do HAProxy No caso vamos usar o algoritmo de balanceamento por RoundRobin. Existem outras opções de uso que você pode definir de acordo com sua necessidade. Neste link, tem uma boa explicação sobre eles.\n# yum install haproxy # mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.ori # vim /etc/haproxy/haproxy.cfg global log 127.0.0.1 local0 maxconn 4096 user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen web-farm 0.0.0.0:80 cookie SERVERID rewrite balance roundrobin server node2 192.168.10.20:80 cookie app1inst1 check inter 2000 rise 2 fall 5 server node3 192.168.10.30:80 cookie app1inst2 check inter 2000 rise 2 fall 5 Start no serviço e garantia de inicialização no boot # /sbin/chkconfig haproxy on Configuração do servidor Web – Node2 (192.168.10.20): Instalação do repositório EPEL # wget http://dl.fedoraproject.org/pub/epel/5/x86\\_64/epel-release-5-4.noarch.rpm # wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm # rpm -Uvh remi-release-5\\*.rpm epel-release-5\\*.rpm Instalação e configuração básica do Apache # yum install httpd # rm /etc/httpd/conf.d/welcome.conf # echo Node2 \u0026gt; /var/www/html/index.html Start no serviço e garantia de inicialização no boot # /etc/init.d/httpd start # /sbin/chkconfig httpd on Configuração do servidor Web – Node3 (192.168.10.30): Instalação do repositório EPEL # wget http://dl.fedoraproject.org/pub/epel/5/x86\\_64/epel-release-5-4.noarch.rpm # wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm # rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm Instalação e configuração básica do Apache # yum install httpd # rm /etc/httpd/conf.d/welcome.conf # echo Node3 \u0026gt; /var/www/html/index.html Start no serviço e garantia de inicialização no boot # /etc/init.d/httpd start # /sbin/chkconfig httpd on Vídeo Demo Assista ao vídeo com a validação do uso:\nPlus: WebStats Se você quiser disponibilizar uma interface Web para visualização das estatísticas do HAProxy similar à esta: http://demo.1wt.eu/, basta adicionar as linhas abaixo no arquivo /etc/haproxy/haproxy.cfg e reiniciar o serviço.\nlisten stats 0.0.0.0:9000 stats uri /haproxy_stats stats realm HAProxy Statistics stats auth admin:password No caso, ao tentar acessar o serviço através da url http://192.168.10.10:9000/haproxy_stats será solicitado o usuário e senha conforme explicitados no arquivo acima (admin/password)\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/balanceamento-de-carga-com-haproxy/","summary":"\u003cp\u003e\u003cimg alt=\"haproxy\" loading=\"lazy\" src=\"/media/haproxy1.png\"\u003e\u003c/p\u003e\n\u003cp\u003eConfigurar o balanceamento de carga entre vários servidores web pode parecer um desafio, porém na verdade não é. O \u003ca href=\"http://haproxy.1wt.eu/\" title=\"HAProxy\"\u003eHAProxy\u003c/a\u003e é uma ferramenta poderosa, leve, fácil de configurar e com um grande número de recursos sofisticados para gerenciar e servir conteúdo.\u003c/p\u003e\n\u003cp\u003eNeste artigo, tenho um cenário simples usando três servidores:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eNode1-LB (\u003cstrong\u003e192.168.10.10\u003c/strong\u003e): O nó com o HAProxy configurado e com função de load balancer\u003c/li\u003e\n\u003cli\u003eNode2 (\u003cstrong\u003e192.168.10.20\u003c/strong\u003e): Servidor Web\u003c/li\u003e\n\u003cli\u003eNode3 (\u003cstrong\u003e192.168.10.30\u003c/strong\u003e): Servidor Web\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eTodos os servidores estão com CentOS 5.8 e rodando dentro do Vagrant.\u003c/p\u003e","title":"Balanceamento de carga com HAProxy"},{"content":"No cenário de constantes mudanças em ambientes web sempre surgem novas técnicas e ferramentas surpreendentes. Manter-se atualizado com todas as novidades que surgem diariamente é um grande desafio, mas bastante emocionante.\nNo meu trabalho, eu sou confrontado diariamente com diversas ferramentas novas interessantes, e preciso seguir o fluxo me mantendo alinhado com tudo que surge. Ultimamente o Docker é o novo buzz do mundo web. Todo mundo está falando sobre ele.\nO Docker é em essência, um produto que poderia tornar a vida de um sysadmin muito mais fácil. Foi desenvolvido pela dotCloud (que agora se chama Docker) e está recebendo um monte de elogios , artigos, e centenas de projetos no Github hoje estão sendo baseados no Docker.\nO que é o Docker? Para entender melhor o que é o Docker, você precisa conhecer um pouco sobre como webapps ou sites normalmente são “deployados”. Os passos básicos para realizar o deploy de um webapp ou site são os seguintes:\nO desenvolvedor cria uma aplicação ou site com um número de versão (versão 1.0 por exemplo) e os pacotes desta aplicação em um set (conjunto) de arquivos; Um sysadmin pega estes arquivos e publica em um servidor com um serviço web (Apache, Nginx) e um banco de dados (o banco de dados algumas vezes pode estar em um servidor separado do servidor web); O sysadmin configura a aplicação para que ela possa ser disponibilizada pelo servidor web e configura a aplicação para que ela possa conversar com o banco de dados; O usuário pode então acessar a aplicação através do seu browser e ver o site/aplicação. De modo geral, estas são as etapas envolvidas para disponibilizar uma aplicação na internet. Existem algumas grandes desvantagens no processo descrito acima. Embora pareça ser algo fácil e simples, muitas vezes não é. Entre a criação de um servidor web, banco de dados, etc, há muito tempo perdido na implementação e configuração destes serviços.\nAlém do fator tempo na criação e configuração de tudo isto, imagina o que acontece se o servidor apresenta alguma falha e você não tem um ambiente redundante? Você precisa configurar um novo servidor, refazer todas as configurações, testar, validar, etc. É neste ponto que o Docker pode facilitar a sua vida.\nO Docker pode ser descrito como um container em um navio. Cada docker-container é um container que no caso mencionado acima, pode conter um ou vários dos seguintes serviços:\nUm servidor web; Um banco de dados; Uma aplicação. Como um Linux Container Engine, utiliza Linux Containers (lxc) ao invés de métodos de virtualização tradicionais. O lxc utiliza o mesmo kernel do servidor host, tornando tudo muito rápido.\nUm container é um processo isolado através de namespaces + chroot. Por isso que fazer o “start” de um container é muito rápido (é tão rápido quanto iniciar um processo novo).\nO fato de usar o o mesmo kernel do host, dá um bom ganho de performance. Porém ao criar um container novo, consiste em criar um novo “chroot” o que exige muito i/o, podendo tornar o processo lento. Justamente neste ponto que está o grande lance do Docker. Ele é uma ferramenta para simplificar e dar mais poderes aos containers. Então ele traz o conceito de imagem, fazendo com que cada novo container seja um “diff” de outro container base.Para facilitar o entendimento, pense em uma máquina virtual, porém menor, mais rápida e com tempo de startup/shutdown praticamente zero. A grande vantagem é que você pode criar seu container uma vez e movê-lo praticamente para qualquer tipo de servidor (seja ele virtual ou um hardware dedicado). No caso de uma falha, você simplesmente configura um servidor com o Docker instalado e insere seu container nele. Em questão de minutos, você tem tudo funcionando novamente.\nEntrando em detalhes:\nO Docker utiliza Linux Containers (LXC), que rodam no mesmo sistema operacional do servidor host. Isto permite o uso compartilhado de diversos recursos do sistema operacional host. Ele também utiliza AuFS para o sistema de arquivos. Ele gerencia a rede para você também.\nAuFS é um sistema de arquivos em camadas, então você pode ter uma parte destinada para leitura, outra parte para escrita, podendo ainda fazer um merge entre elas. Você ainda pode ter partes em comum do sistema operacional apenas para leitura, que podem ser compartilhadas entre todos os seus containers e em seguida dar a cada container seu próprio ponto de montagem de escrita.\nEntão vamos dizer que você tem uma imagem de container com tamanho de 1 GB. Se você quiser usar uma máquina virtual completa, você precisa ter 1GB vezes x número de VMs que você deseja. Com LXC e AuFS você pode compartilhar o volume de 1GB e se você tem 1000 containers você ainda pode ter apenas um pouco mais de 1 GB de espaço para o sistema operacional do container, assumindo que todos eles estão rodando a mesma imagem do sistema operacional.\nUm sistema totalmente virtualizado recebe seu próprio conjunto de recursos alocados, e faz um compartilhamento mínimo de recursos. Você recebe um isolamento maior, mas é mais difícil (requer mais recursos).\nCom LXC você pode ter menos isolamento, mas eles são mais leves e exigem menos recursos. Você poderia facilmente rodar 1000 containers em um host, e ele não vai nem sentir. Tente fazer isso com um Hypervisor qualquer, e a menos que você tenha um servidor (host) muito parrudo, seria impossível.\nUm sistema completamente virtualizado, geralmente pode levar alguns minutos para inicializar, enquanto containers LXC leva segundos, sendo algumas vezes menos de um segundo.\nExistem prós e contras em cada tipo de sistema de virtualização. Se você deseja total isolamento com recursos garantidos, então um sistema completamente virtualizado pode ser a melhor solução. Mas se você deseja apenas isolar processos entre sí e executar centenas deles em um servidor com um tamanho razoável, o LXC pode ser um caminho melhor à seguir\nPara maiores informações sobre como LXC trabalha, acesse este link: http://blog.dotcloud.com/under-the-hood-linux-kernels-on-dotcloud-part\nFazer o deploy de um ambiente de produção consistente não é algo tão trivial de ser feito. Mesmo se você usar ferramentas como o chef ou puppet, sempre há atualizações do sistema operacional e outras coisas que variam entre hosts e ambientes.\nO que o Docker faz é lhe dar a capacidade de criar um snapshot do sistema operacional em uma imagem, o que torna simples o deploy em outros hosts Docker. Em ambiente local, dev, qa, prod, etc, todos podem usar a mesma imagem. É claro que você pode fazer isso com outras ferramentas, mas não tão fácil ou rápido.\nOpen Source Por ser um projeto opensource, significa que qualquer pessoa no mundo pode olhar o código, contribuir e implementar melhorias. A comunidade do Docker é muito grande e existem centenas de desenvolvedores contribuindo para o projeto.\nAnimado? Se você está animado com o Docker e gostaria de aprender a usá-lo, visite o site: http://docker.io.\nExiste uma vasta documentação, inclusive um tutorial interativo bastante interessante.\nAqui também tem uma excelente apresentação: http://www.slideshare.net/jpetazzo/introduction-docker-linux-containers-lxc\nMais alguns links:\n– https://www.youtube.com/watch?v=ZzQfxoMFH0U\n– http://dockerbook.com/\n– http://stefanteixeira.com.br/2015/03/17/comandos-essenciais-docker-monitoramento-containers/\nUPDATE: Novo post com um tutorial mão na massa sobre docker em: http://www.ricardomartins.com.br/docker-tutorial-mao-na-massa/\n","permalink":"http://ricardomartins.com.br/docker-um-engine-linux-container/","summary":"\u003cp\u003eNo cenário de constantes mudanças em ambientes web sempre surgem novas técnicas e ferramentas surpreendentes. Manter-se atualizado com todas as novidades que surgem diariamente é um grande desafio, mas bastante emocionante.\u003c/p\u003e\n\u003cp\u003eNo meu trabalho, eu sou confrontado diariamente com diversas ferramentas novas interessantes, e preciso seguir o fluxo me mantendo alinhado com tudo que surge. Ultimamente o Docker é o novo buzz do mundo web. Todo mundo está falando sobre ele.\u003c/p\u003e","title":"Docker: Um linux container engine - Parte I/III"},{"content":"Hoje em dia muito tem se falado sobre automatização de infraestrutura. Isto está bastante relacionado com o conceito de DevOps, que bem resumidamente posso dizer que é a integração entre desenvolvimento e operação na administração da infraestrutura de TI. Trabalhando juntos, devs e ops com foco no resultado com agilidade e desempenho. A infraestrutura passa a ser gerenciada e orquestrada via código utilizando ferramentas que viabilizam isto.\nComo o objetivo deste post não é falar sobre DEVOPS, eu deixo um link que traz uma excelente explicação sobre o assunto. É sem dúvida o artigo mais completo que eu já lí sobre o tema, de autoria de Guto Carvalho: http://gutocarvalho.net/octopress/2013/03/16/o-que-e-um-devops-afinal/\nO Chef é uma das ferramentas que viabilizam o gerenciamento e orquestração automatizada. Existem outras ferramentas similares que você já deve ter ouvido falar, como Puppet, Ansible, Rex, Salt , CFEngine, entre outras por aí.\nO Chef utilizada receitas (cookbooks) para a execução das tarefas. Desta forma nos cookbooks estão todas as configurações necessárias para aplicar no seu servidor.\nAssim como o Puppet por exemplo, o Chef pode trabalhar no modelo cliente-servidor e no modo apenas cliente, chamado Chef-Solo. Aqui vou abordar sobre o Chef-Solo.\nNo meu pequeno laboratório, eu utilizo Vagrant. É simples e rápido. Como usar o Vagrant fica pra outro post.\n1. Instalando o Chef-Solo: # curl -L https://www.opscode.com/chef/install.sh | bash 2. Baixando a estrutura básica do Chef: # wget http://github.com/opscode/chef-repo/tarball/master # tar -zxvf master # mv opscode-chef-repo-f9d4b0c/ /opt/chef-repo # mkdir /opt/chef-repo/.chef Verifique no diretório “/opt/chef-repo/” a estrutura criada.\nCrie e configure o cookbook path, para isso execute o seguinte procedimento:\n# vi /opt/chef-repo/.chef/knife.rb cookbook_path \\[ ‘/opt/chef-repo/cookbooks’ ] Configure o arquivo solo.rb:\n# vi /opt/chef-repo/solo.rb Adicione as linhas abaixo:\nfile_cache_path “/opt/chef-solo” cookbook_path “/opt/chef-repo/cookbooks” Vamos criar nossa primeira receita de teste:\n# cd /opt/chef-repo/cookbooks # knife cookbook create ricardo-nginx Agora vamos abrir o arquivo recipes/default.rb da nossa receita:\n# vim /opt/chef-repo/cookbooks/ricardo-nginx/recipes/default.rb Inclua as linhas abaixo:\npackage “nginx” do action :install end Crie o arquivo JSON para execução da receita (/opt/chef-repo/web.json) e adicione a seguinte linha:\n{ “run_list”: [ “recipe[ricardo-nginx]” ] } Agora, basta executar a receita:\n# chef-solo -c /opt/chef-repo/solo.rb -j /opt/chef-repo/web.json Conferindo: ```bash # ps fax | grep nginx Testando via curl:\n# curl -I localhost Este realmente foi um post bem básico. O Chef é uma das ferramentas que ainda estou estudando, e não tenho mesmo muito conhecimento e informação para compartilhar. Em breve novas posts com minhas novas descobertas 😀\nDica de leitura: http://www.ibm.com/developerworks/br/library/a-devops2/\n","permalink":"http://ricardomartins.com.br/conhecendo-o-chef-e-automatizando-seu-trabalho/","summary":"\u003cp\u003eHoje em dia muito tem se falado sobre automatização de infraestrutura. Isto está bastante relacionado com o conceito de DevOps, que bem resumidamente posso dizer que é a integração entre desenvolvimento e operação na administração da infraestrutura de TI. Trabalhando juntos, devs e ops com foco no resultado com agilidade e desempenho. A infraestrutura passa a ser gerenciada e orquestrada via código utilizando ferramentas que viabilizam isto.\u003c/p\u003e\n\u003cp\u003eComo o objetivo deste post não é falar sobre DEVOPS, eu deixo um link que traz uma excelente explicação sobre o assunto. É sem dúvida o artigo mais completo que eu já lí sobre o tema, de autoria de \u003ca href=\"http://gutocarvalho.net/octopress/curriculo/\"\u003eGuto Carvalho\u003c/a\u003e: \u003ca href=\"http://gutocarvalho.net/octopress/2013/03/16/o-que-e-um-devops-afinal/\"\u003ehttp://gutocarvalho.net/octopress/2013/03/16/o-que-e-um-devops-afinal/\u003c/a\u003e\u003c/p\u003e","title":"Conhecendo o Chef e automatizando seu trabalho"},{"content":"Neste primeiro post da série de estudos, eu vou apenas indicar alguns links com referências adicionais para auxiliar no nosso plano de estudos. Acesse, tome nota das informações e vá se preparando para o que vem por aí.\nRepositórios do GitHub com bons artigos e exercícios práticos: https://github.com/fdicarlo/RHCSA_cs\nhttps://github.com/texastwister/OpenRHCE\nhttps://github.com/makewhatis/rhce.co\nhttps://github.com/blueblaster/linux_notes\nhttps://github.com/waltermj/test-lab\nPara baixar os repositórios, utilize:\ngit clone \u0026lt;url\u0026gt; Dicas de alguns blogs: http://dailson.blogspot.com.br/2011/08/um-breve-relato-sobre-as-certificacoes.html\nhttp://joaoolavo.wordpress.com/2010/03/27/dicas-para-o-red-hat-certified-engineer-rhce-rapid-track-course-rh300/\nhttp://howtomeinfo.blogspot.com.br/2012/08/dicas-para-certificacao-rhce-red-hat.html\nhttp://timalves.wordpress.com/2013/05/20/rhcsa-rhce-parte-1/\nhttp://timalves.wordpress.com/2013/05/27/rhcsa-topico-1-entender-e-usar-as-ferramentas-essenciais/\nhttp://www.lardysplace.com/Pages/linux.rhcsa.htm\nhttp://sanketpadawe.blogspot.com.br/p/rhcsa-objectives.html\nhttp://controlprotocol.blogspot.com.br/2012/05/rhcsa-cheat-sheet.html\nSites: http://rhce.co/\nhttp://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-pt_br-4/\nhttps://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/\nGrupo de Estudos no Linkedin: http://www.linkedin.com/groups/Grupo-estudos-RHCE-4514497\nInformações gerais sobre as certificações RedHat: http://br.redhat.com/rhecm/rest-rhecm/jcr/repository/collaboration/jcr:system/jcr:versionStorage/968e64630a05260102bf6c9a912560d6/18/jcr:frozenNode/rh:resourceFile\nPágina Oficial de Documentação de Produtos RedHat: https://access.redhat.com/site/documentation/en-US/\nObjetivos a serem estudados para os exames: RHCSA: http://br.redhat.com/training/courses/ex200/examobjective RHCE: http://br.redhat.com/training/courses/ex300/examobjective Nos próximos posts, eu já vou começar abordando os objetivos cobrados. Até a próxima!\n","permalink":"http://ricardomartins.com.br/certificacao-redhat-serie-de-estudos-para-rhcsa-e-rhce-parte-1/","summary":"\u003cp\u003eNeste primeiro post da série de estudos, eu vou apenas indicar alguns links com referências adicionais para auxiliar no nosso plano de estudos. Acesse, tome nota das informações e vá se preparando para o que vem por aí.\u003c/p\u003e\n\u003ch2 id=\"repositórios-do-github-com-bons-artigos-e-exercícios-práticos\"\u003eRepositórios do GitHub com bons artigos e exercícios práticos:\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fdicarlo/RHCSA_cs\"\u003ehttps://github.com/fdicarlo/RHCSA_cs\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/texastwister/OpenRHCE\"\u003ehttps://github.com/texastwister/OpenRHCE\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/makewhatis/rhce.co\"\u003ehttps://github.com/makewhatis/rhce.co\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/blueblaster/linux_notes\"\u003ehttps://github.com/blueblaster/linux_notes\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/waltermj/test-lab\"\u003ehttps://github.com/waltermj/test-lab\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePara baixar os repositórios, utilize:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit clone \u0026lt;url\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"dicas-de-alguns-blogs\"\u003eDicas de alguns blogs:\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://dailson.blogspot.com.br/2011/08/um-breve-relato-sobre-as-certificacoes.html\"\u003ehttp://dailson.blogspot.com.br/2011/08/um-breve-relato-sobre-as-certificacoes.html\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"http://joaoolavo.wordpress.com/2010/03/27/dicas-para-o-red-hat-certified-engineer-rhce-rapid-track-course-rh300/\"\u003ehttp://joaoolavo.wordpress.com/2010/03/27/dicas-para-o-red-hat-certified-engineer-rhce-rapid-track-course-rh300/\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"http://howtomeinfo.blogspot.com.br/2012/08/dicas-para-certificacao-rhce-red-hat.html\"\u003ehttp://howtomeinfo.blogspot.com.br/2012/08/dicas-para-certificacao-rhce-red-hat.html\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"http://timalves.wordpress.com/2013/05/20/rhcsa-rhce-parte-1/\"\u003ehttp://timalves.wordpress.com/2013/05/20/rhcsa-rhce-parte-1/\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"http://timalves.wordpress.com/2013/05/27/rhcsa-topico-1-entender-e-usar-as-ferramentas-essenciais/\"\u003ehttp://timalves.wordpress.com/2013/05/27/rhcsa-topico-1-entender-e-usar-as-ferramentas-essenciais/\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"http://www.lardysplace.com/Pages/linux.rhcsa.htm\"\u003ehttp://www.lardysplace.com/Pages/linux.rhcsa.htm\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"http://sanketpadawe.blogspot.com.br/p/rhcsa-objectives.html\"\u003ehttp://sanketpadawe.blogspot.com.br/p/rhcsa-objectives.html\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"http://controlprotocol.blogspot.com.br/2012/05/rhcsa-cheat-sheet.html\"\u003ehttp://controlprotocol.blogspot.com.br/2012/05/rhcsa-cheat-sheet.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"sites\"\u003eSites:\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://rhce.co/\"\u003ehttp://rhce.co/\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-pt_br-4/\"\u003ehttp://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-pt_br-4/\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/\"\u003ehttps://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"grupo-de-estudos-no-linkedin\"\u003eGrupo de Estudos no Linkedin:\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://www.linkedin.com/groups/Grupo-estudos-RHCE-4514497\"\u003ehttp://www.linkedin.com/groups/Grupo-estudos-RHCE-4514497\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"informações-gerais-sobre-as-certificações-redhat\"\u003eInformações gerais sobre as certificações RedHat:\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"http://br.redhat.com/rhecm/rest-rhecm/jcr/repository/collaboration/jcr:system/jcr:versionStorage/968e64630a05260102bf6c9a912560d6/18/jcr:frozenNode/rh:resourceFile\"\u003ehttp://br.redhat.com/rhecm/rest-rhecm/jcr/repository/collaboration/jcr:system/jcr:versionStorage/968e64630a05260102bf6c9a912560d6/18/jcr:frozenNode/rh:resourceFile\u003c/a\u003e\u003c/p\u003e","title":"Certificação RedHat: Série de Estudos para RHCSA e RHCE - Parte 1"},{"content":"Script em perl que faz uma verificação na configuração do servidor apache e faz recomendações para otimização.\nConfira: https://github.com/gusmaskowitz/apachebuddy.pl\n","permalink":"http://ricardomartins.com.br/script-para-tunning-de-servidor-apache/","summary":"\u003cp\u003eScript em perl que faz uma verificação na configuração do servidor apache e faz recomendações para otimização.\u003c/p\u003e\n\u003cp\u003eConfira: \u003ca href=\"https://github.com/gusmaskowitz/apachebuddy.pl\"\u003ehttps://github.com/gusmaskowitz/apachebuddy.pl\u003c/a\u003e\u003c/p\u003e","title":"Script para tunning de servidor Apache"},{"content":"Se você precisa melhorar a segurança do seu servidor, este pequeno script shell pode te ajudar bastante.\nConfira em https://github.com/rahulinux/compliance\n","permalink":"http://ricardomartins.com.br/bash-script-para-hardening-de-servidores-linux/","summary":"\u003cp\u003eSe você precisa melhorar a segurança do seu servidor, este pequeno script shell pode te ajudar bastante.\u003c/p\u003e\n\u003cp\u003eConfira em \u003ca href=\"https://github.com/rahulinux/compliance\"\u003ehttps://github.com/rahulinux/compliance\u003c/a\u003e\u003c/p\u003e","title":"Bash script para hardening de servidores linux"},{"content":"Semanalmente eu costumo visitar o site do SANS Institute. O SANS Institute é um renomado centro de segurança norte-americano. Lá eles divulgam diversos papers e informações sobre vulnerabilidades de segurança. Recentemente eu encontrei por lá um paper sobre uma ferramenta escrita em Python bastante interessante para detecção de intrusão. Se você se interessa por este tipode conteúdo, vale a pena ler.\nConfira em http://www.sans.org/reading-room/whitepapers/tools/rapid-triage-automated-system-intrusion-discovery-python-34512\n","permalink":"http://ricardomartins.com.br/sistema-automatizado-de-deteccao-de-intrusao-em-python/","summary":"\u003cp\u003eSemanalmente eu costumo visitar o site do \u003ca href=\"http://www.sans.org/\"\u003eSANS Institute\u003c/a\u003e. O SANS Institute é um renomado centro de segurança norte-americano. Lá eles divulgam diversos papers e informações sobre vulnerabilidades de segurança. Recentemente eu encontrei por lá um paper sobre uma ferramenta escrita em Python bastante interessante para detecção de intrusão. Se você se interessa por este tipode conteúdo, vale a pena ler.\u003c/p\u003e\n\u003cp\u003eConfira em \u003ca href=\"http://www.sans.org/reading-room/whitepapers/tools/rapid-triage-automated-system-intrusion-discovery-python-34512\"\u003ehttp://www.sans.org/reading-room/whitepapers/tools/rapid-triage-automated-system-intrusion-discovery-python-34512\u003c/a\u003e\u003c/p\u003e","title":"Sistema automatizado de detecção de intrusão em Python"},{"content":"Neste link, tem uma excelente explicação sobre o funcionamento dos protocolos IP, TCP e HTTP. Confira em http://www.objc.io/issue-10/ip-tcp-http.html\n","permalink":"http://ricardomartins.com.br/excelente-artigo-sobre-ip-tcp-e-http/","summary":"\u003cp\u003eNeste link, tem uma excelente explicação sobre o funcionamento dos protocolos IP, TCP e HTTP. Confira em \u003ca href=\"http://www.objc.io/issue-10/ip-tcp-http.html\"\u003ehttp://www.objc.io/issue-10/ip-tcp-http.html\u003c/a\u003e\u003c/p\u003e","title":"Excelente artigo sobre IP, TCP e HTTP"},{"content":"O tema “Certificação” levanta uma série de opiniões distintas e controversas sobre o assunto. Não vou entrar neste mérito uma vez que o objetivo deste post não é debater sobre certificações. Eu particularmente sempre disse o seguinte: “Estude para ser bom. Certificação e reconhecimento são consequências”.\nPorém quando falamos de Certificação RedHat, a situação é um pouco diferente. Os exames de certificação da RedHat são 100% práticos, então não existe Braindump. Ou você sabe fazer ou não sabe.\nHá algum tempo eu desejo obter as certificações RHCSA e RHCE. Tenho isto como uma meta pessoal para este ano, onde já terminei a faculdade e tenho mais tempo para estudar para os exames. Então comprei os livros abaixo para estudar:\n– Red Hat Certified System Administrator \u0026amp; Engineer: Training Guide and a Quick Deskside Reference, Exams EX200 \u0026amp; EX300;\n– RHCSA/RHCE Red Hat Linux Certification Practice Exams with Virtual Machines (Exams EX200 \u0026amp; EX300);\n– RHCSA/RHCE Red Hat Linux CertificationStudy Guide (Exams EX200 \u0026amp; EX300), 6th Edition (Certification Press).\nOptei por comprar estes livros seguindo a recomendação do Marcos Sungalia da Savant Tecnologia (Referência Nacional em Treinamentos RedHat) no Grupo de Estudos para o RHCE do Linkedin.\nComo eu sempre gostei de documentar as coisas, criar howto’s, descrever as coisas no modelo “passo-a-passo”, resolvi criar meu próprio material de estudo baseado nos livros acima. Desta forma eu consigo me doutrinar para não perder o ritmo dos estudos. Sem falar que criar uma documentação como essa me ajuda a aprender melhor, afinal, ensinar é a melhor forma de aprender.\nPor outro lado, eu tenho pesquisado bastante a respeito de documentação e material de estudo para os exames da RedHat, e há muito pouca informação realmente interessante e completa disponível na internet. Sem falar que os melhores resultados no Google estão sempre em inglês.\nAqui eu abro um parênteses:\nInfelizmente, o inglês ainda é um grande problema para muitos da nossa área. É uma barreira que precisa ser quebrada, pois o inglês deixou de ser apenas um “plus”no currículo. Um bom nível de inglês hoje é essencial e se você quer um bom emprego, um segundo idioma é tão importante quanto dominar o próprio idioma.\nInclusive até onde eu sei, os exames são em inglês e então se você não souber pelo menos o inglês técnico, fica bastante difícil se tornar um candidato na realização dos exames. Não estou dizendo que você deva se limitar ao inglês técnico, mas é o mínimo necessário para você se virar na área de TI.\nEmbora o inglês seja super importante, eu particularmente prefiro ler documentação na minha língua nativa, é mais natural. Então achei que criar algum material em portugês, e compartilhar na internet pudesse ajudar mais pessoas que tenham este desejo de assim como eu obter as certificações da RedHat.\nEntão à medida que vou criando o material, paralelamente vou postando aqui. Desta forma espero conseguir compartilhar uma boa documentação em português.\nAo término da criação do material, vou realizar os exames. Caso aprovado, vou ter a certeza que valeu a pena, e quem sabe vira até um E-Book!\nE se você se interessa pelo assunto e quer colaborar, entre em contato. Com certeza podemos fazer um excelente trabalho se tiver mais colaboradores dispostos a ajudar nesta iniciativa.\nAté breve!\n","permalink":"http://ricardomartins.com.br/certificacao-redhat-serie-de-estudos-para-rhcsa-e-rhce/","summary":"\u003cp\u003eO tema “Certificação” levanta uma série de opiniões distintas e controversas sobre o assunto. Não vou entrar neste mérito uma vez que o objetivo deste post não é debater sobre certificações. Eu particularmente sempre disse o seguinte: “Estude para ser bom. Certificação e reconhecimento são consequências”.\u003c/p\u003e\n\u003cp\u003e\u003cspan style=\"line-height: 1.5em;\"\u003ePorém quando falamos de Certificação RedHat, a situação é um pouco diferente. Os exames de certificação da RedHat são 100% práticos, então não existe Braindump. Ou você sabe fazer ou não sabe.\u003c/span\u003e\u003c/p\u003e","title":"Certificação RedHat: Série de Estudos para RHCSA e RHCE"},{"content":"Depois de publicar este post, tive o comentário do leitor Rafael Bernardes comentando sobre um outro dashboard para servidores, o Phpsysinfo. Entrei no site para conhecer e gostei bastante.\nAqui tem uma demonstração dele: http://phpsysinfo.sourceforge.net/phpsysinfo/index.php?disp=dynamic. Então resolvi criar este post, para compartilhar mais informações sobre este dashboard que me pareceu também bastante interessante.\nEu instalei ele na mesma máquina virtual do dashboard demonstrado anteriormente, então você precisará basicamente dos mesmos pacotes. Depois de instalar os pacotes necessários (php, php-common, php-gd, php-mbstring, php-xml, php-xmlrpc) e subir um servidor web (Apache ou Nginx por exemplo), basta você baixar o pacote (wget https://github.com/rk4an/phpsysinfo/tarball/master), descompactar e renomear o arquivo phpsysinfo.ini.new para phpsysinfo.ini\nO mais interessante é que de acordo com o site, tem cliente para acessar via Android, acesso via XML e JSON API. E para Windows users, calma tem pra vocês também! Confira em https://github.com/rk4an/phpsysinfo#current-tested-platforms\nPor hoje é só.\n","permalink":"http://ricardomartins.com.br/mais-uma-opcao-de-dashboard-para-seu-servidor/","summary":"\u003cp\u003eDepois de publicar \u003ca href=\"https://ricardomartins.com.br/dashboard-lindao-para-seu-servidor-linux/\"\u003eeste post\u003c/a\u003e, tive o comentário do leitor \u003ca href=\"http://barrasbin.wordpress.com/\" title=\"BarraSbin\"\u003eRafael Bernardes\u003c/a\u003e comentando sobre um outro dashboard para servidores, o \u003ca href=\"http://rk4an.github.io/phpsysinfo/\" title=\"Phpsysinfo\"\u003ePhpsysinfo\u003c/a\u003e. Entrei no site para conhecer e gostei bastante.\u003c/p\u003e\n\u003cp\u003eAqui tem uma demonstração dele: \u003ca href=\"http://phpsysinfo.sourceforge.net/phpsysinfo/index.php?disp=dynamic\" title=\"Phpsysinfo\"\u003ehttp://phpsysinfo.sourceforge.net/phpsysinfo/index.php?disp=dynamic\u003c/a\u003e. Então resolvi criar este post, para compartilhar mais informações sobre este dashboard que me pareceu também bastante interessante.\u003c/p\u003e\n\u003cp\u003eEu instalei ele na mesma máquina virtual do dashboard demonstrado anteriormente, então você precisará basicamente dos mesmos pacotes. Depois de instalar os pacotes necessários (php, php-common, php-gd, php-mbstring, php-xml, php-xmlrpc) e subir um servidor web (Apache ou Nginx por exemplo), basta você baixar o pacote (wget \u003ca href=\"https://github.com/rk4an/phpsysinfo/tarball/master\"\u003ehttps://github.com/rk4an/phpsysinfo/tarball/master\u003c/a\u003e), descompactar e renomear o arquivo phpsysinfo.ini.new para phpsysinfo.ini\u003c/p\u003e","title":"Mais uma opção de dashboard para seu servidor Linux"},{"content":"Depois de algum tempo sem colocar nada por aqui, hoje vou mostrar como instalar um dashboard com as principais informações sobre o seu servidor em uma interface web bastante agradável. Tudo isso de forma bem rápida e fácil.\nCom ele, você não vai precisar mais acessar a console para obter informações básicas como uso de processador, memória ou disco.\nVocê vai precisar instalar basicamente um Apache, PHP, baixar do Github o projeto deste dashboard e em 5 minutos você terá um dashboard como este:\nhttps://afaqurk.github.io/linux-dash/#/system-status\nVamos aos comandos:\n# yum install httpd # cd /var/www/html/ # git clone https://github.com/afaqurk/linux-dash.git # yum -y install php php-common php-gd php-mbstring php-xml php-xmlrpc # /etc/init.d/httpd start Agora acesse: http://endereco.ip.do.server/linux-dash\nE aí, gostou?!\n","permalink":"http://ricardomartins.com.br/dashboard-lindao-para-seu-servidor-linux/","summary":"\u003cp\u003eDepois de algum tempo sem colocar nada por aqui, hoje vou mostrar como instalar um dashboard com as principais informações sobre o seu servidor em uma interface web bastante agradável. Tudo isso de forma bem rápida e fácil.\u003c/p\u003e\n\u003cp\u003eCom ele, você não vai precisar mais acessar a console para obter informações básicas como uso de processador, memória ou disco.\u003c/p\u003e\n\u003cp\u003eVocê vai precisar instalar basicamente um Apache, PHP, baixar do Github o projeto deste dashboard e em 5 minutos você terá um dashboard como este:\u003c/p\u003e","title":"Instalando um dashboard lindão para seu servidor linux"},{"content":"Recentemente descobrí uma feature no VirtualBox muito interessante, que confesso que não fazia idéia que existia. Estou falando do recurso de agrupar as máquinas.\nEu trabalho com dezenas de máquinas virtuais, e ficava bastante perdido em ter todas elas listadas na mesma tela, além de ter pouca criatividade para ficar dando nomes que facilitasse a minha identificação sobre determinada máquina. Achava inacreditável não haver um recurso de agrupamento de máquinas. E imaginem minha surpresa quando descobrí que ele existia sim, eu que não conhecia.\nBasta você clicar com o botão direito na lista de máquinas e escolher a opção “Group” e pronto! Sim fácil assim. E também muito intuitivo! E mesmo assim eu nunca tinha reparado. Então ele vai criar um grupo com um nome qualquer. Você pode então clicar mais uma vez com o botão direito em cima e usar a função de renomear.\nDepois você pode ainda expandir e visualizar apenas as máquinas de determinado grupo que esteja trabalhando, veja:\nFica registrada aqui então mais essa dica simples e que mudou o meu conceito sobre o Virtuabox, rs,\n","permalink":"http://ricardomartins.com.br/organizando-suas-maquinas-virtuais-virtualbox/","summary":"\u003cp\u003eRecentemente descobrí uma feature no VirtualBox muito interessante, que confesso que não fazia idéia que existia. Estou falando do recurso de agrupar as máquinas.\u003c/p\u003e\n\u003cp\u003eEu trabalho com dezenas de máquinas virtuais, e ficava bastante perdido em ter todas elas listadas na mesma tela, além de ter pouca criatividade para ficar dando nomes que facilitasse a minha identificação sobre determinada máquina. Achava inacreditável não haver um recurso de agrupamento de máquinas. E imaginem minha surpresa quando descobrí que ele existia sim, eu que não conhecia.\u003c/p\u003e","title":"Organizando suas máquinas virtuais no VirtualBox"},{"content":"Como sysadmin e novo usuário da plataforma Mac, fiquei perdido em não ter mais aplicativos como Putty ou XShell com minhas conexões e configurações SSH salvas em uma lista facilitando a conexão sempre que necessário.\nPerguntei a uns e outros e ninguém soube me informar uma boa ferramenta para gerenciar conexões SSH no MacOS. Então comecei a fuçar o iTerm2 (http://www.iterm2.com/).\nEncontrei uma forma simples de resolver meu problema. Ao abrir o iTerm2, vá em Preferences \u0026gt; Profiles.\nNote que só existe o Perfil chamado “Default”.\nEntão lá em baixo, tem um sinal de +. Nele você pode adicionar um novo perfil. Entao adicione um perfil e preencha apenas as informações básicas, como Nome no campo “Basics” e no campo “Command”, informe o comando que deseja executar ao selecionar este perfil. No meu exemplo, seria:\nssh usuario@ricardomartins.com.br\nSalve e pronto! Agora quando selecionar este perfil ele irá automaticamente conectar com o usuário informado no servidor que responde por ricardomartins.com.br.\nDepois é só ir populando com os perfis de todos os servidores que precisa se conectar e pronto, já tem sue gerenciador de conexões SSH. Basta abrir o iTerm2, ir no menu Profiles e selecionar onde deseja se conectar.\n","permalink":"http://ricardomartins.com.br/gerenciando-suas-conexoes-ssh-macos/","summary":"\u003cp\u003eComo sysadmin e novo usuário da plataforma Mac, fiquei perdido em não ter mais aplicativos como Putty ou XShell com minhas conexões e configurações SSH salvas em uma lista facilitando a conexão sempre que necessário.\u003c/p\u003e\n\u003cp\u003ePerguntei a uns e outros e ninguém soube me informar uma boa ferramenta para gerenciar conexões SSH no MacOS. Então comecei a fuçar o iTerm2 (\u003ca href=\"http://www.iterm2.com/\"\u003ehttp://www.iterm2.com/\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eEncontrei uma forma simples de resolver meu problema. Ao abrir o iTerm2, vá em Preferences \u0026gt; Profiles.\u003c/p\u003e","title":"Gerenciando suas conexões SSH no MacOS"},{"content":"Olá pessoal, o Varnish é um excelente acelerador HTTP para sites dinâmicos com alto volume de conteúdo . Em contraste com outros aceleradores HTTP, muitos dos quais começaram a ser projetados como proxies do lado cliente ou servidores gerais, o Varnish foi projetado desde o início como um acelerador HTTP.Ele tem uma séria limitação de não trabalhar com SSL, mas se isto não for um problema para o seu caso, recomendo fortemente sua utilização. Então mãos à obra:\nInstalação do Varnish, Nginx e Php-Fpm yum install varnish nginx php-fpm Configuração do PHP-FPM cd /etc/php-fpm.d/ mv www.conf www.disabled vim /etc/php-fpm.d/nginx.conf listen = /var/run/php-fpm/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660 user = nginx group = nginx pm = dynamic pm.max_children = 10 pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_spare_servers = 3 pm.max_requests = 500 chdir = /var/www/html/ mkdir -p /var/www/html chkconfig php-fpm on /etc/init.d/php-fpm start Configuração Nginx mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.disabled vim /etc/nginx/nginx.conf user nginx; worker_processes 1; worker_rlimit_nofile 16384; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 16384; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘ ‘$status $body_bytes_sent “$http_referer” ‘ ‘”$http_user_agent” “$http_x_forwarded_for”‘; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; gzip on; include /etc/nginx/conf.d/*.conf; } vim /etc/nginx/conf.d/teste.conf server { listen 8080; server_name teste.com.br; root /var/www/html; access_log /var/log/nginx/teste.com.br.access_log; error_log /var/log/nginx/teste.com.br.error_log; client_max_body_size 64M; # Deny access to any files with a .php extension in the uploads directory location ~\\* /(?:uploads|files)/.\\*.php$ { deny all; } location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; } location ~\\* .(gif|jpg|jpeg|png|css|js)$ { expires max; } location ~ .php$ { try_files $uri =404; fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_index index.php; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } Removendo a configuração default rm -rf /etc/nginx/conf.d/default.conf rm -rf /etc/nginx/conf.d/example_ssl.conf rm -rf /usr/share/nginx/html chkconfig nginx on /etc/init.d/nginx start Configuração do Daemon do Varnish (Comentar da linha 96 até a 103 e substituir pelo conteúdo abaixo)\nvim /etc/sysconfig/varnish DAEMON_OPTS=”-a :80 -T localhost:6082 -f /etc/varnish/default.vcl -u varnish -g varnish -S /etc/varnish/secret -s file,/var/lib/varnish/varnish\\_storage.bin,2G” Configuração do Varnish para Nginx e WordPress Note que as três primeiras linhas já constam no arquivo, porém a linha da especificação da porta do Backend por padrão vem definida para 80.\nAtentar para a necessidade de troca para 8080, que é a porta que o nosso Backend (Nginx) está rodando. Nesta configuração básica, iremos dizer ao Varnish para cachear qualquer requisição GET por 30 segundos.\nvim /etc/varnish/default.vcl backend default { .host = “127.0.0.1”; .port = “8080”; } sub vcl_recv { if (req.request == “GET”) { return (lookup); } } sub vcl_fetch { set beresp.ttl = 30s; return (deliver); } /etc/init.d/nginx restart /etc/init.d/varnish start Testando curl -I http://ec2-23-20-111-223.compute-1.amazonaws.com Note que fiz o teste em uma instância da Amazon, por esta razão este FQDN. Resposta:\nHTTP/1.1 403 Forbidden Server: nginx/1.2.9 Content-Type: text/html Content-Length: 168 Accept-Ranges: bytes Date: Wed, 11 Sep 2013 18:49:28 GMT X-Varnish: 1487051254 Age: 0 Via: 1.1 varnish Connection: keep-alive Repare estas linhas:\nServer: nginx/1.2.9\nX-Varnish: 1487051254\nInstalação do PHP yum install -y php php-opcache php-gd php-mcrypt php-dom php-bcmath php-devel php-enchant php-fpm php-mbstring php-mysql php-pecl-memcache php-xmlrpc /etc/init.d/php-fpm restart Ajustes no PHP vim /etc/php.ini cgi.fix_pathinfo=0 upload_max_filesize = 64M Instalação do Mysql yum -y install mysql-server mysql service mysqld start mysqladmin -u root password ‘senhadoroot’ chkconfig mysqld on mysql -u root -p create database wordpress; grant all privileges on wordpress.\\* to ‘ricardo’@’localhost’ identified by ‘senhadoricardo’; exit Instalação do WordPress cd /tmp wget http://wordpress.org/latest.zip unzip -q latest.zip mv wordpress/\\* /var/www/html Configuração do WordPress Basta acessar a Url do servidor (http://ec2-23-20-111-223.compute-1.amazonaws.com/), e em seguida seguir os passos mostrados pelo próprio instalador do WordPress, que consiste em primeiro informar os dados de conexão ao banco de dados, e em seguida realizar a instalação do próprio.\nVendo o que está passando no Varnish No servidor execute o comando “varnishlog” e navegue pelo site. Você irá ver tudo que está passando Varnish.\nSe quiser saber o que está fazendo cache ou não, podemos customizar o comando, com passagem de parâmetros. Vamos lá:\n[root@ip-10-137-16-34]# varnishncsa -F ‘%h %l %u %t “%r” %s %b “%{Referer}i” “%{User-agent}i” “%{Cookie}i” “%{Varnish:hitmiss}x” “%{Varnish:time\\_firstbyte}x”‘ O que estiver em cache, você vai ver como HIT. Conteúdo que não está mais em cache e o browser do cliente foi pegar no disco, você vê como MISS.\nMais um teste Conforme a nossa configuração, dissemos para o Varnish cachear qualquer requisição GET por 30 segundos. E ele está fazendo apenas isso. Vamos fazer um teste:\n[root@ip-10-137-16-34]# wget -O /dev/null -S http://localhost A saída foi:\n[root@ip-10-137-16-34]# wget -O /dev/null -S http://localhost –2013-09-11 20:28:42– http://localhost/ Resolving localhost (localhost)… 127.0.0.1 Connecting to localhost (localhost)|127.0.0.1|:80… connected. HTTP request sent, awaiting response… HTTP/1.1 200 OK Server: nginx/1.2.9 Content-Type: text/html; charset=UTF-8 X-Powered-By: PHP/5.3.27 X-Pingback: http://ec2-23-20-111-223.compute-1.amazonaws.com/xmlrpc.php Transfer-Encoding: chunked Date: Wed, 11 Sep 2013 20:28:42 GMT X-Varnish: 162097824 Age: 0 Via: 1.1 varnish Connection: keep-alive Length: unspecified [text/html] Saving to: /dev/null Note que há uma linha começando com “Age: “. Este Age é o cabeçalho HTTP que o Varnish coloca indicando quanto tempo ele está no cache. Quando é 0, significa que o Varnish não tinha a página em cache e por isso teve que buscar no servidor Web.\nAgora utilize o comando a seguir para executar o mesmo wget infinitamente, com intervalos de 1 segundo, e preste atenção na linha do cabeçalho Age. Olhe por pelo menos 1 minuto e você deve entender:\n[root@ip-10-137-16-34]# while true; do wget -O /dev/null -S http://localhost/; sleep 1; done Viu? A cada segundo, o cabeçalho Age vai aumentando, quando chega no número 30, ele zera novamente. Isso quer dizer que o Varnish só busca a página no servidor Web no mínimo de 30 em 30 segundos.\nO Varnish tem diversas ferramentas de monitoramento das suas atividades, como o varnishncsa, varnishlog, varnishhtop e varnishstat. Abaixo um comando para você monitorar apenas os dados de Hit ou Miss:\n[root@ip-10-137-16-34]# watch -n 1 -d “varnishstat -1 -f cache\\_hit,cache\\_miss” Saída:\nEvery 1.0s: varnishstat -1 -f cache_hit,cache_miss cache_hit 97 0.11 Cache hits cache_miss 76 0.08 Cache misses Até a próxima!\nReferências:\nhttps://www.varnish-cache.org/docs/2.1/tutorial/\nCentOS :: Setting Varnish, Nginx for WordPress\nhttp://www.devin.com.br/uma-introducao-ao-varnish/ http://www.devin.com.br/varnish-logs/ ","permalink":"http://ricardomartins.com.br/instalando-wordpress-nginx-php-fpm-varnish-no-centos/","summary":"\u003cp\u003eOlá pessoal, o Varnish é um excelente acelerador HTTP para sites dinâmicos com alto volume de conteúdo . Em contraste com outros aceleradores HTTP, muitos dos quais começaram a ser projetados como proxies do lado cliente ou servidores gerais, o Varnish foi projetado desde o início como um acelerador HTTP.Ele tem uma séria limitação de não trabalhar com SSL, mas se isto não for um problema para o seu caso, recomendo fortemente sua utilização. Então mãos à obra:\u003c/p\u003e","title":"Instalando o WordPress sobre Nginx, PHP-FPM e Varnish no Centos"},{"content":"Se assim como eu, você também perdeu o Amazon AWS Roadshow do Rio de Janeiro, confira abaixo um pouco do que rolou por lá.\nConfira em:\nKeynote AWS RoadShow Rio de Janeiro 2013 from Amazon Web Services LATAM ","permalink":"http://ricardomartins.com.br/materiais-amazon-aws-roadshow-rio-de-janeiro/","summary":"\u003cp\u003eSe assim como eu, você também perdeu o Amazon AWS Roadshow do Rio de Janeiro, confira abaixo um pouco do que rolou por lá.\u003c/p\u003e\n\u003cp\u003eConfira em:\u003c/p\u003e\n\u003ciframe src=\"https://www.slideshare.net/slideshow/embed_code/key/GWEIRTl8gjNcFp?startSlide=1\" width=\"597\" height=\"486\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px;max-width: 100%;\" allowfullscreen\u003e\u003c/iframe\u003e\u003cdiv style=\"margin-bottom:5px\"\u003e\u003cstrong\u003e\u003ca href=\"https://pt.slideshare.net/AmazonWebServicesLATAM/keynote-aws-roadshow-rio-de-janeiro-2013\" title=\"Keynote AWS RoadShow Rio de Janeiro 2013\" target=\"_blank\"\u003eKeynote AWS RoadShow Rio de Janeiro 2013\u003c/a\u003e\u003c/strong\u003e from \u003cstrong\u003e\u003ca href=\"https://pt.slideshare.net/AmazonWebServicesLATAM\" target=\"_blank\"\u003eAmazon Web Services LATAM\u003c/a\u003e\u003c/strong\u003e\u003c/div\u003e","title":"Materiais Online do Amazon AWS Roadshow Rio de Janeiro"},{"content":"O protocolo zmodem permite realizar de modo simples, downloads e uploads para um servidor linux pelo console. Abaixo vou mostrar como realizar a instalação da ferramenta.\nVamos à instalação: wget http://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz tar -xzvf lrzsz-0.12.20.tar.gz cd lrzsz-0.12.20 make make install cd /usr/bin ln -s /usr/local/lrzsz/bin/lrz rz ln -s /usr/local/lrzsz/bin/lsz sz Pronto!\nUsando no Putty Para que ela funcione no Putty, você precisa:\nBaixar o LePutty em http://leputty.sourceforge.net/. O LePutty tem a mesma cara do Putty, mas com as funcionalidades do ZModem habilitadas. inclusive o nome do executavel é Putty.exe mesmo; Abra o Putty, vá em Config \u0026gt; SSH \u0026gt; ZModem e aponte corretamente para os arquivos rz.exe e sz.exe; Configure onde será sua pasta de Downloads; Abra o Puty e faça uma conexão SSH. Agora para enviar um arquivo para o servidor, execute o comando rz. Em seguida, clique com o botão direito na barra superior do Putty e escolha a opção ZModem upload. NAvegue até o arquivo que deseja enviar e clique em OK. Para fazer um download, execute o comando sz “arquivo”. No caso, sem aspas. Em seguida vá até a barra superior, clique direito do mouse e escolha ZModem Download. Seu arquivo será baixado na pasta que você definiu como Download. Ou então fazer como eu, usando o XShell.\nUsando no XShell Fazendo Uploads:\nSe você estiver no XShell, basta executar agora o comando rz que ele irá abrir uma tela para você escolher o arquivo que deseja enviar para o servidor.\nFazendo Downloads:\nNo XShell, execute sz “arquivo”, sem aspas. Assim ele irá abrir uma janela para você escolher onde quer que o download do arquivo escolhido seja salvo.\n","permalink":"http://ricardomartins.com.br/instalando-a-ferramenta-lrzsz/","summary":"\u003cp\u003eO protocolo zmodem permite realizar de modo simples, downloads e uploads para um servidor linux pelo console. Abaixo vou mostrar como realizar a instalação da ferramenta.\u003c/p\u003e\n\u003ch2 id=\"vamos-à-instalação\"\u003eVamos à instalação:\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewget http://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etar -xzvf lrzsz-0.12.20.tar.gz  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e lrzsz-0.12.20  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emake  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emake install  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e /usr/bin  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eln -s /usr/local/lrzsz/bin/lrz rz  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eln -s /usr/local/lrzsz/bin/lsz sz\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003ePronto!\u003c/p\u003e\n\u003ch2 id=\"usando-no-putty\"\u003eUsando no Putty\u003c/h2\u003e\n\u003cp\u003ePara que ela funcione no Putty, você precisa:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eBaixar o LePutty em \u003ca href=\"http://leputty.sourceforge.net/\"\u003ehttp://leputty.sourceforge.net/\u003c/a\u003e. O LePutty tem a mesma cara do Putty, mas com as funcionalidades do ZModem habilitadas. inclusive o nome do executavel é Putty.exe mesmo;\u003c/li\u003e\n\u003cli\u003eAbra o Putty, vá em Config \u0026gt; SSH \u0026gt; ZModem e aponte corretamente para os arquivos rz.exe e sz.exe;\u003c/li\u003e\n\u003cli\u003eConfigure onde será sua pasta de Downloads;\u003c/li\u003e\n\u003cli\u003eAbra o Puty e faça uma conexão SSH.\u003c/li\u003e\n\u003cli\u003eAgora para enviar um arquivo para o servidor, execute o comando rz. Em seguida, clique com o botão direito na barra superior do Putty e escolha a opção ZModem upload. NAvegue até o arquivo que deseja enviar e clique em OK.\u003c/li\u003e\n\u003cli\u003ePara fazer um download, execute o comando sz “arquivo”. No caso, sem aspas. Em seguida vá até a barra superior, clique direito do mouse e escolha ZModem Download. Seu arquivo será baixado na pasta que você definiu como Download.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eOu então fazer como eu, usando o XShell.\u003c/p\u003e","title":"Instalando a ferramenta lrzsz do protocolo ZModem"},{"content":"Se assim como eu, você não pode ir ao AWS Summit em São Paulo, não perca esta chance de ficar por dentro do que rolou por lá:\n– Conhecendo as Opções de Banco de Dados na AWS:\n","permalink":"http://ricardomartins.com.br/slideshows-aws-summit-sao-paulo/","summary":"\u003cp\u003eSe assim como eu, você não pode ir ao AWS Summit em São Paulo, não perca esta chance de ficar por dentro do que rolou por lá:\u003c/p\u003e\n\u003cp\u003e– Conhecendo as Opções de Banco de Dados na AWS:\u003c/p\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/2Vsk6QW8yl0S9Y\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/oXGwv63SHNS9G3\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/nyAH4YfrBxq7ym\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/wM4sbf0egbx1yo\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/ggaIuW2z2AFDTP\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/iVy9qYiSDHjncX\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/2kVvdRVx0oE6Fo\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/vyU6XDw9mdwZeL\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/4fiosmBpdX8SRy\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/tMaG7DAQOl5Pp2\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/3Rth4YhaGbdFOE\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/8m9NdoYavEVmPe\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/jXaUB8ir0Zls6b\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/mhFTkJ5AtVy4OU\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/jxwPAdqPBvA7zx\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/aEHQz7u4Opj4Cu\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/gVueHZesAVd4Vs\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/aoedOZBGGGTGRI\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/isFbZTah33CyZo\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e\n\u003ciframe allowfullscreen=\"\" frameborder=\"0\" height=\"356\" loading=\"lazy\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" src=\"https://www.slideshare.net/slideshow/embed_code/key/3EUYlJ78vjgUj4\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" width=\"427\"\u003e \u003c/iframe\u003e","title":"SlideShows AWS Summit São Paulo"},{"content":"Há algum tempo estou trabalhando com a Cloud da Amazon, mas até então ainda não tinha tido a oportunidade de testar a Cloud da Microsoft, a Azure. Há dois meses atrás, eu comecei a preparar este post, mas ainda não tinha finalizado. A idéia aqui é mostrar como criar um site e uma máquina virtual nesta plataforma. Então vamos lá.\nO primeiro passo é ir até http://www.windowsazure.com. Em seguida, clique na opçãoda Avaliação Gratuita. Você será direcionado para uma outra página, onde você deve escolher a opção “Teste agora”.\nNa tela seguinte, entre com sua conta Microsoft e será exibida a tela abaixo com algumas informações sobre o que lhe será oferecido durante o período de teste:\nSerá solicitado um número de celular, para verificar sua conta. Preencha com o seu número e você receberá uma mensagem de texto. Depois de clicar em “Enviar mensagem de texto”, avance para a próxima tela para preencher o código recebido e depois de verificado o código, avance. Na tela seguinte preencha com os dados do seu cartão de crédito e sua conta estará criada:\nCriando um site Clique em “Portal” e vamos criar nosso site na Azure:\nEscolha Computação \u0026gt; Site \u0026gt; Criação Personalizada\nNa próxima tela, escolha a url. No meu caso, ficará http://rmartins.azurewebsites.net\nNeste ponto o site já estará pronto e você poderá ver o site padrão se acessar http://[nomeescolhido].azurewebsites.net\nVoltando ao painel, verificamos mais opções. Tais como como obter ferramentas para administrar o site utilizando o WebMatrix, publicar um aplicativo no site, entre outros:\nOpções de Monitoração:\nCriando um usuário FTP Clique na opção de “Redefinir as credenciais de implantação” e informe o nome de usuário e senha desejados.\nUma vez criado o usuário, visualize na lateral direita as informação de acesso via FTP:\nTestando no Filezilla Note a existência de duas pastas: LogFile e site.\nDentro da pasta site, temos as pastas deployments, diagnostics e wwwroot.\nVou apagar o arquivo hostingstart.html e substituir por um que vou criar chamado index.html\nAgora ao acessar o http://[nomeescolhido].azurewebsites.net voc? verá o conteúdo personalizado contido no index.html\nPara excluir o site, bata selecionar o site no Portal e clicar em Excluir:\nCriando uma máquina virtual Através do Portal, selecione a opção correspondente (Máquinas Virtuais) \u0026gt; Computação \u0026gt; Máquina Virtual \u0026gt; Criação Rápida\nVou escolher a imagem a ser usada:\nEm seguida a configuração da máquina:\nPreenchemos então com o nome de usuário, senha, e localização:\nPronto, máquina criada:\nPequeno overview:\nNo menu à direita, informações sobre a máquina:\nTestando o acesso. Ao clicar em “Conectar” será aberta a opção de salvar um arquivo.rdp com as configurações de conexão:\nUma vez salvo, clique duplo para conectar:\nPreenchendo as credenciais:\nConectado:\nNo período de avaliação, você pode criar até 10 sites.\nAté a próxima.\n","permalink":"http://ricardomartins.com.br/conhecendo-a-plataforma-azure/","summary":"\u003cp\u003eHá algum tempo estou trabalhando com a Cloud da Amazon, mas até então ainda não tinha tido a oportunidade de testar a Cloud da Microsoft, a Azure. Há dois meses atrás, eu comecei a preparar este post, mas ainda não tinha finalizado. A idéia aqui é mostrar como criar um site e uma máquina virtual nesta plataforma. Então vamos lá.\u003c/p\u003e\n\u003cp\u003eO primeiro passo é ir até \u003ca href=\"http://www.windowsazure.com\"\u003ehttp://www.windowsazure.com\u003c/a\u003e. Em seguida, clique na opçãoda Avaliação Gratuita. Você será direcionado para uma outra página, onde você deve escolher a opção “Teste agora”.\u003c/p\u003e","title":"Conhecendo a Plataforma Azure"},{"content":"O objetivo deste post, é mostrar como criar um repositório local do CentOS.\nCriando um repositório local você tem alguns benefícios interessantes, dentre eles a economia do uso do link de internet em suas máquinas toda vez que for atualizar ou instalar pacotes novos, ou ainda, pode ser útil nos casos onde você não pode liberar acesso internet para todas as máquinas. Então você configura o seu repositório local e aponta as suas demais máquinas para buscarem os pacotes nele.\nNeste tutorial, vamos fazer um repositório local do CentOS 6.4 para a arquitetura x86_64 (64 Bits) e configurá-lo para enviar emails de alerta com o Exim\nPreparação do ambiente Instalação do Apache [root@ricardo ~]# yum install httpd Instalar o pacote createrepo Instalação do pacote createrepo, que cria informações de repositório utilizadas pelo yum e armazena estes dados numa pasta chamada “repodata”.\n[root@ricardo ~]# yum install -y createrepo Construir a estrutura do repositório [root@ricardo ~]# mkdir -p /var/www/html/centos/6.4/{os,updates,fasttrack,extras,cr,contrib,centosplus,epel}/x86_64/ *Neste caso, queremos apenas pacotes 64bits\n** Note que criaremos também uma pasta chamada epel. Será utilizada para baixarmos também pacotes do repositório Epel, necessário para a instalação de alguns pacotes extras, que não constam na mídia de instalação do CentOS. Maiores informações em http://fedoraproject.org/wiki/EPEL/FAQ#What_is_EPEL.3F\nCriando o link simbólico:\n[root@ricardo ~]# ln -s /var/www/html/centos/6.4 /var/www/html/centos/6 Precisamos copiar o conteúdo do DVD para o Apache. Então primeiro precisamos montar a ISO:\n[root@ricardo ~]# mount -o loop /local_da_ISO/CentOS-6.4-x86_64-bin-DVD.iso /mnt Copiando os arquivos:\n[root@ricardo \\]# cp -pvr /mnt/* /var/www/html/centos/6.4/os/x86_64 Criando o repositório:\n[root@ricardo ~]# createrepo /var/www/html/centos/6.4/os/x86_64 Script de rsync das atualizações Agora iremos criar um script que será responsável por baixar as atualizações e utilizar um servidor smtp interno para enviar um e-mail informando o momento em que o download das atualizações foi concluído.\n[root@ricardo ~]# vim /root/sync_repo.sh #!/bin/bash #CentOS updates /usr/bin/rsync -avrt rsync://mirror.cogentco.com/CentOS/6.4/updates/x86_64/ –exclude=debug /var/www/html/centos/6.4/updates/x86_64/ /usr/bin/createrepo –update /var/www/html/centos/6.4/updates/x86_64/ /usr/bin/rsync -avrt rsync://mirror.cogentco.com/CentOS/6.4/fasttrack/x86_64/ –exclude=debug /var/www/html/centos/6.4/fasttrack/x86_64/ /usr/bin/createrepo –update /var/www/html/centos/6.4/fasttrack/x86_64/ /usr/bin/rsync -avrt rsync://mirror.cogentco.com/CentOS/6.4/extras/x86_64/ –exclude=debug /var/www/html/centos/6.4/extras/x86_64/ /usr/bin/createrepo –update /var/www/html/centos/6.4/extras/x86_64/ /usr/bin/rsync -avrt rsync://mirror.cogentco.com/CentOS/6.4/cr/x86_64/ –exclude=debug /var/www/html/centos/6.4/cr/x86_64/ /usr/bin/createrepo –update /var/www/html/centos/6.4/cr/x86_64/ /usr/bin/rsync -avrt rsync://mirror.cogentco.com/CentOS/6.4/contrib/x86_64/ –exclude=debug /var/www/html/centos/6.4/contrib/x86_64/ /usr/bin/createrepo –update /var/www/html/centos/6.4/contrib/x86_64/ /usr/bin/rsync -avrt rsync://mirror.cogentco.com/CentOS/6.4/centosplus/x86_64/ –exclude=debug /var/www/html/centos/6.4/centosplus/x86_64/ /usr/bin/createrepo –update /var/www/html/centos/6.4/centosplus/x86_64/ /usr/bin/rsync -avrt rsync://mirrors.rit.edu/epel/6/x86_64/ –exclude=debub /var/www/html/centos/6.4/epel/x86_64/ /usr/bin/createrepo –update /var/www/html/centos/6.4/epel/x86_64 nc 127.0.0.1 25 \u0026lt; /root/email Conteúdo do email que será enviado ao término das atualizações (/root/email):\nHELO 127.0.0.1 MAIL FROM:repositorio@ricardomartins.com.br RCPT TO:sysadmin@ricardomartins.com.br DATA SUBJECT: Novas atualizações no Repositório CentOS O repositório foi atualizado. . QUIT Ajustando as permissões para a execução do script:\n# chmod +x /root/sync\\_repo.sh Agendando a execução do script:\n# vim /etc/crontab 00 00 \\* \\* \\* /root/sync_repo.sh Configurando o Exim para o envio de e-mails Primeiro instalamos o Exim e em seguida removemos o Sendmail (caso esteja instalado).\nbash# yum install exim\nA configuração do exim é feita no arquivo /etc/exim/exim.conf. Como a configuração padrão atende ao que queremos fazer, não vou modificar nada.\nRemovendo o Sendmail:\nbash# yum remove sendmail\nInicializando o Exim e garantido sua inicialização no boot\n# service exim start # chkconfig exim on Configurando os servidores que serão clientes do nosso repositório local Faça antes um backup do arquivo original:\n# cp -p /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.orig Em seguida altere a url para o endereço do seu servidor interno.\n#vi /etc/yum.repos.d/CentOS-base.repo [base] name=CentOS-$releasever – Base baseurl=http://ip.do.servidor/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [updates] name=CentOS-$releasever – Updates baseurl=http://ip.do.servidor/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [extras] name=CentOS-$releasever – Extras baseurl=http://ip.do.servidor/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [cr] name=CentOS-$releasever – Cr baseurl=http://ip.do.servidor/centos/$releasever/cr/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [contrib] name=CentOS-$releasever – Contrib baseurl=http://ip.do.servidor/centos/$releasever/contrib/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [centosplus] name=CentOS-$releasever – Centosplus baseurl=http://ip.do.servidor/centos/$releasever/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 [epel] name=CentOS-$releasever – Epel baseurl=http://ip.do.servidor/centos/$releasever/epel/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Testando Vá em uma máquina cliente, e faça uma atualização:\n# yum update Ou uma pesquisa:\n# yum search [pacote] Testando a instalação de um pacote:\n# yum install [pacote] Por hoje é isso…\n","permalink":"http://ricardomartins.com.br/repositorio-interno-pacotes-centos/","summary":"\u003cp\u003eO objetivo deste post, é mostrar como criar um repositório local do CentOS.\u003c/p\u003e\n\u003cp\u003eCriando um repositório local você tem alguns benefícios interessantes, dentre eles a economia do uso do link de internet em suas máquinas toda vez que for atualizar ou instalar pacotes novos, ou ainda, pode ser útil nos casos onde você não pode liberar acesso internet para todas as máquinas. Então você configura o seu repositório local e aponta as suas demais máquinas para buscarem os pacotes nele.\u003c/p\u003e","title":"Como criar um repositório interno do CentOS"},{"content":"Recentemente estive conversando com um amigo sobre como motivar clientes para migrar para AWS. Como é um assunto interessante e muita gente pode ter interesse, montei este post, descrevendo algumas das principais vantagens.\nMas primeiro, para começar a explicar sobre AWS, você precisa compreender o que é computação em nuvem.\nE o que vem a ser Cloud Computing? Segundo a Gartner, “Cloud Computing é um estilo de computação onde capacidades de escalabilidade e elasticidade são fornecidos aos clientes como um serviço usando tecnologias de Internet.”\nEsses serviços, são recursos que incluem o poder de computação, armazenamento, banco de dados, mensagens entre outros.\nSuperficialmente, a cloud computing se assemelha a tendência de terceirização de negócios, pois fornece os benefícios aproveitando a experiência dos outros. No entanto, a computação em nuvem também fornece flexibilidade, escalabilidade, elasticidade e confiabilidade.\nUm dos benefícios chave da computação em nuvem é a oportunidade de substituir diretamente gastos com a infraestrutura principal por preços variáveis baixos, que se ajustam de acordo com sua empresa. Com a Nuvem, as empresas não precisam mais planejar ou adquirir servidores, assim como outras infraestruturas de TI, com semanas ou meses de antecedência. Em vez disso, podem instantaneamente rodar centenas de milhares de servidores em minutos e oferecer resultados mais rapidamente.\nAtualmente, a Amazon Web Services oferece na nuvem uma plataforma de infraestrutura altamente confiável, escalável e de baixo custo que potencializa centenas de milhares de empresas em 190 países ao redor do mundo.\nPrincipais características: – Flexibilidade: A AWS é uma plataforma e um sistema operacional de linguagem independente. Você escolhe a plataforma de desenvolvimento ou o modelo de programação que faz mais sentido para o seu negócio. Você pode escolher os serviços que deseja usar, um ou vários, e escolher como usá-los. Essa flexibilidade permite que você se concentre na inovação, não na infraestrutura. Um ótimo documento com informações mais detalhadas, você encontra aqui: http://d36cz9buwru1tt.cloudfront.net/AWS_Overview.pdf\n– Custo Benefício: Você paga apenas pelo que usa. Sem pagamentos iniciais, a longo prazo ou contratos. Visite este link para mais detalhes: http://aws.amazon.com/pt/economics/\n– Escalabilidade e Elasticidade: Você pode adicionar ou remover os recursos para as suas aplicações de acordo com a sua demanda. Se você precisa de um servidor virtual ou de dezenas, se precisa deles por algumas horas ou todos os dias, ainda assim você só paga pelo que utiliza. Imagine levantar 20 sergidores em 30 segundos? E encerrar todos eles instantaneamente quando não necessitar mais? Na Amazon você pode. Confira: http://aws.amazon.com/pt/architecture/\n– Velocidade de Implantação: Se você já foi cliente de algum serviço de hospedagem, sabe muito bem o que é essa dor. Geralmente podem levar de 2 a 12 horas para entregar seu servidor. Depois disso você ainda tem que passar algumas horas fazendo seus ajustes finos, tunning’s, testes… A AWS diminui este tempo para minutos. Se você utilizar o recurso de AMI (Amazon Machine Images) você pode ter uma máquina implantade e acessível em cerca de 5 minutos ou menos.\n– Performance: Não há como negar a velocidade da AWS. Unidades computacionais do EC2 proporcionam um desempenho da classe de processadores Xeon e você paga um valor mínimo por hora de uso. A confiabilidade é melhor do que os data centers mais privados do mundo, e se houver um problema, você é geralmente permanece online, ainda que com capacidade reduzida.\nUm grande exemplo disso é a recente “queda” que aconteceu no cluster AWS da Virginia do Norte, em um dos farms de servidores primários da Amazon nos EUA. Isso afetou Reddit, WordPress.com, e vários outros grandes sites. Estes sites permaneceram on-line, ainda que em espécie de “read-only”, pois a Amazon teve que desabilitar a escrita nos storages de backend até que pudessem resolver o problema.\nEm um ambiente de hospedagem tradicional, isso provavelmente significaria diversos erros de inatividade e páginas 404. Mas em um ambiente realmente “cloud-hosted” como AWS, não há separação suficiente entre o processamento e armazenamento, o que permite que os sites possam permanecer on-line e gerando receita, mesmo com funcionalidade reduzida.\nMas o grande poder de desempenho da AWS é na armazenagem. A natureza distribuída da EBS e S3 produzem milhões operações de entrada/saída por segundo para todas as instâncias. Pense nisso como um RAID de discos SSDs conectados a um computador particular. Adicione uma largura de banda incrível, e você terá um sistema de armazenamento com grande capacidade de escalabilidade, com a confiabilidade de 99,999999999%.\n– Segurança: Com o intuito de prover segurança e privacidade fim a fim, a AWS disponibiliza serviços de acordo com as melhores práticas de segurança. É uma plataforma de tecnologia segura, durável com auditorias e certificações reconhecidas pelo setor: PCI DSS nível 1, ISO 27001, FISMA Moderado, HIPAA e SSAE 16. Os datacenters e centros de serviços têm várias camadas de segurança física e operacional para garantir a integridade e a segurança dos dados. Conheça: http://aws.amazon.com/pt/security/\n– Experiência: A Amazon possui mais de 15 anos de experêencia no fornecimento em larga escala de infraestrutura mundial, de forma segura e confiável.\nAlgumas das soluções AWS – Hospedagem de aplicativos: Use uma infraestrutura On Demand e confiável para potencializar seus aplicativos, desde aplicativos internos hospedados a ofertas de Software como serviço.\n– Backup e armazenamento: Armazene dados e crie soluções de backup confiáveis usando os serviços de armazenamento de dados da AWS a um custo acessível.\n– Distribuição de conteúdo: Distribua conteúdo de modo rápido e fácil para usuários finais de todo o mundo, a custos baixos e altas velocidades de transferência de dados.\n– Hospedagem Web: Satisfaça suas necessidades de hospedagem de páginas de web dinâmicas com a plataforma de infraestrutura escalável da AWS.\n– TI Corporativa: Hospede aplicativos de TI internos ou externos no ambiente seguro da AWS.\n– Bancos de dados: Aproveite as vantagens de uma variedade de soluções de banco de dados escaláveis, desde software de banco de dados empresarial hospedado até soluções de banco de dados não relacional.\nPara acompanhar as novidades, acompanhe o blog: http://aws.typepad.com/, o fórum: https://forums.aws.amazon.com/index.jspa e o site AWS Hub, uma iniciativa nacional, que reúne uma boa documentação sobre os serviços AWS: http://awshub.com.br/\nVocê pode também dar uma olhada neste excelente infográfico produzido pela Udemy: https://www.udemy.com/aws-certified-solutions-architect/#beginner-guide. Ele traz alguns dados muito interessantes sobre o uso da AWS, dentre eles:\nO investimento global de marketing com computação em nuvem para os próximos 10 anos é estimado em 200 bilhões de dólares 1 a cada 3 internautas visitam sites rodando na AWS todos os dias Nos EUA, a cada 3 pessoas, pelo menos 2 já ouviram falar de AWS ","permalink":"http://ricardomartins.com.br/porque-utilizar-os-servicos-aws/","summary":"\u003cp\u003eRecentemente estive conversando com um amigo sobre como motivar clientes para migrar para AWS. Como é um assunto interessante e muita gente pode ter interesse, montei este post, descrevendo algumas das principais vantagens.\u003c/p\u003e\n\u003cp\u003eMas primeiro, para começar a explicar sobre AWS, você precisa compreender o que é \u003cstrong\u003ecomputação em nuvem\u003c/strong\u003e.\u003c/p\u003e\n\u003ch2 id=\"e-o-que-vem-a-ser-cloud-computing\"\u003eE o que vem a ser Cloud Computing?\u003c/h2\u003e\n\u003cp\u003eSegundo a Gartner, “\u003cstrong\u003eCloud Computing\u003c/strong\u003e é um estilo de computação onde capacidades de escalabilidade e elasticidade são fornecidos aos clientes como um serviço usando tecnologias de Internet.”\u003c/p\u003e","title":"Porque utilizar os serviços AWS?"},{"content":"Atualmente a Netflix é um dos maiores heavy users dos serviços AWS no mundo. E eles possuem todo um conjunto de ferramentas desenvolvidas por eles mesmos para otimizar o trabalho que desenvolvem e a utlização dos serviços da Amazon. Diversas das ferramentas deles estão disponiblizadas no formato open source em https://github.com/Netflix\nHoje vou abordar a instalação do Asgard. Uma interface Web bastante interessante criada por eles, que pode ser usada plenamente para substituir o console web da Amazon.\nA projeto está disponível em https://github.com/Netflix/asgard, o download em https://netflix.box.com/asgard e um quick start em https://github.com/Netflix/asgard/wiki/Quick-Start-Guide\nPara começar, faça o download em https://netflix.box.com/asgard. Note que você precisa ter uma conta no serviço Box.net.\nEscolha o arquivo asgard-standalone.jar\nAgora vá em Propriedades do Sistema \u0026gt; Configurações Avançadas do Sistema \u0026gt; Propriedades do Sistema \u0026gt; Variáveis de Ambiente. Em variáveis do sistema, adicione o valor abaixo para a variável Path:\nC:Program Files (x86)Javajre7bin\nSalve o arquivo que fez download em por exemplo, C:Asgard.\nAgora vamos ao prompt de comandos. Entre no diretório acima e execute:\njava -Xmx1024M -XX:MaxPermSize=128m -DskipCacheFill=true -jar asgard-standalone.jar Agora abra o browser e aponte para o endereço:\nhttp://localhost:8080 Aqui você deve informar seu Access Key ID, Secret Access Key e seu AWS Account Number. Todas estas informações você encontra no link “Security Credentials”\nAssim que abrir a url, você verá a tela abaixo:\nEm alguns instantes será exibido os campos que devem ser preenchidos com as informações da sua conta.\nDepois de preencher os campos, você verá a tela abaixo:\nVisualizando minha instância:\nClicando no “Instance ID” em azul acima, vamos para a próxima tela com todos os detalhes sobre ela.\nGostou? Tá esperando o que pra testar também?\nSugiro a você que utiliza os serviços AWS, a acompanhar o blog técnico do Netflix.\nTem muita informação valiosa lá. Confira: http://techblog.netflix.com/\n","permalink":"http://ricardomartins.com.br/interface-web-alternativa-aws/","summary":"\u003cp\u003eAtualmente a Netflix é um dos maiores heavy users dos serviços AWS no mundo. E eles possuem todo um conjunto de ferramentas desenvolvidas por eles mesmos para otimizar o trabalho que desenvolvem e a utlização dos serviços da Amazon. Diversas das ferramentas deles estão disponiblizadas no formato open source em \u003ca href=\"https://github.com/Netflix\"\u003ehttps://github.com/Netflix\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eHoje vou abordar a instalação do Asgard. Uma interface Web bastante interessante criada por eles, que pode ser usada plenamente para substituir o console web da Amazon.\u003c/p\u003e","title":"Configurando uma interface web alternativa para a AWS"},{"content":"Nesse post vou abordar como escalar seu site na estrutura de cloud computing da AWS.\nPara este procedimento, vamos assumir que já temos uma instância no ar em pleno funcionamento.\nCaso você não tenha ainda uma instância rodando, dê uma passada no AWS Hub, neste link: http://awshub.com.br/resources/amazon-web-services-hands-on-ec2-e-ebs/. É um tutorial passo-a-passo sobre a criação da sua primeira instância na Amazon. Dê uma lida também em http://aws.amazon.com/pt/free/.\nEste segundo link fala sobre o AWS Free Tier, uma oferta da Amazon que lhe garante um ano de uso gratuito para que você possa se familiarizar e aprender mais sobre os serviços AWS. Este link descreve de forma bem detalhada o que está incluso nesta oferta gratuita.\nNão se assuste, mas ao fazer seu cadastro você precisará informar seus dados de cartão de crédito. No entanto caso você utilize o s recursos dentro do que é oferecido no Free Tier, não será cobrado. Confira os termos de uso aqui.\nO próximo passo será criar uma imagem (AMI) desta instância. Esta imagem será utilizada para subir novas instâncias idênticas a que está em produção.\nEm seguida criaremos um Load Balancer, e colocaremos nossa instância sob ele. Deste momento em diante, ele quem irá responder pelas requisições e direcionar para as máquinas que estiverem sob ele.\nPor fim colocaremos nosso Auto Scaling em funcionamento, para subir novas instâncias de acordo com as regras que serão estabelecidas.\nParece interessante? Então confira!\nPrimeiro Passo: Criar uma AMI da nossa instância. Vamos então ao menu “Instances”\nSelecionamos nossa instância e com o botão direito escolhemos a opção correspondente:\nDamos um nome e descrição para nossa ami e em seguida clicamos em “Yes, Create”. Note que caso não deseje que a máquina seja reiniciada, basta marcar a opção “No Reboot”\nSerá exibida a tela abaixo, onde já podemos notar a identificação dada à nossa ami (ami-cd8deea4). O processo é bastante rápido, e você pode verificar o andamento em Images \u0026gt; AMI’s .\nAcompanhando a criação da AMI:\nAguarde o status mudar de “pending” para “available”. Neste instante nossa AMI estará pronta para uso:\nSegundo Passo: Criar um LB Acesse o console AWS em Network \u0026amp; Security escolha “Load Balancers”. Em seguida, “Create Load Balancer”\nDefina um nome para o load balancer. Aqui escolhi meu nome: ricardomartins.\nNa tela seguinte escolha o método de Health Check. Eu costumo fazer desta forma:\nEm seguida adicione manualmente sua instância ao LB\nRevise as configurações e avance para concluir e criar\nCaso estivéssemos em um ambiente VPC (Virtual Private Cloud), o próximo passo seria definir um Security Group para nosso LB. Como estamos em ambiente EC2, não temos este passo para seguir e nossa configuração está pronta:\nPara testar vamos pegar o endereço dado ao nosso LB e vamos acessar por ele. Como a máquina que está sob este LB está com o Nginx instalado, deveremos ver a página default do Nginx:\nPronto! Tudo funcionando!\nTerceiro Passo: Configurar o Auto Scalling. Desde ponto em diante, precisamos das ferramentas AWS instaladas e configuradas. Caso você não tenha feito isto ainda, confira neste post como fazer: http://www.ricardomartins.com.br/2013/04/26/configurando-as-ferramentas-aws-aws-tools/\nRode o comando ec2-describe-instances. Ele irá trazer todas as informações sobre a sua instância:\n[root@ip-10-245-66-44 ec2-user\\]# ec2-describe-instances RESERVATION r-6a0a9017 668485333633 rmartins INSTANCE i-12d7637a ami-3275ee5b ec2-54-234-36-94.compute-1.amazonaws.com ip-10-245-66-44.ec2.internal running rmartins 0 t1.micro 2013-04-05T14:32:28+0000 us-east-1a aki-88aa75e1 monitoring-disabled 54.234.36.94 10.245.66.44 ebs paravirtual xen HtOSq1365172347824 sg-47104b2f default false BLOCKDEVICE /dev/sda1 vol-42381204 2013-04-05T14:32:33.000Z true TAG instance i-12d7637a Name Ricardo\\[/cc\\] Criando o Launch Config De posse destas informações, vamos criar nosso Launch Config\nas-create-launch-config lc-ricardomartins –image-id ami-cd8deea4 –instance-type t1.micro –key rmartins –group “sg-47104b2f” -region us-east-1 Explicando:\nas-create-launch-config: comando que cria o launch config.\nlc-ricardomartins: nome que será dado ao nosso launch config\n–image-id ami-cd8deea4: ID da AMI que criamos no primeiro passo (ami-cd8deea4).\n–instance-type t1.micro: Definimos o tipo de instância como t1.micro.\n–key rmartins: O nome do par de chaves utilizado para acessar a instância. É definido sempre que você cria uma nova instância. No caso, o nome do par de chaves é rmartins.\n–group “sg-47104b2f”: Identificação do security group que quero que as máquinas utilizem.\n-region us-east-1: Por fim, a região da instância.\nNote que estas configurações são as que serão utilizadas nas novas instâncias que nosso Auto Scaling irá iniciar. São as mesmas configurações da instância que já temos no ar. Por este motivo rodei o comando ec2-describe-instances para que pudéssemos copiar exatamente as mesmas informações da máquina que temos em produção.\nO launch config, é o arquivo que o Auto Scaling irá utilizar para saber quais configurações devem ser aplicadas às novas instâncias.\nCriando o Auto Scaling Group Agora iremos criar nosso Auto Scaling Group\nas-create-auto-scaling-group asg-ricardomartins –launch-configuration lc-ricardomartins –availability-zones “us-east-1a” –min-size 1 –max-size 2 –load-balancers ricardomartins –tag “k=Name,v=rmartins_AS” Explicando:\nPrimeiro rodamos o comando as-create-auto-scaling-group que é o comando que cria o ASG. Depois dou um nome para ele, “asg-ricardomartins”. Em seguida definimos qual Launch Config ele irá usar, neste caso o LC criado anteriormente: lc-ricardomartins.\nDefinimos então a zona de disponibilidade (–availability-zones), que é a mesma de onde está a outra instância: us-east-1a\nNo próximo passo informamos qual os valores mínimos e máximos que desejamos que sejam iniciadas pelo Auto Scaling (–min-size 1 –max-sixe2)\nPor fim informamos o nome do Load Balancer que estas instâncias estarão (–load balancers ricardomartins) e um nome para as novas instâncias, que no caso chamaremos de rmartins_AS para diferenciar da outra que não faz parte de Auto Scaling.\nNeste momento, já podemos ver o AS iniciando uma nova instância, uma vez que definimos o mínimo de instâncias do AS em 1:\nCriando as políticas de Scale-Up e Scale-Down Estas regras definem quantas máquinas o AS irá subir e descer de acordo com as configurações criadas posteriormente. No nosso caso subimos e descemos de 1 em 1. Em caso de dúvidas sobre a sintaxe dos comandos, utilize o man. É muito bem detalhado.\nPolíticas de ScaleUp\nas-put-scaling-policy ricardomartins-ScaleUpPolicy –auto-scaling-group asg-ricardomartins –adjustment=1 –type ChangeInCapacity –cooldown 120 O comando acima irá gerar a saída abaixo que será utilizado na criação do alarme no próximo tópico:\narn:aws:autoscaling:us-east-1:668485333633:scalingPolicy:e69a6dd3-84bd-4b57-b906-10b64e1a3f69:autoScalingGroupName/asg-ricardomartins:policyName/ricardomartins-ScaleUpPolicy Políticas de ScaleDown\nas-put-scaling-policy ricardomartins-ScaleDownPolicy –auto-scaling-group asg-ricardomartins –adjustment=-1 –type ChangeInCapacity –cooldown 120 O comando acima irá gerar a saída abaixo que será utilizado na criação do alarme no próximo tópico:\narn:aws:autoscaling:us-east-1:668485333633:scalingPolicy:eaa54cd0-6407-4575-b0c7-5d47a81bca90:autoScalingGroupName/asg-ricardomartins:policyName/ricardomartins-ScaleDownPolicy Estas saídas deverão ser anotadas, para serem utilizadas no próximo passo de Criação dos Alarmes, onde baseando na média de consumo de CPU iremos definir quando subir ou descer novas instâncias\nAlarme para subir instância:\nmon-put-metric-alarm RicardoMartins-HighCPUAlarm –comparison-operator GreaterThanThreshold –evaluation-periods 2 –metric-name CPUUtilization –namespace “AWS/EC2” –period 60 –statistic Average –threshold 50 –alarm-actions arn:aws:autoscaling:us-east-1:668485333633:scalingPolicy:e69a6dd3-84bd-4b57-b906-10b64e1a3f69:autoScalingGroupName/asg-ricardomartins:policyName/ricardomartins-ScaleUpPolicy –dimensions “AutoScalingGroupName=asg-ricardomartins” Explicando:\nCriamos o alarme chamado RicardoMartins-HighCPUAlarm que a cada dois períodos de 60 segundos, ou seja, a cada 2 minutos, onde caso a porcentagem de CPU esteja superior à 50% ele irá utilizar a regra de ScaleUP criada anteriormente para subir novas instâncias no AutoScalingGroup chamado asg-ricardomartins.\nNote que o campo após o “–alarm-actions” é a saída gerada no comando anterior quando criamos a política de ScaleUP\nAlarme para descer instância**:\nmon-put-metric-alarm RicardoMartinsLowCPUAlarm –comparison-operator LessThanThreshold –evaluation-periods 5 –metric-name CPUUtilization –namespace “AWS/EC2” –period 60 –statistic Average –threshold 20 –alarm-actions arn:aws:autoscaling:us-east-1:668485333633:scalingPolicy:eaa54cd0-6407-4575-b0c7-5d47a81bca90:autoScalingGroupName/asg-ricardomartins:policyName/ricardomartins-ScaleDownPolicy –dimensions “AutoScalingGroupName= asg-ricardomartins” Explicando:\nCriamos o alarme chamado RicardoMartins-LowCPUAlarm que a cada cinco períodos de 60 segundos, ou seja, a cada 5 minutos, onde caso a porcentagem de CPU esteja inferior à 20% ele irá utilizar a regra de ScaleDown criada anteriormente para descer as instâncias no AutoScalingGroup chamado asg-ricardomartins.\nNote que o campo após “–alarm-actions” é a saída gerada no comando anterior quando criamos a política de ScaleDown\nConfira os nossos alarmes em Services \u0026gt; CloudWatch\nPronto. Agora você já sabe como escalar seu site Web!\nRemovendo o Auto Scaling Group e o Launch Config: as-delete-auto-scaling-group asg-ricardomartins –force-delete as-delete-launch-config lc-ricardomartins Isto irá dar um “Terminate” nas instâncias iniciadas pelo AutoScaling.\nPor hoje é só. Até a próxima pessoal!\n","permalink":"http://ricardomartins.com.br/criando-um-ambiente-escalavel-na-aws/","summary":"\u003cp\u003eNesse post vou abordar como escalar seu site na estrutura de cloud computing da AWS.\u003c/p\u003e\n\u003cp\u003ePara este procedimento, vamos assumir que já temos uma instância no ar em pleno funcionamento.\u003c/p\u003e\n\u003cp\u003eCaso você não tenha ainda uma instância rodando, dê uma passada no AWS Hub, neste link: \u003ca href=\"http://awshub.com.br/resources/amazon-web-services-hands-on-ec2-e-ebs/\"\u003ehttp://awshub.com.br/resources/amazon-web-services-hands-on-ec2-e-ebs/. \u003c/a\u003eÉ um tutorial passo-a-passo sobre a criação da sua primeira instância na Amazon. Dê uma lida também em \u003ca href=\"http://aws.amazon.com/pt/free/\"\u003ehttp://aws.amazon.com/pt/free/.\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEste segundo link fala sobre o AWS Free Tier, uma oferta da Amazon que lhe garante um ano de uso gratuito para que você possa se familiarizar e aprender mais sobre os serviços AWS. Este link descreve de forma bem detalhada o que está incluso nesta oferta gratuita.\u003c/p\u003e","title":"Criando um ambiente escalável na AWS"},{"content":"Se você assim como eu não suporta ter que logar com esse usuário ec2-user na Amazon, aqui vai a dica de como logar direto como root:\n# vim /etc/ssh/sshd_config Comente a linha:\nPermitRootLogin forced-commands-only E insira:\nPermitRootLogin yes Em seguida altere o conteúdo do arquivo authorized_keys:\n# vim /root/.ssh/authorized_keys Remova o “command” e deixe apenas a parte correspondente à sua chave (ssh-rsa…):\ncommand=”echo ‘Please login as the ec2-user user rather than root user.’;echo;sleep 10″ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCLnwp65NYFH2JlVCfL6oavdL4ZQy9zjKRkJ2ZFwl6oG84rxxn5PrXCLpoN5FGdbpVN4wa7yNNREPvWa8VX7leF8tHGDuN2kEOkOQdUCRRsishdflsiuhdfiuhtRb1hKMHsAD/Xg/ZLT9DtV8XerNuRTduqLKtXYCJtU67xPyKloDN8eKMXJxPQRCPuk05ciZb2cDyaqYNfLFUqjH13CIDrxpBCyADu4URVMpVaQEznsuTu7mthpI/tNVBLkEbPZzzAZzbw9miKPwRW4peDuN51J/eFSnzpxv70JyTW0ujbqySoBxbaEp8bsaasd8f769876asedt5fcLFhj rmartins * Por questões de segurança, o conteúdo da chave rsa acima foi alterado\nAgora basta reiniciar o serviço do SSH e logar direto como root\n# /etc/init.d/sshd reload ","permalink":"http://ricardomartins.com.br/desabilitar-o-login-obrigatorio-aws/","summary":"\u003cp\u003eSe você assim como eu não suporta ter que logar com esse usuário ec2-user na Amazon, aqui vai a dica de como logar direto como root:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# vim /etc/ssh/sshd_config\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eComente a linha:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePermitRootLogin forced-commands-only\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eE insira:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePermitRootLogin yes\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eEm seguida altere o conteúdo do arquivo authorized_keys:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# vim /root/.ssh/authorized_keys\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eRemova o “command” e deixe apenas a parte correspondente à sua chave (ssh-rsa…):\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ecommand\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e”echo ‘Please login as the ec2-user user rather than root user.’\u003cspan class=\"p\"\u003e;\u003c/span\u003eecho\u003cspan class=\"p\"\u003e;\u003c/span\u003esleep 10″ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCLnwp65NYFH2JlVCfL6oavdL4ZQy9zjKRkJ2ZFwl6oG84rxxn5PrXCLpoN5FGdbpVN4wa7yNNREPvWa8VX7leF8tHGDuN2kEOkOQdUCRRsishdflsiuhdfiuhtRb1hKMHsAD/Xg/ZLT9DtV8XerNuRTduqLKtXYCJtU67xPyKloDN8eKMXJxPQRCPuk05ciZb2cDyaqYNfLFUqjH13CIDrxpBCyADu4URVMpVaQEznsuTu7mthpI/tNVBLkEbPZzzAZzbw9miKPwRW4peDuN51J/eFSnzpxv70JyTW0ujbqySoBxbaEp8bsaasd8f769876asedt5fcLFhj rmartins\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003cem\u003e* Por questões de segurança, o conteúdo da chave rsa acima foi alterado\u003c/em\u003e\u003c/p\u003e","title":"Como desabilitar o login obrigatório do usuário ec2-user na sua instância Linux da AWS"},{"content":"Os serviços em Cloud da Amazon, dentre diversas outras funcionalidades, fornecem uma API que pode ser usada para realizar todo tipo de tarefa em sua conta. Embora praticamente tudo possa ser feito pela Console Web, pode ser interessante utilizar a API em outros lugares, principalmente em suas próprias ferramentas ou scripts. Pensando nisso, a Amazon disponibiliza algumas ferramentas para utilizar estas API’s. São ferramentas escritas em Java, chamadas de AWS Tools.\nVocê pode encontrar estas ferramentas aqui: http://aws.amazon.com/pt/tools/ e instalar no seu ambiente.\nUma vantagem para quem utiliza o Linux da Amazon (http://aws.amazon.com/pt/amazon-linux-ami/) é que ela já vem com todas as ferramentas instaladas, bastando apenas você configurar e usar. Este Linux da Amazon, nada mais é que um CentOS sempre na última versão e com todas as atualizações disponíveis. Então eu recomendo fortemente que você o utilize.\nObtendo suas credenciais na AWS Logue em http://console.aws.amazon.com\nVá no nome da sua conta e em seguida em Security Credentials\nEm Access Keys, tome nota de seu Acccess Key ID e seu Secret Access Key:\nGerando seu certificado X.509 Depois vá em X.509 Certificates e gere um novo certificado\nAo clicar em “Create a New Certificate” ele será gerado. Na próxima tela faça download da chave privada e do certificado:\nConfigurando o uso das credenciais Agora copie o arquivo /opt/aws/credential-file-path.template como /opt/aws/credential-file-path e acerte a permissão:\n# chmod 600 /opt/aws/credential-file-path Edite o conteúdo de /opt/aws/credential-file-path e preencha com suas informações de AWSAccessKeyId e AWSSecretKey\nEu não costumo utilizar o usuário ec2-user, então vou fazer o procedimento como root. Caso você prefira utilizar, basta trabalhar no diretório home dele (/home/ec2-user) ao invés do diretório que vou trabalhar (/root)\nVamos logar como root agora, com o uso do sudo:\n# sudo su Feito isto, crie no diretório home do seu usuário uma pasta oculta com o nome de ec2. Lembre-se que arquivos ocultos começam com um ponto (.). Como eu estou logado como root agora, o diretório home do root é o /root:\n# mkdir /root/.ec2 Agora faça o seguinte:\nCrie nesta pasta (/root/.ec2) um arquivo vazio com o mesmo nome dos arquivos baixados. Por exemplo:\n# cd /root/.ec2 # touch pk-XGTOX2X7K2HFYBUUGNASAQVG37CDTWYZ.pem # touch cert-XGTOX2X7K2HFYBUUGNASAQVG37CDTWYZ.pem Em seguida copie o conteúdo dos arquivos baixados e cole nos respectivos arquivos criados acima.\nVocê pode abrir os arquivos que fez download com o notepad para copiar o conteúdo.\nAinda na pasta /root/.ec2, crie um script chamado env.sh com o seguinte conteúdo\n# vim /root/.ec2/env.sh #!/bin/bash export AWS\\_CREDENTIAL\\_FILE=/opt/aws/credential-file-path export EC2\\_PRIVATE\\_KEY=/root/.ec2/pk-XGTOX2X7K2HFYBUUGNASAQVG37CDTWYZ.pem export EC2\\_CERT=/root/.ec2/cert-XGTOX2X7K2HFYBUUGNASAQVG37CDTWYZ.pem Agora vamos acertar a permissão do script e dos arquivos\n# chmod 700 /root/.ec2/env.sh # chmod 600 /root/.ec2/\\*.pem Edite o arquivo .bashrc do seu usuário, para garantir que ele execute o script env.sh toda vez que você fizer logon e carregue as varíaveis de ambiente que permitirão utilizar as ferramentas AWS. Para isto, insira o conteúdo abaixo no final do arquivo .bashrc do seu usuário:\n# vim /root/.bashrc # Carrega o ambiente Amazon AWS . /root/.ec2/env.sh * Lembrando que o arquivo .bashrc fica localizado no diretório home do seu usuário.\nTestando o funcionamento Para testar, rode um dos comandos contidos nas AWS Tools. No exemplo abaixo, vamos rodar o comando que descreve todos os detalhes da instância em execução. Note que como eu configurei no usuário root, apenas com ele funcionará. Se você rodar os comandos com outro usuário diferente do que configurou, apresentará erro, solicitando que você informe as credenciais com o parâmetro -O.\n[root@ip-10-245-66-44 /\\]# ec2-describe-instances RESERVATION r-6a0a9017 668485333633 rmartins INSTANCE i-12d7637a ami-3275ee5b ec2-54-234-36-94.compute-1.amazonaws.com ip-10-245-66-44.ec2.internal running rmartins 0 t1.micro 2013-04-05T14:32:28+0000 us-east-1a aki-88aa75e1 monitoring-disabled 54.234.36.94 10.245.66.44 ebs paravirtual xen HtOSq1365172347824 sg-47104b2f default false BLOCKDEVICE /dev/sda1 vol-42381204 2013-04-05T14:32:33.000Z true TAG instance i-12d7637a Name Ricardo Até a próxima!\n","permalink":"http://ricardomartins.com.br/configurando-as-ferramentas-aws-aws-tools/","summary":"\u003cp\u003eOs serviços em Cloud da Amazon, dentre diversas outras funcionalidades, fornecem uma API que pode ser usada para realizar todo tipo de tarefa em sua conta. Embora praticamente tudo possa ser feito pela Console Web, pode ser interessante utilizar a API em outros lugares, principalmente em suas próprias ferramentas ou scripts. Pensando nisso, a Amazon disponibiliza algumas ferramentas para utilizar estas API’s. São ferramentas escritas em Java, chamadas de AWS Tools.\u003c/p\u003e","title":"Configurando as ferramentas AWS (AWS Tools)"},{"content":"Olá pessoal. Este é um post rápido. Como no meu post anterior sobre a instalação do Nginx eu comentei sobre o Monit, achei que seria interessante compartilhar mais informações sobre o uso do Monit.\nNo exemplo do post anterior, monitoramos dois processos, e configuramos para que caso um deles saíssem do ar, o Monit automaticamente fizesse o start dos processos e nos enviasse um e-mail informando sobre o ocorrido.\nHoje vou mostrar como monitorar a carga do seu servidor (LoadAverage), uso de CPU e Memória, e fazer com que caso ultrapasse valores pré-definidos, sejamos alertados por e-mail.\nLembrando apenas que para que o envio de e-mails funcione, você precisa ter instalado um serviço de MTA como o Exim ou Postfix, e o Monit configurado para o uso de e-mail. Mais detalhes sobre como fazer isso você encontra aqui: http://www.ricardomartins.com.br/como-instalar-o-nginx-com-php-fpm-e-wordpress-no-centos/\nComo neste caso quero monitorar o sistema, vou criar um arquivo com nome que facilite a identificação do arquivo em relação ao que ele faz.\nvim /etc/monit.d/system_monitor check system localhost if loadavg (1min) \u0026gt; 10 then alert if loadavg (5min) \u0026gt; 8 then alert if memory usage \u0026gt; 75% then alert if swap usage \u0026gt; 25% then alert if cpu usage (user) \u0026gt; 90% then alert if cpu usage (system) \u0026gt; 70% then alert if cpu usage (wait) \u0026gt; 50% then alert alert seuendereco@email.com mail-format { from: alerta@seudominio.com subject: memcached $ACTION on $HOST at $DATE message: This event occurred on $HOST at $DATE. Event: $EVENT Description: $DESCRIPTION } Pronto. Desta forma definimos que queremos receber um alerta por email caso a monitoração identifique um dos critérios abaixo:\n– LoadAverage maior que 10 no último minuto, ou maior que 8 nos úlitmos 5 minutos; – Uso de memória maior que 75% – Uso de swap maior que 25% – O uso de CPU (user) estiver maior que 90%; – O uso de CPU (system) estiver maior que 70%; – O uso de CPU (wait) estiver maior que 50%.\nApenas a título de informação:\nCPU (user): Porcentagem de utilização de CPU enquanto o processador executa uma operação a nível de usuário (aplicação) CPU (system): Porcentagem de utilização de CPU enquanto o processador executa uma operação a nível de systema (kernel) CPU (wait): Porcentagem de tempo de CPU gasto em espera (normalmente em espera por escrita em disco ou outro processo em execução) http://publib.boulder.ibm.com/infocenter/javasdk/tools/index.jsp?topic=%2Fcom.ibm.java.doc.igaa%2F_1vg0001475cb4a-1190e2e0f74-8000_1007.html\nEstes valores são o que utilizo em alguns servidores que administro. No entanto dependendo do seu cenário você deve ajustar os valores para se adequarem melhor ao seu ambiente.\n","permalink":"http://ricardomartins.com.br/como-monitorar-seu-servidor-com-o-monit/","summary":"\u003cp\u003eOlá pessoal. Este é um post rápido. Como no meu post anterior sobre a instalação do Nginx eu comentei sobre o Monit, achei que seria interessante compartilhar mais informações sobre o uso do Monit.\u003c/p\u003e\n\u003cp\u003eNo exemplo do post anterior, monitoramos dois processos, e configuramos para que caso um deles saíssem do ar, o Monit automaticamente fizesse o start dos processos e nos enviasse um e-mail informando sobre o ocorrido.\u003c/p\u003e\n\u003cp\u003eHoje vou mostrar como monitorar a carga do seu servidor (LoadAverage), uso de CPU e Memória, e fazer com que caso ultrapasse valores pré-definidos, sejamos alertados por e-mail.\u003c/p\u003e","title":"Como monitorar seu servidor com o Monit"},{"content":"Neste tutorial, vou mostrar como realizar a instalação do WordPress rodando sob o Nginx e PHP-FPM em um CentOS 6.3\nComo tem algum tempo que não posto algo, preparei algo especial desta vez. Vou além da instalação do Nginx, WordPress e PHP-FPM. Faremos a instalação de algumas ferramentas que irão lhe auxiliar bastante na administração do seu servidor, além do Monit para monitorar seus processos e ainda lhe enviar e-mail no caso de algum problema.\nNo final ainda tem um script para rotação de logs, que de hora em hora é executado para compactar seus arquivos de log e remover os arquivos com mais de 30 dias. Então vamos começar!\nAdicionar o repositório oficial do Nginx Vamos criar o arquivo nginx.repo:\n# vim /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/6/$basearch/ gpgcheck=0 enabled=1 priority=1 Adicionar o repositório Epel Criando o arquivo repel.repo:\n# vim /etc/yum.repos.d/epel.repo [epel] name=Extra Packages for Enterprise Linux 6 – $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6\u0026amp;arch=$basearch failovermethod=priority enabled=1 gpgcheck=0 Adicionando ferramentas úteis Eu costumo utilizar algumas ferramentas que facilitam a administração. Aqui vou abordar a instalação do Multitail, Iftop, Htop e o Monit. se não for interessante pra você pode pular esta parte.\nBreve descrição de cada uma das ferramentas:\nMultitail: Programa para monitorar múltiplos arquivos de log. – http://www.vanheusden.com/multitail/\nIftop: Basicamente é uma ferramenta para visualizar o consumo de banda em determinada interface de rede, mas tem muitas outras utilidades. – http://www.ex-parrot.com/pdw/iftop/\nHtop: É um top melhorado. Aliás, muito melhor. – http://htop.sourceforge.net/\nMonit: Uma ferramenta que permite monitorar programas, processos, arquivos, diretórios e filesystems. Dependendo de como for configurado, caso um processo morra, ele reinicia ele pra você! – http://mmonit.com/monit\nO muultitail, iftop e htop, são utilitários do sistema e sua instalação não requer nenhum tipo de configuração. Então você pode instalar todos de uma vez:\n# yum install multitail iftop htop Instalando o Monit # yum install monit Neste caso, quero que ele monitore os processos do Nginx e do PHP-FPM. Se por algum motivo estes processos parem de funcionar ele irá reiniciá-los e me enviar um e-mail informando sobre o status da situação.\nCalma! Eu sei que ainda não instalamos o Nginx e o PHP-FPM, mas já podemos deixar configurado.\nCriamos agora então o arquivo de configuração para monitoração do Nginx.\n# vim /etc/monit.d/nginx check process nginx with pidfile /var/run/nginx.pid start program = “/etc/init.d/nginx start” stop program = “/etc/init.d/nginx stop” group nginx alert seuendereco@email.com mail-format { from: alerta@seudominio.com subject: nginx $ACTION on $HOST at $DATE message: This event occurred on $HOST at $DATE. Event: $EVENT Description: $DESCRIPTION Action: $ACTION } E agora o arquivo de configuração do PHP-FPM\n# vim /etc/monit.d/php-fpm check process php-fpm with pidfile /var/run/php-fpm/php-fpm.pid start program = “/etc/init.d/php-fpm start” stop program = “/etc/init.d/php-fpm stop” group php-fpm alert seuendereco@email.com mail-format { from: alerta@seudominio.com subject: php-fpm $ACTION on $HOST at $DATE message: This event occurred on $HOST at $DATE. Event: $EVENT Description: $DESCRIPTION Action: $ACTION } Configurando o envio dos alertas por e-mail Vamos ao arquivo de configuração do monit, e informamos para utilizar a porta local 25. Você pode inserir a linha no final do arquivo.\n# vim /etc/monit.conf set mailserver localhost port 25``` Agora instalamos o Exim e em seguida removemos o Sendmail (caso esteja instalado – no CentOS vem instalado por padrão). Apenas uma questão de preferência pessoal minha. ```bash # yum install exim A configuração do exim é feita no arquivo /etc/exim/exim.conf. Porém como a configuração padrão atende ao que queremos fazer, não vou modificar nada.\nRemovendo o Sendmail:\n# yum remove sendmail Aqui mais uma configuração útil para economizar espaço em disco. Deixar apenas as duas últimas versões de Kernel utilizadas. Isto evita ficar armazenando kernel antigo após algumas atualizações. Nada impede de deixar apenas a atual, fica a gosto do cliente:\n# package-cleanup –-oldkernels –-count=2 # vim /etc/yum.conf``` ```bash installonly_limit=2 Ajuste fino no Kernel. Adicione as linhas abaixo no final do arquivo:\n# vim /etc/sysctl.conf net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 Instalando e configurando o Nginx, PHP-FPM, etc… # yum install nginx php-fpm php-gd php-mysqlnd php-mbstring php-xmlrpc php php-mysql Criando o diretório onde estará hospedado o WordPress:\n# mkdir /usr/share/nginx/www Configurando o PHP-FPM:\n# cd /etc/php-fpm.d # mv www.conf www.disabled Criar o arquivo de configuração do Nginx no PHP-FPM:\n# vim /etc/php-fpm.d/nginx.conf [nginx] listen = /var/run/php-fpm/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660 user = nginx group = nginx pm = dynamic pm.max_children = 10 pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_spare_servers = 3 pm.max_requests = 500 chdir = /usr/share/nginx/www php_admin_value[open_basedir] = /usr/share/nginx/www/:/tmp Ajustando parâmetros no PHP:\n# vim /etc/php.ini cgi.fix_pathinfo=0 upload_max_filesize = 64M Inicializar o PHP-FPM:\n# service php-fpm start # chkconfig php-fpm on Configurando o Nginx:\nVocê pode substituir o conteúdo original do arquivo por este. Se comparar com o original vai ver algumas diferenças. São modificações que fiz para melhorar a performance.\n# vim /etc/nginx/nginx.conf user nginx; worker_processes 1; worker_rlimit_nofile 16384; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 16384; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘ ‘$status $body_bytes_sent “$http_referer” ‘ ‘”$http_user_agent” “$http_x_forwarded_for”‘; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; gzip on; include /etc/nginx/conf.d/*.conf; } Removendo a configuração default:\n# rm -rf /etc/nginx/conf.d/default.conf # rm -rf /etc/nginx/conf.d/example_ssl.conf # rm -rf /usr/share/nginx/html Colocando a configuração para nosso WordPress no Nginx\n# vim /etc/nginx/conf.d/www.conf server { listen 80; server_name ricardomartins.com.br; root /usr/share/nginx/www/ ; client_max_body_size 64M; # Deny access to any files with a .php extension in the uploads directory location ~\\* /(?:uploads|files)/.\\*.php$ { deny all; } location / { index index.php index.html index.htm; try\\_files $uri $uri/ /index.php?$args; } location ~\\* .(gif|jpg|jpeg|png|css|js)$ { expires max; } location ~ .php$ { try_files $uri =404; fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_index index.php; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } Alguns ajustes de Tunning para permitir grandes números de acessos:\n# vim /etc/security/limits.conf nginx soft nofile 20000 nginx hard nofile 20000 Criar o arquivo /etc/default/nginx com o valor de ulimit conforme abaixo, para aumentar a quantidade de conexões simultâneas abertas:\n# vim /etc/default/nginx ulimit -a 65535 Inicializar os serviços e garantir que sejam iniciados no boot:\n# service nginx start # chkconfig nginx on # service monit start # chkconfig monit on # service exim start # chkconfig exim on Se tudo estiver correto até aqui, seu Nginx já está rodando. Você pode acessar o ip do servidor para conferir. Provavelmente você vai receber uma mensagem de erro 403. Isto é normal, já que o diretório que definimos como raiz do site (/usr/share/nginx/www/), ainda não tem nada.\nInstalando e configurando o MySQL # yum -y install mysql-server mysql # service mysqld start # mysqladmin -u root password ‘definaumasenhaparaorootnomysql’ # chkconfig mysqld on Agora vamos logar no mysql e criar um usuário. Este usuário, será o que vamos definir para ser utilizado pelo WordPress. Mais tarde vamos informar este usuário e senha para o WordPress\n# mysql -u root -p \u0026gt; create database wordpress; \u0026gt; grant all privileges on wordpress.\\* to ‘usuarioquedesejacriarnomysql’@’localhost’ identified by ‘senhadousuarioquedesejacriarnomysql’; \u0026gt; exit Instalar e configurar o WordPress # cd /tmp # wget http://wordpress.org/latest.zip # unzip -q latest.zip # mv wordpress/* /usr/share/nginx/www/ # rm -rf wordpress latest.zip # cd /usr/share/nginx/www Copiar o arquivo de modelo para o wp-config.php:\n# cp wp-config-sample.php wp-config.php Editar o arquivo e informar o nome do database, usuário, senha e endereço do host:\n# vim wp-config.php define(‘DB\\_NAME’, ‘wordpress’); /** MySQL database username */ define(‘DB_USER’, ‘seuusuariomysql’); /** MySQL database password */ define(‘DB\\_PASSWORD’, ‘senhadoseuusuariomysql’); Finalizando a configuração do WordPress:\nAcesse http://endereco-do-site/ e finalize as configurações definindo o título do site, usuário para administração, senha deste usuário e um endereço de e-mail.\nConfigurar rotação de logs do Nginx Finalizada a parte do WordPress, agora vamos criar um script, que será executado de hora em hora, para compactar os arquivos de log e remover arquivos de log antigos. No exemplo, a cada hora ele irá procurar arquivos de log criados há mais de 30 dias e apagá-los.\n# vim /etc/cron.hourly/log.nginx #!/bin/bash cd /var/log/nginx rm -f access.log.`date +%H`.gz rm -f error.log.`date +%H`.gz mv -f access.log access.log.`date +%H` mv -f error.log error.log.`date +%H` kill -USR1 `cat /var/run/nginx.pid` sleep 2 gzip access.log.`date +%H` gzip error.log.`date +%H` for lista in `find /var/log/nginx/*.gz -mtime +30`; do rm -rf ${lista} done Ajustar permissões do script:\n# chmod 700 /etc/cron.hourly/log.nginx Para finalizar, vamos testar se está recebendo os alertas? Faça o seguinte:\n# /etc/init.d/nginx restart Você deverá receber um e-mail informando que o PID do processo do nginx foi alterado, ou seja, o Nginx foi reiniciado.\nPor hoje é só. Espero que tenham gostado desse tutorial.\n","permalink":"http://ricardomartins.com.br/como-instalar-o-nginx-com-php-fpm-e-wordpress-no-centos/","summary":"\u003cp\u003eNeste tutorial, vou mostrar como realizar a instalação do WordPress rodando sob o Nginx e PHP-FPM em um CentOS 6.3\u003c/p\u003e\n\u003cp\u003eComo tem algum tempo que não posto algo, preparei algo especial desta vez. Vou além da instalação do Nginx, WordPress e PHP-FPM. Faremos a instalação de algumas ferramentas que irão lhe auxiliar bastante na administração do seu servidor, além do Monit para monitorar seus processos e ainda lhe enviar e-mail no caso de algum problema.\u003c/p\u003e","title":"Como instalar o Nginx com PHP-FPM e WordPress no CentOS"},{"content":"Depois de resolver meu problema com o Dropbox de só conseguir sincronizar arquivos que estivessem dentro da própria pasta do Dropbox, comecei a pensar se haveria alguma forma de ter os meus arquivos hospedado onde eu quisesse, e não nos servidores do Dropbox.\nDepois de muita pesquisa, cheguei à conclusão que no Dropbox não tem mesmo como fazer isso.\nEncontrei inclusive muitas coisas legais, listadas abaixo:\nhttp://owncloud.org/\nhttp://sparkleshare.org/\nhttp://ifolder.com/\nhttp://qtdtools.doering-thomas.de/\nMas as que mais me chamou a atenção foi o Owncloud. A vantagem dele, é que nele você tem o controle dos seus dados da melhor maneira possível. Por outro lado, ele não utiliza servidores espalhados pelo mundo como é o caso do Dropbox, que lhe garantiria maior disponibilidade. Isto faz com que a responsabilidade por manter o backup e integridade dos dados seja sua.\nVocê usa um servidor privado, que você tenha comprado em um serviço de hosting tradicional ou na Amazon. Seus arquivos poderão ser acessados à partir de qualquer dispositivo rodando em Linux, Windows, Mac OSX, e também em plataformas móveis como iOS e Android.\nComo o serviço é de código aberto, é possível modificar o que for necessário. Além disso, há possibilidade de instalar plugins dentro do servidor, transformando-o até em uma estação de stream de música, por exemplo.\nEu instalei ele na minha hospedagem no DreamHost e gostei bastante.\nPara instalar no Dreamhost, mesmo sem muito controle sobre o servidor (não tenho uma VPS lá, e sim um hosting compartilhado), a instalação foi bem tranquila. Então abaixo vou mostrar como instalar no Dreamhost e na Amazon, em uma instância de testes.\nInstalando no Dreamhost Criar pasta onde vai ficar hospedado $ mkdir /var/www/html/owncloud Baixar o arquivo de instalação $ cd /var/www/html/owncloud $ wget http://mirrors.owncloud.org/releases/owncloud-4.5.7.tar.bz2 Descompactar $ tar xjvf owncloud-4.5.7.tar.bz2 4. Acertar permissões\n$ chmod -R 755 /var/www/html/owncloud/config Acessar a interface web: http://www.teste.com.br/owncloud/ Note que é possível clicar na opção “Advanced” e escolher a pasta “data” e o o database à ser utilizado, no caso SQLite ou MySQL. Neste exemplo vou usar o padrão (SQLite) Clicar em “Finish Setup”\nPronto. Está instalado. Você já pode enviar arquivos pela Web através do link de instalação, ou pelo cliente (Como instalar o cliente será explicado abaixo)\nComo podemos ver na imagem acima, você pode ter arquivos, músicas, fotos, calendário e contatos nele, também com a opção de compartilhar com seus amigos.\nInstalando na Amazon (AWS) No caso, utilizo a AMI com o Linux da Amazon (Centos 6.3)\nInstalar repositório epel: [root@ip-10-212-102-166 yum.repos.d]# yum install http://dl.fedoraproject.org/pub/epel/6/x86\\_64/epel-release-6-8.noarch.rpm Instalar Repositório do Owncloud [root@ip-10-212-102-166 yum.repos.d]# cd /etc/yum.repos.d/ [root@ip-10-212-102-166 yum.repos.d]# wget http://download.opensuse.org/repositories/isv:ownCloud:community/CentOS_CentOS-6/isv:ownCloud:community.repo [root@ip-10-212-102-166 yum.repos.d]# yum install owncloud Inicializar httpd [root@ip-10-212-102-166 yum.repos.d]# /etc/init.d/httpd start Acessar a interface: http://ec2-54-242-17-109.compute-1.amazonaws.com/owncloud/\nAs demais configurações são as mesmas citadas acima, onde abordei a instalação no Dreamhost.\nExiste ainda uma opção interessante. Por padrão, o limite de uploads de arquivos via web é pequeno. No arquivo /etc/php.ini podemos buscar as linhas “upload_max_filesize” e “post_max_size” para deixar em um valor que achar adequado. Instalando o Cliente Baixe o pacote em http://download.owncloud.com/download/owncloud-1.2.0-setup.exe\nDepois de instalado, configure conforme à seguir.\nLembre-se de alterar para a url do seu servidor Se tudo estiver correto, será criada uma pasta em C:UsersusernameownCloud. Todos os arquivos que você colocar nesta pasta, serão sincronizados com seu servidor. E você ainda poderá acessá-los via web também, informando suas credenciais em http://ec2-54-242-17-109.compute-1.amazonaws.com/owncloud/ (No caso, troque pela sua URL) Pronto, agora temos nosso próprio servidor de hospedagem com espaço \u0026ldquo;ilimitado\u0026rdquo; e livre!\nAté a próxima,\nRicardo.\n","permalink":"http://ricardomartins.com.br/tenha-seus-arquivos-em-sua-propria-nuvem/","summary":"\u003cp\u003eDepois de resolver meu problema com o Dropbox de só conseguir sincronizar arquivos que estivessem dentro da própria pasta do Dropbox, comecei a pensar se haveria alguma forma de ter os meus arquivos hospedado onde eu quisesse, e não nos servidores do Dropbox.\u003c/p\u003e\n\u003cp\u003eDepois de muita pesquisa, cheguei à conclusão que no Dropbox não tem mesmo como fazer isso.\u003c/p\u003e\n\u003cp\u003eEncontrei inclusive muitas coisas legais, listadas abaixo:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://owncloud.org/\"\u003ehttp://owncloud.org/\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"http://sparkleshare.org/\"\u003ehttp://sparkleshare.org/\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"http://ifolder.com/\"\u003ehttp://ifolder.com/\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"http://qtdtools.doering-thomas.de/\"\u003ehttp://qtdtools.doering-thomas.de/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMas as que mais me chamou a atenção foi o Owncloud. A vantagem dele, é que nele você tem o controle dos seus dados da melhor maneira possível. Por outro lado, ele não utiliza servidores espalhados pelo mundo como é o caso do Dropbox, que lhe garantiria maior disponibilidade. Isto faz com que a responsabilidade por manter o backup e integridade dos dados seja sua.\u003c/p\u003e","title":"Tenha seus arquivos em sua própria nuvem"},{"content":"Existem milhares de scripts de backup por aí. Neste exemplo, eu vou mostrar como utilizar o rsync, para fazer backup do seu diretório /home em ou outro disco montado em /mnt/backup.\nO Rsync é uma ferramenta muito útil, extremamente flexível e com algumas características bem interessantes, como por exemplo:\n– Verifica a integridade dos arquivos copiados;\n– Transfere apenas as diferenças dos arquivos (não transfere o arquivo inteiro, apenas os bits diferentes!);\n– Mantém cópias idênticas entre 2 diretórios distintos, apagando os “excessos”;\n– No caso de cópias remotas, pode usar compressão para diminuir o uso de banda;\nUma outra particularidade deste script é em relação à retenção do backup.\nUtilizaremos a opção %u do comando date, para que o local de armazenamento do backup fique em uma pasta com o nome correspondente ao dia da semana em que foi criada.\nEste parâmetro %u, utiliza uma numeração de 1 à 7 para cada dia da semana, sendo 1 para Domingo e assim por diante.\nNeste exemplo, colocaremos o script em /etc/cron.daily, para que ele rode diariamente. Por padrão, o /etc/cron.daily é executado por padrão às 04:02 da manhã (confira no /etc/crontab – 02 4 * * * root run-parts /etc/cron.daily)\nDesta forma, quando o script rodar por exemplo, no domingo, ele vai armazenar o conteúdo em /mnt/backup/bkp_home/day-1. Assim , o backup será mantido até a próxima semana, quando ele rodar novamente e sobrescrever o conteúdo em mnt/backup/bkp_home/day-1, nos dando uma retenção de 7 dias.\nA cada execução, é gerado um log da operação em /mnt/backup/logs, seguindo o mesmo padrão. Ou seja, em /mnt/backup/logs/day-1, estará o registro do backup realizado no Domingo, que só será sobrescrito no próximo domigo.\nVamos ao script:\n#!/bin/sh BKPHDMOUNT=”/mnt/backup” if [ ! -d “$BKPHDMOUNT” ]; then echo “backup HD wasnt mounted”; exit 0; fi date \u0026gt;\u0026gt; $BKPHDMOUNT/logs/backup_home.`date +day-%u` /usr/bin/rsync -av /home/ /mnt/backup/bkp_home/`date +day-%u` \u0026gt;\u0026gt; $BKPHDMOUNT/logs/backup_home.`date +day-%u` 2\u0026gt;\u0026amp;1 Explicando:\nPrimeiro, criamos a variável que aponta para /mnt/backup.\nEm seguida temos um bloco com if, para verificar que realmente o HD esteja montado para evitar problemas. Caso não esteja montado, o script não é executado.\nEscrevemos a data atual no arquivo de log salvo em /mnt/backup/logs/[dia-em-que-foi-executado]\nRodamos o Rsync. O parâmetro -v é para verbose, o -a é o modo de arquivamento. Se equivale às opções -rlptgoD. Para mais detalhes, #man rsync. No caso, estou fazendo backup do diretório /home para /mnt/backup/bkp_home/day-X, onde o X vai ser substituído pelo dia da semana em que rodou. Toda a operação é registrada no log em /mnt/backup/logs/backup_home.day-X.\nEntendeu?! Qualquer dúvida entre em contato. Um abraço pessoal!\n","permalink":"http://ricardomartins.com.br/backup-inteligente-com-rsync/","summary":"\u003cp\u003eExistem milhares de scripts de backup por aí. Neste exemplo, eu vou mostrar como utilizar o rsync, para fazer backup do seu diretório /home em ou outro disco montado em /mnt/backup.\u003c/p\u003e\n\u003cp\u003eO \u003ca href=\"http://en.wikipedia.org/wiki/Rsync\"\u003eRsync\u003c/a\u003e é uma ferramenta muito útil, extremamente flexível e com algumas características bem interessantes, como por exemplo:\u003c/p\u003e\n\u003cp\u003e– Verifica a integridade dos arquivos copiados;\u003cbr\u003e\n– Transfere apenas as diferenças dos arquivos (não transfere o arquivo inteiro, apenas os bits diferentes!);\u003cbr\u003e\n– Mantém cópias idênticas entre 2 diretórios distintos, apagando os “excessos”;\u003cbr\u003e\n– No caso de cópias remotas, pode usar compressão para diminuir o uso de banda;\u003c/p\u003e","title":"Backup inteligente com RSync"},{"content":"Então você tem um servidor com Apache instalado gerando centenas de MB para lotar seu disco, certo? Vamos lá…\nDepois de muita pesquisa, não consegui usar o logrotate para fazer a rotação dos logs de hora em hora. Desconfio que não faça mesmo a rotação de arquivos de log por hora, então implementei outra solução que vou compartilhar aqui com vocês\nCriei um script que é executado de hora em hora pelo cron. Para isto basta criá-lo em /etc/cron.hourly.\n[ricardo@martins]# vim /etc/cron.hourly/httpd_log_archive Abaixo o conteúdo do script:\n#!/bin/bash cd /var/log/httpd mv *.log* ./archive/ touch access.log touch error.log touch ssl_access.log touch ssl_error.log touch ssl_request.log service httpd reload cd /var/log/httpd/archive mv -f access.log access.log.`date +%Y-%m-%d_%H` mv -f error.log error.log.`date +%Y-%m-%d_%H` mv -f ssl_access.log ssl_access.log.`date +%Y-%m-%d_%H` mv -f ssl_error.log ssl_error.log.`date +%Y-%m-%d_%H` mv -f ssl_request.log ssl_request.log.`date +%Y-%m-%d_%H` gzip *.`date +%Y-%m-%d_%H` for lista in `find /var/log/httpd/archive -mtime +30`; do rm -rf ${lista} done Em seguida, permissões de execução nele!\n[ricardo@martins]# chmod a+x /etc/cron.hourly/httpd_log_archive E por fim, criamos o diretório de trabalho do script, onde ele armazenará os arquivos para rodar os comandos do script:\n[ricardo@martins]# mkdir /var/log/httpd/archive Agora vamos explicar o funcionamento do script. Cada número representa a linha do script:\nPrimeira linha de todo script shell, indicando que deve ser executado pelo bash Vamos até o diretório dos arquivos de log Movemos todos os arquivos .log para o diretório /var/log/archive Recriamos o arquivo access.log Recriamos o arquivo error.log Recriamos o arquivo ssl_access.log Recriamos o arquivo ssl_error.log Recriamos o arquivo ssl_request.log Recarregamos as configurações do Apache para forçar a começar a escrever o log nestes novos arquivos Vamos até o diretório de trabalho do script Renomeando o arquivo access.log para inserir a data e hora de execução do script. No caso, ficaria access.log.2012-12-12_09, informando que foi executado No ano de 2012, mês 12, dia 12, às 09 horas da manhã. Renomeando o arquivo error.log … Renomeando o arquivo ssl_access … Renomeando o arquivo ssl_error.log … Renomeando o arquivo ssl_request.log … Compactando com o gzip todos os arquivos acrescentando no final do nome a data e hora de execução do script. Por exemplo, ficaria assim: access.log.2012-12-12_09.gz Criando uma lista dos arquivos existente neste diretório com mais de 30 dias e armazenando na variável “lista” Apaga todos os arquivos contidos na variável “lista”. Sair do For e finaliza o script. Pronto!\n","permalink":"http://ricardomartins.com.br/como-fazer-rotacao-dos-logs-apache-por-hora/","summary":"\u003cp\u003eEntão você tem um servidor com Apache instalado gerando centenas de MB para lotar seu disco, certo? Vamos lá…\u003c/p\u003e\n\u003cp\u003eDepois de muita pesquisa, não consegui usar o logrotate para fazer a rotação dos logs de hora em hora. Desconfio que não faça mesmo a rotação de arquivos de log por hora, então implementei outra solução que vou compartilhar aqui com vocês\u003c/p\u003e\n\u003cp\u003eCriei um script que é executado de hora em hora pelo cron. Para isto basta criá-lo em /etc/cron.hourly.\u003c/p\u003e","title":"Como fazer rotação dos logs do Apache por hora?"},{"content":"A dica de hoje é rápida: O que fazer com os logs de aplicativos que vivem lotando seu disco, mas que por outro lado você precisa tê-los armazenados por algum tempo?\nSimples: Compacte tudo e envie para o S3 na Amazon de forma automatizada!\nPara esta atividade, eu utilizarei duas ferramentas:\n– Forfiles: uma ferramenta nativa em versões do Windows posteriores ao 7. Mais detalhes sobre ele, você encontra em um post antigo aqui do blog: http://ricardomartins.com.br/2011/04/01/exluir-arquivos-com-mais-de-x-dias-de-idade/\n– S3 Command Line Utility: ferramenta para enviar arquivos para o S3 via linha de comando. Você encontra ele aqui: http://s3.codeplex.com/\nVocê vai precisar também de uma conta no Amazon S3, um bucket criado e um usuário com permissões neste bucket. Esta parte do S3 eu não vou entrar em detalhes sobre como fazer por enquanto, e vai ficar para um próximo post… 🙁\nNeste exemplo eu utilizo aindo o 7Zip, um excelente compactador de arquivos opensource, que permite fazer tudo por linha de comando e ainda criar um arquivo.zip protegido por senha. Você pode pegar ele aqui: http://www.7-zip.org/download.html\nPara isso criaremos um script.bat que faz tudo isso automaticamente em um horário agendado por você. Vamos ao script e no fim explico cada linha:\n@ECHO OFF SET LOGDIR=C:temp hostname \u0026gt; tmpFile SET /p LOGNAME= \u0026lt;tmpFile del tmpFile md %LOGDIR%Archive For /f \u0026#34;tokens=2-4 delims=/ \u0026#34; %%a in (\u0026#39;date /t\u0026#39;) do (set mydate=%%c%%b%%a) For /f \u0026#34;tokens=2-4 delims=/ \u0026#34; %%a in (\u0026#39;date /t\u0026#39;) do (set mm=%%a\u0026amp;set dd=%%b\u0026amp;set yyyy=%%c\u0026amp; (if \u0026#34;%%a:~0,1\u0026#34; gtr \u0026#34;9\u0026#34; set mm=%%b\u0026amp;setdd=%%c\u0026amp;set yyyy=%%d)) forfiles -p %LOGDIR% -d -7 -m *.svclog -c \u0026#34;cmd /c move *.svclog %LOGDIR%Archive\u0026#34; cd %LOGDIR%Archive \u0026#34;c:Program Files (x86)7-Zip7z.exe\u0026#34; a -pSENHA -tzip APPLOG_HOST_%LOGNAME%_%mydate%.zip *.svclog del *.svclog \u0026#34;C:Logrotates3.exe\u0026#34; auth AmazonAccesKeyID AmazonSecretAccessKey \u0026#34;C:Logrotates3.exe\u0026#34; put BucketName/%yyyy%/ APPLOG_HOST_%LOGNAME%_%mydate%.zip del APPLOG_HOST_%LOGNAME%_%mydate%.zip Agora vou comentar as linhas do script…\n@echo off : Esta linha faz com que o script execute tudo sem mostrar nada na tela. Bom para deixar o processo o mais transparente possível.\nSET LOGDIR=C:temp: Aqui o diretório onde estão os logs gerados pela aplicação.\nhostname \u0026gt; tmpFile: Aqui eu pego o nome da máquina e jogo em um arquivo chamado tmpFile\nSET /p LOGNAME= \u0026lt;tmpFile: Aqui defino uma variável chamada LOGNAME com o conteúdo do arquivo tmpFile. No caso, o nome da máquina\ndel tmpFile: Deletando o arquivo tmpFile\nmd %LOGDIR%Archive: Criando um diretório chamado Archive, dentro do diretório dos logs da aplicação\nFor /f “tokens=2-4 delims=/ ” %%a in (‘date /t’) do (set mydate=%%c%%b%%a): Pego a data corrente no formato AAAMMDD. Será usado no nome do arquivo compactado\nFOR /f “tokens=2-4 delims=/ ” %%a in (‘date /t’) do (set mm=%%a\u0026amp;set dd=%%b\u0026amp;set yyyy=%%c\u0026amp; (if “%%a:~0,1” gtr “9” set mm=%%b\u0026amp;setdd=%%c\u0026amp;set yyyy=%%d)): Pego o ano corrente no formato AAAA. Sera usado para criar uma pasta no Bucket S3 com o nome do ano, para organizar o armazenamento dos logs\nforfiles -p %LOGDIR% -d -7 -m *.svclog -c “cmd /c move *.svclog %LOGDIR%Archive”: Verificamos o diretório dos logs da aplicação em busca de arquivos com mais de 7 dias com a extensão *.svclog (No meu caso, é um log gerado pelo IIS). Ao encontrar estes arquivos, movemos eles para a pasta Archive.\ncd %LOGDIR%Archive: Entrando na pasta Archive, no caso C:TempArchive\n*“c:Program Files (x86)7-Zip7z.exe” a -pSENHA -tzip APPLOG_HOST_%LOGNAME%_%mydate%.zip .svclog: Como a transferência pode vir a não ser feita utilizando um canal criptografado e seguro, dependendo do grau de sigilo das informações contidas no log, recomento utilizar o 7zip para gerar um arquivo protegido por senha. Assim criamos um arquivo com a senha SENHA compactando todos os arquivos *.svclog. O arquivo gerado será chamado APPLOG_HOST_NOMEDAMAQUINA_DATACORRENTE.zip\nLembrando que a DATACORRENTE será no formato 20121210, ou seja Ano, Mês e Dia.\nPS: Utilizei a senha SENHA para fins didáticos. É obvio que você precisa utilizar uma senha mais complexa. Eu costumo utilizar o KeePass para salvar senhas. Ele permite também gerar senhas complexas. Baixe aqui: http://keepass.info/\n*del .svclog: Como já gerei o arquivo.zip, podemos então deletar os arquivos *.svclog\n“C:Logrotates3.exe” auth AmazonAccesKeyID AmazonSecretAccessKey: Utilizamos o utilitário S3.exe, salvo dentro da pasta Logrotate, para autenticar o usuário que fará o envio dos arquivos para o bucket no S3. Substitua AmazonAccesKeyID e AmazonSecretAccessKey, pelos gerados para o seu usuário. Observe que a autenticação é feita com o parâmetro auth\n“C:Logrotates3.exe” put BucketName/%yyyy%/ APPLOG_HOST%LOGNAME%%mydate%.zip: Agora utilizamos o utilitário S3.exe para enviar o arquivo.zip para o nosso bucket. No caso substitua BucketName pelo nome do seu bucket. Observe a utilização da variável %YYYY%, citada acima para auxiliar na organização do armazenamento. Com ela, os arquivos serão enviados para uma pasta referente ao ano corrente dentro do bucket. Por exemplo Ricardo/2012, onde Ricardo é o nome do Bucket e 2012 a pasta referente ao ano, gerada pela variável %YYYY% definida na oitava linha do script.\nPara facilitar a comrpeensão, um exemplo de como ficaria o path do arquivo no S3:\nRicardo/2012/APPLOG_HOST_SERVIDOR\\20121210.zip\ndel APPLOG_HOST_%LOGNAME%_%mydate%.zip: Para finalizar, depois de enviar o arquivo para p S3, removemos ele do servidor.\nFeito isso, basta criar uma tarefa agendada, para rodar este script com a conta de sistema em um horário específico. Temos ainda uma opção no S3, de expirar os arquivos depois de um período definido. No meu caso, preciso armazenar estes arquivos por um ano, então coloquei os arquivos para expirarem após 366 dias, o que fará com que eles sejam removidos após este período.\nPor hoje é só pessoal!\n","permalink":"http://ricardomartins.com.br/rotacionando-seus-logs-windows/","summary":"\u003cp\u003eA dica de hoje é rápida: O que fazer com os logs de aplicativos que vivem lotando seu disco, mas que por outro lado você precisa tê-los armazenados por algum tempo?\u003c/p\u003e\n\u003cp\u003eSimples: Compacte tudo e envie para o S3 na Amazon de forma automatizada!\u003c/p\u003e\n\u003cp\u003ePara esta atividade, eu utilizarei duas ferramentas:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e– Forfiles:\u003c/strong\u003e uma ferramenta nativa em versões do Windows posteriores ao 7. Mais detalhes sobre ele, você encontra em um post antigo aqui do blog: \u003ca href=\"http://ricardomartins.com.br/2011/04/01/exluir-arquivos-com-mais-de-x-dias-de-idade/\"\u003ehttp://ricardomartins.com.br/2011/04/01/exluir-arquivos-com-mais-de-x-dias-de-idade/\u003c/a\u003e\u003c/p\u003e","title":"Rotacionando seus logs no Windows"},{"content":"Só pra compartilhar um arquivo muito maneiro que encontrei. Uma tabelinha, com o mapa de diversas funções e comandos do VIM.\nBaixe aqui.\nFonte: http://jrmiii.com\n","permalink":"http://ricardomartins.com.br/rapidinha-vim/","summary":"\u003cp\u003eSó pra compartilhar um arquivo muito maneiro que encontrei. Uma tabelinha, com o mapa de diversas funções e comandos do VIM.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://jrmiii.com/attachments/Vim.pdf\"\u003eBaixe aqui.\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFonte: \u003ca href=\"http://jrmiii.com\"\u003ehttp://jrmiii.com\u003c/a\u003e\u003c/p\u003e","title":"Rapidinha do VIM"},{"content":"Olá. Depois de algum tempo sem postar novidades por aqui, aqui estamos nós. Vou descrever como realizar a instalação do WordPress no Linux. Neste exemplo, estou usando o CentOS 6.3.\nNão vou entrar em muitos detalhes, e o WordPress dispensa apresentações. Mãos à obra:\n1. Instalando os requisitos yum -y install mysql-server mysql service mysqld start mysqladmin -u root password ‘definaumasenhaparaorootnomysql’ chkconfig –levels 2345 mysqld on yum -y install httpd chkconfig –levels 2345 httpd on yum -y install php php-common php-mysql php-gd php-mbstring php-xml php-xmlrpc 2. Instalação do WordPress cd /tmp wget http://wordpress.org/latest.tar.gz tar xzvf latest.tar.gz mv wordpress /var/www/html/ chown -R apache:apache /var/www/html/wordpres 3. Configurando o Apache vim /etc/httpd/conf/httpd.conf DirectoryIndex index.php LoadModule php5\\_module modules/libphp5.so /etc/init.d/httpd reload 4. Configurando o MySQL mysql -u root -p create database wordpress grant all privileges on wordpress.\\* to ‘seuusuariomysql’@’localhost’ identified by ‘senhadoseuusuariomysql’; exit 5. Configurando o WordPress cd /var/www/html/wordpress cp wp-config-sample.php wp-config.php vim wp-config.php define(‘DB_NAME’, ‘wordpress’); /** MySQL database username */ define(‘DB_USER’, ‘seuusuariomysql’); /** MySQL database password */ define(‘DB_PASSWORD’, ‘senhadoseuusuariomysql’); 6. Finalizando a configuração: Acesse http://ip-do-seu-servidor/wordpress/ e finalize as configurações informando os dados definidos acima (nome do database, usuário e senha do banco e endereço do servidor)\n","permalink":"http://ricardomartins.com.br/como-instalar-o-wordpress-linux/","summary":"\u003cp\u003eOlá. Depois de algum tempo sem postar novidades por aqui, aqui estamos nós. Vou descrever como realizar a instalação do WordPress no Linux. Neste exemplo, estou usando o CentOS 6.3.\u003c/p\u003e\n\u003cp\u003eNão vou entrar em muitos detalhes, e o WordPress dispensa apresentações. Mãos à obra:\u003c/p\u003e\n\u003ch3 id=\"1-instalando-os-requisitos\"\u003e1. Instalando os requisitos\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eyum -y install mysql-server mysql  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eservice mysqld start  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emysqladmin -u root password ‘definaumasenhaparaorootnomysql’  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003echkconfig –levels \u003cspan class=\"m\"\u003e2345\u003c/span\u003e mysqld on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eyum -y install httpd  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003echkconfig –levels \u003cspan class=\"m\"\u003e2345\u003c/span\u003e httpd on  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eyum -y install php php-common php-mysql php-gd php-mbstring php-xml php-xmlrpc\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"2-instalação-do-wordpress\"\u003e2. Instalação do WordPress\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e /tmp  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewget http://wordpress.org/latest.tar.gz  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etar xzvf latest.tar.gz  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emv wordpress /var/www/html/  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003echown -R apache:apache /var/www/html/wordpres\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"3-configurando-o-apache\"\u003e3. Configurando o Apache\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evim /etc/httpd/conf/httpd.conf  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDirectoryIndex index.php  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eLoadModule php5\u003cspan class=\"se\"\u003e\\_\u003c/span\u003emodule modules/libphp5.so  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/etc/init.d/httpd reload\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"4-configurando-o-mysql\"\u003e4. Configurando o MySQL\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emysql -u root -p  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecreate database wordpress  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egrant all privileges on wordpress.\u003cspan class=\"se\"\u003e\\*\u003c/span\u003e to ‘seuusuariomysql’@’localhost’ identified by ‘senhadoseuusuariomysql’\u003cspan class=\"p\"\u003e;\u003c/span\u003e  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"5-configurando-o-wordpress\"\u003e5. Configurando o WordPress\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e /var/www/html/wordpress  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecp wp-config-sample.php wp-config.php  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evim wp-config.php\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edefine\u003cspan class=\"o\"\u003e(\u003c/span\u003e‘DB_NAME’, ‘wordpress’\u003cspan class=\"o\"\u003e)\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/** MySQL database username */  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edefine\u003cspan class=\"o\"\u003e(\u003c/span\u003e‘DB_USER’, ‘seuusuariomysql’\u003cspan class=\"o\"\u003e)\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/** MySQL database password */  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edefine\u003cspan class=\"o\"\u003e(\u003c/span\u003e‘DB_PASSWORD’, ‘senhadoseuusuariomysql’\u003cspan class=\"o\"\u003e)\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"6-finalizando-a-configuração\"\u003e6. Finalizando a configuração:\u003c/h3\u003e\n\u003cp\u003eAcesse \u003ca href=\"http://ec2-50-112-47-146.us-west-2.compute.amazonaws.com/wordpress/\"\u003ehttp://ip-do-seu-servidor/wordpress/\u003c/a\u003e e finalize as configurações informando os dados definidos acima (nome do database, usuário e senha do banco e endereço do servidor)\u003c/div\u003e\u003c/p\u003e","title":"Como instalar o WordPress no Linux"},{"content":"Ok, então você acabou de instalar seu Ubuntu e na primeira execução do apt-get update, quando chega em 100% fica parado exibindo:\n100% [Waiting for Headers]\nIsto ocorre porque alguns repositórios tem problemas com o HTTP/1.1 pipelining.\nCrie o arquivo /etc/apt/apt.conf.d/piplining-off.conf com o seguinte conteúdo:\nAcquire::http::Pipeline-Depth \u0026#34;0\u0026#34;; Em seguinda rode o apt-get clean all e depois rode sem problemas o apt-get update\n","permalink":"http://ricardomartins.com.br/problemas-apt-get-update/","summary":"\u003cp\u003eOk, então você acabou de instalar seu Ubuntu e na primeira execução do apt-get update, quando chega em 100% fica parado exibindo:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e100% [Waiting for Headers]\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eIsto ocorre porque alguns repositórios tem problemas com o HTTP/1.1 pipelining.\u003c/p\u003e\n\u003cp\u003eCrie o arquivo \u003cstrong\u003e/etc/apt/apt.conf.d/piplining-off.conf\u003c/strong\u003e com o seguinte conteúdo:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAcquire::http::Pipeline-Depth \u003cspan class=\"s2\"\u003e\u0026#34;0\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eEm seguinda rode o \u003cstrong\u003eapt-get clean all\u003c/strong\u003e e depois rode sem problemas o \u003cstrong\u003eapt-get update\u003c/strong\u003e\u003c/p\u003e","title":"Problemas no apt-get update"},{"content":"Como configurar e usar o acesso remoto ao Mysql? Neste post vamos ver como fazer a configuração do Mysql permitindo o acesso remoto e utilizar o HeidiSQL para acessar o MySQL via interface gráfica (GUI).\nEu não tenho muita experiência com Mysql. No entanto atualmente tenho feito muitas implementações envolvendo o Mysql, onde preciso criar databases, usuários, trocar senha de usuários.\nAlgumas vezes fazer tudo isso na unha, é trabalhoso, ainda mais quando você não tem muito domínio sobre isto.\nProcurei então uma maneira de facilitar o trabalho, utilizando uma interface gráfica para fazer minhas alterações nos bancos de dados. O escolhido foi o HediSQiL.\nO HeidiSQL é um programa para abrir, editar e criar bancos de dados do MySQL utilizando uma GUI.\nO programa também possui recursos para exportar dados presentes nas tabelas com suporte para os formatos CSV, HTML, SQL e XML. Quando você abre o programa, ele solicita a conexão com o MySQL e para fazê-lo, basta preencher os dados solicitados e confirmar.\nVocê pode conhecer melhor a ferramenta em http://www.heidisql.com/.\nNo entanto, não basta instalar a ferramenta e sair usando. Você precisa liberar o acesso remoto no MySQL.\nEntão aqui vou dar um passo a passo simples envolvendo algumas etapas básicas, para que você que assim como eu não possui muito conhecimentos em bancos de dados, possa começar a entender um pouco sobre como funciona.\nPassos:\n– Instalação do mysql;\n– Criação da senha do usuário root;\n– Criação de um banco teste;\n– Criação de um usuário com permissões neste banco teste;\n– Liberação de acesso remoto para o usuário criado no banco teste;\n1- Instalando o MySQL Server [root@ricardo]# yum install mysql-server [root@ricardo]# chkconfig –level 345 mysqld on [root@ricardo]# service mysqld start 2- Criando a senha do usuário root no banco Por default o usuário root vem sem senha, então se você executar o comando mysql -u root \u0026lt;enter\u0026gt; já estará dentro do banco. No exemplo abaixo, vou definir como P@ssw0rd a senha do usuário root:\n[root@ricardo]# mysqladmin -u root password P@ssw0rd Pronto! se você quiser testar, utilize o comando abaixo e informe a nova senha criada (lembrando que o parâmetro -p é para que seja solicitada a senha, caso contrário você deve informá-la na linha de comando executada)\n[root@ricardo]# mysql -u root -p 3- Criando um database de teste Depois de executar o comando acima, você já deve estar dentro do myql, então agora vamos criar um database chamado “meudb”.\nmysql\u0026gt; create database meudb; 4- Criando um usuário com permissões de total controle sobre o banco “meudb” mysql\u0026gt; grant all privileges on meudb.* to ‘ricardo’@’localhost’ identified by ‘ricardopassword’; Explicando: Criamos o usuário ricardo com a senha ricardopassword.\nNote que temos o usuário root com senha P@ssw0rd no mysql, e o usuário ricardo com senha ricardopassword no banco meudb.\nGeralmente cada banco criado dentro do mysql, terá(ão) seu(s) respecitovo(s) usuário(s).\n5- Liberando o acesso remoto para o usuário “ricardo” no banco “meudb” Vamos ao mysql:\n[root@ricardo]# mysql -u root -p Insira a senha do root, e rode os comandos abaixo:\nmysql\u0026gt; grant all privileges on meudb.* to ricardo@’192.168.10.200′ identified by ‘ricardopassword’; mysql\u0026gt; exit No caso, foi dado acesso remoto com controle total ao usuário ricardo no banco meudb, à partir do IP 192.168.10.200, que é o ip da minha máquina.\nAgora reinicie o serviço do MySQL\n[root@ricardo]# /etc/init.d/mysqld restart Agora um outro cenário. Se por exemplo você quisesse liberar acesso remoto com controle total para o usuário root em todos os databases dentro de um determinado servidor mysql, você poderia executar o seguinte comando:\nmysql\u0026gt; grant all privileges on *.* to root@’192.168.10.200′ identified by ‘P@ssw0rd’; Onde fizemos:\n“conceda todos os privilégios em todos os databases (.) para o usuário root com acesso originado do endereço ip 192.168.10.200 utilizando a senha P@ssw0rd”\n6- Acessando remotamente pelo HeidiSQL Abra o HeidiSQL e configure a conexão conforme a imagem abaixo:\n(Troque as informações conforme seu ambiente)\nTela do Heidi logado no banco:\nPor hoje é só pessoal…\n","permalink":"http://ricardomartins.com.br/acessando-o-mysql-remotamente-via-gui/","summary":"\u003cp\u003eComo configurar e usar o acesso remoto ao Mysql? Neste post vamos ver como fazer a configuração do Mysql permitindo o acesso remoto e utilizar o HeidiSQL para acessar o MySQL via interface gráfica (GUI).\u003c/p\u003e\n\u003cp\u003eEu não tenho muita experiência com Mysql. No entanto atualmente tenho feito muitas implementações envolvendo o Mysql, onde preciso criar databases, usuários, trocar senha de usuários.\u003c/p\u003e\n\u003cp\u003eAlgumas vezes fazer tudo isso na unha, é trabalhoso, ainda mais quando você não tem muito domínio sobre isto.\u003c/p\u003e","title":"Como acessar o Mysql remotamente via GUI (Graphical User Interface)"},{"content":"Esta dica vai te ensinar como instalar e configurar o IPPlan, uma ferramenta Web para gerenciar o endereçamento IP da sua rede. Você não vai mais precisar usar planilhas!!!\nExistem diversar ferramentas opensource com esta finalidade. Eu escolhi o IPPlan, pois me pareceu mais simples de instalar e configurar.\nNeste tutorial, o ambiente usado é o CentOS 6.2. 1. Instalando o PHP, Mysql e Apache [root@ricardo ~\\]# yum install httpd mysql-server php php-mysql php-xml php-soap [root@ricardo ~\\]#service mysqld start [root@ricardo ~\\]#service httpd start 2. Download e instalação do IpPlan Download IpPlan: http://sourceforge.net/projects/iptrack/files/\nCopiar para /var/ww/html:\n[root@ricardo ~\\]# cp ipplan-4.92b.tar.gz /var/www/html Extraindo o conteúdo:\n[root@ricardo ~\\]# cd /var/www/html; tar xzvf ipplan-4.92b.tar.gz . 3. Configurando o MySql Criar senha do usuário root no Mysql instalado:\n[root@ricardo ~\\]# mysqladmin -u root password suasenha Criar a base de dados para o ipplan:\n[root@ricardo ~\\]# mysqladmin -u root -p create ipplan Como devemos evitar o uso do banco de dados com o usuário root, precisamos criar um usuário com acesso full na base ipplan criada acima. Para isso, acessamos a base “ipplan”, e em seguida, já dentro da console do mysql, criamos o usuário ipplan com a senha ipplanpassword com todas as permissões nesta base:\n[root@ricardo ~\\]# mysql -u root -p ipplan Apenas lembrando:\n-u: Especifica o usuário\n-p: solicita a senha\nipplan: nome da base de dados onde irá se conectar\nmysql\u0026gt; grant all on ipplan.* to ipplan@localhost identified by ‘ipplanpassword’; Agora, fazemos um reload nas permissões do Mysql:\nmysql\u0026gt;flush privileges; mysql\u0026gt;exit 4. Alterando o arquivo de configuração do IPPlan e inserindo as configurações de conexão ao MySql [root@ricardo ~\\]# vim /var/www/html/ipplan/config.php Altere o arquivo da seguinte forma\ndefine(“DBF_TYPE”, ‘maxsql’); define(“DBF_HOST”, ‘localhost’); define(“DBF_USER”, ‘ipplan’); define(“DBF_NAME”, ‘ipplan’); define(“DBF_PASSWORD”, ‘ipplanpassword’); 5. Finalizando a instalação pela interface Web Acesse: http://localhost/ipplan/admin/install.php\nSerá exibida a tela abaixo. Clique em “Go:”\nSe tudo correr bem, você deverá ver uma tela igual a esta:\nOk, já temos o IPPlan instalado. Vamos agora para a configuração básica.\n6. Configuração básica Acesse: http://localhost/ipplan\nPrimeiro, criaremos o usuário que irá gerenciar a estrutura de endereçamento IP. Vá em Admin – Users – Create a new user. Preencha as informações referentes ao usuário:\nAgora criaremos um grupo para inserirmos este usuário nele. Vá em Admin – Groups – Create a new group e preencha as informações.\nAgora com usuário e grupo criados, precisamos criar o “Cliente”, ou seja, um nome qualquer para o ambiente onde a estrutura de endereços está configurada.\nVá em Customers \u0026gt; Create a New Customer/Autonomous System. Será solicitado um login e senha de acesso, e você deverá informar o usuário que criou.\nPreencha pelo menos o primeiro campo (o único obrigatório). Informe o nome do cliente e em seguida clique em Submit:\nO próximo passo é configurar o range da nossa rede. Vá em Network \u0026gt; Hierarchy \u0026gt; Create a new Network Range/Supernet:\nPreencha o campo “Range Address” e “Range size” de acordo com o seu ambiente:\nAgora precisamos criar as subredes. Vá em Network -\u0026gt; Subnets -\u0026gt; Create Subnet:\nPreencha os campos conforme o seu ambiente e neste ponto, você já terá o IPPlan instalado e com a configuração básica feita.\nPara maiores detalhes, confira o manual online do IPPlan em http://iptrack.sourceforge.net/documentation/README.html\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/ipplan-aprenda-como-instalar/","summary":"\u003cp\u003eEsta dica vai te ensinar como instalar e configurar o IPPlan, uma ferramenta Web para gerenciar o endereçamento IP da sua rede. Você não vai mais precisar usar planilhas!!!\u003c/p\u003e\n\u003cp\u003eExistem diversar ferramentas opensource com esta finalidade. Eu escolhi o IPPlan, pois me pareceu mais simples de instalar e configurar.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNeste tutorial, o ambiente usado é o CentOS 6.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"1-instalando-o-php-mysql-e-apache\"\u003e1. Instalando o PHP, Mysql e Apache\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eroot@ricardo ~\u003cspan class=\"se\"\u003e\\]\u003c/span\u003e\u003cspan class=\"c1\"\u003e# yum install httpd mysql-server php php-mysql php-xml php-soap  \u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eroot@ricardo ~\u003cspan class=\"se\"\u003e\\]\u003c/span\u003e\u003cspan class=\"c1\"\u003e#service mysqld start  \u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eroot@ricardo ~\u003cspan class=\"se\"\u003e\\]\u003c/span\u003e\u003cspan class=\"c1\"\u003e#service httpd start\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"2-download-e-instalação-do-ipplan\"\u003e2. Download e instalação do IpPlan\u003c/h2\u003e\n\u003cp\u003eDownload IpPlan: \u003ca href=\"http://sourceforge.net/projects/iptrack/files/\"\u003ehttp://sourceforge.net/projects/iptrack/files/\u003c/a\u003e\u003c/p\u003e","title":"IPPlan: Aprenda como instalar e configurar"},{"content":"Ok, então você administra uma rede, e instalou um serviço de monitoração para acompanhar a atividade e desempenho da sua rede, tipo o Nagios ou Zabbix. Agora você gostaria de receber e-mails com os alertas sobre o que está ocorrendo na rede. Siga os passos abaixo:\n1. Instalando o Postfix [root@ricardo ~\\]# chkconfig –level 345 postfix on [root@ricardo ~\\]# /etc/init.d/postfix start [root@ricardo ~\\]# yum remove sendmail 2. Realizando a configuração básica do Postfix [root@ricardo ~\\]# vi /etc/postfix/main.cf Altere as seguintes linhas:\nmyhostname = mailserver mydomain = ricardo.local myorigin = $mydomain inet_interfaces = 10.21.0.1 (ip do servidor) mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mynetworks = 10.21.0.0/16, 127.0.0.1/32 relay_domains = $mynetworks 3. Testes Pronto! Já está configurado. Agora logue em outra máquina e você pode testar fazendo um telnet para o seu servidor diretamente na porta 25:\n[root@martins ~\\]# telnet 10.21.0.1 25 mail from:zabbix@gmail.com rcpt to:contato@ricardomartins.com.br data subject:Teste do Postfix Isso eh um teste do nosso servidor Postifx. . quit Importante: Como o servidor não está usando um domínio válido, o endereço de e-mail do remetente utilizado em “mail from” deve ser um endereço de um domínio válido.\nOu seja, o endereço de e-mail não precisa existir, mas o domínio tem que ser válido, como nos exemplos: qualquercoisa@microsoft.com ou meualerta@microsoft.com\n","permalink":"http://ricardomartins.com.br/como-fazer-uma-configuracao-basica-de-postfix-no-centos/","summary":"\u003cp\u003eOk, então você administra uma rede, e instalou um serviço de monitoração para acompanhar a atividade e desempenho da sua rede, tipo o Nagios ou Zabbix. Agora você gostaria de receber e-mails com os alertas sobre o que está ocorrendo na rede. Siga os passos abaixo:\u003c/p\u003e\n\u003ch1 id=\"1-instalando-o-postfix\"\u003e1. Instalando o Postfix\u003c/h1\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-fallback\" data-lang=\"fallback\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e[root@ricardo ~\\]# chkconfig –level 345 postfix on  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e[root@ricardo ~\\]# /etc/init.d/postfix start  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e[root@ricardo ~\\]# yum remove sendmail\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch1 id=\"2-realizando-a-configuração-básica-do-postfix\"\u003e2. Realizando a configuração básica do Postfix\u003c/h1\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eroot@ricardo ~\u003cspan class=\"se\"\u003e\\]\u003c/span\u003e\u003cspan class=\"c1\"\u003e# vi /etc/postfix/main.cf\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eAltere as seguintes linhas:\u003c/p\u003e","title":"Como fazer uma configuração básica de Postfix no CentOS"},{"content":"Neste artigo demostro como instalar o Guest Additions no CentoS 6.2. Pode ser bastante útil se você tentou instalar e encontrou a mensagem de erro abaixo:\n/tmp/vbox.0/Makefile.include.header:97: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again.\nOs adicionais para convidado, também conhecidos como guest additions, são um conjunto de dispositivos de drivers e aplicativos de sistema que otimizam o sistema operacional convidado (guest) para um melhor desempenho e usabilidade.\nLembre-se que indepentende do sistema de virtualização em uso, é fundamental a instalação destas ferramentas, seja ele Guest Additions (VirtualBox), VMWare Utils (VMWare), Integration Services (Hyper-V)\nOs adicionais para convidado oferece as seguinte funcionalidades:\n• Integração de mouse: Não é necessário pressionar o Ctrl da direita no sistema convidado para ir pro sistema hospedeiro. O foco do mouse é detectado automaticamente apenas posicionando o mouse no sistema convidado.\n• Compartilhamento de pastas: Suporte a um compartilhamento entre o sistema convidado e o sistema hospedeiro.\n• Melhor suporte a vídeo: Suporte a altas resoluções e aceleração 2D/3D.\n• Janelas Seamless: Janelas do sistema convidado podem ser mapeadas no sistema hospedeiro. Desta forma podemos ter CentOS 6.2 e Windows (Host) na mesma janela.\n• Canal genérico de comunicação: Permite controlar aplicativos no sistema convidado pelo sistema hospedeiro.\n• Sincronização de data/hora: Garante que a data/hora entre os sistemas estejam sincronizados.\n• Compartilhamento de área de transferência: Ctrl+C no sistema convidado e Ctrl+V no sistema hospedeiro e vice-versa.\n• Logons automatizados: Credenciais são armazenadas em um master repositório e podem ser utilizadas para autenticar outros sistemas convidados.\nOs procedimento aqui descritos são aplicados no CentOS, mas podem ser utilizados com pequenas modificações para o Red Hat Enterprise Linux (RHEL) e Oracle Enterprise Linux (OEL).\nPacotes requeridos:\n• gcc\n• kernel-devel\n• kernel-headers\n[root@ricardo /root]# yum install gcc kernel-devel kernel-headers Em seguida adicione a variável KERN_DIR ao /etc/profile da seguinte forma:\n[root@ricardo /root]# echo KERN_DIR=/usr/src/kernels/`uname -r`-`uname -m` \u0026gt;\u0026gt; /etc/profile [root@ricardo /root]# echo export KERN_DIR \u0026gt;\u0026gt; /etc/profile [root@ricardo /root]# mount /dev/cdrom /media/ [root@ricardo /root]# cd /media [root@ricardo /root]# ./VboxLinuxAdditions.run Depois de executar o script de instalação, basta reiniciar o sistema e pronto! Guest Additions instalado e funcionando!\nAproveitando o assunto, segue um link interessante sobre Virtualização de modo geral: http://www.virtuatopia.com\n","permalink":"http://ricardomartins.com.br/instalando-os-adicionais-para-convidado-guest-additions-na-vm-centos-6-2-do-virtualbox/","summary":"\u003cp\u003eNeste artigo demostro como instalar o Guest Additions no CentoS 6.2. Pode ser bastante útil se você tentou instalar e encontrou a mensagem de erro abaixo:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e/tmp/vbox.0/Makefile.include.header:97: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=\u003cdirectory\u003e and run Make again.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eOs adicionais para convidado, também conhecidos como guest additions, são um conjunto de dispositivos de drivers e aplicativos de sistema que otimizam o sistema operacional convidado (guest) para um melhor desempenho e usabilidade.\u003c/p\u003e","title":"Instalando os adicionais para convidado (Guest Additions) na VM CentOS 6.2 do Virtualbox"},{"content":"{: .notice\u0026ndash;info}* Texto enviado a Max Gehringer na Rádio CBN.\nRecebi uma mensagem muito interessante de um ouvinte da CBN e peço licença para lê-la na íntegra, porque ela nem precisa dos meus comentários. Lá vai:\n“Prezado Max, meu nome é Sérgio, tenho 61 anos, e pertenço a uma geração azarada. Quando eu era jovem as pessoas diziam em escutar os mais velhos, que eram mais sábios, agora me dizem que tenho de escutar os jovens porque são mais inteligentes.\nNa semana passada eu li numa revista um artigo no qual jovens executivos davam receitas simples e práticas para qualquer um ficar rico. E eu aprendi muita coisa. Aprendi por exemplo, que se eu tivesse simplesmente deixado de tomar um cafezinho por dia, \u0026gt;durante os últimos 40 anos, eu teria economizado R$ 30.000,00. Se eu tivesse deixado de comer uma pizza por mês teria economizado R$ 12.000,00 e assim por diante. Impressionado peguei um papel e comecei a fazer contas, e descobri para minha surpresa que \u0026gt;hoje eu poderia estar milionário.\nBastava eu não ter tomado as caipirinhas que eu tomei, não ter feito muitas das viagens que fiz, não ter comprado algumas das roupas caras que eu comprei, e principalmente não ter desperdiçado meu dinheiro, em itens supérfluos e descartáveis. Ao concluir os \u0026gt;cálculos percebi que hoje eu poderia ter quase R$ 500.000,00 na conta bancária. É claro que eu não tenho este dinheiro. Mas se tivesse sabe o que este dinheiro me permitiria fazer? Viajar, comprar roupas caras, me esbaldar com itens supérfluos e \u0026gt;descartáveis, comer todas as pizzas que eu quisesse e tomar cafezinhos à vontade. Por isso acho que me sinto feliz em ser pobre. Gastei meu dinheiro com prazer e por prazer.\nE recomendo aos jovens e brilhantes executivos, que façam a mesma coisa que eu fiz. Caso contrário eles chegarão aos 61 anos com um monte de dinheiro, mas sem ter vivido a vida”.\nNo mínimo, para pensar…\n","permalink":"http://ricardomartins.com.br/viver-ou-juntar-dinheiro/","summary":"\u003cp\u003e{: .notice\u0026ndash;info}* Texto enviado a Max Gehringer na Rádio CBN.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eRecebi uma mensagem muito interessante de um ouvinte da CBN e peço licença para lê-la na íntegra, porque ela nem precisa dos meus comentários. Lá vai:\u003c/p\u003e\n\u003cp\u003e“Prezado Max, meu nome é Sérgio, tenho 61 anos, e pertenço a uma geração azarada. Quando eu era jovem as pessoas diziam em escutar os mais velhos, que eram mais sábios, agora me dizem que tenho de escutar os jovens porque são mais inteligentes.\u003c/p\u003e","title":"Viver ou juntar dinheiro?"},{"content":"Se você parou para ler este texto eu suponho que:\nDeseja obter uma certificação Está tentando entender por que se fala tanto em certificação Já tem esta certificação e está tentando obter um nível mais elevado Resolví escrever este texto depois de uma conversa na faculdade. Notei que ainda existe muita gente muito perdida neste mercado das certificações, então vou basear o texto em cima de opiniões pessoais e em estudos feitos na internet sobre o assunto.\nVocê não tem que concordar com tudo que eu disser, e sua opinião é bem vinda! O texto vai ser grande, mas talvez você considere interessante continuar lendo.\nO fato é que não há uma receita de bolo sobre certificações, e se você quer se certificar, comece à estudar agora! É um processo que exige disciplina e seriedade, e você vai precisar bastante disso para chegar à algum lugar.\nExiste um ditado que eu ouvi e nunca mais esquecí: Se você quer algo que nunca teve e chegar onde nunca chegou, comece a fazer o que nunca fez. Então, está esperando o quê?\nO que são as Certificações de TI Uma certificação, nada mais é que uma forma de comprovar de que você realmente conhece determinado assunto, ferramenta, sistema operacional, etc. Hoje em dia existe uma gama muito grande de certificações para todo tipo de coisa, então não vou listar cada uma delas. Vou citar apenas as mais solicitadas hoje em dia no Brasil:\nFerramentas de Virtualização: HyperV, Vmware, XenServer; Ferramentas de Gerenciamento de Ambientes: System Center; Sistemas Operacionais: LPI, RedHat, Microsoft; Redes e Equipamentos: Cisco, Juniper; Gerenciamento e Projetos: ITIL, COBIT e PMP; Segurança: CEH (Certified Ethical hacker) Porquê são tão valorizadas? São muito valorizadas hoje em dia pois são elas que acabam fazendo a diferença na hora da contratação. Não são garantia de emprego, fama ou retorno financeiro, mas ajudam muito dependendo da vaga e da empresa.\nSe você está participando de um processo seletivo para uma empresa que terceiriza serviços em TI, com certeza vai te ajudar bastante. Ou seja, se o objetivo da empresa é vender serviços de tecnologia, é muito importante para a empresa mostrar para os seus clientes que seus funcionários são quialificados, capacitados e certificados pelas principais empresas fornecedoras de soluções.\nNo caso de certificações microsoft, saiba que consultorias ligadas à Microsoft devem possuir profissionais certificados no seu quadro de funcionários. Isto por causa dos requisitos de competência da Microsoft que exigem pessoas certificadas. Desta forma se você possui certificação aumenta muito as chances de contratação nestas empresas de consultoria, e com certeza vão querer te contratar pois conta pontos pra eles.\nPor outro lado, se a vaga é para uma empresa que usa a TI apenas como uma ferramenta para o seu objetivo de negócio, a certificação pode não contar muito e não fazer diferença na contratação. Eles estarão mais interessados em outros aspectos do seu perfil, como por exemplo sua desenvoltura, postura, iniciativa, enfim, sua capacidade de aplicar seus conhecimentos em prol dos objetivos da empresa.\nNo entanto, as empresas sabem que hoje em dia acaba se tornando muito fácil obter a certificação. Existem diversos métodos e formas de se conseguir praticamente cópias dos gabaritos dos exames na internet. Então em muitos casos pode não significar muita coisa dizer que tem determinada certificação. A maioria das empresas estão adotando suas próprias provas de avaliação dos candidatos, e estas, você não terá o gabarito na internet. Assim esbarramos em outra questão:\nE o uso dos Braindumps? Os “Braindumps” são verdadeiras colas das provas que são disponibilizadas na internet. São usados por profissionais que desejam atingir um status mais elevado no menor tempo e dispendendo o menor esforço possível.\nPor consequência do uso destes métodos, cada vez mais o mercado é inundado com profissionais teoricamente qualificados, mas que na verdade, sequer sabem o assunto da certificação que obtiveram.\nPosso ser criticado pelo que vou falar agora mas eu acho válido o uso dos Braindumps em uma situação: nos casos onde o profissional detém realmente vasto conhecimento sobre o assunto que deseja se certificar e precisa obter a certiifcação em um curto prazo de tempo, muitas vezes em função de uma nova oportunidade de emprego que exija determinado certificado.\nNeste caso específico, onde o profissional tem experiência, conhece e se garante realmente no assunto, eu não vejo problemas na utilização deste método. Em todos os outros casos, eu sou contra esta utilização e vou além: Em qualquer outra situação o candidato irá passar passar por situações complicadas, onde sinceramente não sei qual seria a pior:\n– Na entrevista: Pode ser que na entrevista com a equipe de recursos humanos, ele até passe desapercebido. No entanto quando for para a entrevista com um gestor ou coordenador da área, lhe serão feitas perguntas técnicas, e nesta etapa possivelmante será notada a falta de conhecimento;\n– Nos testes: Como já dito anteriormente, hoje as empresas aplicam avaliações teóricas e até práticas desenvolvidos internamente pela própria equipe de TI. Nesta etapa, caso o candidato tenha conseguido passar pelo recursos humanos e pelo gestor, aqui ele irá precisar mostrar se realmente sabe ou não;\n– No dia-a-dia: Se mesmo assim chegar a ser contratado, no dia-a-dia do trabalho ele não vai ter como não demonstrar seu despreparo, e talvez neste caso a demissão pode vir a ser o pior constrangimento.\nE os simulados? Simulados são uma simulação do modelo de prova, no entanto não com as questões das provas propriamente. São úteis para o candidato identificar o modo de aplicação das perguntas, o estilo da prova, tempo de execução. São muito úteis nos estudos e penso que devem ser utilizados pois auxiliam bastante no aprendizado.\nMinha experiência Eu detenho algumas certificações, e tenho metas para a obtenção de mais algumas. No meu caso, tenho certificações em sistemas Microsoft e Linux. Em ambos, eu cheguei a fazer cursos, mas as certificações vieram anos depois, exceto a da Conectiva Linux (Atual Mandriva).\nA Certificação da Conectiva veio em Agosto de 2004 depois da realização de um curso oficial da própria Conectiva. Na época eu estava trabalhando em um provedor de internet e muito entusiasmado com Linux. Aliás, foi lá que eu tive meu primeiro contato com Linux (2003), o qual já havia ouvido falar quando fiz meu primeiro curso de informática (Montagem e Manutenção de Micros/2002).\nEm 2005 eu mudei de emprego e tive contato com servidores Windows, pois até então tinha tido contato apenas com versões cliente (95, 98, ME, XP). Na época, minha certificação Linux ajudou a conseguir o emprego, pois eu precisaria trabalhar com servidores Linux também. Embora não fosse uma empresa prestadora de serviços em TI, consegui de certa forma mostrar que entendia do negócio, e conseguí ser contratado.\nEm Outubro de 2006 achei que seria interessante fazer um curso na área de Windows e então realizei um treinamento para o MCSE em Windows 2003.\nDepois de dois anos adquirindo experiência e conhecimento prático, as atividades do dia-a-dia me deram base para em 2008 começasse a realizar as provas. Abaixo a ordem que segui para a realização das provas:\nMarço de 2008: 70-271. MCP em Windows XP; Janeiro de 2009: 70-272; Dezembro de 2009: 70-270. MCDST em Windows XP; Junho de 2010: 70-290. MCP em Windows Server 2003; Julho de 2010: 70-291. MCSA em Windows Server 2003. Outrubro de 2010: Neste época comecei a dar aulas em treinamento preparatório para a prova 70-290 (MCP em 2003 Server) na instituição onde havia sido aluno em 2006 e através desta instituição obtive o MCT. Como trabalhava com ambos os sistemas operacionais, precisava conhecer bem ambos. Particularmente eu penso que cada um tem seu lugar no mercado e procuro adotar cada um em cenários onde são mais adequados. Por exemplo, poderia comentar sobre a segurança em sistemas Linux, que é de fato muito maior que em sistemas Linux. Isto pode ser comprovado até pela utilização de sistemas linux customizados em aplicances de marcas líderes de mercado para sistemas de firewall em geral. Por outro lado, nenhuma ferramenta open source é capaz da substituir plenamente o Active Directory atualmente.\nPartindo deste conceito, baseado na minha experiência optei em direcionar meus estudos de forma diferente. Ao invés de me especializar no sistema A ou B, tenho a meta de me especializar em sistemas operacionais de forma geral, pois no mercado temos cada vez mais ambientes híbridos que exigem do profissional um bom conhecimento de cada sistema.\nAssim, em Setembro de 2010 fiz as provas 117-101 e 117-102 e obtive a LPIC-1. Em Setembro de 2011 eu fiz a 117-201. Na primeira tentativa não fui aprovado ( Fiquei com 470 pontos – o mínimo era 500), mas no mês seguinte refiz a prova e consegui ser aprovado.\nA meta agora é realizar a 117-202 até Dezembro para obter o LPIC-2. Em seguida, no próximo ano quero realizar as provas 117-301 e 117-302 para obter o LPIC-3 em Mixed Environment e realizar as provas de upgrade do MCSA 2003 para MCITP-SA (70-646 e 70-748)\nResumo da História e Dicas para as Provas Desta forma, para as minhas certificações em Windows, eu usei o conhecimento obtido nos cursos que realizei e na minha experiência diária trabalhando com este sistema.\nAgora vou ensinar você a pescar (lembra do ditado: “Não dê o peixe, mas ensine a pescar” ?) Abaixo uma lista de links com excelente material de estudo preparado pelos caras mais conceituados do mercado. É uma lista de sites da Micrososft e de sites/blogs de grandes profissionais. Uma grande oportunidade para você ler os artigos técnicos, assistir video aulas, fazer laboratórios (isto mesmo, laboratórios on-line), enfim, não tem desculpa para não aprender, e o melhor: tudo gratuitamente! Aproveitem esta oportunidade, e dê um upgrade na sua carreira:\nhttp://technet.microsoft.com/pt-br/default.aspx http://technet.microsoft.com/pt-br/treinamento http://social.technet.microsoft.com/Forums/pt-br/categories http://technet.microsoft.com/pt-br/library/default.aspx http://technet.microsoft.com/pt-br/bb467605 http://winsec.org/ http://social.technet.microsoft.com/wiki/ http://borntolearn.mslearn.net/ http://www.cooperati.com.br/ http://www.andreluiz.adm.br/ http://alexandroprado.wordpress.com/ http://www.clebermarques.com/ http://www.marcelosincic.com.br/blog/ http://www.fabiohara.com.br/ http://www.gestaoemti.com.br/blog/ http://www.ivanildogalvao.com.br/ http://yuridiogenes.wordpress.com/ http://sobitsnamente.wordpress.com/ http://www.admderedes.com.br/blog/ http://www.portaltecnologia.net/ http://leandroesc.wordpress.com/ http://www.porta25.com.br/blog/ http://blogs.technet.com/b/deploymentguys/ Quem dera se na minha época as coisas fossem tão fáceis de encontrar assim… Tinha muita informação para sistemas Linux, já Micrososft eram muito poucos sites com informação de qualidade.\nPara a certificação em Linux, eu tive que correr atrás e estudar bastante. Para a LPIC-1, como fonte de estudos utilizei o seguinte material:\n– Certificação Linux LPI – Nível 1, 2a Edição, de Steven Pritchard, Bruno Pessanha e outros, da O’Reilly:\nhttp://www.livrariasaraiva.com.br/produto/1800247/?pac_id=18671\u0026amp;gclid=CJvAw6P1jqQCFVVx5Qod-TKuLA – Guia Alka Linux, de Luciano Antonio Siqueira, disponível gratuitamente em:\nhttp://www.scribd.com/doc/3044043/Guia-LPIc101-alkalinux http://www.scribd.com/doc/12713296/Alkalinux-Guia-LPI-102 Na época, também fiz o simulados do livro da O’Reilly e os dos sites abaixo:\nhttp://www.stato.blog.br/wordpress/?page_id=102 http://armbrust.eti.br/ http://www.centraldolinux.org/simulados/simulado-lpi-117-101/ http://www.centraldolinux.org/simulados/simulado-lpi-117-102/ http://www.lpibrasil.com.br/simulados/simulado-prova-101.html http://www.lpibrasil.com.br/simulados/simulado-prova-102.html http://www.certificacaolinux.com.br/simulado.htm (Versão Online dos Simulados do livro da O’Reilly) http://www.ledge.co.za/software/lpinotes/101-letter.pdf http://www.ledge.co.za/software/lpinotes/102-letter.pdf E recomendo a visita aos links:\nhttp://www.guiafoca.org/ http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-map/index.html http://terramel.org/como-estudar-para-a-certificacao-lpi-sem-gastar-dinheiro/ https://docs.google.com/open?id=0B_xIaw7wyAhUMjA2NTM2ZmQtZGIwMS00ZWU0LWE2OGUtY2VmMDVmYjJlMGFl https://docs.google.com/open?id=0B_xIaw7wyAhUMThiNTg0ZWEtOGY0OC00N2U0LTkxOWYtNDM1ZTNkMzhhYzVh Para a LPIC-2 estou usando o seguinte material:\n– Certificação Linux LPI – Nível 1, 2a Edição, de Steven Pritchard, Bruno Pessanha e outros, da O’Reilly\nhttp://www.livrariasaraiva.com.br/produto/1969786/certificacao-linux-lpi-nivel-2-exames-201-e-202/?ID=C8D0195C7DB0B130938310242\u0026amp;PAC_ID=18671 – Certificação LPI-2 2ª Edição, de Luciano Antônio Siqueira (Sim o criador do material Alka Linux que estudei para a LPIC-1)\nhttp://www.linuxnewmedia.com.br/shopping/livro/certificacaeo_lpi_2_2a_edicaeo E pelo material dos seguintes links:\nhttp://www.ibm.com/developerworks/views/linux/libraryview.jsp?sort_by=\u0026amp;show_abstract=false\u0026amp;show_all=\u0026amp;search_flag=\u0026amp;contentarea_by=Linux\u0026amp;search_by=LPIC-2\u0026amp;topic_by=-1\u0026amp;industry_by=-1\u0026amp;type_by=All+Types\u0026amp;ibm-search=Search http://www.ibm.com/developerworks/linux/lpi/201.html http://www.stato.blog.br/wordpress/simulados/open/lpi201/index.html http://www.stato.blog.br/wordpress/simulados/open/lpi202/index.html Com estas listas de links, você pode começar a estudar imediatamente e se preparar para ser o próximo profisisonal certificado do mercado. E falando nisso, mais um tópico que gera muita discussão por aí:\nCertificação ou Faculdade? Este com certeza é um assunto que gera muita polêmica e muito debatido na internet. Quer conferir? Clique no link abaixo:\nhttp://www.google.com.br/search?q=certifica%E7%E3o+ou+faculdade Uma coisa é certa: Faculdade não forma profissional, assim como ter uma certificação também não significa que você é “O Profissional”.\nHoje, eu posso dizer por experiência própria: A faculdade faz falta sim. Se você deseja um cargo bacana em uma empresa grande, não adianta ter certificação e experiência, você vai precisar do diploma.\nPor motivos de trabalho, também um pouco de desleixo, até hoje não terminei a faculdade e já tenho doutorado em iniciar/trancar cursos.\nComecei em Redes de Computadores na Estácio em 2005, tranquei em 2006.\nMudei para Ciências da Computação na Unipli em meados de 2006 mas ví que não era aquilo que eu gostava e cursei por apenas dois meses.\nEm 2008 voltei para Redes e por motivos de viagens à trabalho paguei 3 meses sem assistir uma aula e acabei trancando novamente.\nEm 2010 passei para Sistemas de Computação no Cederj (clique no link ao lado ou aqui para conhecer), uma modalidade de ensino EAD e iniciei simulâneamente curso de Engenharia de Computação na UVA.\nAcabou não dando certo e com dois meses cancelei a matrícula na UVA.\nEm 2011 voltei para Redes desta vez na Fatec/Senac. Estou fascinado pelo curso e pela faculdade. A grade curricular é voltada para o mercado, e bastante atualizada. Você pode ter informações sobre o curso aqui e ver o plano de curso aqui. Antes de fazer a matrícula eu pesquisei bastante sobre as faculdades e a grade deste curso em todas as faculdades do Rio de Janeiro, e o único reconhecido pelo MEC e com uma grade realmente atualizada com o mercado foi este.\nHoje faço Sistemas de Computação pelo Cederj/UFF na modalidade EAD e Redes de Computadores no Senac.\nNão vou entrar em detalhes sobre este assunto de certificação ou faculdade, pois já é muito debatido na internet. A minha opinião é a seguinte:\nEstude, trabalhe e consiga experiência, pois hoje em dia você vai precisar ter faculdade, inglês, certificações e experiência para ter uma carreira de sucesso e ser um profissional diferenciado no mercado. Caso contrátrio, você vai ser apenas mais um “cara de TI”.\nFinalizando Para finalizar, vou citar um texto que me fez refletir sobre a vida e a necessidade de dedicação em tudo que me proponho à fazer:\nDedicação é a capacidade de se entregar à realização de um objetivo.\nNão conheço ninguém que tenha progredido na carreira sem trabalhar pelo menos doze horas por dia nos primeiros anos.\nNão conheço ninguém que conseguiu realizar seu sonho sem sacrificar sábados e domingos pelo menos uma centena de vezes.\nDa mesma forma, se você quiser construir uma relação amiga com seus filhos, terá de se dedicar a isso, superar o cansaço, arrumar tempo para ficar com eles, deixar de lado o orgulho e o comodismo.\nSe quiser um casamento gratificante, terá de investir tempo, energia e sentimentos nesse objetivo. O sucesso é construído à noite! Durante o dia você faz o que todos fazem. Mas, para conseguir um resultado diferente da maioria, você tem de ser especial. Se fizer igual a todo mundo obterá os mesmos resultados.\nNão se compare à maioria, pois, infelizmente, ela não é modelo de sucesso. Se você quiser atingir uma meta especial, terá de estudar no horário em que os outros estão tomando chopp com batatas fritas. Terá de planejar, enquanto os outros permanecem à frente da televisão. Terá de trabalhar, enquanto os outros tomam sol à beira da piscina.\nA realização de um sonho depende da dedicação.\nHá muita gente que espera que o sonho se realize por mágica.\nMas toda mágica é ilusão.\nE ilusão não tira ninguém do lugar onde está… Ilusão é combustível de perdedores…\nRoberto Shinyashiki\nComplementando mais três links interessantes sobre carreira.\nhttp://archive.vp.blog.br/o-que-voce-esta-aprendendo-hoje (Vítor Pellegrino falando sobre aprendizado no trabalho) https://gist.github.com/556029 (Postado por Vinícius Telles. O texto pode parecer mais destinado à quem trabalha com desenvolvimento/software livre. No entanto, se pararmos para analisar, percebe-se que pode ser utilizado em qualquer área, basta criatividade.) http://1up4dev.org/2011/07/enlightenment/ (Plínio Balduino, sobre a necessidade de aprender coisas novas) http://blog.improveit.com.br/articles/2010/05/24/palestra-fuja-da-escravid%C3%A3o-antes-que-ela-te-alcance (Apresentação de Vinícius Telles sobre mudança de vida) Até a próxima galerinha!\n","permalink":"http://ricardomartins.com.br/porque-certificar-se-em-ti/","summary":"\u003cp\u003eSe você parou para ler este texto eu suponho que:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDeseja obter uma certificação\u003c/li\u003e\n\u003cli\u003eEstá tentando entender por que se fala tanto em certificação\u003c/li\u003e\n\u003cli\u003eJá tem esta certificação e está tentando obter um nível mais elevado\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eResolví escrever este texto depois de uma conversa na faculdade. Notei que ainda existe muita gente muito perdida neste mercado das certificações, então vou basear o texto em cima de opiniões pessoais e em estudos feitos na internet sobre o assunto.\u003c/p\u003e","title":"Porque certificar-se em TI?"},{"content":"Neste post vou mostrar como instalar o Windows 8 em um VHD. Usando esse método, você poderá escolher inicializar o computador ecom o seu atual Windows 7 ou com o novo Windows 8, sem necessidade de reinstalar programas, refazer suas configurações e etc no seu Windows 7.\nAlém disso, como o Windows 8 ainda é beta, não é recomendável substituir radicalmente por ele, pois pode ser que muitos dos seus programas ainda sejam incompatíveis com ele. É um método recomandado apenas para você conhecer e descobrir as novas funcionalidades do novo sistema operacional da Microsoft.\nUsando um VHD, você pode instalar o Windows 8 em um único arquivo que ficará armazenado no sistema de arquivos do Windows 7, e depois ao dar o boot no sistema, você poderá escolher inicializar seu sistema operacional existente ou o novo Windows 8 diretamente do VHD (Virtual Hard Disk).\nVocê não estará fazendo uma atualização ou reinstalação. É apenas uma nova instalação do Windows 8 sem que você tenha que se desfazer da sua instalação existente do windows 7. Algumas observações importantes antes de começarmos:\n– Se você estiver usando o BitLocker na sua instalação atual do Windows 7, não crie o VHD do Windows 8 no seu drive criptografado pelo BitLocker. Se todos os seus drives estão criptografados, você não poderá dar o boot pelo VHD. Dar pause na criptografia do Bitlocker também não é uma solução adequada.\n– Se você estiver usando o Windows XP como sistema operacional atual, você não pode inicializar a partir VHD. Este método de dual boot não estará disponível para você. Você só pode (oficialmente) usar isso em um computador rodando Windows 7 ou Windows 2008 R2.\n– Ao criar o VHD, certifique-se que o “tamanho máximo” que você especificou é menor que o tamanho real do seu disco. Por exemplo, se você tiver um disco de 60 GB certifique-se o tamanho Max do VHD é menor que 60GB e não o de 100GB que eu uso no exemplo abaixo.\nVamos começar!\nSe você ainda não tem, baixe aqui o Windows 8 e navegue no site BuildWindows.com.\nNo computador onde você já tem o Windows 7 instalado, dê o boot no sistema pela media do Windows 8 e inicie a instalação. Antes de clicar em “Install Now”, pressione Shift + F10 e o prompt de comandos do WinPE aparecerá.\nNota: Se você deseja dar boot através da USB ao invés de queimar um DVD, você pode usar o WUDT Tool, uma ferramenta sensacional do CodePlex que permite criar um pendrive USB bootável à partir do arquivo ISO.\nAgora é a hora de criar o VHD que será a unidade com o seu Windows 8. Execute o “diskpart” na janela do prompt de comandos, e em seguida os seguintes comandos do diskpart:\nlist disk … Este comando mostra seus discos atachados (anexados) atualmente. Neste exemplo eu tenho apenas um, o Disco 0. select disk 0 … Aqui desejamos usar o disco onde está instalado o sistema operacional atual (Windows 7). Se você tiver mais discos disponíveis, pode usar um número diferente. list vol … Exibir todos os volumes existentes no disco. Instalações existentes do Windows 7 irão geralmente ter um volume de 100MB que é uma partição reservada para o sistema (usada para permitir partições criptografadas com Bitlocker conseguirem dar boot no sistema) e o volume usado pelo SO é bem maior (no caso com 126GB). Neste exemplo você pode ver que o volume com minha instalação do Windows 7 está atualmente atribuída ao drive D (embora normalmente no boot apareça como meu drive C:) create vdisk file=d:Windows8.vhd maximum=100000 type=expandable … Isto cria um VHD Dinâmico que pode crescer até o limite de 100GB na raiz da minha partição do Windows 7. Caso seu HD seja menor que 100GB, confirme que está usando um valor menor que o atual tamanho do seu HD para o parâmetro “maximum”. select vdisk file=d:Windows8.vhd … Aqui selecionamos o VHD que iremos utilizar. Depois de selecionar este vdisk, os seguintes commandos serão aplicados a ele: attach vdisk … O VHD sera montado e o disco estará disponível para o instalador do Windows. exit … Aqui finalizamos as configurações com o diskpart. Todos estes commandos irão se parecer com isso:\nAgora você pode fechar o Prompt de Comandos, voltar ao programa de instalação e clicar em “Install Now”. Quando for questionado onde você deseja instalar o Windows, você irá ver um novo “Disk1” com espaço não alocado. Quando você selecionar este disco, será notificado pelo instalador que o “Windows não pode ser instalado neste disco”, mas o botão “Next” estará habilitado. Se você clicar nele, ele irá realizar a instalação do Windows normalmente.\nAssim que a instalação estiver finalizada e seu computador reiniciar, você verá o “Boot Loader” solicitando para escolher um sistema operacional para inicializar. Então você poderá escolher entre a nova instalação do Windows 8 ou sua instalação já existente do Windows 7. Na primeira vez que esta opção aparecer, você terá 3 segundos para escolher ou ele irá carregar automaticamente o Windows 8 para finalizar a instalação. Nas próximas vezes que reiniciar o computador, você terá 30 segundos para escolher.\nAgora você pode conhecer o Windows 8 em seu hardware nativo, sem necessidade de utilizar ferramentas de virtualização. Você também poderá acessar seus arquivos no HD com o Windows 7. Abra o Windows Explorer e você verá que ele aparece com uma letra de unidade diferente (D: neste caso) e você pode ainda navegar pelos seus arquivos, copiar e modificá-los como quiser.\nObservou que o D: está cheio? Isso ocorre porque o VHD que você criou para o Windows 8 está relatando seu tamanho máximo em vez de seu tamanho real. Quando você inicializar o Windows 7 você verá que o VHD tem realmente apenas cerca de 8GB.\nJá mexeu bastante no Windows 8 e não consegue descobrir como desligar? Passe o mouse sobre o botão iniciar clique com o cursor do mouse no canto inferior esquerdo da tela e um pequeno menu iniciar aparecerá. Clique em Configurações, em seguida, “Power” e escolha “Shut down”\nAgora você pode experimentar o melhor dos dois mundos!\n","permalink":"http://ricardomartins.com.br/criando-um-dual-boot-entre-windows7-e-windows8-usando-vhd/","summary":"\u003cp\u003eNeste post vou mostrar como instalar o Windows 8 em um VHD. Usando esse método, você poderá escolher inicializar o computador ecom o seu atual Windows 7 ou com o novo Windows 8, sem necessidade de reinstalar programas, refazer suas configurações e etc no seu Windows 7.\u003c/p\u003e\n\u003cp\u003eAlém disso, como o Windows 8 ainda é beta, não é recomendável substituir radicalmente por ele, pois pode ser que muitos dos seus programas ainda sejam incompatíveis com ele. É um método recomandado apenas para você conhecer e descobrir as novas funcionalidades do novo sistema operacional da Microsoft.\u003c/p\u003e","title":"Criando um Dual Boot entre Windows 7 e Windows 8 usando VHD"},{"content":"Se você estiver usando o gerenciador de pacotes ou tentando instalar algum problema pelo terminal, pode aparecer a seguinte mensagem de erro:\nE:Encountered a section with no Package: header,\nE:Problem with MergeList /var/lib/apt/lists /br.archive.ubuntu.com\\ubuntu\\dists\\natty\\main\\binary-i386\\Packages,\nE:The package lists or status file could not be parsed or opened.\nIsto irá impossibilitar a instalacão ou atualizacão de qualquer aplicativo no Ubuntu 11.04, no entanto, é fácil resolver este problema,\nNo terminal, rode os seguintes comandos:\nsudo rm /var/lib/apt/lists/* -vf sudo apt-get update Isto irá remover as entradas antigas e realizar o download das novas versões onde o erro não aparece mais.\nScripts sempre são bem vindos, então você poderia criar um script com o seguinte conteúdo:\n#!/bin/bash # Corrigindo erros do apt no Ubuntu echo “Isto ira corrigir os erros relacionados a mergelist” sudo rm /var/lib/apt/lists/* -vf sudo apt-get update Salve como mergelist.sh ou algum outro nome relevante.\nGaranta que sera possivel executar o script:\nchmod a+x mergelist.sh Finalmente execute o script ao invés de ficar digitando comandos:\n./mergelist.sh Nota: Se você já corrigiu o erro, não execute novamente, caso contrário irá limpar as listas que já fez download e baixá-las novamente desnecessariamente.\n","permalink":"http://ricardomartins.com.br/como-corrigir-o-erro-problem-with-mergelist-varlibaptlists-no-ubuntu-11-04/","summary":"\u003cp\u003eSe você estiver usando o gerenciador de pacotes ou tentando instalar algum problema pelo terminal, pode aparecer a seguinte mensagem de erro:\u003c/p\u003e\n\u003cp\u003eE:Encountered a section with no Package: header,\u003c/p\u003e\n\u003cp\u003eE:Problem with MergeList /var/lib/apt/lists /br.archive.ubuntu.com\\ubuntu\\dists\\natty\\main\\binary-i386\\Packages,\u003c/p\u003e\n\u003cp\u003eE:The package lists or status file could not be parsed or opened.\u003c/p\u003e\n\u003cp\u003eIsto irá impossibilitar a instalacão ou atualizacão de qualquer aplicativo no Ubuntu 11.04, no entanto, é fácil resolver este problema,\u003c/p\u003e\n\u003cp\u003eNo terminal, rode os seguintes comandos:\u003c/p\u003e","title":"Como corrigir o erro “Problem with MergeList /var/lib/apt/lists” no Ubuntu 11.04"},{"content":"Aqui no trabalho, dentre outras atividades, trabalhamos dando suporte e criando soluções para profissionais de criação. Sabe este povo criativo que usa Photoshop, 3DMax, After Effects? É uma tarefa divertida e ótima para tornar uma pessoa cartesiana em algo muito mais prático! Não que eu seja cartesiano.\nCom o upgrade para o Windows 7, ganhamos um problema. É que este pessoal criativo, volta e meia precisa instalar novas fontes no Windows. O que antigamente, no Windows XP era simples, bastava que concedesse-mos permissões de Modificar para o grupo de usuários respectivo e eles mesmo instalavam as fontes sem a necessidade de nossa intervenção.\nJá no Windows 7, não é tão simples assim, já que a aba de Segurança sequer aparece na pasta de Fontes do Windows. Porém agora isto já não é mais um problema, pois recentemente, depois de muita pesquisa, descobrimos como fazer para liberar a pasta de fontes para os usuários, e agora não precisam mais nos acionar toda vez que querem instalar uma fonte nova instalada.\nVamos então ao que interessa:\nPrimeiro, desabilitar o UAC:\nControl Panel \u0026gt; User Accounts \u0026gt; Change User Account Control Settings, selecionar “Nunca Notificar”\nDepois liberar acesso ao diretório fontes:\nAbra o prompt de comando com privilégios de administrador (clique com o botão direito do mouse, executar como administrador) Digite “attrib –r –s c:WindowsFonts” (sem aspas), tecle Enter Clique com o botão direito do mouse na pasta Fonts e escolha propriedades Clique na aba segurança Clique em avançado Clique na aba proprietário Clique em editar Altere o proprietário atual para o administrador Marque a opção para substituir proprietário em subcontainers e objetos Clique em ok. Agora liberar chave do registro\nExecute o regedit Procure pela chave: HKEY_LOCAL_MACHINESOFTWAREMICROSOFTWINDOWS NTCURRENT VERSIONFONTS Clique com o botão direito em cima de Fonts, permissões e em seguida dar permissões de controle total para o grupo “usuários” Reinicie o computador e agora sera possível definir as permissões NTFS concedendo as permissões de “modificar” para o grupo usuários em C:WindowsFonts. Isto irá permitir que usuários restritos instalem fontes.\nAté a próxima.\n","permalink":"http://ricardomartins.com.br/liberar-instalacao-de-fontes-pelos-usuarios-no-windows-7/","summary":"\u003cp\u003eAqui no trabalho, dentre outras atividades, trabalhamos dando suporte e criando soluções para profissionais de criação. Sabe este povo criativo que usa Photoshop, 3DMax, After Effects? É uma tarefa divertida e ótima para tornar uma pessoa cartesiana em algo muito mais prático! Não que eu seja cartesiano.\u003c/p\u003e\n\u003cp\u003eCom o upgrade para o Windows 7, ganhamos um problema. É que este pessoal criativo, volta e meia precisa instalar novas fontes no Windows. O que antigamente, no Windows XP era simples, bastava que concedesse-mos permissões de Modificar para o grupo de usuários respectivo e eles mesmo instalavam as fontes sem a necessidade de nossa intervenção.\u003c/p\u003e","title":"Liberar instalação de fontes pelos usuários no Windows 7"},{"content":"Todos nós, administradores de sistema, temos problemas com arquivos de log lotando o disco rígido. Mas agora você vai poder determinar que os arquivos com mais de X dias sejam deletados do seu sistema de forma simples.\nEstou falando de uma ferramenta simples e gratuita da Microsoft, incluída em algumas versões do Windows chamada “Forfiles”\nO Forfiles irá executar comandos em arquivos e pastas que correspontam à determinados critérios. Ele permite que você defina curingas, escolha apenas pastas, apenas arquivos, e o mais importante é que ele permite que você especifique algo como “Eu só quero os arquivos que tem mais de um dia de idade”\nPrimeiro, deixe-me mostrar os possíveis argumentos dele:\n/P Path Name: Indica o path para iniciar a busca. A pasta padrão é a pasta de trabalho atual.\n/M Search Mask: Pesquisa arquivos de acordo com uma máscara de busca. A máscara de pesquisa padrão é “*”\n/S SubDirectories: Orienta o Forfiles a fazer uma busca recursiva em sub-diretórios. Similar ao comando “dir /s” do DOS.\n/C Command: Indica o comando à ser executado para cada arquivo. Cadeias de comandos devem ser inseridas em aspas duplas.\nAs seguintes variáveis podem ser utilizadas na cadeia de comandos:\n@File – retorna o nome do arquivo.\n@Fname – retorna o nome do arquivo sem extensão.\n@Ext – retorna apenas a extensão do arquivo.\n@Path – retorna o caminho completo do arquivo.\n@Relpath – retorna o caminho relativo do arquivo.\n@Isdir – retorna “TRUE” se um tipo de arquivo é um diretório, e “falso” para arquivos.\n@Fsize – retorna o tamanho do arquivo em bytes.\n@Fdate – retorna a data da última modificação do arquivo.\n@Ftime – retorna o tempo da última modificação do arquivo.\nPara incluir caracteres especiais na linha de comando, use o código hexadecimal para o caracter no formato 0xHH (ex.: 0x09 para um tab).\nComandos cmd.exe internos devem ser precedidos de “cmd c /”.\n/D data seleciona arquivos em que a data da última modificação foram maior ou igual a (+), ou menor ou igual a (-), à data especificada usando o formato “yyyy/MM/dd”, ou seleciona arquivos com a data da última modificação seja maior ou igual a (+) data atual mais “dd” dias, ou menor ou igual a (-) data atual menos “dd” dias. São válidos quaisquer números “dd” no intervalo de 0 à 32768. O “+” é tomado como sinal padrão se não especificado.\nLegal, então vamos ao que interessa:\nVamos começar com o caminho. Queremos que ele procure em c:windowstemp\nforfiles -p \u0026#34;c:windowstemp\u0026#34; Quero incluir subpastas:\nforfiles -p \u0026#34;c:windowstemp\u0026#34; -s Usando a opção de data, eu quero qualquer coisa com mais de um dia de idade:\nforfiles -p \u0026#34;c:windowstemp\u0026#34; -s -d -1 Eu só quero apagar os arquivos que terminam com .tmp:\nforfiles -p \u0026#34;c:windowstemp\u0026#34; -s -d -1 -m *.tmp E, finalmente, o comando que desejo executar nos arquivos encontrados, no caso é o DEL:\nforfiles -p \u0026#34;c:windowstemp\u0026#34; -s -d -1 -m *.tmp -c \u0026#34;cmd /c del /f /q @path\u0026#34; Observe o uso da variável @path – é uma das muitas variáveis que o Forfiles reconhece.\nEntão é isso – uma linha de comando que vai apagar arquivos da nossa pasta temp com mais de 1 dia de idade:\nforfiles -p \u0026#34;c:windowstemp\u0026#34; -s -d -1 -m *.tmp -c \u0026#34;cmd /c del /f /q @path\u0026#34; E pronto! Agora é só você criar uma tarefa agendada para rodar o comando acima uma vez por semana.\nSe sua cópia do Windows não tem o Forfiles, você pode baixá-lo a partir do servidor FTP da Microsoft aqui:\nftp://ftp.microsoft.com/ResKit/y2kfix/x86/\nEstou realmente impressionado com este pequeno utilitário e as suas infinitas possibilidades.\nApenas para deixar vocês informados:\nAcredito que essas versões do Windows possuem por padrão:\nWindows 2003\nWindows 2008\nWindows Vista\nWindows 7\nEssas versões não:\nWindows 2000\nWindows XP\nEspero que ajude.\n","permalink":"http://ricardomartins.com.br/exluir-arquivos-com-mais-de-x-dias-de-idade/","summary":"\u003cp\u003eTodos nós, administradores de sistema, temos problemas com arquivos de log lotando o disco rígido. Mas agora você vai poder determinar que os arquivos com mais de X dias sejam deletados do seu sistema de forma simples.\u003c/p\u003e\n\u003cp\u003eEstou falando de uma ferramenta simples e gratuita da Microsoft, incluída em algumas versões do Windows chamada “Forfiles”\u003c/p\u003e\n\u003cp\u003eO Forfiles irá executar comandos em arquivos e pastas que correspontam à determinados critérios. Ele permite que você defina curingas, escolha apenas pastas, apenas arquivos, e o mais importante é que ele permite que você especifique algo como “Eu só quero os arquivos que tem mais de um dia de idade”\u003c/p\u003e","title":"Exluir arquivos com mais de X dias de idade"},{"content":"Empresas de recrutamento e outros especialistas em carreira costumam ter na ponta da língua uma lista de conselhos de como preparar um bom currículo, especialmente para diferenciar-se da concorrência. A intenção é válida, mas o problema nesses casos está no fato de que nem sempre os conselhos se aplicam aos profissionais de TI e à natureza do trabalho do setor, analisa a gerente da Sapphire Technologies – empresa de recrutamento na área de tecnologia da informação –, Shana Westerman. A especialista avalia que os currículos de TI se diferenciam de outros segmentos porque os profissionais precisam comunicar uma série de conhecimentos, técnicos e operacionais. “Como a tecnologia muda muito rapidamente e o trabalho em TI é bastante baseado em projetos, apresentações genéricas podem acabar sendo um ‘desserviço’ para o profissional”, alerta Shana.\nEla conta que hoje recebe, em média, 300 currículos por dia de pessoas interessadas em trabalhar com tecnologia da informação. A gerente da Sapphire faz uma triagem desse material para enviar aos seus clientes, que são gerentes de TI e executivos de grandes e médias empresas interessados em contratar profissionais.\nShana analisa que muitos dos currículos de TI que recebe são curtos demais para que ela analise se as competências dos profissionais se encaixam nas necessidades das vagas que precisam ser preenchidas. “As pessoas não serão convidadas para um encontro com um possível empregador se não demonstrarem que estão aptas para isso. O currículo é a única ferramenta que leva as pessoas para a entrevista de emprego”, alerta.\nA seguir, a especialista elenca os quatro grandes equívocos que os profissionais precisam evitar na hora de preparar um bom currículo em TI:\n1. Tamanho certo Na visão de Sarah os currículos de TI são muito influenciados pela natureza complexa das tarefas do que por um diferencial competitivo no mercado. Ela acredita que a recente crise e a necessidade dos profissionais incorporarem múltiplas tarefas tem modificado a natureza do que as empresas buscam em um candidato.\nOs potenciais empregadores não estão interessados em documentos de apresentação muito curtos, como costumam aconselhar as consultorias em gestão. “Eles querem detalhes. O que significa ter um currículo com três ou mais páginas”, pontua a especialista. As informações precisam contemplar com quais tecnologias o profissional já atuou, o tamanho e o escopo dos projetos com os quais já lidaram e quais as principais habilidades.\n“Eles [os contratantes] querem ver, de forma clara, se as pessoas têm os conhecimentos necessários, a partir de coisas que esses profissionais já fizeram no passado”, elenca a especialista.\nOutra razão pela qual um currículo de uma ou duas páginas nem sempre funciona para profissionais de TI é porque as funções são bastante complexas e as pessoas costumam atuar em múltiplas tarefas.\n“Se a pessoa tem cinco ou mais anos em TI, em especial no caso de técnicos, é perfeitamente normal que o documento tenha três, quatro ou até cinco páginas”, informa.\n2. Reforce competências Especialistas em recolocação profissional costumam indicar que quem busca um emprego deve evitar informações repetidas no currículo, como forma de ganhar espaço. Isso é uma má ideia, alerta Shana. Segundo ela, os interessados em contratar alguém costumam verificar se a pessoa teve uma experiência profunda com tecnologias ou temas específicos.\n“Se alguém busca um profissional com conhecimento em gestão do orçamento e só vê esse tema tratado em uma ou duas partes do currículo, pode considerar que falta capacitação nessa área”, considera a especialista.\n3. Uso de cargos\nAs consultorias que ajudam na recolocação de profissionais recomendam que quem busca um emprego utilize cargos exatos no currículo. A executiva discorda desse conselho. Para ela, na área de TI, muitas vezes o nome do cargo não corresponde às atribuições, por isso, é importante detalhá-las.\nComo exemplo, ela diz que algumas instituições bancária dão o cargo de vice-presidente (VP) para profissionais que cuidam da gestão de projetos ou de políticas, em vez de restringir o título apenas a posições executivas. “Se você tem a experiência como VP em seu currículo, mas está se candidatando a uma vaga de gestor de projeto, o possível contratante pode colocá-lo automaticamente fora do processo, achando que você é muito sênior para a posição”, exemplifica Shana.\nO truque para explicar um cargo é ser claro. Ou seja, o profissional deve descrever exatamente suas funções anteriores, até para que isso seja confirmado por pessoas que sejam procuradas para dar referências.\n4. Diagramação adequada Alguns especialistas em contratação recomendam que as pessoas incluam cores e elementos gráficos – como um logotipo ou uma foto – no currículo. O objetivo é fazer com que o documento se destaque entre os demais.\nA gerente da Sapphire ressalta que nem sempre um currículo ‘enfeitado’ vai atrair um possível empregador, pelo contrário. “As pessoas só querem um documento que seja fácil de ler”, adverte.\nFonte: ","permalink":"http://ricardomartins.com.br/o-que-diferencia-um-bom-curriculo-em-ti/","summary":"\u003cdiv\u003eEmpresas de recrutamento e outros especialistas em carreira costumam ter na ponta da língua uma lista de conselhos de como preparar um bom currículo, especialmente para diferenciar-se da concorrência. A intenção é válida, mas o problema nesses casos está no fato de que nem sempre os conselhos se aplicam aos profissionais de TI e à natureza do trabalho do setor, analisa a gerente da Sapphire Technologies – empresa de recrutamento na área de tecnologia da informação –, Shana Westerman.\n\u003cp\u003eA especialista avalia que os currículos de TI se diferenciam de outros segmentos porque os profissionais precisam comunicar uma série de conhecimentos, técnicos e operacionais. “Como a tecnologia muda muito rapidamente e o trabalho em TI é bastante baseado em projetos, apresentações genéricas podem acabar sendo um ‘desserviço’ para o profissional”, alerta Shana.\u003c/p\u003e","title":"O que diferencia um bom currículo em TI?"},{"content":"Outro bizu interessante que encontrei no MenteBinária. Trata-se de um pequeno utilitário criado em VBScript para proteger seu pendrive contra vírus, worms e outras pragas.\nRecursos:\n– Não precisa de instalação.\n– Desabilita auto-reprodução em unidades removíves, com excessão de CDs e DVDs.\n– Antivírus integrado que detecta e remove indícios de vírus em mídias removíveis.\n– Log detalhado de ações.\n– Checagem por novas versões automática, pela web.\n– Permite voltar a qualquer momento para o estado anterior do sistema (sem a proteção do USBForce instalada).\n– Software livre, licenciado sob a GPL.\nDownload: http://superd.com.br/75456\nPágina do projeto: http://sourceforge.net/projects/usbforce\n","permalink":"http://ricardomartins.com.br/proteja-seu-pendrive/","summary":"\u003cp\u003eOutro bizu interessante que encontrei no \u003ca href=\"http://www.mentebinaria.com.br/\"\u003eMenteBinária\u003c/a\u003e. Trata-se de um pequeno utilitário criado em VBScript para proteger seu pendrive contra vírus, worms e outras pragas.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.ricardomartins.com.br/wp-content/uploads/2011/01/usbforce.png\"\u003e\u003cimg loading=\"lazy\" src=\"http://www.ricardomartins.com.br/wp-content/uploads/2011/01/usbforce.png\" title=\"usbforce\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eRecursos:\u003c/p\u003e\n\u003cp\u003e– Não precisa de instalação.\u003cbr\u003e\n– Desabilita auto-reprodução em unidades removíves, com excessão de CDs e DVDs.\u003cbr\u003e\n– Antivírus integrado que detecta e remove indícios de vírus em mídias removíveis.\u003cbr\u003e\n– Log detalhado de ações.\u003cbr\u003e\n– Checagem por novas versões automática, pela web.\u003cbr\u003e\n– Permite voltar a qualquer momento para o estado anterior do sistema (sem a proteção do USBForce instalada).\u003cbr\u003e\n– Software livre, licenciado sob a GPL.\u003c/p\u003e","title":"Proteja seu pendrive"},{"content":"Essa dica é do Fernando Mercês do MenteBinária, um site bem interessante que encontrei na lista de pessoas que estão ajudando a promover o Hack’n Rio\nAbaixo o primeiro parágrafo do post original. O restante você pode acompanhar no site do autor.\nA virtualização tornou-se indispensável em ambientes de testes e é emprega em ambientes de produção, principalmente para servidores virtuais, segurança e outras áreas. Neste artigo vamos ver como criar um servidor de máquinas virtuais, uma máquina dedicada com o Debian GNU/Linux que armazenará todas as máquinas virtuais e terá um servidor que poderá receber conexões de qualquer máquina da rede para que os usuários compartilhem as máquinas virtuais existentes. Este tipo de servidor é muito útil em ambientes de testes, para o departamento técnico, para testes pré-venda ou mesmo para conhecer alguns produtos. E o melhor: o custo do projeto é zero! São usados somente softwares gratuitos com o um sistema operacional 100% GNU (open source).\nContinue lendono site do autor clicando aqui\n","permalink":"http://ricardomartins.com.br/servidor-de-maquinas-virtuais-com-linux/","summary":"\u003cp\u003eEssa dica é do Fernando Mercês do \u003ca href=\"http://www.mentebinaria.com.br/\"\u003eMenteBinária\u003c/a\u003e, um site bem interessante que encontrei na lista de pessoas que estão ajudando a promover o \u003ca href=\"http://hacknrio.org/\"\u003eHack’n Rio\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAbaixo o primeiro parágrafo do post original. O restante você pode acompanhar no site do autor.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eA virtualização tornou-se indispensável em ambientes de testes e é emprega em ambientes de produção, principalmente para servidores virtuais, segurança e outras áreas. Neste artigo vamos ver como criar um servidor de máquinas virtuais, uma máquina dedicada com o Debian GNU/Linux que armazenará todas as máquinas virtuais e terá um servidor que poderá receber conexões de qualquer máquina da rede para que os usuários compartilhem as máquinas virtuais existentes. Este tipo de servidor é muito útil em ambientes de testes, para o departamento técnico, para testes pré-venda ou mesmo para conhecer alguns produtos. E o melhor: o custo do projeto é zero! São usados somente softwares gratuitos com o um sistema operacional 100% GNU (open source).\u003c/p\u003e","title":"Servidor de máquinas virtuais com Linux"},{"content":"Pra quem anda se preparando para as provas 70-680 e 70-685, segue uma ótima notícia. Pra quem não sabe a CBT Nuggets vende diversas vídeo aulas, com material para diversos exames de certificação.\nEu dei uma procurada por material do CBT Nuggets para as provas 70-680 e 70-685 e encontrei o mesmo material contido em:\nMCITP: Microsoft Windows 7, Enterprise Desktop Support Technician\nhttp://www.cbtnuggets.com/series?id=1067\nNos seguintes links:\n70-680:\nhttp://shytex.net/video-training/cbt-nuggets-microsoft-70680-windows-7-configuration.html\n70-685:\nhttp://www.netbks.info/operating-system/pro-windows-7-enterprise-desktop-support-technician_40913.html\nNão perca tempo! Faça o download, estude e pode marcar a prova tranquilo!\n","permalink":"http://ricardomartins.com.br/material-70-680-e-70-685/","summary":"\u003cp\u003ePra quem anda se preparando para as provas 70-680 e 70-685, segue uma ótima notícia. Pra quem não sabe a CBT Nuggets vende diversas vídeo aulas, com material para diversos exames de certificação.\u003c/p\u003e\n\u003cp\u003eEu dei uma procurada por material do CBT Nuggets para as provas 70-680 e 70-685 e encontrei o mesmo material contido em:\u003c/p\u003e\n\u003cp\u003eMCITP: Microsoft Windows 7, Enterprise Desktop Support Technician\u003cbr\u003e\n\u003ca href=\"http://www.cbtnuggets.com/series?id=1067\"\u003ehttp://www.cbtnuggets.com/series?id=1067\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNos seguintes links:\u003c/p\u003e\n\u003cp\u003e70-680:\u003cbr\u003e\n\u003ca href=\"http://shytex.net/video-training/cbt-nuggets-microsoft-70680-windows-7-configuration.html\"\u003ehttp://shytex.net/video-training/cbt-nuggets-microsoft-70680-windows-7-configuration.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e70-685:\u003cbr\u003e\n\u003ca href=\"http://www.netbks.info/operating-system/pro-windows-7-enterprise-desktop-support-technician_40913.html\"\u003ehttp://www.netbks.info/operating-system/pro-windows-7-enterprise-desktop-support-technician_40913.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNão perca tempo! Faça o download, estude e pode marcar a prova tranquilo!\u003c/p\u003e","title":"Material 70-680 e 70-685"},{"content":"Está disponível no link www.citrix.com/ccsp o treinamento CCSP 2011 gratuito. Basta acessar o link, fazer o cadastro e assistir as aulas.\nAbaixo os módulos do treinamento:\nCSP-004-1W CCSP 2011: Citrix Virtual Computing\nCSP-005-1W CCSP 2011: Citrix Desktop Virtualization Solutions\nCSP-006-1W CCSP 2011: Citrix Server Virtualization Solutions\nCSP-007-1W CCSP 2011: Citrix Application Networking Solutions\nEstá esperando o quê ? Confira!\n","permalink":"http://ricardomartins.com.br/treinamento-citrix-ccsp-2011-gratuito/","summary":"\u003cp\u003eEstá disponível no link \u003ca href=\"http://www.citrix.com/ccsp\"\u003ewww.citrix.com/ccsp\u003c/a\u003e o treinamento CCSP 2011 gratuito. Basta acessar o link, fazer o cadastro e assistir as aulas.\u003cbr\u003e\nAbaixo os módulos do treinamento:\u003c/p\u003e\n\u003cp\u003eCSP-004-1W CCSP 2011: Citrix Virtual Computing\u003cbr\u003e\nCSP-005-1W CCSP 2011: Citrix Desktop Virtualization Solutions\u003cbr\u003e\nCSP-006-1W CCSP 2011: Citrix Server Virtualization Solutions\u003cbr\u003e\nCSP-007-1W CCSP 2011: Citrix Application Networking Solutions\u003c/p\u003e\n\u003cp\u003eEstá esperando o quê ? Confira!\u003c/p\u003e","title":"Treinamento Citrix CCSP 2011 gratuito"},{"content":"Aproveitando o post de ontem sobre como instalar o PHP no Windows, resolvi testar e fazer um post com o passo-a-passo para instalar o WordPress no Windows.\nPrimeiro faça o download do Microsoft Web Platform Installer 2.0 em http://www.microsoft.com/web/downloads/platform.aspx.\nAo executar, será exibida a tela abaixo:\n* Clique nas imagens para ampliar.\nDepois de alguns instantes, o conteúdo será carregado:\nComo podem notar, é possível realizar a instalação de diversas ferramentas para blogs, comércio eletrônico, fóruns e wikis, como WordPress, Joomla, Moodle, PhpBB, Drupal, etc. No caso, escolha o Wordpress.\nEm seguida, o sistema irá informar que para instalar o WordPress, será necessáro instalar alguns componentes adicionais:\nAceite a instalação destes requisitos (dentre eles o MySQL e o PHP) e em seguida defina uma senha para o MySQL:\nEm seguida será realizado o download dos componentes necessários\nO próximo passo é definir como será a configuração do WordPress no IIS. São informações como link, nome, onde ficarão os arquivos do site, ip e porta que irão responder pelo site.\nAqui define-se o banco de dados à ser usado, a senha de administrador do banco de dados, e as informações de login/senha da base de dados do WordPress\nTerminadas estas configurações, será exibido o resumo acima, informando quais componentes foram baixados e instalados.\nAgora vamos conferir como ficou a configuração no IIS 7. Execute inetmgr e verifique como ficou\nAgora acesse http://localhost/wordpress (Se você configurou o link da mesma forma que aqui). Neste primeiro acesso, você irá definir o título do site, o nome, e-mail e senha do usuário administrador do WordPress.\nAo término clique em “Install WordPress” para terminar a configuração.\nConcluída a configuração, clique em “Log In” para acessar o sistema utilizando as credenciais escolhidas. Você será redirecionado para o endereço http://localhost/wordpress/wp-login.php, que é o endereço que terá que utilizar sempre que for acessar a console de adminsitração do WordPress.\nUma vez logado no sistema, pronto, você já pode começar a postar e usar sua critatividade para customizar seu blog.\nE para acessar o site, acesse http://localhost/wordpress e confira como ficou:\nPor hoje é isso!\n","permalink":"http://ricardomartins.com.br/como-instalar-o-wordpress-no-windows/","summary":"\u003cp\u003eAproveitando o post de ontem sobre como instalar o PHP no Windows, resolvi testar e fazer um post com o passo-a-passo para instalar o WordPress no Windows.\u003c/p\u003e\n\u003cp\u003ePrimeiro faça o download do Microsoft Web Platform Installer 2.0 em \u003ca href=\"http://www.microsoft.com/web/downloads/platform.aspx\"\u003ehttp://www.microsoft.com/web/downloads/platform.aspx\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eAo executar, será exibida a tela abaixo:\u003c/p\u003e\n\u003cp\u003e* Clique nas imagens para ampliar.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2011/01/1.png\"\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2011/01/1.png\" title=\"1\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eDepois de alguns instantes, o conteúdo será carregado:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2011/01/2.png\"\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2011/01/2.png\" title=\"2\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComo podem notar, é possível realizar a instalação de diversas ferramentas para blogs, comércio eletrônico, fóruns e wikis, como WordPress, Joomla, Moodle, PhpBB, Drupal, etc. No caso, escolha o Wordpress.\u003c/p\u003e","title":"Como instalar o WordPress no Windows"},{"content":"Olá pessoas!\nHoje estive visitando o blog do Igor Humberto e encontrei uma dica bastante interessante: Como instalar o PHP no Windows.\nPara aqueles que ainda acreditam que instalar PHP no Windows Seja uma tarefa complicada, fica a informação de que isso já aconteceu algum dia. Depois que lançaram o Windows Platform Installer (para informações e download, clique aqui) essa tarefa tornou-se bastante simples. Com alguns cliques tudo o que é necessário para rodar o PHP no seu sistema (entre outras coisas tais como Joomla e WordPress, por exemplo) será instalado. Não precisa nem saber como colocar o IIS no computador, pois a aplicação já faz tudo isso para você, adicionando apenas os componentes de servidor necessários para isso.\nPara ler o post completo, acesse o link: http://sobitsnamente.wordpress.com/2010/12/24/php-no-windows-server/\n","permalink":"http://ricardomartins.com.br/como-instalar-o-php-no-windows/","summary":"\u003cp\u003eOlá pessoas!\u003c/p\u003e\n\u003cp\u003eHoje estive visitando o blog do Igor Humberto e encontrei uma dica bastante interessante: Como instalar o PHP no Windows.\u003c/p\u003e\n\u003cp\u003ePara aqueles que ainda acreditam que instalar PHP no Windows Seja uma tarefa complicada, fica a informação de que isso já aconteceu algum dia. Depois que lançaram o Windows Platform Installer (para informações e download, clique \u003ca href=\"http://www.microsoft.com/web/downloads/platform.aspx\"\u003eaqui\u003c/a\u003e) essa tarefa tornou-se bastante simples. Com alguns cliques tudo o que é necessário para rodar o PHP no seu sistema (entre outras coisas tais como Joomla e WordPress, por exemplo) será instalado. Não precisa nem saber como colocar o IIS no computador, pois a aplicação já faz tudo isso para você, adicionando apenas os componentes de servidor necessários para isso.\u003c/p\u003e","title":"Como instalar o PHP no Windows"},{"content":"Hoje eu visitei o site de um xará… Seu nome? Ricardo Martins. Isso mesmo! Ele é desenvolvedor e trabalha com desenvolvimento web e seo. O cara parece ser legal e o site dele é muito interessante, confira em http://ricardomartins.info\nLá eu lí um texto, que gostei bastante então vou transcrever aqui. Esse texto, ele retirou de um e-mail do Quebra-Tudo, um newsletter periódico da Biz Revolution – outro site que eu não conhecia e gostei bastante.\nO texto mostra aspectos interessantes da Geração Y e 6 requisitos que uma empresa precisa ter para atraí-los. Confira:\nPrimeiro Parágrafo: O funcionário pode demitir o chefe. Ok, eu aceito trabalhar na sua empresa. Mas, se o meu chefe não for excelente o suficiente para me liderar eu quero ter a liberdade para falar com alguém sobre como trocar de chefe. A geração de jovens da BASF está acostumada a ter as situações modificadas para atender as suas vontades (controle remoto, celular, internet, cartão de crédito, diferentes rodas de amigos etc). Você pode achar isso errado, mas eu acho isso bacana. Por que aceitar as coisas como sempre foram? Por que? Por que? Por que?\nA pergunta que não quer calar é: COMO É POSSÍVEL UM PAÍS EM DESENVOLVIMENTO COMO O BRASIL NÃO TER TRABALHO PARA TODAS AS PESSOAS?\nComo pode???!!! Como pode um lugar que não tem escolas, não tem empresas, não tem estradas, não tem hospitais, não tem faculdades, não tem teatros e cinemas, não tem parques, não tem campos de futebol o suficiente para TODAS as pessoas NÃO TER EMPREGO PARA TODAS AS PESSOAS????\nSomos ou não somos MUITO RUINS???\nEu quero mudanças, MUDANÇAS REAIS!!\nSegundo Parágrafo: Ninguém precisa ficar mais que 8 horas por dia em um escritório. Ok, eu aceito trabalhar na sua empresa. Mas, quantas horas exatamente de trabalho você precisa de mim? Eu trabalho muito mais rápido do que as gerações anteriores. Se você me der diretrizes claras eu vou fazer o meu trabalho no tempo que tem que ser feito sem perturbar ninguém. A geração BASF adora trabalhar, mas sabe que consegue realizar a maioria das suas funções do conforto da sua casa, ou de uma Starbucks.\nA coisa mais imbecil que alguém pode estar fazendo nesse momento é torrando milhões de reais com o aluguel ou compra de escritórios sofisticadíssimos em algum ponto ultra valorizado da cidade.\nEssa compra é boa apenas para a elite da cidade que está faturando uma grana federal em cima de alguns executivos boçais que precisam de status para se manter no cargo.\nTerceiro Parágrafo: A Facebook é tão importante quanto o meu salário. Ok, eu aceito trabalhar na sua empresa. Mas, se você proibir o acesso a Facebook, Orkut, Blogs, G-Mail, YouTube, Twitter ou qualquer mídia social eu peço demissão. Os velhos caquéticos não conseguem entender o que existe de tão interessante nas mídias sociais. Para a geração BASF checar as últimas atualizações da Facebook é a mesma coisa que checar os recados na caixa postal da sua secretária eletrônica. Ok, fique para trás. Desculpe. A geração BASF entende que as mídias sociais são uma excelente maneira de fazer networking, aprender, descobrir insights, vender, fazer negócios e prosperar.\nQuarto Parágrafo: O meu Salário é tão importante quanto o meu Trabalho. Ok, eu aceito trabalhar na sua empresa. Mas, não me venha com vídeos e palestras motivacionais imbecis para me iludir quando não puder me pagar bem. Eu quero liberdade para cobrar um aumento de salário quando eu sentir que mereço. A geração BASF se sente completamente a vontade em cobrar o que lhe é devido. Essa geração quer VENCER, não quer enrolação. Chega desse papo furado de “Brasil País do Futuro”, se você não brigou por um país melhor para você e para a sua geração o problema é seu. Eu quero mudanças.\nQuinto Parágrafo: Eu quero estudar no horário de Trabalho. Ok, eu aceito trabalhar na sua empresa. Mas, eu quero ter a autonomia de formar grupos de trabalho para estudar como seremos mais inovadores e responsáveis dentro do horário de trabalho. A faculdade não vai resolver o problema da empresa. A Geração BASF sabe que tem que continuar a estudar a vida inteira, e praticar o que aprende. Funcionários lendo livros e estudando manuais da empresa em pleno horário de trabalho parece doideira para muitos velhos obsoletos que circulam por aí, mas faz todo o sentido para a geração BASF.\nMuitos não entendem isso, mas VENCER é sobre estudar o ambiente em que estamos vivendo a aplicar o que aprendemos imediatamente.\nSexto Parágrafo: Eu quero o meu Mestre Jedi! Ok, eu aceito trabalhar na sua empresa. Mas, eu quero saber quem será o guru que irá me bater, me colocar no eixo, fornecer feedbacks, apertar o meu calo, torcer o meu pescoço quando eu precisar. Eu não preciso de motivação, eu preciso de direção! Eu quero um Coach! Eu quero alguém para me orientar. Eu quero alguém que realmente se importa com o crescimento das pessoas. Essa geração não aceita autoridade por autoridade, mas respeita quem demonstra conhecimento, assertividade e incrível vontade de ENSINAR e VENCER. Relatórios Anuais de Desempenho ou Feedback 360 graus é para imbecil. A geração BASF quer feedback TODOS OS DIAS. A geração BASF está acostumada com paparicação todos os dias. Seja na Facebook, Orkut, Twitter etc, a geração atual quer interação e feedacks imediatos.\nNão seja envergonhado, saia de trás da sua mesa caquética de mogno envelhecido e entre na conversa.\nLeia o artigo completo aqui.\nO texto transcrito acabou aqui, mas se você gostou do texto e se interessou pelo assunto “Geração Y”, confira esse site: http://www.minhacarreira.com/\nSobre carreiras, TI e empreendedorismo conheça http://www.tribodomouse.com.br/ , http://www.saiadolugar.com.br/ e http://www.tiredopapel.com.br/\nE aproveitando o assunto “Carreira”, você precisa ler os textos abaixo:\nhttps://gist.github.com/556029 – Um tweet do Vinícius Teles (@viniciusteles)\nhttp://vp.blog.br/o-que-voce-esta-aprendendo-hoje – Excelente texto de Vítor Pellegrino\nhttp://1up4dev.org/2011/02/pare-de-chorar-e-mexa-se/ – Post de Plínio Balduino\nAbraços!\n","permalink":"http://ricardomartins.com.br/atraindo-talentos-da-geracao-y-para-sua-empresa/","summary":"\u003cp\u003eHoje eu visitei o site de um xará… Seu nome? Ricardo Martins. Isso mesmo! Ele é desenvolvedor e trabalha com desenvolvimento web e seo. O cara parece ser legal e o site dele é muito interessante, confira em \u003ca href=\"http://ricardomartins.info\"\u003ehttp://ricardomartins.info\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eLá eu lí um texto, que gostei bastante então vou transcrever aqui. Esse texto, ele retirou de um e-mail do \u003ca href=\"http://www.bizrevolution.com.br/participe.html\"\u003eQuebra-Tudo\u003c/a\u003e, um newsletter periódico da \u003ca href=\"http://www.bizrevolution.com.br/\"\u003eBiz Revolution\u003c/a\u003e – outro site que eu não conhecia e gostei bastante.\u003c/p\u003e","title":"Atraindo talentos da Geração Y para sua empresa"},{"content":"Hoje eu descobrí dois sites bem bacanas para download de material relacionado à estudos e certificação, além de centenas de livros para download. Se você se interessa pelo assunto, vale a pena conferir. Acesse: http://www.netbks.info/ e http://shytex.net/\n","permalink":"http://ricardomartins.com.br/2327/","summary":"\u003cp\u003eHoje eu descobrí dois sites bem bacanas para download de material relacionado à estudos e certificação, além de centenas de livros para download. Se você se interessa pelo assunto, vale a pena conferir. Acesse: \u003ca href=\"http://www.netbks.info/\"\u003ehttp://www.netbks.info/\u003c/a\u003e e \u003ca href=\"http://shytex.net/\"\u003ehttp://shytex.net/\u003c/a\u003e\u003c/p\u003e","title":"Material de estudo e certificação"},{"content":"As expressões regulares são uma daquelas coisas que são incrivelmente poderosas … se você souber como usá-las.\nElas tomam um pouco de tempo até você aprender os meandros de como elas funcionam, mas quando você pega o jeito, quase sempre há alguma variação que pode ser usada em linguagens de programação diferentes.\nExistem alguns programas que tentam dar uma mão na criação de expressões regulares, mas geralmente são pagos. O RegExr está tentando resolver esse problema. É um software para criar expressões regulares gratuito e on-line, que mostra os resultados de sua expressão regular em tempo real.\nConfira em http://gskinner.com/RegExr/\n","permalink":"http://ricardomartins.com.br/crie-e-teste-suas-expressoes-regulares-online/","summary":"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2010/12/regular-expressions.png\"\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2010/12/regular-expressions.png\" title=\"regular-expressions\"\u003e\u003c/a\u003eAs expressões regulares são uma daquelas coisas que são incrivelmente poderosas … se você souber como usá-las.\u003c/p\u003e\n\u003cp\u003eElas tomam um pouco de tempo até você aprender os meandros de como elas funcionam, mas quando você pega o jeito, quase sempre há alguma variação que pode ser usada em linguagens de programação diferentes.\u003c/p\u003e\n\u003cp\u003eExistem alguns programas que tentam dar uma mão na criação de expressões regulares, mas geralmente são pagos. O RegExr está tentando resolver esse problema. É um software para criar expressões regulares gratuito e on-line, que mostra os resultados de sua expressão regular em tempo real.\u003c/p\u003e","title":"Crie e teste suas expressões regulares online!"},{"content":"Hoje estive lendo o blog do Anahuac e encontrei um “nerdômetro”. Resolví fazer o teste. Veja abaixo o meu resultado:\nConfesso que não imaginei que fosse tanto…\nClique e descubra você também seu nível de nerdice…rsrs\n","permalink":"http://ricardomartins.com.br/voce-e-um-nerd/","summary":"\u003cp\u003eHoje estive lendo o blog do \u003ca href=\"http://anahuac.biz/\"\u003eAnahuac\u003c/a\u003e e encontrei um “nerdômetro”. Resolví fazer o teste. Veja abaixo o meu resultado:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.nerdtests.com/ft_nq.php\"\u003e\u003cimg alt=\"I am nerdier than 99% of all people. Are you a nerd? Click here to take the Nerd Test, get nerdy images and jokes, and talk on the nerd forum!\" loading=\"lazy\" src=\"http://www.nerdtests.com/images/ft/nq/b1ccbdb62e.gif\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eConfesso que não imaginei que fosse tanto…\u003c/p\u003e\n\u003cp\u003eClique e descubra você também seu nível de nerdice…rsrs\u003c/p\u003e","title":"Você é um nerd?"},{"content":"Esses dias recebí um pedido inusitado: O cliente queria uma configuração de GPO no seu servidor, que impedisse os usuários de usar o recurso de salvar senha em formulários.\nFui eu para minhas máquinas virtuais realizar testes. No Internet Explorer, é facil, o problema maior foi configurar no Firefox, visto que não possui integração nenhuma com o Windows.\nPara organizar melhor o post, vamos dividir em partes. Uma mostrando como configurar no Internet Explorer, e mais abaixo, como configurar no Firefox.\nNo Internet Explorer: Para desabilitar que sejam salvas senhas de autenticação de rede (Proxy):\nConfiguração de Computador \u0026gt; Configurações do Windows \u0026gt; Configurações de segurança \u0026gt; Diretivas Locais \u0026gt; Opções de segurança \u0026gt; Acesso à rede: não permitir o armazenamento de senhas e credenciais para autenticação de rede.\nPara desabilitar que sejam salvas senhas de páginas visitadas (Recurso AutoCompletar):\nConfigurações de usuário \u0026gt; Modelos Administrativos \u0026gt; Componentes do Windows \u0026gt; Internet Explorer \u0026gt; Não permitir que o AutoCompletar salve senhas\nNo Mozilla Firefox: Primeiro, você precisa baixar o arquivo compactado abaixo:\nFirefoxADM_0.5.9.4.zip\nEm seguida, crie uma nova GPO chamada Firefox. Nesta, configure um script de logon com o arquivo\nfirefox_startup.vbs contido no anexo.\nDepois, na mesma GPO, vá em “Configurações de Computador” e importe o modelo administrativo\n“firefoxlock.adm” também contido no anexo.\nDepois de importar o modelo administrativo, basta ir em Configurações do Computador \u0026gt; Modelos\nAdministrativos \u0026gt; Mozilla Firefox \u0026gt; Security \u0026gt; Disable Password Remembering e habilitar.\nPS: Vocês poderão notar que no arquivo compactado, existe um arquivo PDF mostrando um overview sobre como fazer esta configuração. Porém eu resolví mostrar neste passo-a-passo como fazer.\n","permalink":"http://ricardomartins.com.br/como-configurar-gpo-para-o-firefox/","summary":"\u003cp\u003eEsses dias recebí um pedido inusitado: O cliente queria uma configuração de GPO no seu servidor, que impedisse os usuários de usar o recurso de salvar senha em formulários.\u003c/p\u003e\n\u003cp\u003eFui eu para minhas máquinas virtuais realizar testes. No Internet Explorer, é facil, o problema maior foi configurar no Firefox, visto que não possui integração nenhuma com o Windows.\u003c/p\u003e\n\u003cp\u003ePara organizar melhor o post, vamos dividir em partes. Uma mostrando como configurar no Internet Explorer, e mais abaixo, como configurar no Firefox.\u003c/p\u003e","title":"Como configurar GPO para o Firefox"},{"content":"Há um grande eBook que acaba de ser lançado no site da Microsoft que dá uma boa visão de muitas das tecnologias e conceitos que você precisa para considerar e se basear para quando você começar a trabalhar na implantação do Windows 7, e a melhor coisa é que o eBook é grátis!\nEle abrange uma série de temas, incluindo alguns muito comuns que as pessoas costumam ter problemas, e como você pode ver na tabela abaixo, o escopo do livro é surpreendentemente amplo:\n* Implantação da Plataforma\n* Planejando a implantação\n* Teste de Compatibilidade de Aplicativos\n* Criação de imagens de disco\n* Migração de dados do estado de usuário\n* Implantando aplicativos\n* Preparando o Windows PE\n* Configurando os Serviços de Implantação do Windows\n* Usando a Ativação por Volume\n* Implantando o Microsoft Deployment Toolkit\nÉ uma boa leitura, e eu o recomendo para todos, não só para os técnicos que irão trabalhar na implantação, mas também para quem toma as decisões.\nVocê pode fazer o download do livro aqui:\nhttp://www.microsoft.com/downloads/details.aspx?FamilyID=EE2A1D38-88A9-43B3-95BC-7E962F0B6030\u0026amp;displaylang=en\n","permalink":"http://ricardomartins.com.br/guia-essencial-para-a-implantacao-do-windows-7/","summary":"\u003cp\u003eHá um grande eBook que acaba de ser lançado no site da Microsoft que dá uma boa visão de muitas das tecnologias e conceitos que você precisa para considerar e se basear para quando você começar a trabalhar na implantação do Windows 7, e a melhor coisa é que o eBook é grátis!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.ricardomartins.com.br/wp-content/uploads/2010/11/eBook_thumb.jpg\"\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2010/11/eBook_thumb.jpg\" title=\"eBook_thumb\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEle abrange uma série de temas, incluindo alguns muito comuns que as pessoas costumam ter problemas, e como você pode ver na tabela abaixo, o escopo do livro é surpreendentemente amplo:\u003c/p\u003e","title":"Guia Essencial para a implantação do Windows 7"},{"content":"Finalmente, após completar quase 1 ano finalmente foi publicado o novo “5 estrelas” (não é mais esse nome) de Windows 7 – preparatório para o exame 70-680. Este é o primeiro conteúdo que vai fazer parte do projeto Learning Hub e que todos os novos conteúdos de capacitação seguirão o formato.\nO link é http://technet.microsoft.com/pt-br/gg263360.aspx\nAproveitando uma ótima noticia: Este conteúdo já está sendo divulgado para a Fundação Bradesco, e será no e-learning que eles oferecem para capacitar profissionais no mercado.\nNo mesmo link acima, você encontra um outro link com uma série de vídeos que fornecem informações técnicas para aqueles que precisam fazer a implantação do Windows 7 em ambiente corporativo. Confira em http://technet.microsoft.com/pt-br/gg454589.aspx\nE você está esperando o quê para começar a estudar?!\n","permalink":"http://ricardomartins.com.br/finalmente-5-estrelas-de-windows-7/","summary":"\u003cp\u003eFinalmente, após completar quase 1 ano finalmente foi publicado o novo “5 estrelas” (não é mais esse nome) de Windows 7 – preparatório para o exame 70-680. Este é o primeiro conteúdo que vai fazer parte do projeto Learning Hub e que todos os novos conteúdos de capacitação seguirão o formato.\u003c/p\u003e\n\u003cp\u003eO link é \u003ca href=\"http://technet.microsoft.com/pt-br/gg263360.aspx\"\u003ehttp://technet.microsoft.com/pt-br/gg263360.aspx\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAproveitando uma ótima noticia: Este conteúdo já está sendo divulgado para a Fundação Bradesco, e será no e-learning que eles oferecem para capacitar profissionais no mercado.\u003c/p\u003e","title":"Finalmente, 5 Estrelas de Windows 7"},{"content":"Muita gente ainda se confunde quando o assunto é as novas certificações da Microsoft. Fiz um resumo abaixo de como elas funcionam e espero que seja útil.\nEm suma, hoje existe o Microsoft Certified Tecnology Specialist – que é certificado em produtos Microsoft, o Microsoft Certified IT Professional – que é possui uma série de certificados em produtos e então adquire uma certificação mais avançada denominada de IT Professional, o Microsoft Certified Professional Developer – que são certificações voltadas para desenvolvimento em ambientes Microsoft, e o Microsoft Certified Architect que é “o cara” que vai ser o arquiteto de tecnologia de uma empresa e irá designar os produtos, tecnologias e sistemas utilizados em uma estrutura empresarial.\nVocê pode ler mais à respeito em http://www.microsoft.com/learning/pt/br/certification/view-by-name.aspx\nObserve a figura abaixo, e você irá compreender melhor o que já foi explicado.\nO foco aqui será detalhar as certificações Microsoft voltadas para a área de infraestrutura, e não comentarei sobre as certificações votladas para desenvolvedores. Então vamos lá…\nMCTS: Microsoft Certified Technology Specialist\nA nova estrutura de certificações da Microsoft, visa fornecer certificações específicas para produtos , moldadas de acordo com as necessidades das empresas. O MCTS É o passo inicial para sua carreira de TI focada em produtos Microsoft. Seu principal objetivo é comprovar suas habilidades, como suportar, implementar e diagnosticar problemas em um determinado produto.\nVocê pode se tornar um MCTS em uma série de produtos. Como são certificações em produtos e não são uma “formação” eu não vou entrar em detalhes sobre elas. Não tem mistério, você pode conferir todas neste link: http://www.microsoft.com/learning/pt/br/certification/mcts.aspx#tab2\nMCITP: Microsoft Certified IT Professional\nA credencial Microsoft Certified IT Professional (MCITP) comprova que um indivíduo tem o conjunto de habilidades necessárias para realizar determinada função, como a de administrador de banco de dados ou a de administrador de sistemas corporativos de mensagem.\nAs certificações MCITP partem da proficiência técnica avaliada pelas certificações Microsoft Certified Technology Specialist (MCTS). Portanto, você ganhará uma ou mais certificações MCTS ao longo do caminho para a credencial MCITP.\nComo esta formação é baseada no estilo “formação”, pois se faz necessária a realização de uma série de provas para obtê-las, vou detalhar um pouco mais. De qualquer forma, você pode obter mais detalhes em http://www.microsoft.com/learning/pt/br/certification/mcitp.aspx#tab2\nAbaixo vou comentar sobre as opções para Windows Client e Windows Server.\nNo último link citado acima, você verá ainda outras duas certificações voltadas para Windows Client, como MCITP Consumer Support Technician e MCITP Enterprise Support Technician, porém como elas são relacionadas ao Windows Vista, não irei citá-las abaixo, e estarão comentadas apenas as relacionadas ao Windows 7.\nWindows Client:\nMCITP: Enterprise Desktop Support Technician 7 – 70-680: Windows 7, Configuring\n– 70-685: Windows 7, Enterprise Desktop Support Technician\nMCITP: Enterprise Desktop Administrator 7 – 70-680: Windows 7, Configuring\n– 70-686: Windows 7, Enterprise Desktop Administrator\nWindows Server:\nMCITP: Server Administrator – 70-640 (Windows Server 2008 Active Directory, Configuring);\n– 70-642 (Windows Server 2008 Network Infrastructure, Configuring);\n– 70-646 (Windows Server 2008, Server Administrator).\nMCITP: Enterprise Administrator: – 70-640 (Windows Server 2008 Active Directory, Configuring);\n– 70-642 (Windows Server 2008 Network Infrastructure, Configuring);\n– 70-643 (Windows Server 2008 Applications Infrastructure, Configuring);\n– 70-647 (Windows Server 2008, Enterprise Administrator);\n– 70-680 (Windows 7, Configuring)\nConforme você podera ver no link http://www.microsoft.com/learning/pt/br/certification/mcitp.aspx#tab2, existem ainda certificações MCITP em Microsoft SQL Server, Microsoft Office Project Server e Microsoft Exchange Server, porém não irei comentar sobre elas, visto que o foco aqui será sobre as certificações de sistemas operacionais e infraestrutura de redes, e não de produtos.\nE as provas de upgrade?\nAs provas de Upgrade são para o caso de você ser um MCSA ou MCSE em Windows 2003 e deseja fazer provas de atualização para a carreira baseada no Windows Server 2008. Você pode conferir sobre as provas de upgrade em: http://www.microsoft.com/learning/en/us/certification/cert-windowsserver.aspx\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/entenda-as-novas-certificacoes-microsoft/","summary":"\u003cp\u003eMuita gente ainda se confunde quando o assunto é as novas \u003cspan class=\"bbli\"\u003ecertificações\u003c/span\u003e da \u003cspan class=\"bbli\"\u003eMicrosoft\u003c/span\u003e. Fiz um resumo abaixo de como elas funcionam e espero que seja útil.\u003c/p\u003e\n\u003cp\u003eEm suma, hoje existe o \u003cstrong\u003eMicrosoft Certified Tecnology Specialist\u003c/strong\u003e – que é certificado em produtos Microsoft, o \u003cstrong\u003eMicrosoft Certified IT Professional\u003c/strong\u003e – que é possui uma série de certificados em produtos e então adquire uma certificação mais avançada denominada de IT Professional, o \u003cstrong\u003eMicrosoft Certified Professional Developer\u003c/strong\u003e – que são certificações voltadas para desenvolvimento em ambientes Microsoft, e o \u003cstrong\u003eMicrosoft Certified Architect\u003c/strong\u003e que é “o cara” que vai ser o arquiteto de tecnologia de uma empresa e irá designar os produtos, tecnologias e sistemas utilizados em uma estrutura empresarial.\u003c/p\u003e","title":"Entenda as novas certificações Microsoft"},{"content":"Hoje tive a curiosidade de instalar o “Windows Live Proteção Para a Família” e achei uma ferramenta sensacional!\nCom ele você consegue gerenciar quais usuários da máquina terão a filtragem de sites habilitada, qual tipo de filtragem será definida, quais usuários irão gerar um relatório de sites acessados que serão enviados para o usuário definido como “adminsitrador” por e-mail, gerenciamento de contatos do MSN Messenger, enfim, é uma ferramenta completa para monitorar o uso da internet em sua casa.\nÉ um software gratuito e bem fácil de utitlizar. Se você é pai, e quer ter um controle melhor sobre o que eles andam fazendo na internet, esta é sem dúvidas uma excelente ferramenta que vai te ajudar bastante. É bem simples de configurar e você com certeza ficará mais tranquilo enquanto seus filhos estiverem na internet.\nDepois de instalado, fica um ícone na barra te tarefas, onde você pode acessar para alterar configurações. A tela é similar a esta:\nQuando um site é bloqueado, é exibida uma mensagem como a mostrada abaixo, onde o usuário é informado que o acesso foi bloqueado e sugere que que solicite acesso ao adminsitrador para ter acesso ao site em questão. Veja:\nA imagem acima é do Internet Explorer, mas testei também no Firefox e funciona sem problemas.\nSe você quiser conhecer também, no link abaixo tem um tutorial da instalação:\nhttp://www.microsoft.com/brasil/protect/products/family/onecarefamilysafety.mspx\nAbaixo alguns links interessantes:\nhttp://www.navegueprotegido.com.br/\nhttp://www.internetsegura.org/\nhttp://www.censura.com.br/\nhttp://www.safernet.org.br/site/\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/proteja-seus-filhos-tambem-na-internet/","summary":"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2010/10/iconsafety.png\"\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2010/10/iconsafety.png\" title=\"iconsafety\"\u003e\u003c/a\u003eHoje tive a curiosidade de instalar o “Windows Live \u003cspan class=\"bbli\"\u003eProteção\u003c/span\u003e Para a Família” e achei uma ferramenta sensacional!\u003c/p\u003e\n\u003cp\u003eCom ele você consegue gerenciar quais usuários da máquina terão a filtragem de sites habilitada, qual tipo de filtragem será definida, quais usuários irão gerar um relatório de \u003cspan class=\"bbli\"\u003esites\u003c/span\u003e acessados que serão enviados para o usuário definido como “adminsitrador” por e-mail, gerenciamento de contatos do MSN Messenger, enfim, é uma ferramenta completa para monitorar o uso da internet em sua casa.\u003c/p\u003e","title":"Proteja seus filhos também na internet"},{"content":"\nRecentemente aqui no trabalho tivemos a necessidade de montar um sistema para centralizar nossa documentação. Algo no estilo Wiki, onde todos pudessem alterar o conteúdo sempre que fosse necessário, e também que tivesse uma interface simples.\nPesquisando na Internet, encontrei o DokuWiki – http://www.dokuwiki.org/. É bem interessante e foi o que escolhemos. Abaixo um tutorial de instalação do mesmo no CentOS 5.5 que eu criei.\n1- Instalar o CentOs 5.5 com as opções default. A instalação padrão já contempla o Apache. Basta configurar a inicialização do mesmo durante o boot com o comando abaixo:\nsudo /sbin/chkconfig httpd on Para confirmar se o comando foi executado corretamente:\nsudo /sbin/chkconfig –list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 2- Realizar a instalação do PHP sudo yum install php-common php-gd php-mcrypt php-pear php-pecl-memcache php-mhash php-mysql php-xml Em seguida, reload no Apache:\nsudo /etc/init.d/httpd reload 3- Configurar o Apache para interpretar arquivos PHP Abrir o arquivo de configuração do Apache (httpd.conf) e verificar/adicionar as seguintes linhas:\nLoadModule php5\\_module modules/libphp5.so Esta linha já deve existir, verifique\nDirectoryIndex index.php index.html index.html.var Esta linha já existe, basta adicionar o índex.php\n``bash AddType application/x-httpd-php .php\nEsta deve ser adicionada ao final do arquivo #### 4- Fazer download e instalação do DokuWiki ```bash wget http://www.splitbrain.org/\\_media/projects/dokuwiki/dokuwiki-2009-12-25c.tgz cd /var/www/html/ tar zxvf dokuwiki-2009-12-25c.tgz mv dokuwiki-2009-12-25c dokuwiki cd dokuwiki chown -R apache:apache /var/www/html/dokuwiki/data/ chown -R apache:apache conf chown -R apache:apache lib/plugins 5- Acessar http://localhost/dokuwiki/install.php Editar as opções:\nWiki Name: [Defina o Nome] Check “Enable ACL” SuperUser: [Defina o usuário que será o administrador] Full Name: [Nome Completo do Administrador] E-mail: [E-mail do Administrador] Password: [Senha do Administrador] Initial ACL Policy: Closed Wiki (read, write, upload for registered users only) Agora faça logon com o usuário criado. Em seguida rode os comandos abaixo:\ncd /var/www/html/dokuwiki chown -R root:root conf chown apache:apache conf chown apache:apache ./conf/local.php chown apache:apache conf/users.auth.php chown apache:apache conf/acl.auth.php Prontinho, agora você já tem um sistema de Wiki instalado e funcionando na sua rede\n","permalink":"http://ricardomartins.com.br/instalacao-do-dokuwiki/","summary":"\u003cp\u003e\u003ca href=\"http://ricardomartins.com.br/2010/10/30/instalacao-do-dokuwiki/dokuwiki-128/\"\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2010/10/dokuwiki-128.png\" title=\"dokuwiki-128\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eRecentemente aqui no trabalho tivemos a necessidade de montar um \u003cspan class=\"bbli\"\u003esistema\u003c/span\u003e para centralizar nossa documentação. Algo no estilo Wiki, onde todos pudessem alterar o conteúdo sempre que fosse necessário, e também que tivesse uma interface simples.\u003c/p\u003e\n\u003cp\u003ePesquisando na \u003cspan class=\"bbli\"\u003eInternet\u003c/span\u003e, encontrei o DokuWiki – \u003ca href=\"http://www.dokuwiki.org/\"\u003ehttp://www.dokuwiki.org/\u003c/a\u003e. É bem interessante e foi o que escolhemos. Abaixo um tutorial de instalação do mesmo no \u003cspan class=\"bbli\"\u003eCentOS\u003c/span\u003e 5.5 que eu criei.\u003c/p\u003e\n\u003ch4 id=\"1--instalar-o-centos-55-com-as-opções-default\"\u003e\u003cstrong\u003e1- Instalar o CentOs 5.5 com as opções default.\u003c/strong\u003e\u003c/h4\u003e\n\u003cp\u003eA instalação padrão já contempla o Apache. Basta configurar a inicialização do mesmo durante o boot com o comando abaixo:\u003c/p\u003e","title":"Instalação do DokuWiki"},{"content":"Como alguns já sabem, eu sou fã da Dell e tenho um notebook Inspiron 1525 há cerca de 2 anos.\nEm todo este tempo, nunca tive nenhum problema com ele, exceto o citado aqui, que na verdade não era um problema e sim um detalhe característico.\nEnfim, há cerca de 2 meses meu notebook começou a apresentar falha na bateria e informações do sistema operacional sugerindo a substituição da mesma.\nDe fato ela não estava durando mais de 30 minutos, então comecei a pensar em substituir.\nEntão pesquisei na Dell e quase desistí: R$ 400,00\nAté que pensei em comprar no Ebay. Confesso que fiquei com receio, pois nunca havia comprado nada lá.\nEntão criei uma conta e procurei pela fonte para o modelo do meu notebook. Encontrei uma de 9 células por 30 dólares. Aí pensei: “- Se levar uma volta, perco 60 reais. Se tiver que pagar o imposto, ainda fica muito mais barato que comprar aqui.”\nResolví arriscar e comprei no dia 18/08. Fiquei esperando sem muita esperança até que no dia 18/09 chegou lá em casa!!!\nTestei e está funcionando perfeitamente. Então aí vai a dica, se resolver comprar algo lá, escolha um vendendor bem qualificado (isto é muito importante), mas pode ficar tranquilo que não dá xabú!\n","permalink":"http://ricardomartins.com.br/comprar-no-ebay-sim-porque-nao/","summary":"\u003cp\u003eComo alguns já sabem, eu sou fã da \u003cspan class=\"bbli\"\u003eDell\u003c/span\u003e e tenho um \u003cspan class=\"bbli\"\u003enotebook\u003c/span\u003e Inspiron 1525 há cerca de 2 anos.\u003c/p\u003e\n\u003cp\u003eEm todo este tempo, nunca tive nenhum problema com ele, exceto o citado \u003ca href=\"http://ricardomartins.com.br/2008/12/17/relato-sobre-o-suporte-dell/%20\"\u003eaqui\u003c/a\u003e, que na verdade não era um problema e sim um detalhe característico.\u003c/p\u003e\n\u003cp\u003eEnfim, há cerca de 2 meses meu notebook começou a apresentar falha na \u003cspan class=\"bbli\"\u003ebateria\u003c/span\u003e e informações do sistema operacional sugerindo a substituição da mesma.\u003c/p\u003e\n\u003cp\u003eDe fato ela não estava durando mais de 30 minutos, então comecei a pensar em substituir.\u003c/p\u003e","title":"Comprar no Ebay? Sim, porque não?"},{"content":"Na área deTI, é comum encontrar profissionais com grande conhecimento e experiência no entanto sem um diploma. Infelizmente, isto acaba criando uma barreira para oportunidades em grandes empresas.\nEu sei bem o que é isso, pois durante muito tempo trabalhei em regime de escalas, onde precisava trabalhar um mês em um horário, outro mês em outro horário, outro mês de madrugada, etc.\nHoje eu faço faculdade à distância pelo CEDERJ. O meu curso é de Tecnólogo em Sistemas de Computação, coordenado pela Universidade Federal Fluminense. Assim consegui resolver o meu problema, pois não preciso frequentar as aulas. Estudo em casa e vou ao Polo apenas fazer provas e entregar trabalhos.\nÉ um sistema interessante, com material das aulas em DVDs, PDFs, sistema web e telefone0800 para tirar dúvidas. Também existe a tutoria presencial, onde há um professor de cada matéria no Polo em um dia específico para tirar dúvidas e auxiliar nos exercícios.\nSe você se interessou, e tem este mesmo problema, ou ainda, conhece alguém na mesma situação, compartilhe esta informação!\nAs inscrições para o vestibular estão abertas. Não se assuste. Embora seja um vestibular tradicional, por não ser tão divulgado, acaba sendo mais fácil passar.\nTá esperando o quê?! Divulgue! Conte pra todo mundo!!! Clique na imagem abaixo e você poderá ter maiores informações sobre o que é o CEDERJ.\n","permalink":"http://ricardomartins.com.br/sem-tempo-pra-frequentar-faculdade-conheca-o-cederj/","summary":"\u003cp\u003eNa área de\u003cspan class=\"bbli\"\u003eTI\u003c/span\u003e, é comum encontrar profissionais com grande conhecimento e experiência no entanto sem um diploma. Infelizmente, isto acaba criando uma barreira para oportunidades em grandes empresas.\u003c/p\u003e\n\u003cp\u003eEu sei bem o que é isso, pois durante muito tempo trabalhei em regime de escalas, onde precisava trabalhar um mês em um horário, outro mês em outro horário, outro mês de madrugada, etc.\u003c/p\u003e\n\u003cp\u003eHoje eu faço \u003cspan class=\"bbli\"\u003efaculdade\u003c/span\u003e à distância pelo CEDERJ. O meu \u003cspan class=\"bbli\"\u003ecurso\u003c/span\u003e é de Tecnólogo em Sistemas de Computação, coordenado pela Universidade Federal Fluminense. Assim consegui resolver o meu problema, pois não preciso frequentar as aulas. Estudo em casa e vou ao Polo apenas fazer provas e entregar trabalhos.\u003c/p\u003e","title":"Sem tempo pra frequentar faculdade? Conheça o CEDERJ"},{"content":"Muito se lê e ouve falar na internetsobre o Windows XP Mode, mas a verdade é que até hoje ainda não tinha encontrado nenhuma informação clara à respeito. Muita gente fala um monte de coisa sem dizer nada.\nAté que hoje vasculhando o site da Microsoft, encontrei um vídeo (com tradução em português e legenda) que eu gostei bastante. Explica de forma simples e objetiva o funcionamento do XP Mode.\nVeja, com certeza você também vai gostar:\nhttp://windows.microsoft.com/pt-BR/windows7/help/videos/using-windows-xp-mode\n","permalink":"http://ricardomartins.com.br/windows-xp-mode-no-windows-7/","summary":"\u003cp\u003eMuito se lê e ouve falar na \u003cspan class=\"bbli\"\u003einternet\u003c/span\u003esobre o \u003cspan class=\"bbli\"\u003eWindows XP\u003c/span\u003e Mode, mas a verdade é que até hoje ainda não tinha encontrado nenhuma informação clara à respeito. Muita gente fala um monte de coisa sem dizer nada.\u003c/p\u003e\n\u003cp\u003eAté que hoje vasculhando o site da \u003cspan class=\"bbli\"\u003eMicrosoft\u003c/span\u003e, encontrei um vídeo (com tradução em português e legenda) que eu gostei bastante. Explica de forma simples e objetiva o funcionamento do XP Mode.\u003c/p\u003e\n\u003cp\u003eVeja, com certeza você também vai gostar:\u003c/p\u003e","title":"Windows XP Mode no Windows 7"},{"content":"Eu gostei tanto de mecher no AutoIt, que depois do programinha de Assitência Remota sem convites, criei um outro, para sincronizar os dados do meu pendrive com minha máquina. Dei o nome de RSyncWin.\nEle funciona como o RSync. No caso, ao executá-lo, pede para você informar o diretório de origem e depois o diretório de destino. Não precisa ser um diretório, se preciso, pode especificar a letra destinada ao seu pendrive, por exemplo, F: como diretório de origem e uma pasta na sua máquina como diretório destino, por exemplo, D:PenBackup.\nEle fica rodando no system tray e monitorando. Caso algo novo seja adicionado na origem, automaticamente é replicado para o destino.\nBaixe aqui e use à vontade. Depois dê seu feedback.\n","permalink":"http://ricardomartins.com.br/rsync-para-windows/","summary":"\u003cp\u003eEu gostei tanto de mecher no \u003ca href=\"http://www.autoitscript.com/\"\u003eAutoIt\u003c/a\u003e, que depois do programinha de \u003ca href=\"http://ricardomartins.com.br/2010/09/07/assistencia-remota-sem-convites/\"\u003eAssitência Remota sem convites\u003c/a\u003e, criei um outro, para sincronizar os dados do meu pendrive com minha máquina. Dei o nome de RSyncWin.\u003c/p\u003e\n\u003cp\u003eEle funciona como o \u003ca href=\"http://pt.wikipedia.org/wiki/Rsync\"\u003eRSync\u003c/a\u003e. No caso, ao executá-lo, pede para você informar o diretório de origem e depois o diretório de destino. Não precisa ser um diretório, se preciso, pode especificar a letra destinada ao seu pendrive, por exemplo, F: como diretório de origem e uma pasta na sua máquina como diretório destino, por exemplo, D:PenBackup.\u003c/p\u003e","title":"RSync para Windows"},{"content":"Esses dias precisei elaborar uma solução de compartilhamento de desktop entre usuários que fosse de utilização simples. Inicialmente pensei em procurar na Internet algumprograma específico, porém me lembrei da Assitência Remota, um recurso nativo do Windows, que muitos desconhecem/confundem com a Área de Trabalho Remota.\nEmbora ambos utilizem o protocolo RDP, porta 3389, o escopo de utilização é bem diferente. A Assistência Remota, permite que você realmente preste assistência remota ao usuário, permitindo chat, envio de arquivos, interação com a área de trabalho, etc. Além disto, o usuário consegue ver tudo o que você está fazendo na máquina dele, e precisa lhe dar permissão para isto.\nA Área de trabalho remota, permite gerenciar uma máquina remotamente e não disponibiliza estes recursos de interação com o usuário.\nEnfim, para utilizar a assistência remota, é necessário à partir da ajuda do Windows, gerar um convite, que pode ser enviado pelo messenger, e-mailou salvá-lo em um arquivo. Neste último caso, o arquivo precisa ser enviado para quem irá se conectar na máquina.\nO “problema”, é que gerar este convite pode ser confuso para alguns usuários, pois se faz necessário informar um nome para exibição no convite, uma senha e a validade do convite. Além disso, ele ainda teria que se virar para enviar este convite para a pessoa que iria conectar em sua máquina.\nPensando nisto, eu comecei a fuçar o AutoIt. Se você não conhece, vale a pena procurar saber do que se trata. Ele permite criar pequenos “scripts” que podem ser convertidos em programas executáveis (.exe) para automatizar tarefas no Windows. É uma linguagem simples e de fácil aprendizado. Além do mais, existem centenas de códigos prontos e que você pode ajustar para a sua necessidade. E o melhor: Tudo gratuito!\nCom o auxílio do AutoIt, eu criei um programinha que ao ser executado, pergunta o nome e a máquina que deseja se conectar. Em seguida a conexão RDP da Assistência Remota é iniciada e pronto! Assistência remota sem convites!\nAssim, eu consegui resolver o meu problema, e qualquer usuário poderá utilizá-lo sem nenhuma dificuldade.\nSe você gostou, pode baixá-lo aqui. Depois, deixe seu feedback.\n","permalink":"http://ricardomartins.com.br/assistencia-remota-sem-convites/","summary":"\u003cp\u003eEsses dias precisei elaborar uma \u003cspan class=\"bbli\"\u003esolução\u003c/span\u003e de compartilhamento de \u003cspan class=\"bbli\"\u003edesktop\u003c/span\u003e entre usuários que fosse de utilização simples. Inicialmente pensei em procurar na Internet algum\u003cspan class=\"bbli\"\u003eprograma\u003c/span\u003e específico, porém me lembrei da Assitência Remota, um recurso nativo do Windows, que muitos desconhecem/confundem com a Área de Trabalho Remota.\u003c/p\u003e\n\u003cp\u003eEmbora ambos utilizem o protocolo RDP, porta 3389, o escopo de utilização é bem diferente. A Assistência Remota, permite que você realmente preste assistência remota ao usuário, permitindo \u003cspan class=\"bbli\"\u003echat\u003c/span\u003e, envio de arquivos, interação com a área de \u003cspan class=\"bbli\"\u003etrabalho\u003c/span\u003e, etc. Além disto, o usuário consegue ver tudo o que você está fazendo na máquina dele, e precisa lhe dar permissão para isto.\u003c/p\u003e","title":"Assistência Remota sem convites"},{"content":"Hoje precisei converter um arquivo .exe em .msi para realizar testes de instalação via GPO.\nNunca tinha feito isto, apenas tinha ouvido falar de um método usando um utilitário contido no CD de instalação do Windows 2000.\nFiz uma pesquisa no Google e encontrei o “Como fazer” utilizando este método no Baboo. Realmente parece interessante. Pensei em fazer usando uma máquina virtual no Virtual PC, pois em suma, o procedimento consiste em pegar uma máquina limpa, instalar o utilitário e gerar uma “imagem” do sistema limpa. Em seguida instalar o programa que deseja criar o pacote .msi à partir do arquivo .exe.\nAo fim, gerar outra imagem usando o utilitário do Windows 2000. Assim ele irá comparar as duas imagens e com o que encontrar de diferente, devido à instalação do programa, ou seja, dll’s, executáveis, bibliotecas, etc, irá comparar as duas imagens e gerar um pacote.msi com as diferenças.\nO link para o tutorial do Baboo é: http://www.baboo.com.br/conteudo/modelos/MSI-Windows-Installer-Criando-seus-proprios-pacotes-MSI-para-distribuicao_a4137_z0.aspx\nComo este método parece ser bastante trabalhoso, continuei procurando na internet e encontrei uma ferramenta gratuita para criar arquivos .msi à partir de .exe.\nPara a minha necessidade, serviu perfeitamente. Segue o link: http://www.qwertylab.com/download/ExetomsiSetup.msi\n","permalink":"http://ricardomartins.com.br/como-converter-arquivo-exe-em-msi/","summary":"\u003cp\u003eHoje precisei converter um arquivo .exe em .msi para realizar testes de instalação via GPO.\u003c/p\u003e\n\u003cp\u003eNunca tinha feito isto, apenas tinha ouvido falar de um método usando um utilitário contido no \u003cspan class=\"bbli\"\u003eCD\u003c/span\u003e de instalação do Windows 2000.\u003c/p\u003e\n\u003cp\u003eFiz uma pesquisa no Google e encontrei o “Como fazer” utilizando este método no Baboo. Realmente parece interessante. Pensei em fazer usando uma máquina virtual no Virtual PC, pois em suma, o procedimento consiste em pegar uma máquina limpa, instalar o utilitário e gerar uma “imagem” do sistema limpa. Em seguida instalar o programa que deseja criar o pacote .msi à partir do arquivo .exe.\u003c/p\u003e","title":"Como converter arquivo .exe em .msi"},{"content":"Recentemente, fiz um post aqui citando um programa para fazer o bloqueio/desbloqueio de pendrives. Este post você pode conferir aqui: http://ricardomartins.com.br/como-bloquear-pendrive/\nHoje descobri que este programa tem um problema que é o seguinte: Ele só funciona, fazendo o bloqueio do pendrive, caso o pendrive já tenha sido plugado na máquina antes. Caso seja um pendrive novo, ele não funciona.\nIsso mesmo! Se você pegar um pendrive que nunca tenha sido ligado na máquina onde tenha utilizado o software para bloquear, ele é reconhecido normalmente.\nO que ocorre é que ao clicar em “Lock” no software, ele altera o valor da seguinte chave no registro: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesUSBSTORStart. No caso, muda o valor de 3 para 4 de modo a bloquear. Mas ao plugar um pendrive que ainda não tenha sido utilizado na máquina em questão, o Windows volta o valor da chave para 3, deixando desbloqueado.\nIsso porque ao conectar um pendrive, ele é detectado pelo arquivo C:Windowssystem32DRIVERSUSBSTOR.SYS e caso ele já “conheça” esse pendrive, ele mantém o valor da chave como está. Caso ele não conheça, ele altera o valor da chave no registro para 3, para poder instalar o driver do pendrive.\nAssim acaba desfazendo a modificação feita pelo software. Por esta razão, o ideal continuava sendo o método tradicional ( já postado aqui também – http://ricardomartins.com.br/bloqueando-pendrives-no-windows-facil-facil/), que consiste em negar permissões nos arquivos usbstor.inf, usbstor.pnf e usbstor.sys e alterar a chave do registro citada acima.\nPara resolver este problema e facilitar a minha vida, hoje eu fiz um script em vbs, que muda o valor da chave do registro, e altera as permissões dos arquivos. Assim, ao invés de ter que ir em cada arquivo e mecher nas permissões, o script faz tudo pra mim.\nEu fiz dois scripts, um para bloquear e outro para desbloquear. Eu poderia criar um script, que perguntasse o que fazer, no caso, bloquear ou desbloquear, e ele executar as ações necessárias de acordo com a resposta. No entanto como não sou nenhum expert em programação vbs, este já está muito bom para a minha necessidade.\nAbaixo o código. Basta copiar e colar no notepad e salvar como “Bloqueia.vbs” e “Desbloqueia.vbs”\nÉ um script simples, onde utilizo o cacls para alterar as permissões. Para quem não conhece, o cacls é um comando nativo do Windows, para mudar permissões de arquivos via console.\nVocê também poderá notar que eu configurei para mudar as permissões para os usuários TODOS e EVERYONE. Isto não é uma redundância desnecessária. É que assim não tenho problemas com o idioma do SO. Caso seja pt_br, irá funcionar pelo TODOS, caso contrário, pelo EVERYONE.\nAbaixo o código do “Bloqueia.vbs”:\n\u0026#39;Script para Bloquear Pendrive - Ricardo Macedo Martins\u0026#39; \u0026#39;Inicio do script\u0026#39; Set WshShell = WScript.CreateObject(\u0026#34;WScript.Shell\u0026#34;) WshShell.RegWrite \u0026#34;HKLMSYSTEMCurrentControlSetServicesUSBSTORStart\u0026#34;,4,\u0026#34;REG_DWORD\u0026#34; WshShell.Run \u0026#34;cacls c:windowsinfUsbstor.inf /E /P EVERYONE:N\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls c:windowsinfUsbstor.inf /E /P TODOS:N\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls c:windowsinfUsbstor.inf /E /P SYSTEM:N\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls c:windowsinfUsbstor.pnf /E /P EVERYONE:N\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls c:windowsinfUsbstor.pnf /E /P TODOS:N\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls c:windowsinfUsbstor.pnf /E /P SYSTEM:N\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls C:Windowssystem32driversusbstor.sys /E /P EVERYONE:N\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls C:Windowssystem32driversusbstor.sys /E /P TODOS:N\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls C:Windowssystem32driversusbstor.sys /E /P SYSTEM:N\u0026#34;, 0 , True MsgBox \u0026#34;Pendrive Bloqueado!\u0026#34;,0,\u0026#34;Informacao\u0026#34; \u0026#39;Fim do script\u0026#39; Abaixo o código do “Desbloqueia.vbs”:\n\u0026#39;Script para Bloquear Pendrive - Ricardo Macedo Martins\u0026#39; \u0026#39;Inicio do script\u0026#39; Set WshShell = WScript.CreateObject(\u0026#34;WScript.Shell\u0026#34;) WshShell.RegWrite \u0026#34;HKLMSYSTEMCurrentControlSetServicesUSBSTORStart\u0026#34;,3,\u0026#34;REG_DWORD\u0026#34; WshShell.Run \u0026#34;cacls c:windowsinfUsbstor.inf /E /P EVERYONE:F\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls c:windowsinfUsbstor.inf /E /P TODOS:F\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls c:windowsinfUsbstor.inf /E /P SYSTEM:F\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls c:windowsinfUsbstor.pnf /E /P EVERYONE:F\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls c:windowsinfUsbstor.pnf /E /P TODOS:F\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls c:windowsinfUsbstor.pnf /E /P SYSTEM:F\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls C:Windowssystem32driversusbstor.sys /E /P EVERYONE:F\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls C:Windowssystem32driversusbstor.sys /E /P TODOS:F\u0026#34;, 0 , True WshShell.Run \u0026#34;cacls C:Windowssystem32driversusbstor.sys /E /P SYSTEM:F\u0026#34;, 0 , True MsgBox \u0026#34;Pendrive Desbloqueado!\u0026#34;,0,\u0026#34;Informacao\u0026#34; \u0026#39;Fim do script\u0026#39; Até a próxima!\n","permalink":"http://ricardomartins.com.br/como-bloquear-pendrive-definitivamente/","summary":"\u003cp\u003eRecentemente, fiz um post aqui citando um programa para fazer o bloqueio/desbloqueio de pendrives. Este post você pode conferir aqui: \u003ca href=\"http://ricardomartins.com.br/como-bloquear-pendrive/\"\u003ehttp://ricardomartins.com.br/como-bloquear-pendrive/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eHoje descobri que este programa tem um problema que é o seguinte: Ele só funciona, fazendo o bloqueio do pendrive, caso o pendrive já tenha sido plugado na máquina antes. Caso seja um pendrive novo, ele não funciona.\u003c/p\u003e\n\u003cp\u003eIsso mesmo! Se você pegar um pendrive que nunca tenha sido ligado na máquina onde tenha utilizado o software para bloquear, ele é reconhecido normalmente.\u003c/p\u003e","title":"Como bloquear pendrive definitivamente"},{"content":"O Windows 7 tem muitas características novas, das quais um recurso muito interessante é o Windows XP Mode, que permite rodar o Windows XP em seu Windows 7. No entanto, para utilizar o Windows XP Mode você deve ter o Windows 7 Professional ou Ultimate e o computador deve ter suporte à virtualização à nível de hardware.\nDevido aos requisitos acima muitos usuários não são capazes de utilizar o Windows XP Mode. Aqui está o VMLite, uma alternativa para o Windows XP Mode.\nO VMLite XP Mode oferece funções similares ao Microsoft XP Mode, mas não obriga a virtualização de hardware. Ele permite que você execute o Windows XP simultâneamente com seu desktop rodando em um host com sistema operacional diferente.\nVMLite XP Mode:\nDownload VMLite XP Mode – Windows 7\n","permalink":"http://ricardomartins.com.br/vmlite-alternativa-para-o-windows-xp-mode-do-windows-7/","summary":"\u003cp\u003eO \u003cspan class=\"bbli\"\u003eWindows\u003c/span\u003e 7 tem muitas características novas, das quais um recurso muito interessante é o Windows XP Mode, que permite rodar o Windows XP em seu Windows 7. No entanto, para utilizar o Windows XP Mode você deve ter o Windows 7 Professional ou Ultimate e o computador deve ter suporte à virtualização à nível de hardware.\u003c/p\u003e\n\u003cp\u003eDevido aos requisitos acima muitos usuários não são capazes de utilizar o Windows XP Mode. Aqui está o \u003ca href=\"http://www.vmlite.com\"\u003eVMLite\u003c/a\u003e, uma alternativa para o Windows XP Mode.\u003c/p\u003e","title":"VMLite: Alternativa para o Windows XP Mode do Windows 7"},{"content":"\nA maioria dos usuários estão impressionados com o mais recente sistema operacional Microsoft Windows 7 graças ao marketing agressivo da Microsoft.\nInfelizmente, a maioria dos fabricantes de computadores não fornecem o DVD de instalação do Windows 7. Ao invés disto, eles disponibilizam o que eles chamam de “disco de recuperação”, que nada mais é que uma imagem da instalação padrão de fábrica.\nSem o disco de instalação seria impossível você recuperar uma instalação do Windows 7, e o jeito acaba sendo restaurar a imagem contida no “disco de recuperação”.\nFelizmente, a Microsoft parece ter percebido esse problema, e criou um disco de recuperação para este fim.\nEle possui o conteúdo do “centro de restauração” dos DVD’s do Windows 7 que não pode ser usado para instalar ou reinstalar o Windows 7, mas serve apenas como uma interface Windows PE para recuperar o seu PC.\nAqui está o “Windows 7 Recovery Disc”, que pode ser usado para acessar um menu de recuperação do sistema, que vai permitir usar as opções de Restauração do Sistema, do Complete PC Backup, a reparação do sistema automatizada, e um prompt de linha de comando para recuperação manual avançada.\nDownload Windows 7 Recovery Disc (32-bit)\nDownload Windows 7 Recovery Disc (64-bit)\nFonte: Neosmart\n","permalink":"http://ricardomartins.com.br/download-do-disco-de-restauracao-do-windows-7/","summary":"\u003cp\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2010/08/Windows-7-System-Recovery-Disc.png\" title=\"Windows-7-System-Recovery-Disc\"\u003e\u003c/p\u003e\n\u003cp\u003eA maioria dos usuários estão impressionados com o mais recente sistema operacional Microsoft Windows 7 graças ao \u003cspan class=\"bbli\"\u003emarketing\u003c/span\u003e agressivo da Microsoft.\u003c/p\u003e\n\u003cp\u003eInfelizmente, a maioria dos fabricantes de \u003cspan class=\"bbli\"\u003ecomputadores\u003c/span\u003e não fornecem o \u003cspan class=\"bbli\"\u003eDVD\u003c/span\u003e de instalação do Windows 7. Ao invés disto, eles disponibilizam o que eles chamam de “disco de recuperação”, que nada mais é que uma imagem da instalação padrão de fábrica.\u003c/p\u003e\n\u003cp\u003eSem o disco de instalação seria impossível você recuperar uma instalação do Windows 7, e o jeito acaba sendo restaurar a imagem contida no “disco de recuperação”.\u003c/p\u003e","title":"Download do disco de restauração do Windows 7"},{"content":"Vou compartilhar com vocês um utilitário gratuito da Microsoft, que é uma mão na roda para adminsitradortes de redes. Estou falando do Windows Steady State, um utilitário para configurar restrições, similares à GPO’s de domínio, em estações clientes. Eu utilizo em vários clientes e recomendo.\nAtualmente, o Windows SteadyState já está na versão 2.5. Ele é um aplicativo se propõe a manter intacto o sistema operacional e suas respectivas configurações livres dos dedos “fuçadores” dos usuários. Seja em uma empresa ou em um internet café com grande volume de clientes que utilize a linha de produtos Microsoft.\nPara uma micro, pequena ou média empresa que, por quaisquer circunstâncias que sejam ainda não possuem o Active Directory (AD) instalado, esta pode ser uma eficiente e gratuita opção a ser considerada, pois não existe custo de licença cobrado pela Microsoft. Apenas há a validação do sistema operacional genuíno.\nEm tempo vale a pena dizer que o WSS se integra ao AD. Pode funcionar como complemento específico para a proteção de partição física dos clientes da rede.\nAssim, pelo menos em teoria, o nível de incidentes ao departamento de suporte tende a diminuir. E por conseqüência a equipe de suporte técnico fica um pouco mais aliviada para tratar de assuntos um pouco mais nobres.\nAntes de instalar o produto deve-se desfragmentar o disco rígido para só então instalar o recurso Proteção de Disco do Windows. (Isto é importante porque o cache da Proteção de Disco precisa de uma porção contígua grande do espaço em disco para funcionar adequadamente.)\nJá na tela inicial encontramos os três vértices do produto que são as configurações de restrições ao computador, agendamento de atualizações de software e proteção de disco rígido.\nAtravés da criação de contas particulares de usuários através do próprio WSS, que é o primeiro passo a ser dado nesta ferramenta, chega-se à configuração de restrições ao usuário. Tais como remoção de opções de menus e também configurações de aplicações para o Windows XP. Há ainda como restringir acesso a websites e restringir o tempo de utilização da máquina.\nLembra a filosofia do antigo poledit e também das diretivas de group policy.\nQuanto às atualizações do sistema operacional efetuadas pelo windows update, também existe uma proteção configurável através do próprio WSS que garante que hotfixes e patches não serão removidos da máquina por qualquer usuário mais desavisado.\nProteção de HD – Esta característica (Windows Disk Protection) visa a proteger a partição na qual está instalado o sistema operacional. Atua como um restaurador automático do próprio sistema operacional. Pois sempre que o PC sofre um reboot, o WSS faz com que o Windows XP volte ao seu estado original pré-definido quando da instalação e configuração do próprio Windows SteadyState.\nUma prática recomendada é limpar e atualizar tudo o que puder no computador antes da instalação. Ou seja, desinstalar programas e excluir arquivos desnecessários, limpar caches e históricos, remover arquivos temporários e cookies, executar um programa antivírus e de remoção de spyware e verificar se há atualizações para o Windows e todos os seus aplicativos. A idéia é iniciar o computador com exatamente a mesma configuração que você deseja toda vez que usar a Proteção de Disco do Windows.\nConsiderando que a TI decidiu instalar o WSS em todos os PCs da empresa, ou ainda do café internet, é possível exportar todos os profiles criados para os outros PCs da rede. Assim as regras comuns passam a valer para todas as máquinas que possuem o Windows SteadyState instalado.\nConfigurando as restrições do computador De acordo com a Figura 1 percebemos as seguintes opções:\nI – Configurações de privacidade 1. Eliminar da caixa de diálogo “Log on to Windows” os nomes de usuários que já passaram anteriormente pela determinada máquina. Assim é minimizado o risco de um nome válido de usuário ser descoberto por pessoas com segundas intenções;\n2. Prevenir a busca e uso de perfis de usuários;\n3. Não armazenar em cache cópias de perfis de usuários;\nII – Configurações de segurança *1. Remover o nome do administrador da tela de boas vindas.\n2. Remover os botões de desativar da tela de logon. Assim evita-se o risco de desligamentos não programados.\n3. Não permitir que o Windows armazene senhas através de hash.\n4. Não permitir a armazenagem de nomes e senhas de usuários do domínio ou Live ID.\n5. Não permitir a criação de novas pastas (diretórios) na partição em tela.\n6. Prevenir a abertura de documentos office a partir do browser.\n7. Prevenir acesso de escrita a partir de portas USB. Claramente voltado para a evasão de informações corporativas.\nIII – Outras Configurações 1. Ativar a tela de boas vindas\nAlguns exemplos de uso:\nNão exiba logons na tela de boas-vindas. Remova o Painel de Controle do menu Iniciar. Oculte as unidades de disco que desejar em Meu Computador. Remova a opção Favoritos do menu do Internet Explorer. Desative macros no Microsoft Office. Impeça a execução de um programa instalado. Limite a duração de sessões usando cronômetros. Restrinja o acesso a uma lista de sites aprovados da Internet. Na figura 2 encontramos o agendamento de atualizações a ser realizado pelo WSS. Esta característica está diretamente ligada à proteção de HD que veremos logo em seguida. Há ainda a possibilidade de implementação de scripts para a realização das atualizações.\nNa figura 3 chegamos à proteção de HD que pode ser realizada através de três alternativas a partir do momento em que é habilitada.\n2. Remover todas as alterações ao reinício – Remove todas as mudanças feitas pelo usuário no próximo boot.\n3. Reter mudanças temporariamente – Por um determinado período as mudanças são retidas no PC.\n4. Reter as mudanças permanentemente – Tanto nesta opção quanto na segunda, o administrador poderá avaliar tudo que foi alterado pelo usuário.\nExiste ainda um check box onde o administrador não é avisado da perda de mudanças a cada reinício da máquina. Simplesmente o computador volta ao seu estado original eleito pela própria equipe de TI.\nComo funciona o recurso Proteção de Disco do Windows?\nO recurso Proteção de Disco do Windows cria um cache -um lugar especial no disco rígido – onde ele armazena todas as alterações que um usuário faz no sistema. Esse cache é seguro e recluso, como uma ‘área de segurança’ na qual os usuários realizam suas atividades sem afetar o sistema fora dela. Quando você limpa o cache, todas as alterações do usuário são descartadas, e o SteadyState cria uma nova área de segurança vazia para o próximo usuário trabalhar.\nPosso usar o recurso Proteção de Disco do Windows sem que os usuários percam todo seu trabalho?\nSim. O recurso Proteção de Disco do Windows descarta somente as alterações feitas em arquivos que residam no mesmo disco rígido (partição) que o sistema Windows. Quando os usuários salvam seus trabalhos em uma unidade diferente, eles não são afetados pelo recurso Proteção de Disco do Windows.\nDica: Você pode redirecionar a pasta Meus Documentos do usuário para uma unidade alternativa para facilitar o uso.\nPosso permitir que os usuários façam alterações constantes em seus perfis?\nSim. Se houver um usuário que precise reter as alterações entre as reinicializações, você poderá isentá-lo do recurso Proteção de Disco do Windows criando o perfil desse usuário em uma partição separada da partição do sistema operacional. Por exemplo, se o Windows XP estiver instalado na unidade C, você poderá configurar o perfil do usuário para residir na unidade D. (Observação: Não bloqueie o perfil. Um perfil bloqueado removerá quaisquer modificações, independentemente de onde estiverem no computador.)\nPosso gerenciar um grupo de computadores remotamente com o Windows SteadyState?\nO Windows SteadyState foi projetado essencialmente para configurar computadores individuais para uso compartilhado. A única forma de gerenciar remotamente um grupo de trabalho composto de computadores ponto-a-ponto conectados em rede é exportando os perfis de usuários criados em um computador para um local na rede do qual outros computadores possam importar as mesmas configurações.\nSe os seus computadores compartilhados estiverem em um ambiente de servidor de domínio, o Active Directory fornecerá mais ferramentas poderosas para restringir os usuários e configurar os computadores. Todavia, o recurso Proteção de Disco do Windows do SteadyState é ainda muito útil para proteger a partição do sistema operacional de computadores de domínio.\nO Windows SteadyState funciona com servidores do Windows, Diretiva de Grupo e/ou Active Directory?\nSim, ele funciona em um ambiente de servidor com Diretiva de Grupo e Active Directory. Em geral, as ferramentas de servidor são recomendadas para controlar as restrições de usuário. Todavia, o recurso Proteção de Disco do Windows do SteadyState é recomendado para proteger a partição do sistema operacional dos computadores compartilhados.\nTodos podem acessar a comunidade do WSS no Microsoft Technet clicando em seu ícone na própria tela inicial do produto.\nO Windows SteadyState é destinado a usuários do Windows XP PRO, Home e Tablet PC sob NTFS.\nGostou? Faça o download em http://www.microsoft.com/downloads/details.aspx?displaylang=pt-br\u0026amp;FamilyID=d077a52d-93e9-4b02-bd95-9d770ccdb431\n","permalink":"http://ricardomartins.com.br/voce-conhece-o-windows-steady-state/","summary":"\u003cp\u003eVou compartilhar com vocês um utilitário gratuito da Microsoft, que é uma mão na roda para adminsitradortes de \u003cspan class=\"bbli\"\u003eredes\u003c/span\u003e. Estou falando do Windows Steady State, um utilitário para configurar restrições, similares à GPO’s de domínio, em estações clientes. Eu utilizo em vários clientes e recomendo.\u003c/p\u003e\n\u003cp\u003eAtualmente, o Windows SteadyState já está na versão 2.5. Ele é um aplicativo se propõe a manter intacto o \u003cspan class=\"bbli\"\u003esistema operacional\u003c/span\u003e e suas respectivas configurações livres dos dedos “fuçadores” dos usuários. Seja em uma empresa ou em um internet café com grande volume de clientes que utilize a linha de produtos Microsoft.\u003c/p\u003e","title":"Você conhece o Windows Steady State?"},{"content":"Se você é um “Hard User” de Internet, já sabe do que estou falando e está bem acostumado com arquivos ISO.\nGeralmente você precisa usar programas como Alcohol , Iso Hunter, 7Zip, etc,etc,etc para abrir arquivos com estas extensões.\nExiste uma ferramenta que permite que você monte esses arquivos como pastas virtuais com apenas um clique. E o melhor de tudo é que é livre para uso comercial ou residencial. Com ele voce pode acessar os arquivos sem ter que extraí-los.\nAbaixo algumas screenshots.\nFaça o download em http://www.pismotechnic.com/download/pfmap-050.exe\n","permalink":"http://ricardomartins.com.br/monte-arquivos-iso-zip-e-cfs-como-pastas-virtuais/","summary":"\u003cp\u003eSe você é um “Hard User” de Internet, já sabe do que estou falando e está bem acostumado com arquivos ISO.\u003c/p\u003e\n\u003cp\u003eGeralmente você precisa usar programas como Alcohol , Iso Hunter, 7Zip, etc,etc,etc para abrir arquivos com estas extensões.\u003c/p\u003e\n\u003cp\u003eExiste uma ferramenta que permite que você monte esses arquivos como pastas virtuais com apenas um clique. E o melhor de tudo é que é livre para uso comercial ou residencial. Com ele voce pode acessar os arquivos sem ter que extraí-los.\u003c/p\u003e","title":"Monte arquivos ISO, ZIP e CFS como pastas virtuais"},{"content":"Há algum tempo atrás eu mostrei aqui no blog um método para bloquear pendrives e discos USB. Na época cheguei a colocar no título do post a descrição dizendo que era um método fácil, fácil…\nEste post você pode conferir aqui: http://ricardomartins.com.br/bloqueando-pendrives-no-windows-facil-facil/\nRealmente é uma forma simples, porém requer certo esforço administrativo. Recentemente eu descobrí um utilitário que torna a tarefa mais simples ainda. Ele faz a mesma coisa citada no post linkado acima, porém você só precisa de um clique para ele bloquear (fazendo todo o procedimento de remover permissões dos arquivos usbstor.inf, usbstor.pnf e usbstor.sys e a alteração no registro) e outro clique para desbloquear.\nIsso mesmo, você clica em “Lock USB Port” e ele bloqueia. Depois clica em “Un-Lock USB Port” e ele libera as USB’s para você!\nAssim, você pode entrar como administrador, executar o programa e deixar bloqueado. Quando precisar usar algum dispositivo “usb-storage”, você loga novamente na máquina com sua conta de administrador e desbloqueia.\nClique na imagem abaixo para fazer o download.\nObs: Caso você tenha problemas para executá-lo no Windows 7, clique com o botão direito e mande executar como administrador, mesmo que já esteja logado com ele.\n","permalink":"http://ricardomartins.com.br/como-bloquear-pendrive/","summary":"\u003cp\u003eHá algum tempo atrás eu mostrei aqui no blog um método para bloquear pendrives e discos USB. Na época cheguei a colocar no título do post a descrição dizendo que era um método fácil, fácil…\u003cbr\u003e\nEste post você pode conferir aqui: \u003ca href=\"http://ricardomartins.com.br/bloqueando-pendrives-no-windows-facil-facil/\"\u003ehttp://ricardomartins.com.br/bloqueando-pendrives-no-windows-facil-facil/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eRealmente é uma forma simples, porém requer certo esforço administrativo. Recentemente eu descobrí um utilitário que torna a tarefa mais simples ainda. Ele faz a mesma coisa citada no post linkado acima, porém você só precisa de um clique para ele bloquear (fazendo todo o procedimento de remover permissões dos arquivos usbstor.inf, usbstor.pnf e usbstor.sys e a alteração no registro) e outro clique para desbloquear.\u003c/p\u003e","title":"Como bloquear pendrive"},{"content":"Eu sempre critiquei o novo menu iniciar do Windows 7. Cheguei a procurar algumas maneiras de deixá-lo no modo clássico no entanto ainda não havia descoberto uma forma de fazê-lo.\nAté que depois acabei me acostumando. E depois de ter me acostumado acabei encontrando um projeto open source chamado Classic Chell, que permite utilizar o menu iniciar clássico no Windows 7.\nVocê pode encontrá-lo aqui: http://classicshell.sourceforge.net/\nMuito simples de instalar, basta executar o setup e conferir as modificações no menu. Ele também possui alguns temas que você pode usar se preferir.\nAté a próxima,\nRicardo.\n","permalink":"http://ricardomartins.com.br/menu-iniciar-classico-no-windows-7/","summary":"\u003cp\u003eEu sempre critiquei o novo menu iniciar do Windows 7. Cheguei a procurar algumas maneiras de deixá-lo no modo clássico no entanto ainda não havia descoberto uma forma de fazê-lo.\u003c/p\u003e\n\u003cp\u003eAté que depois acabei me acostumando. E depois de ter me acostumado acabei encontrando um projeto open source chamado Classic Chell, que permite utilizar o menu iniciar clássico no Windows 7.\u003c/p\u003e\n\u003cp\u003eVocê pode encontrá-lo aqui: \u003ca href=\"http://classicshell.sourceforge.net/\"\u003ehttp://classicshell.sourceforge.net/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMuito simples de instalar, basta executar o setup e conferir as modificações no menu. Ele também possui alguns temas que você pode usar se preferir.\u003c/p\u003e","title":"Menu Iniciar Clássico no Windows 7"},{"content":"Se você já teve que reinstalar uma máquina que você não tinha o cd com os drivers, sabe a dor de cabeça que é para sair procurando drivers pela internet.\nEu encontrei uma ferramenta gratuita chamada “Driver Backup”\nEle permite que você backup todos os seus drivers atuais, e até mesmo gerar um script de instalação que você pode executar para instalá-los automaticamente.\nFaça o download em http://sourceforge.net/projects/drvback/\nEu havia pensado em fazer um tutorial mostrando o passo-a-passo mas é tão intuitivo que não vale a pena o trabalho. Com certeza você não terá problemas para descobrr como fazer.\n","permalink":"http://ricardomartins.com.br/utilitario-gratuito-para-backup-de-drivers/","summary":"\u003cp\u003eSe você já teve que reinstalar uma máquina que você não tinha o cd com os drivers, sabe a dor de cabeça que é para sair procurando drivers pela internet.\u003c/p\u003e\n\u003cp\u003eEu encontrei uma ferramenta gratuita chamada “Driver Backup”\u003c/p\u003e\n\u003cp\u003eEle permite que você backup todos os seus drivers atuais, e até mesmo gerar um script de instalação que você pode executar para instalá-los automaticamente.\u003c/p\u003e\n\u003cp\u003eFaça o download em \u003ca href=\"http://sourceforge.net/projects/drvback/\"\u003ehttp://sourceforge.net/projects/drvback/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEu havia pensado em fazer um tutorial mostrando o passo-a-passo mas é tão intuitivo que não vale a pena o trabalho. Com certeza você não terá problemas para descobrr como fazer.\u003c/p\u003e","title":"Utilitário gratuito para backup de drivers"},{"content":"Se você é técnico em informática ou administra alguma rede ou sistema, com certeza precisa conhecer o site abaixo… Você vai se identificar com centenas de situações do dia-a-dia…\nConfira: http://www.vidadesuporte.com.br\n","permalink":"http://ricardomartins.com.br/site-para-tecnicos-e-sysadmins/","summary":"\u003cp\u003eSe você é técnico em informática ou administra alguma rede ou sistema, com certeza precisa conhecer o site abaixo… Você vai se identificar com centenas de situações do dia-a-dia…\u003c/p\u003e\n\u003cp\u003eConfira: \u003ca href=\"http://www.vidadesuporte.com.br\"\u003ehttp://www.vidadesuporte.com.br\u003c/a\u003e\u003c/p\u003e","title":"Site para técnicos e sysadmins"},{"content":"Pessoal,\nSeguindo a iniciativa do Efetividade.Net, estou participando da promoção: “O que você carrega na sua mochila ou bolsa de trabalho?”\nAbaixo está a foto para participar da promoção com tudo o que levo em minha mochila. Para ver a descrição dos ítens, basta clicar na foque será aberta no Flickr com as descrições. Se preferir, mais abaixo, também listei os ítens\nComeçando da esquerda para a direita:\n1- Estojo e canetas diversas\n2- Mouse Kesingston\n3- Fonte do Netbook\n4- Carregador do celular\n5- Cabo USB do celular\n6- Óculos escuros\n7- Joguinho UNO para os momentos de lazer\n8- Bloco de papel\n9- Régua\n10- Caderneta de anotações\n11- Tylenol para dor de cabeça\n12- Omeprazol para azia e gastrite\n13: Caneta para escrever em CD/DVD\n14- Porta CD’s\n15- Envelope plástico para guardar papéis\n16- DVD Virgem\n17- Mochila HP\n18- Netbook Sony Vaio W211AX\n19- 2 Pendrives Kingston, preto de 8 GB e colorido de 4 GB\n20- Adaptador MicroSD\n21- Fone de ouvido earbound\n22- Balas 7 Belo\n23- Cadeado para a Mochila\n24- HD Externo WesternDigital My Passport 500 GB com cabo USB\n25- Clips para papel\n26- Kit tudo em um de ferramentas e chaves\n27- Luva do Netbook\n28- HD Externo 500 GB\n29- Fonte de alimentação do HD Externo\n30 – Cabo USB do HD Externo\n","permalink":"http://ricardomartins.com.br/o-que-eu-levo-na-minha-mochila-de-trabalho/","summary":"\u003cp\u003ePessoal,\u003cbr\u003e\nSeguindo a iniciativa do Efetividade.Net, estou participando da promoção: \u003ca href=\"http://www.efetividade.net/2010/07/19/promocao-mochilas/\"\u003e“O que você carrega na sua mochila ou bolsa de trabalho?”\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAbaixo está a foto para participar da promoção com tudo o que levo em minha mochila. Para ver a descrição dos ítens, basta clicar na foque será aberta no Flickr com as descrições. Se preferir, mais abaixo, também listei os ítens\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.flickr.com/photos/rmartins/4819852146/\"\u003e\u003cimg alt=\"Minha Mochila 1\" loading=\"lazy\" src=\"http://farm5.static.flickr.com/4094/4819852146_ae90f96fcc.jpg\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComeçando da esquerda para a direita:\u003c/p\u003e","title":"O que eu levo na minha mochila de trabalho"},{"content":"Pessoal,\nAbaixo alguns e-books disponibilizados gratuitamente pela Microsoft Press\nFree ebook: Deploying Windows 7, Essential Guidance Free ebook: Introducing Windows Server 2008 R2 Free ebook: Windows 7 troubleshooting tips Free ebook: First Look Microsoft Office 2010 Free ebook: Understanding Microsoft Virtualization Solutions (Second Edition) Free ebook: Own Your Future: Update Your Skills with Resources and Career Ideas from Microsoft Free ebook: Programming Windows Phone 7 Series (DRAFT Preview) Free ebook: Introducing Microsoft SQL Server 2008 R2 Code for “Moving to Microsoft Visual Studio 2010” DRAFT ebooks Free ebook: Moving to Microsoft Visual Studio 2010 (DRAFT Preview) Free ebook: Moving to Microsoft Visual Studio 2010 (DRAFT Preview II) Fonte: Microsoft Press Blog\n","permalink":"http://ricardomartins.com.br/ebooks-gratuito-microsoft-presss/","summary":"\u003cp\u003ePessoal,\u003cbr\u003e\nAbaixo alguns e-books disponibilizados gratuitamente pela Microsoft Press\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://blogs.msdn.com/b/microsoft_press/archive/2009/10/16/free-e-book-deploying-windows-7-essential-guidance.aspx\"\u003eFree ebook: Deploying Windows 7, Essential Guidance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blogs.msdn.com/b/microsoft_press/archive/2009/10/20/free-ebook-introducing-windows-server-2008-r2.aspx\"\u003eFree ebook: Introducing Windows Server 2008 R2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blogs.msdn.com/b/microsoft_press/archive/2009/10/26/free-e-book-windows-7-troubleshooting-tips.aspx\"\u003eFree ebook: Windows 7 troubleshooting tips\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blogs.msdn.com/b/microsoft_press/archive/2010/01/20/free-ebook-first-look-microsoft-office-2010.aspx\"\u003eFree ebook: First Look Microsoft Office 2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blogs.msdn.com/b/microsoft_press/archive/2010/02/16/free-ebook-understanding-microsoft-virtualization-r2-solutions.aspx\"\u003eFree ebook: Understanding Microsoft Virtualization Solutions (Second Edition)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blogs.msdn.com/b/microsoft_press/archive/2010/03/03/free-ebook-own-your-future-update-your-skills-with-resources-and-career-ideas-from-microsoft.aspx\"\u003eFree ebook: Own Your Future: Update Your Skills with Resources and Career Ideas from Microsoft\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blogs.msdn.com/b/microsoft_press/archive/2010/03/15/free-ebook-programming-windows-phone-7-series-draft-preview.aspx\"\u003eFree ebook: Programming Windows Phone 7 Series (DRAFT Preview)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blogs.msdn.com/b/microsoft_press/archive/2010/04/14/free-ebook-introducing-microsoft-sql-server-2008-r2.aspx\"\u003eFree ebook: Introducing Microsoft SQL Server 2008 R2\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blogs.msdn.com/b/microsoft_press/archive/2010/05/17/code-for-moving-to-microsoft-visual-studio-2010-draft-ebooks.aspx\"\u003eCode for “Moving to Microsoft Visual Studio 2010” DRAFT ebooks\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blogs.msdn.com/b/microsoft_press/archive/2010/03/26/free-ebook-moving-to-microsoft-visual-studio-2010-draft-preview.aspx\"\u003eFree ebook: Moving to Microsoft Visual Studio 2010 (DRAFT Preview)\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://blogs.msdn.com/b/microsoft_press/archive/2010/05/13/free-ebook-moving-to-microsoft-visual-studio-2010-draft-preview-ii.aspx\"\u003eFree ebook: Moving to Microsoft Visual Studio 2010 (DRAFT Preview II)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFonte: \u003ca href=\"http://blogs.msdn.com/b/microsoft_press/\"\u003eMicrosoft Press Blog\u003c/a\u003e\u003c/p\u003e","title":"Ebooks Gratuito Microsoft Presss"},{"content":"Olá meus amigos,\nBom este post é só para informar o motivo de este blog estar um pouco desatualizado ultimamente. Eu vou ser papai, então estou na correria e sem muito tempo para escrever artigos aqui.\nParalelamente, criei um blog para colocar apenas as notícias dessa nota etapa que estou vivendo. Você pode acompanhar em http://engravidamos.wordpress.com\nAbraços,\nRicardo.\n","permalink":"http://ricardomartins.com.br/vou-ser-papai/","summary":"\u003cp\u003eOlá meus amigos,\u003cbr\u003e\nBom este post é só para informar o motivo de este blog estar um pouco desatualizado ultimamente. Eu vou ser papai, então estou na correria e sem muito tempo para escrever artigos aqui.\u003c/p\u003e\n\u003cp\u003eParalelamente, criei um blog para colocar apenas as notícias dessa nota etapa que estou vivendo. Você pode acompanhar em \u003ca href=\"http://engravidamos.wordpress.com\"\u003ehttp://engravidamos.wordpress.com\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAbraços,\u003c/p\u003e\n\u003cp\u003eRicardo.\u003c/p\u003e","title":"Vou ser papai!"},{"content":"A idéia deste artigo é mostrar como criar um pendrive bootável que contenha uma imagem do seu equipamento que permita a realização do auto-restore. Ou seja, basta plugar o pendrive, dar o boot e em 10 minutos seu sistema estará da mesma forma de quando você criou a imagem, automaticamente.\nEu não vou entrar em detalhes sobre como criar a imagem, visto que é pré-requisito para o que iremos fazer.\nEste artigo surgiu em uma necessidade que tive de criar este tipo de sistema utilizando DVD’s, com o intuito de criar um sistema de DVD-Restore, através do Ghost. Depois de uma longa maratona de testes e pesquisas na internet para fazer isto com DVD’s, consegui fazer após encontrar os dois links destacados abaixo. No entanto, depois de algum tempo percebí que utilizar um pendrive seria bem mais simples e desde então eu simplemente não utilizo nem recomendo a utilização de DVD’s para este fim.\nSe você for levar em conta o preço de um pendrive de cerca de 8GB com espaço suficiente pra você fazer ghost de uma partição de sistema inteira, sem ter problemas com arranhões, etc, vai concordar em utilizar pendrive para isto…\nSe mesmo assim ficou interessado em utilizar DVD’s, basta seguir o tutorial dos links abaixo:\nhttp://users.telenet.be/satcp/ghostresq01.htm – Este processo é mais simples.\nhttp://radified.com/Ghost/ghost_1.htm – Processo um pouco mais complexo e detalhado mas funciona da mesma forma.\nMãos à obra:\nPrimeiro você vai precisar do HP USB Disk Storage, para formatar o pendrive e configurá-lo como bootável. Execute o download em:\nhttp://pcworld.uol.com.br/downloads/2008/04/25/hp-usb-disk-storage-format-tool/\nA utilização é simples, primeiro você deve escoher o dispositivo, escolher o FileSystem (lembrando que para permitir que seja bootável deve ser FAT32 e não NTFS) e habilitar a opção de criar um disco de inicialização.\nNesta última opção, escolha “using DOS System files located at:” e então aponte para uma pasta contendo os arquivos command.com e io.sys.\nVocê pode conseguí-los em um disquete de boot o Windows98. Baixe em http://www.bootdisk.com/bootdisk.htm e crie o seu.\nCaso não possua um drive de disquete, baixe neste link http://users.telenet.be/satcp/files/bootdisk.zip e extraia o conteúdo do arquivo bootimage.ima utilizando o WinImage\nPor padrão, vem embutido no arquivo io.sys uma splashscreen do Windows98. Caso você não queira que ela apareça durante o boot do seu pendrive, basta criar um arquivo em qualquer editor de imagem (pode ser o paintbrush mesmo) com fundo todo preto, e com as resoluções em 320×400 e salvá-lo como logo.sys. Em seguida copiei também este arquivo para o pendrive.\nAgora crie um arquivo chamado autoexec.bat com o seguinte conteúdo:\n@ECHO OFF ghost.bat E agora crie um arquivo chamado ghost.bat com o seguinte conteúdo:\nGHOST.EXE -clone,MODE=pload,SRC=imagem.gho:1,DST=2:1 Explicando:\nVocê cria um arquivo autoexec.bat que irá chamar o ghost.bat, que será quem efetivamente irá executar o ghost.exe com os parâmetros informados.\nNo caso, lembre-se que no campo SRC=imagem.gho, você deve substituir pelo nome do seu arquivo de imagem, e em DST=2:1, significa disco 2, partição 1, ou seja, eu quero restaurar o conteúdo de imagem.gho na primeira partição do segundo disco. Ajuste este valor para a sua necessidade\nPor fim, copie os arquivos da sua imagem para dentro do pendrive e também o executável do ghost. Lembrando apenas que caso a sua imagem seja muito grande, você terá que utilizar a opção de split do próprio ghost para dividir a imagem em vários arquivos de cerca de 3.5GB. Isto é necessário pois o FAT32 tem uma limitação onde os arquivos não podem ser maiores que 4GB.\nNote que neste caso, será gerado um arquivo com a extensão .gho e os demais terão a extensão .ghs.\nResumindo:\nArquivos que deverão ser copiados para dentro do pendrive:\ncommand.com io.sys autoexec.bat ghost.bat ghost.exe logo.sys arquivos de imagem Agora que você leu até o final, vou dar o pulo do gato. Clique nos links abaixo e baixe os arquivos necessários:\n– Ghost.exe\n– Insumos\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/pendrive-bootavel-com-ghost/","summary":"\u003cp\u003eA idéia deste artigo é mostrar como criar um \u003cspan class=\"bbli\"\u003ependrive\u003c/span\u003e bootável que contenha uma imagem do seu equipamento que permita a realização do auto-restore. Ou seja, basta plugar o pendrive, dar o boot e em 10 minutos seu sistema estará da mesma forma de quando você criou a imagem, automaticamente.\u003c/p\u003e\n\u003cp\u003eEu não vou entrar em detalhes sobre como criar a imagem, visto que é pré-requisito para o que iremos fazer.\u003c/p\u003e\n\u003cp\u003eEste artigo surgiu em uma necessidade que tive de criar este tipo de sistema utilizando DVD’s, com o intuito de criar um sistema de \u003cspan class=\"bbli\"\u003eDVD\u003c/span\u003e-Restore, através do Ghost. Depois de uma longa maratona de testes e pesquisas na internet para fazer isto com DVD’s, consegui fazer após encontrar os dois links destacados abaixo. No entanto, depois de algum tempo percebí que utilizar um pendrive seria bem mais simples e desde então eu simplemente não utilizo nem recomendo a utilização de DVD’s para este fim.\u003c/p\u003e","title":"Pendrive Bootável com Ghost"},{"content":"Sabemos que em um ambiente em domínio, existem GPO’s que permitem criar “whitelists” ou “blacklists” permitindo ou não a execução de determinados softwares.\nPodemos criar listas de executáveis permitidos e negados. Porém em um ambiente workgroup, ou até mesmo em uma estação standalone, eu não conhecia uma maneira de fazer isto.\nAté que hoje eu descobrí uma maneira bastante simples de se fazer isto, utilizando um pequeno utilitário chamado Trust-No-Exe. Trabalha como um filtro de executáveis e permite criar listas de executáveis negados e liberados para execução no Windows.\nEle permite ainda que você faça isso pela rede em outras máquinas, sem ter a necessidade de ir em uma por uma.\nMaiores informações e download, estão disponíveis em: http://www.beyondlogic.org/solutions/trust-no-exe/trust-no-exe.htm\n","permalink":"http://ricardomartins.com.br/como-bloquear-execucao-de-determinado-software-no-windows/","summary":"\u003cp\u003eSabemos que em um ambiente em domínio, existem GPO’s que permitem criar “whitelists” ou “blacklists” permitindo ou não a execução de determinados softwares.\u003c/p\u003e\n\u003cp\u003ePodemos criar listas de executáveis permitidos e negados. Porém em um ambiente workgroup, ou até mesmo em uma estação standalone, eu não conhecia uma maneira de fazer isto.\u003c/p\u003e\n\u003cp\u003eAté que hoje eu descobrí uma maneira bastante simples de se fazer isto, utilizando um pequeno utilitário chamado \u003cstrong\u003eTrust-No-Exe.\u003c/strong\u003e Trabalha como um filtro de executáveis e permite criar listas de executáveis negados e liberados para execução no Windows.\u003c/p\u003e","title":"Como bloquear execução de determinado software no Windows"},{"content":"Por Alexandre Otto Strube\nHoje o texto será um pouco menos técnico, mas igualmente prático.\nProcessadores de 64 bits são hoje uma realidade, e não apenas um sonho de futuro. Mesmo os processadores celeron atuais são capazes de executar sistemas operacionais de 64 bits. Os preços não são mais altos do que os de 32 bits, eles simplesmente os sucederam.\nCoisa semelhante deverá acontecer com os processadores intel pentium 4, que, por serem mais caros, têm uma rotatividade menor, portanto ainda são encontrados em sua maioria em 32 bits no mercado brasileiro ainda.\nNo lado da AMD, os athlon já são 64 bits há muito tempo. Os processadores da linha Sempron, que são o antigo athlon XP, ainda são de 32 bits. Existem algumas poucas unidades encontráveis no mercado que permitem endereçamento de memória de 64 bits.\nQue os processadores de 64 bits valem a pena, não há a menor dúvida. Eles permitem uma capacidade muito maior de memória, e permitem rodar os softwares do futuro, coisa um pouco mais complicada para os de 32 bits. O caso é: Vale a pena ter um sistema operacional de 64 bits hoje em dia?\nA grande questão atualmente é com os controladores de dispositivo, que nós nos referimos como Device Drivers. Vários controladores de dispositivo são disponíves apenas para sistemas operacionais de 32 bits.\nO caso é especialmente emblemático no caso do Microsoft Windows. Como ele foi lançado há relativamente pouco tempo, os desenvolvedores não tiveram tempo (ou interesse) em lançar versões de 64 bits dos drivers dos seus produtos (afinal, quase ninguém usa). A falta de drivers para o windows xp 64 é emblemática. Os próprios integradores e lojas vendem máquinas de 64 bits com o windows de 32.\nNo caso do Linux, a coisa muda um pouco de figura, e, incrivelmente, para melhor.\nPor quê?\nA explicação é simples: o Linux é software livre. Temos grande parte dos drivers desenvolvidos pela própria comunidade de software livre. Da mesma forma que, em grande parte dos casos, ter um programa rodando nos pc 64 bits é simplesmente uma questão de recompilação, assim acontece com muitos dos drivers. Outros dão algum trabalho, mas nada do outro mundo.\nExistem alguns drivers, entretanto, que são problemáticos mesmo no caso do Linux. São eles exatamente os drivers proprietários, que fazem o pesadelo do xp 64.\nPortanto, se você quer usar Linux mas tem um winmodem, a chance é de que você não irá conseguir usá-lo, a menos que use o driver da Linuxant ( http://www.linuxant.com/drivers ) – que é específico para modems conexant e é pago.\nO caso é ainda mais estranho para as placas de rede sem fio. Muitas delas não têm drivers para Linux, e usa-se uma aplicação chamada ndiswrapper ( http://ndiswrapper.sourceforge.net/ )que pode usar os drivers do windows – mas nesse caso, deve usar os drivers do xp-64, e você está novamente em um beco sem saída, pois a maiora das placas não tem driver nem para o windows.\nConclusão. Vale a pena usar o Linux de 64 bits? Vale. E por que não usar? Por conta de um ou outro hardware específico. Fora isso, sejam bem-vindos ao futuro!\n","permalink":"http://ricardomartins.com.br/sistemas-operacionais-64-bits-vale-a-pena/","summary":"\u003cp\u003ePor Alexandre Otto Strube\u003c/p\u003e\n\u003cp\u003eHoje o texto será um pouco menos técnico, mas igualmente prático.\u003c/p\u003e\n\u003cp\u003eProcessadores de 64 bits são hoje uma realidade, e não apenas um sonho de futuro. Mesmo os processadores celeron atuais são capazes de executar sistemas operacionais de 64 bits. Os preços não são mais altos do que os de 32 bits, eles simplesmente os sucederam.\u003c/p\u003e\n\u003cp\u003eCoisa semelhante deverá acontecer com os processadores intel pentium 4, que, por serem mais caros, têm uma rotatividade menor, portanto ainda são encontrados em sua maioria em 32 bits no mercado brasileiro ainda.\u003cbr\u003e\nNo lado da AMD, os athlon já são 64 bits há muito tempo. Os processadores da linha Sempron, que são o antigo athlon XP, ainda são de 32 bits. Existem algumas poucas unidades encontráveis no mercado que permitem endereçamento de memória de 64 bits.\u003c/p\u003e","title":"Sistemas operacionais 64 bits: Vale a pena?"},{"content":"\nSe você está querendo saber como fazer para alterar o idioma do seu Windows 7 ou Vista, veio ao lugar correto. Aqui você vai ver que isto é possível pra qualquer versão, seja Starter Edition, Basic, Home, Professional, Ultimate, etc…\nUm cliente meu comprou um laptop na França que veio com o Windows 7 Home Basic. Com isso o idioma do sistema era o Francês, e ele queria que eu instalasse uma versão pirata em português.\nPensei: Se ele tem uma versão original, não faz muito sentido instalar uma versão pirata. Além disso, não queria ter o trabalho de reinstalar todos os aplicativos, drivers e etc…\nEu já havia ouvido falar que no Vista e no 7, a Microsoft havia liberado um patch com o MUI (Multilingual User Interface) onde bastaria escolher o idioma e baixar.\nAlém disso, hoje já está incluso pelo próprio Windows Update do Sistema. O problema é que ninguém havia me contado que este recurso só estaria disponível para as versões Enterprise e Ultimate.\nNas demais versões, ao realizar o download e instalar, não acontece nada; e ao fazer o Windows Update, esta atualização não aparece como disponível para download e instalação. Ou seja, se seu Windows não fosse uma destas versões, você teria que ficar com o sistema operacional na versão que comprou, ou fazer o que eu estava quase fazendo: Instalando uma versão pirata em português.\nMas agora os seus problemas acabaram!\nEu começei a buscar pelo Google informações à respeito e descobrí uma ferramenta sensacional chamada Vistalizator (http://www.froggie.sk/). É um software que permite que você faça a tradução dos sistemas Windows Vista e Windows 7 (32 ou 64 bits) em menos de 5 minutos com a vantagem de poder utilizar todos os 36 language packs oficiais da Microsoft.\nO download pode ser feito em http://www.froggie.sk/download/Vistalizator.exe\nAbaixo a relação de onde estão os links diretos do site da Microsoft para as versões 32 e 64 Bits de Windows 7 e Windows Vista:\nOs links para download dos language packs para Windows 7 32 Bits estão disponíveis em: http://www.froggie.sk/7lp32rtm.html\nOs links para download dos language packs para Windows 7 64 Bits estão disponíveis em: http://www.froggie.sk/7lp64rtm.html\nOs links para download dos language packs para Windows Vista 32 Bits estão disponíveis em: http://www.froggie.sk/lp32sp2.html\nOs links para download dos language packs para Windows Vista 64 Bits estão disponíveis em: http://www.froggie.sk/lp64sp2.html\nO funcionamento é simples, você baixa o pacote de tradução normalmente, depois abre este software e adiciona o arquivo nele. Depois manda instalar e pronto! Basta reiniciar o Windows e você vai ver ele lindão no seu idioma!\nEu não vou entrar em detalhes sobre como fazer, pois é bastante intuitivo, mas se você precisar de ajuda, pode mandar um comentário ou acesse o tutorial em http://www.froggie.sk/usage.html.\nNo link acima, você também encontra a lista com os links direto do site da Microsoft com os language packs para Windows 7 ou Windows Vista em 32 ou 64 Bits\nSe preferir, tem o passo-a-passo com screenshots em http://www.froggie.sk/screens.html.\nNão tem erro. É só seguir as orientações e pronto!\nAssim que eu embolsei uma grana extra sem fazer muita força reinstalando todos os drivers, softwares, e etc e o meu cliente não precisou ficar com windows pirata.\nAté a próxima\n","permalink":"http://ricardomartins.com.br/alterar-o-idioma-do-windows-7-e-vista-qualquer-versao/","summary":"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2010/03/windows7leak1.jpg\"\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2010/03/windows7leak1-300x300.jpg\" title=\"windows7leak1\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSe você está querendo saber como fazer para alterar o idioma do seu Windows 7 ou Vista, veio ao lugar correto. Aqui você vai ver que isto é possível pra qualquer versão, seja Starter Edition, Basic, Home, Professional, Ultimate, etc…\u003c/p\u003e\n\u003cp\u003eUm cliente meu comprou um \u003ca href=\"http://sledge.boo-box.com/list/page/bGFwdG9wXyMjX2Jhcl8jI190YWdnaW5nLXRvb2wtd3BfIyNfMTUxMjY4OQ==-60\"\u003elaptop\u003c/a\u003e na França que veio com o Windows 7 Home Basic. Com isso o idioma do sistema era o Francês, e ele queria que eu instalasse uma versão pirata em português.\u003c/p\u003e","title":"Alterar o idioma do Windows 7 e Vista (Qualquer versão)"},{"content":"Aproveitando o assunto anterior sobre redes, wireless e o Windows 7, encontrei no site do Plínio Torres um artigo muito interessante e vou transcrevê-lo aqui. Trata de uma forma de usar o Windows 7 como se fosse um GPS através de redes sem fio.\nO novo Windows 7 possui uma plataforma de suporte a sensores, estes usados para ler informações de aparelhos como medidores de temperatura, pressão ou aparelhos de localização, como um GPS físico ligado ao micro.\nAtravés do desenvolvimento de um drive especial, é possível utilizar o sistema de sensores para tringular sinais de conexão wireless e IP Lookup para determinar a localização física do micro em um determinado local.\nApós determinar as coordenadas de localização, um aplicativo desenvolvido a partir do Google Maps, permite visualizar o local onde o micro se encontra naquele momento.\nMesmo não sendo preciso como um GPS, o sistema conseguiu dentro de uma margem de erro de 100 metros determinar a localização do meu notebook sem maiores dificuldades. Segundo os desenvolvedores do drive, a localização pode ser feita apenas utilizando o IP da máquina, mas a recomendação para uma boa localização é a conexão com uma rede wireless, para que o sistema possa realizar a triangulação física do dispositivo.\nInstalação:\nConecte o computador a rede sem fios.\nFaça a download do drive e do software de localização.\nSoftware para ativação do sensor (Somente para Windows 7) Aplicativo Google para utilização das coordenadas Após a instalação do drive, vá ao Painel de Controle, em Sensor de Localização e outros Sensores e habilite o Geosense Location Sensor.\nAbra o aplicativo do Google Maps e confira a localização sugerida.\n","permalink":"http://ricardomartins.com.br/utilizando-windows-7-e-rede-sem-fios-como-gps/","summary":"\u003cp\u003eAproveitando o assunto anterior sobre redes, wireless e o Windows 7, encontrei no site do Plínio Torres um artigo muito interessante e vou transcrevê-lo aqui. Trata de uma forma de usar o Windows 7 como se fosse um GPS através de redes sem fio.\u003c/p\u003e\n\u003cp\u003eO novo Windows 7 possui uma plataforma de suporte a sensores, estes usados para ler informações de aparelhos como medidores de temperatura, pressão ou aparelhos de localização, como um GPS físico ligado ao micro.\u003c/p\u003e","title":"Utilizando Windows 7 e rede sem fios como GPS"},{"content":"A Microsoft adicionou algums funcionalidades ao Windows 7 para permitir que uma placa de rede wireless possa ser colocada em modo promíscuo e tornar-se um verdadeiro AP Wireless\nPelo que andei lendo paresse que isto não funciona em todas as placas de rede wireless. Imagino que o driver e o hardware precisem suportar isto.\nExistem duas maneiras de fazer isto:\nA primeira seria você usar uma ferramenta gratuita chamada Connectify. (esta é bem mais simples); A segunda é pelo próprio Windows (leia mais abaixo). Primeiro método\nBaixe a ferramenta em http://www.connectify.me/\nUma vez instalado, defina a placa de rede sem fio que você estará usando, o SSID e a senha:\nClique em “Start Hotspot” e já estará pronto para funcionar. O melhor deste software é que ele é gratuito… pode conferir no site deles.\nSegundo método\nAo invés de usar o Connectify, é dar alguns comandos no netsh pelo prompt de comando. Abra o prompt de comando como administrador e digite isto:\nnetsh wlan set hostednetwork mode=allow ssid=[ssid] key=[key] Troque o [ssid] com o ssid da sua rede e a chave [key] pela chave WPA2 que você deseja usar.\nO próximo passo é habilitar o compartilhamento de conexão com a internet. Para isso, você precisa acessar as propriedades da placa de rede que está conectada á internet. Vá então ao painel de controle e clique em “Rede e Internet”. Quando a próxima janela abrir vá em “Central de redes e compartilhamento”. Uma nova janela será exibida. Na lateral esquerda, clique no texto que diz “Alterar configurações do adaptador de rede”. Agora simplesmente clique com o botão direito nas propriedades da placa de rede que está conectada à internet.\nPor fim, vá até a aba chamada “Compartilhamento” e habilite o compartilhamento de conexão. Pronto, você já pode começar a usar sua máquina com Windows 7 como um access point.\nApenas um detalhe para ambos os métodos: Você é forçado a usar encriptação WPA2 para a conexão, assim você pode ter problemas com dispositivos mais antigos, e sistemas operacionais que não suportam.\n","permalink":"http://ricardomartins.com.br/tornando-seu-windows-7-um-access-point-wireless/","summary":"\u003cp\u003eA Microsoft adicionou algums funcionalidades ao Windows 7 para permitir que uma placa de rede wireless possa ser colocada em modo promíscuo e tornar-se um verdadeiro AP Wireless\u003c/p\u003e\n\u003cp\u003ePelo que andei lendo paresse que isto não funciona em todas as placas de rede wireless. Imagino que o driver e o hardware precisem suportar isto.\u003c/p\u003e\n\u003cp\u003eExistem duas maneiras de fazer isto:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA primeira seria você usar uma ferramenta gratuita chamada Connectify. (esta é bem mais simples);\u003c/li\u003e\n\u003cli\u003eA segunda é pelo próprio Windows (leia mais abaixo).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePrimeiro método\u003c/strong\u003e\u003c/p\u003e","title":"Tornando seu Windows 7 um access point wireless"},{"content":"Recentemente descobrí oTeamViewer. Aos poucos fui descobrindo como ele funciona e hoje é o que eu uso para acesso remoto. Uma poderosa ferramenta, que funciona sem ter problemas com firewall’s e etc.\nEu descobri o Teamviewer quando passei a trabalhar remotamente para uma das empresas onde faço consultoria e precisei de uma ferramenta rápida para acesso remoto, que não me desse problemas e nem mão de obra tendo que abrir porta em firewall. Cheguei a usar diversas ferramentas como próprio Remote Desktop do Windows, CrossLoop, VNC e derivados (TightVNC, RealVNC, UltraVNC…), Logmein, Yugma e por aí vai.\nAté que descobri o TeamViewer e meus problemas acabaram.É só configurar o ID e permitir que máquina seja acessada remotamente. Do outro lado, basta fornecer o ID da máquina e a senha de acesso. Pronto!\nAgora algo realmente interessante sobre ele:\nNa empresa citada no começo do artigo, eu tenho uma máquina que há cerca de uma semana era uma máquina com o Windows onde eu tinha o TeamViewer instalado e resolvia todos os problemas remotamente. Até que eu resolvi instalar o Linux nela.\nInfelizmente o TeamViewer não tem versão para Linux. Tentei instalar pelo Wine, conseguí instalar, mas ao iniciar dá alguns erros de dll’s e eu não estava afim de ficar esquentando a cabeça para tentar resolver.\nEntão pensei em testar o TeamViewer rodando em uma máquina virtual com o Windows, e pasmem: funciona!\nFoi simples assim:\nInstalei o Virtualbox e configurei a placa de rede virtual em modo bridge (Assim ela fica no mesmo range de ip da máquina real e consigo acessar a rede e a internet do mesmo modo que no Linux).\nDei boot em uma virtual machine com o Windows e instalei o TeamViewer. Em seguida configurei como seria o acesso remoto nele, e configurei o ID e a senha de acesso.\nPor fim, quando cheguei em casa, abri o TeamViewer da minha máquina e lá estava o Windows “virtual” rodando dentro do VirtualBox instalado no Linux, disponível para acesso. Cliquei e pronto! Tô Dentro!\nSe você achou interessante, experimente: http://www.teamviewer.com/pt/index.aspx\nNote que para a versão gratuita ou comercial, o instalador é o mesmo. No momento da instalação que você informa se irá usar para uso pessoal ou comercial. Escolha uso pessoal e todas as funcionaldades estarão disponíveis gratuitamente.\n","permalink":"http://ricardomartins.com.br/acesso-remoto-via-team-viewer/","summary":"\u003cp\u003eRecentemente descobrí o\u003cspan class=\"bbli\"\u003eTeamViewer\u003c/span\u003e. Aos poucos fui descobrindo como ele funciona e hoje é o que eu uso para acesso remoto. Uma poderosa ferramenta, que funciona sem ter problemas com firewall’s e etc.\u003c/p\u003e\n\u003cp\u003eEu descobri o Teamviewer quando passei a trabalhar remotamente para uma das empresas onde faço consultoria e precisei de uma ferramenta rápida para acesso remoto, que não me desse problemas e nem mão de obra tendo que abrir porta em \u003cspan class=\"bbli\"\u003efirewall\u003c/span\u003e. Cheguei a usar diversas ferramentas como próprio Remote Desktop do Windows, CrossLoop, VNC e derivados (TightVNC, RealVNC, UltraVNC…), Logmein, Yugma e por aí vai.\u003c/p\u003e","title":"Acesso remoto via Team Viewer"},{"content":"\nQuantas vezes já ocorreu de você deixa alguma coisa pra depois e aoportunidade passar? Quantas idéias você teve, não implementou e, quando se deu conta, elas não teriam mais o mesmo efeito se fossem implementadas?\nSegundo o dicionário Aurélio, procrastinar é “transferir para outro dia; adiar; delongar, demorar”.\nHá pessoas que têm o mau hábito de procrastinar: deixam tudo para depois, não fazem o que têm para fazer na hora em que deve ser feito. Bom, essas pessoas não sabem o que perdem. São avaliadas por outros apenas pelo seu hábito de procrastinar. Vivem dando desculpas do tipo “vou deixar para depois”, “daqui a pouco eu faço”, “farei quando tiver mais tempo”, “não gosto de fazer nada correndo”. É preciso vencer esse hábito dão prejudicial.\nFaça uma análise de seus afazeres para verificar se não desenvolveu (às vezes até inconscientemente) o hábito de procrastinar. Perceba quantas coisas estão atrasadas e quantas outras você tem deixado para depois. Preste atenção em quantas tarefas você já poderia ter cumprido mas estão engasgadas, tomando espaço na sua mente, tornando-se fatores estressantes, porque sempre retorna à sua lembrança o fato de você ainda não tê-las feito.\nÉ preciso ter a percepção que o famoso “do it now” (“faça agora”) dos americanos é um grande fator de sucesso profissional.\nNão se esqueça, use o follow-up, e escreva seus objetivos e metas.\n","permalink":"http://ricardomartins.com.br/cuidado-com-o-habito-de-procrastinar/","summary":"\u003cp\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2010/02/art.sleep_.atwork.gi_-292x180.jpg\" title=\"art.sleep.atwork.gi\"\u003e\u003c/p\u003e\n\u003cp\u003eQuantas vezes já ocorreu de você deixa alguma coisa pra depois e aoportunidade passar? Quantas idéias você teve, não implementou e, quando se deu conta, elas não teriam mais o mesmo efeito se fossem implementadas?\u003c/p\u003e\n\u003cp\u003eSegundo o dicionário Aurélio, procrastinar é “transferir para outro dia; adiar; delongar, demorar”.\u003c/p\u003e\n\u003cp\u003eHá pessoas que têm o mau hábito de procrastinar: deixam tudo para depois, não fazem o que têm para fazer na hora em que deve ser feito. Bom, essas pessoas não sabem o que perdem. São avaliadas por outros apenas pelo seu hábito de procrastinar. Vivem dando desculpas do tipo “vou deixar para depois”, “daqui a pouco eu faço”, “farei quando tiver mais tempo”, “não gosto de fazer nada correndo”. É preciso vencer esse hábito dão prejudicial.\u003c/p\u003e","title":"Cuidado com o hábito de procrastinar"},{"content":"Post comemorativo:\nAcessando as estatísticas do site hoje, fiquei feliz ao ver que em cerca de 1 ano e meio, o site já atingiu cerca de 50 mil visitas.\nAgradeço à todos os visitantes, e espero conseguir melhorar ainda mais o conteúdo disponibilizado aqui para atrair cada vez mais visitantes.\n","permalink":"http://ricardomartins.com.br/50-mil-visitas/","summary":"\u003cp\u003ePost comemorativo:\u003c/p\u003e\n\u003cp\u003eAcessando as estatísticas do site hoje, fiquei feliz ao ver que em cerca de 1 ano e meio, o site já atingiu cerca de 50 mil visitas.\u003c/p\u003e\n\u003cp\u003eAgradeço à todos os visitantes, e espero conseguir melhorar ainda mais o conteúdo disponibilizado aqui para atrair cada vez mais visitantes.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2010/02/50mil.jpg\"\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2010/02/50mil.jpg\" title=\"50mil\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2010/02/meses.jpg\"\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2010/02/meses.jpg\" title=\"meses\"\u003e\u003c/a\u003e\u003c/p\u003e","title":"50 mil visitas!"},{"content":"Como faço para usar o comando grep com expressões regulares em sistemas operacionais Linux?\nO Linux vem com o GNU grep, que suporta expressões regulares estendidas. O GNU grep é o padrão em todos os sistemas Linux. O comando grep é usado para localizar informações armazenadas em qualquer lugar em seu servidor ou estação de trabalho.\nAs “expressões regulares” nada mais são que um padrão para fazer uma relação com cada linha de entrada de dados.\nNo endereço abaixo, você terá acesso ao artigo completo, escrito por Vivek Gite\nhttp://www.cyberciti.biz/faq/grep-regular-expressions/\n","permalink":"http://ricardomartins.com.br/utilizando-expressoes-regulares-no-comando-grep/","summary":"\u003cp\u003eComo faço para usar o comando grep com expressões regulares em sistemas operacionais Linux?\u003c/p\u003e\n\u003cp\u003eO Linux vem com o GNU grep, que suporta expressões regulares estendidas. O GNU grep é o padrão em todos os sistemas Linux. O comando grep é usado para localizar informações armazenadas em qualquer lugar em seu servidor ou estação de trabalho.\u003c/p\u003e\n\u003cp\u003eAs “expressões regulares” nada mais são que um padrão para fazer uma relação com cada linha de entrada de dados.\u003c/p\u003e","title":"Utilizando expressões regulares no comando grep"},{"content":"Você é fã do Linux? Gosta de BSD’s, Unixes, progamação em perl, bash, etc? Então não perca tempo! O site Cyberciti está disponibilizando cerca de 1500 tutoriais em PDF sobre os mais diversos temas. Os arquivos são compilados e escritos por Vivek Gite.\nÉ uma incrivel coleção de artigos, para todos os tipos de usuários, adminsitradores e curiosos! Acesse este link e confira.\n","permalink":"http://ricardomartins.com.br/download-de-artigos-sobre-linux-em-pdf-para-download-gratuito/","summary":"\u003cp\u003eVocê é fã do Linux? Gosta de BSD’s, Unixes, progamação em perl, bash, etc? Então não perca tempo! O site Cyberciti está disponibilizando cerca de 1500 tutoriais em PDF sobre os mais diversos temas. Os arquivos são compilados e escritos por Vivek Gite.\u003c/p\u003e\n\u003cp\u003eÉ uma incrivel coleção de artigos, para todos os tipos de usuários, adminsitradores e curiosos! Acesse \u003ca href=\"http://www.cyberciti.biz/tips/nixcraft-faq-pdf-collection-now-available-to-all.html?utm_source=cbzfaq\u0026amp;utm_campaign=green1-dec-06-09\u0026amp;utm_medium=banner\"\u003eeste link\u003c/a\u003e e confira.\u003c/p\u003e","title":"Download de artigos sobre Linux, Unix, Bash, Perl, e muito mais"},{"content":"Linux performance: is Linux becoming just too slow and bloated?\nAutor original: Mitch Meyran\nPublicado originalmente no: freesoftwaremagazine.com\nTradução: Roberto Bechtlufft\nEis um aspecto do software livre e de código aberto que está voltando a ser discutido: por anos, prevaleceu a ideia de que um software desse tipo precisava ser leve e elegante para ser considerado pronto para o uso. Mas alguns eventos recentes mostraram que, no caso do kernel do Linux, isso de certa forma deixou de ser verdade: o desempenho vem caindo lenta e regularmente.\nComo isso é possível?\nO kernel “inchado” O kernel do Linux é monolítico. Isso significa que todos os drivers de hardware rodam no espaço de memória do kernel. Sempre que você inclui um drive, está incluindo algo no kernel. Além disso, por questões de desempenho, vários elementos do espaço de usuário entram no kernel e o tornam ainda mais inchado.\nSome a isso o fato de que, historicamente, o Linux tem sido desenvolvido para plataformas x86, estando fortemente vinculado a essa arquitetura, chegando até a usar interrupções de hardware no código (essencialmente misturando assembly de x86 no código C, que é bem mais genérico e portável).\nPara completar, como tudo o que está relacionado ao hardware roda no espaço do kernel, o resultado é instável por natureza: um bug em um driver de hardware possibilita à placa de rede travar o sistema. O Linux é literalmente o oposto de um microkernel.\nTalvez vocês se lembrem de um quebra-pau ocorrido há muitos anos na internet entre Andy Tanenbaum e Linus Torvalds acerca dos méritos de um microkernel. Não vou fingir ser o que eu não sou (professor com PhD, desenvolvedor de software e escritor), e vou deixar que você descubra por conta própria do que se tratava a discussão: primeiro, na página de Andrew S. Tanenbaum sobre o MINIX e o Linux, depois em uma entrevista concedida à FSM. Para acelerar as coisas, vou resumir aqui o que é um microkernel e suas vantagens.\nMINIX: um microkernel Um microkernel é, por definição, um kernel que NÃO possui drivers de hardware integrados — nenhum! Nem mesmo um agendador de interrupções ou um controlador de memória. Nada além de um sistema de mensagens, com todo o resto que não faça parte do kernel sendo executado em espaço de usuário. Um microkernel é elegante, e talvez nem precise de mais do que uns poucos milhares de linhas de código em C. É estável: se um driver de hardware falhar, o kernel não trava. Com isso, o driver pode travar e ser recarregado em seguida, novinho em folha. Além do mais, esse tipo de design facilita muito as atualizações. Como o kernel em si é muito simples, é relativamente fácil livrá-lo de bugs; quando um driver é atualizado, ele pode ser descarregado para que uma nova versão seja carregada em seu lugar. Ou seja, é o fim das reinicializações.\nO MINIX foi criado como uma ferramenta para o aprendizado: por isso, precisa ser o mais independente do hardware quanto possível. Ele é todo feito com código portável (por exemplo, C — nada de assembly).\nO MINIX está em sua terceira versão. Ele é capaz de rodar um sistema de janelas e pseudoterminais. Também pode operar como servidor, ou como desktop (mas pouquíssimas ferramentas para desktops foram portadas). Está em conformidade com o POSIX (o que não significa muita coisa).\nE por que o MINIX não substitui o Linux?\nPrimeiro, por questões históricas. O MINIX é, antes de mais nada, uma ferramenta para o aprendizado. Ele é o clone funcional de UNIX mais básico da atualidade, e por isso mesmo precisa se manter bem simples. Novos recursos não devem ser incluídos como patches, mas sim como drivers adicionais, para que não sejam usados até serem necessários. Isso tudo, somado à menor quantidade possível de duplicação de código, significa que o processo de melhoria do MINIX é muito delicado.\nSegundo, por questões de desempenho: os microkernels usam um sistema de mensagens para comunicação entre o kernel e os drivers. Esse processo consome ciclos de CPU que a comunicação direta no espaço do kernel não consome. O simples fato do controlador de memória estar separado do kernel já leva a uma perda de desempenho de 20%. Logo, na maioria dos casos, o MINIX será pelo menos 20% mais lento do que o Linux ou o BSD.\nOutra questão de desempenho: como o código do Linux inclui código em assembly otimizado para x86, mesmo sem o design do microkernel ele continuaria sendo mais rápido do que o MINIX, que só tem código em C, ao rodar em plataformas x86 (o desempenho dependeria da eficiência do compilador, mas certamente haveria perdas). Mas é bom que entremos em mais detalhes nessa questão.\nNota do editor: o Minix só se tornou livre um bom tempo depois de nascer. Esse foi um dos principais argumentos de Linus no debate com Tanenbaum…\nUm estranho kernel monolítico: o Linux Uma das maiores melhorias implementadas no Linux desde sua criação foi a capacidade de suportar módulos: no princípio, era preciso compilar o kernel inteiro sempre que um componente de hardware era alterado. Outra opção era compilar um kernel enorme, com todos os drivers carregados, e isso resultava em RAM desperdiçada com drivers não utilizados. Com os módulos, é possível dividir o kernel em várias partes, que podem ser carregadas e descarregadas livremente. Ou seja, você pode compilar um kernel pequeno e básico para depois carregar os módulos necessários, em tempo de execução. Dá até para descarregar um módulo, compilar um substituto e carregar a versão atualizada, igualzinho a um micro kernel. Mas um aviso para quem não está prestando atenção: não é aí que o design do micro kernel é teoricamente melhor do que o de um kernel monolítico. Isso ocorre na interface entre o driver e o kernel.\nPor exemplo, se você carregar um módulo com um driver gráfico bugado, pode travar o kernel e o computador.\nHá vários fatores que aliviam o problema: a interface dos módulos no Linux fica cada vez mais afiada, e vai ficando mais difícil para um bug em um driver travar o kernel inteiro. Fora que, com a natureza de código aberto do kernel, é muito pouco provável que um código qualquer contenha bugs capazes de causar travamentos — e os bugs que existem logo são eliminados. Resumindo, o MINIX é estável porque não permite que bugs o façam travar, e o Linux é estável porque não há muitos bugs capazes de derrubá-lo — e as diferenças no uso dos dois são suficientes para que cada um seja um projeto diferente.\nEmbora Torvalds (e a comunidade de desenvolvedores do Linux de modo geral) discorde de Tabenbaum no que tange aos microkernels, ele admite que várias de suas afirmações são válidas. É por isso que, com o tempo, mais e mais código é adicionado ao kernel para isolar os subsistemas um do outro. Esse tipo de código traz mais complexidade às funções do kernel, usando ciclos de CPU e reduzindo o desempenho…\nEssa é uma das questões.\nComo o Linux agora roda em mais de uma plataforma (x86), várias de suas partes tiveram que ser reescritas: ARM, PPC e Itanium são algumas das plataformas nas quais o kernel roda. A maioria replica as mesmas funcionalidades da plataforma x86, mas muitas vezes de forma menos avançada ou refinada — logo, embora o Linux provavelmente seja um dos kernels de melhor desempenho em x86, o mesmo não vale para outras plataformas. Como isso é um problema, a maior parte do trabalho em código específico de x86 agora é feito da forma mais compartimentada possível:\ncódigo que não tenha equivalente funcional em outras plataformas (a um custo razoável de desempenho, ou código como um emulador FPU x87, ou um controlador de memória específico) é mantido dentro do x86, mas precisa ser à prova de hacks; código com equivalência funcional em outras plataformas (com um custo razoável de desempenho) é programado em C comum e tirado do x86 para se alojar na seção “kernel”. Veja que, nesse meio tempo, vários “hacks de velocidade” (válidos tanto para código remanufaturado quanto para código novo) poderiam ser perdidos. Ao mesmo tempo, graças à reutilização do código, a parte “central” do kernel em todas as plataformas (digamos, o agendador, o controlador de memória e o resto dos componentes internos do kernel) talvez esteja se tornando mais elegante em suas funções básicas. Mas código mais elegante não é a mesma coisa que código mais rápido.\nEssa é outra questão.\nO desempenho também depende de quem vê: por vezes ele pode ser prejudicado por um bug ou uma regressão, por outras pode resultar de uma mudança no equilíbrio. Vamos tomar como exemplo o alocador de memória e o driver do ext4.\nEssa é a terceira questão, e merece uma análise mais detalhada.\nRecursos e segurança às custas do desempenho Embora a modularização do código tenha um custo de desempenho genérico que costuma ser irrisório, considerando-se os ganhos de tempo de desenvolvimento e a qualidade geral do código, alguns recursos têm custos de desempenho que não são acompanhados de benefícios que possam ser facilmente mensurados — mas o benefício existe. Vamos tomar como exemplo duas das mais citadas “regressões que não são regressões”.\nTenha em mente que regressões acontecem e que geralmente são corrigidas após algumas versões novas do kernel.\nO dilema do alocador de memória No momento, o kernel do Linux tem três alocadores diferentes: O SLOB, que é histórico e um tanto dedicado, o SLAB, que era o favorito, e o SLUB, que é o mais novo e de modo geral o mais lento.\nDe acordo com a documentação do kernel, o SLUB foi escrito para substituir o SLAB em sistemas com mais de um núcleo: o SLAB é mais rápido do que o SLUB, sem dúvidas, mas em sistemas com mais de um núcleo ele também consome mais RAM. Em casos muito extremos, o SLAB pode acabar usando mais do que um gigabite de RAM, acabando com seus ganhos de desempenho devido à paginação e à “competição” do barramento de dados. O SLUB resolve esse problema pesando mais na CPU, mas usando menos RAM — nesses casos extremos, o SLUB se sai melhor do que o SLAB. Como ele também não consome tanta CPU assim, e como as máquinas estão ganhando cada vez mais núcleos (um Intel quad-core com Hyper-threading conta como processador de oito núcleos, e desperdiça uns 17 MB de RAM — diga adeus ao cache da sua CPU), acabou se tornando o padrão.\nMas as medições de desempenho de bancos de dados mostram que kernels usando o SLUB têm desempenho pior do que kernels usando o SLAB.\nO estresse dos agendadores A princípio, o Linux foi posto para trabalhar em tarefas típicas de servidores: essas tarefas tinham que ser realizadas o mais rapidamente possível. O Linux também é um kernel multitarefa cooperativo, que dá mais recursos a um processo quando ele os solicita se:\na prioridade do processo (seu nível de ‘nice’) for mais alta do que a de outros processos que também exigem recursos; outros processos em execução tiverem notificado o kernel de que no momento suas operações foram concluídas. A questão vai além disso, mas é só para você entender o básico.\nGeralmente, a carga em servidores inclui um punhado de processos em primeiro plano com prioridades altas, focados em concluir suas tarefas o mais rapidamente possível antes de liberar seus recursos: nesses casos, atrasar uma tarefa para que outra seja concluída é o sistema mais eficiente. Menos erros de cache na CPU, menos movimentos frenéticos dos discos rígidos… esse tipo de agendamento é bom para servidores.\nMas em um desktop, isso significa que, digamos, os movimentos do mouse vão congelar se um processo abusar muito da CPU. E isso não é legal.\nPara isso, o agendador CFS foi escrito, e o kernel meio que foi reprojetado. O CFS leva em conta coisas como a quantidade de recursos que já foram solicitados pelo processo. Ele permite a preempção de um processo em mais pontos de execução, e consulta os processos em busca de pontos de execução adicionais em intervalos mais regulares de tempo.\nMas as medições de desempenho de bancos de dados mostram que kernels usando o CFS têm desempenho pior do que kernels antigos.\nFatores atenuantes Pode parecer que a perda de velocidade do kernel não é algo ruim se em troca temos um sistema mais versátil e seguro. Mas ainda se discutem vários pontos que podem parecer contradizer tudo o que estou dizendo. Vou tratar de alguns desses pontos.\nOs drivers de sistemas de arquivos devem ficar no espaço de usuário ou no kernel? Essa é uma questão bem delicada, e há mais de um motivo para isso: como tudo no Linux é um arquivo, o sistema de arquivos tem que estar bem próximo ao kernel. Afinal, até os processos estão no sistema de arquivos. É só olhar em /proc, ou procurar por dispositivos em /dev! Voltemos ao debate microkernel vs. kernel monolítico. Os custos de desempenho seriam altos se todos os sistemas de arquivos ficassem no espaço de usuário. Então vamos colocar todos os drivers de sistemas de arquivos na memória! Mas há milhares deles, e alguns estão infestados de bugs! Tem certeza de que quer fazer isso?\nVou usar um exemplo bastante controverso, que mostra como é difícil responder a essa pergunta sem um contexto: vamos falar no NTFS, com suporte a espaços de arquivos NT, POSIX e DOS, fluxos de dados alternativos, journaling de metadados, compactação e criptografia em nível de arquivo, desfragmentação integrada e alocação de blocos fora da ordem.\nA versão 3 estreou no Windows 2000, e é a versão em uso no momento. Nem todos os seus recursos são usados ou sequer suportados pelos sistemas operacionais da Microsoft, ou seja, pode haver destruição de dados em volumes NTFS perfeitamente válidos e “sadios”. Não diga que eu não avisei.\nO suporte a NTFS é uma promessa antiga: primeiro porque não havia nenhuma utilização real para ele até 2003, segundo porque ele é muito complexo e não muito bem documentado. Ainda assim, há suporte ao NTFS no kernel desde 2001, só que para uma versão mais antiga do NTFS (do NT4), que não era compatível com a versão 3.x, causando corrupções tremendas. Em meados de 2004, um driver NTFS reescrito apareceu, permitindo acesso para leitura e até para escrita em partições NTFS. Um driver de terceira geração, surgido em 2006, logo chamou a atenção: o NTFS-3G roda em espaço de usuário e oferece acesso total para leitura e escrita em partições NTFS. O objetivo principal não era o desempenho, e só recentemente essa questão ganhou prioridade, embora já tenham havido muitas melhorias nesse sentido.\nO seu desempenho mediano foi citado como razão para que os drivers de sistemas de arquivos sejam mantidos no espaço do kernel. A julgar pelos testes semiformais que eu fiz, isso é uma besteira. O que eu observei foi que:\nO driver NTFS do Windows tem um alocador de blocos desastroso, capaz de dividir um arquivo grande em mais de 3.000 pedaços em uma partição usada, enquanto o NTFS-3G só divide o arquivo em uns trinta pedaços (teste realizado em uma partição de 80 GB com 60% do espaço preenchido). O NTFS-3G consome bastante tempo da CPU ao realizar a escrita (a versão mais recente, 20091015, dá uma boa melhorada nesse problema): um monte de arquivos pequenos ou um poucos arquivos grandes agora não fazem muita diferença, mas em sistemas mais modestos (como netbooks) a taxa de transferência é essencialmente limitada pelo clock da CPU; O NTFS do Windows, do NTFS-3G e do Linux têm velocidade de leitura e uso de CPU muito semelhantes durante a leitura; As taxas de dados variam enormemente no Linux de acordo com a interface usada: SCSI (incluindo IDE e SATA nos kernels mais recentes) ou USB. O mesmo se aplica se você usar o pacote FUSE completo ou a versão reduzida e otimizada oferecida pelo NTFS-3G. Isso significa que o NTFS-3G não pode ser usado para exemplificar como drivers internos do kernel são melhores do que os que ficam em espaço de usuário: ele não apenas é tão rápido quanto o driver interno do kernel, (ambos compartilham a mesma funcionalidade e boa parte do código, com uso semelhante da CPU) como também há um maior impacto no desempenho vindo dos controladores de barramento! Além disso, levando-se em consideração que a maior parte do tempo gasto em leituras se dá esperando por uma resposta do driver, otimizações pequenas como o acesso direto ao kernel e/ou o uso de código assembly são inúteis, e ponto final. Otimizações na ordem de leitura, na organização e na alocação dos dados são bem mais importantes.\nQuanto a deixar os sistemas de arquivos na memória, a questão é outra. Ou seja, não há motivo para que um driver de sistema de arquivos seja portado para o kernel se ele já funciona bem em espaço de usuário, nem há motivos reais para tirar um sistema de arquivos do kernel se ele já estiver completo e tiver sido bem testado. Na verdade, há um projeto em andamento para modularizar a alocação de blocos e os relatórios de erros no kernel para todos os drivers de sistemas de arquivos: Embora esse não seja, stricto sensus, o melhor lugar para isso, é mais prático em termos de “repositório de código”, mas exige também para funcionar bem.\nFora do x86, o Linux é uma droga… ou não? Essa afirmação não está errada, mas também não está certa: na verdade, o Linux funciona muito bem em PPC, provavelmente devido ao fato de Linus ter uma CPU Apple Mac G5; ou seja, se o Linux-x86 é bom, o Linux-PPC vem em segundo lugar. Além disso, a arquitetura x86-64 recentemente conquistou um lugar só seu no kernel, não sendo mais a filha bastarda da árvore x86. Enquanto isso, Alpha e Itanium vão ficando meio “mofadas” — digo, suas arquiteturas. Há vários sistemas embarcados com suporte a elas… ou não — eles não costumam durar muito.\nE chegamos à arquitetura ARM. O fato é que o Linux não roda muito bem na arquitetura ARM. Aqui, temos algumas informações vindas do Debian. O kernel pode não ser fantástico, mas a maior parte da perda de desempenho em ARM vem da biblioteca glibc do GNU — e foi por isso que o Debian decidiu substituir a glibc pela eglibc, que é basicamente uma glibc cheia de patches. De acordo com os autores do fork, os desenvolvedores do GNU não são muito rápidos e demoram muito para integrar patches para a arquitetura ARM, o que levou ao fork. O bom da eglibc é que, embora tenha patches para ARM, ela continua compatível com a glibc — rodando, portanto, em x86 (em ambas), PPC etc.\nParece que não é mais tão difícil assim portar o Linux para plataformas diferentes, e a falha de um port depende de muitas outras coisas além do kernel. Mas é preciso tempo para que as coisas deem certo.\nConclusão O Linux está inchando e ficando mais lento. Só que não dá para correlacionar diretamente as duas coisas, já que o kernel cresce cada vez que um driver é incluído, mas você não é obrigado a carregar todos os drivers. O fato é que, dado um conjunto semelhante de drivers, o Linux não está de fato ficando maior.\nUsando medições atuais, o desempenho do Linux está, sim, caindo regularmente; essas medições são voltadas para tarefas específicas, e essas tarefas são típicas de servidores, portanto é bom ter um pé atrás.\nQuando alguma regressão aparece no kernel, ela geralmente é corrigida rapidamente. Regressões “falsas” geralmente são causadas pelo acréscimo de recursos de segurança e/ou estabilidade, e também por uma “mãozinha” das otimizações voltadas para os usuários. O que faltam são ferramentas que “peguem” regressões e tempo para que novos recursos não façam o kernel inchar.\nNesse sentido, projetos como a suíte de testes e tracker da Phoronix, que testa tanto tarefas orientadas à rede quanto ao usuário, e que permite que variações sejam disponibilizadas automaticamente, são ferramentas comuns há tempos no Windows, e seus resultados não têm preço.\nCréditos a Mitch Meyran – freesoftwaremagazine.com\nTradução por Roberto Bechtlufft \u0026lt;info at bechtranslations.com.br\u0026gt;\nhttp://www.guiadohardware.net/artigos/linux-lento-inchado/\n","permalink":"http://ricardomartins.com.br/sera-que-o-linux-esta-ficando-muito-lento-e-inchado/","summary":"\u003cp\u003e\u003cem\u003e\u003cstrong\u003eLinux performance: is Linux becoming just too slow and bloated?\u003c/strong\u003e\u003cbr\u003e\nAutor original:\u003c/em\u003e \u003cstrong\u003eMitch Meyran\u003c/strong\u003e\u003cbr\u003e\n\u003cem\u003ePublicado originalmente no:\u003c/em\u003e \u003ca href=\"http://www.freesoftwaremagazine.com/columns/linux_performance_linux_slow_bloated\"\u003e\u003cem\u003efreesoftwaremagazine.com\u003c/em\u003e\u003c/a\u003e\u003cbr\u003e\n\u003cem\u003eTradução: \u003ca href=\"http://www.bechtranslations.com.br/\"\u003eRoberto Bechtlufft\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eEis um aspecto do software livre e de código aberto que está voltando a ser discutido: por anos, prevaleceu a ideia de que um software desse tipo precisava ser leve e elegante para ser considerado pronto para o uso. Mas alguns eventos recentes mostraram que, no caso do kernel do Linux, isso de certa forma deixou de ser verdade: o desempenho vem caindo lenta e regularmente.\u003c/p\u003e","title":"Será que o Linux está ficando muito lento e inchado?"},{"content":"\nVocê sabia? Desde Novembro/2009 a Microsoft está com uma promoção oferecendo 50% de desconto para estudantes em suas provas de certificação?\nAs provas que hoje tem um preço normal de U$ 80,00 vão sair por U$ 40,00 para os estudantes.\nSão dezenas de provas nas categorias Microsoft Certified IT Professional (MCITP), Microsoft Certified Systems Administrator (MCSA), Microsoft Certified Desktop Support Technician (MCDST), Microsoft Certified Applications Developer (MCAD) e Microsoft Certified Technology Specialist (MCTS).\nConfira a lista completa de provas disponíveis na promoção em http://www.prometric.com/microsoft/student.\nA promoção é válida até 30 de junho de 2010.\nPara obter o desconto, você deve:\nAcessar o site da promoção; Escolher a prova de certificação desejada; Preencher um pequeno formulário com nome e e-mail. Você irá receber um e-mail de confirmação contendo o código promocional, imprima este e-mail. Vá até um Centro de Testes Autorizado Prometric, você encontra a lista em http://www.prometric.com/Microsoft/default.htm, levando o código promocional e um comprovante de que você é estudante, pode ser qualquer carteira de estudante ou carteira da universidade e marque a sua prova. * Importante: Para esta promoção, não é possível marcar a prova pelo site da Prometric, é necessário ir até um Centro de Testes Prometric, com o código promocional e o comprovante de estudante.\nAbraços e boas provas!\n","permalink":"http://ricardomartins.com.br/desconto-de-50-nas-certificacoes-microsoft-para-estudantes/","summary":"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2010/02/Prometric-Student-Priced-Exams4.jpg\"\u003e\u003cimg loading=\"lazy\" src=\"/wp-content/uploads/2010/02/Prometric-Student-Priced-Exams4.jpg\" title=\"Prometric Student Priced Exams[4]\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eVocê sabia? Desde Novembro/2009 a Microsoft está com uma promoção oferecendo 50% de desconto para estudantes em suas provas de certificação?\u003c/p\u003e\n\u003cp\u003eAs provas que hoje tem um preço normal de U$ 80,00 vão sair por U$ 40,00 para os estudantes.\u003c/p\u003e\n\u003cp\u003eSão dezenas de provas nas categorias Microsoft Certified IT Professional (\u003cstrong\u003eMCITP\u003c/strong\u003e), Microsoft Certified Systems Administrator (\u003cstrong\u003eMCSA\u003c/strong\u003e), Microsoft Certified Desktop Support Technician (\u003cstrong\u003eMCDST\u003c/strong\u003e), Microsoft Certified Applications Developer (\u003cstrong\u003eMCAD\u003c/strong\u003e) e Microsoft Certified Technology Specialist (\u003cstrong\u003eMCTS\u003c/strong\u003e).\u003c/p\u003e","title":"Desconto de 50% nas Certificações Microsoft para Estudantes"},{"content":"Por Luiz Marins, no livro: Socorro! Preciso de motivação\nFollow-up significa “acompanhar”, “seguir”. Dar segmento às coisas é uma verdadeira arte que poucas empresas sabem desenvolver. Temos muitas idéias, muitas boas idéias. Começamos a implantar quase todas ao mesmo tempo mas… não cuidamos nem damos seguimento à sua implantação. Em pouco tempo, todas desaparecerão. Não ficará uma sequer pra contar a história.\nDesde o uso do crachá (que é implantado com toda a cerimônia e em pouco tempo é esquecido) até e-mail de cumprimentos de aniversário de clientes, muitas coisas têm início e desaparecem com o passar do tempo por falta de follow-up. Você se lembra das reuniões com sua equipe que você disse que faria todas as segundas-feiras?\nTemos idéias demais e queremos implantá-las todas ao mesmo tempo. Prometemos tudo sob i impacto da emoção do momento e acabamos desmoralizados perante nossos subordinados, porque quase tudo o que falamos não tem seguimento. Dificilmente vemos o resultado de nossas idéias, porque nos descuidamos de sua implantação. Sem acompanhamento, nada vai pra frente. As ordens, pedidos, orientações e projetos precisam ter um follow-up.\nRecentemente lí uma pesquisa feita com empresários que dizia que a maioria das boas idéias são de fato abandonadas por falta de follow-up, não porque eram ruins. Elas dariam certo, constituiriam uma diferenciação espetacular para a empresa. desde que fossem implantadas como planejado e com follow-up. Acontece, porém, de serem abandonadas simplesmente por descuido e falta de acompanhamento em sua implantação. E, não raras vezes, essas mesmas idéias dão certo em empresas concorrentes, pelo fato de serem implantadas como deveriam: com follow-up.\nAnalise quais das idéias já implantadas não tiveram continuidade por falta de follow-up. Identifique as razões ara o abandono. Você descobrirá que muitas delas foram largadas à própria sorte. E , daqui por diante, ao implantar algo na sua empresa ou no seu cliente, ou mesmo começar algum projeto particular, lembre-se de fazer um bom follow-up!\n","permalink":"http://ricardomartins.com.br/termine-o-que-comecar-use-o-follow-up/","summary":"\u003cp\u003ePor Luiz Marins, no livro: Socorro! Preciso de motivação\u003c/p\u003e\n\u003cp\u003eFollow-up significa “acompanhar”, “seguir”. Dar segmento às coisas é uma verdadeira arte que poucas empresas sabem desenvolver. Temos muitas idéias, muitas boas idéias. Começamos a implantar quase todas ao mesmo tempo mas… não cuidamos nem damos seguimento à sua implantação. Em pouco tempo, todas desaparecerão. Não ficará uma sequer pra contar a história.\u003c/p\u003e\n\u003cp\u003eDesde o uso do crachá (que é implantado com toda a cerimônia e em pouco tempo é esquecido) até e-mail de cumprimentos de aniversário de clientes, muitas coisas têm início e desaparecem com o passar do tempo por falta de follow-up. Você se lembra das reuniões com sua equipe que você disse que faria todas as segundas-feiras?\u003c/p\u003e","title":"Termine o que começar: use o follow-up"},{"content":"A pior coisa depois de um format é a busca por drivers para reinstalação. Geralmente perdemos os cd’s com os drivers, ou nos deparamos com computadores xingue-lingue que nem cd de drivers possui. Realmente isso é desanimador…\nEu encontrei uma solução excelente para este problema, uma ferramenta gratuita chamada “Unknown Devices”. Baixe em Halfdone Development uma cópia gratuita pra você também.\nQuando você baixá-lo, certifique-se de extrair o .exe e o arquivo .zip … e deixá-los na mesma pasta. Eu cometi um erro de pensar o arquivo zip não era necessário. Ele contém todas as informações de pesquisa dos drivers.\nUma olhada no gerenciador de dispositivos mostra os dispositivos desconhecidos:\nE com este pequeno utilitário, facilmente você descobre quais são os dispositivos. Basta executá-lo e PRONTO! Ele mostra uma lista:\nDepois disso, basta clicar com o botão direito sobre eles e fazer uma busca no Google. Dentro de 30 minutos você vai conseguir baixar todos os drivers instalá-los. Ele vai lhe poupar bastante tempo ao tentar encontrar os drivers após uma formatação e evitar ficar tendo que abrir a máquina para ler a identificação de cada modelo de hardware.\n","permalink":"http://ricardomartins.com.br/encontrando-drivers-para-um-dispositivo-desconhecido/","summary":"\u003cp\u003eA pior coisa depois de um format é a busca por drivers para reinstalação. Geralmente perdemos os cd’s com os drivers, ou nos deparamos com computadores xingue-lingue que nem cd de drivers possui. Realmente isso é desanimador…\u003c/p\u003e\n\u003cp\u003eEu encontrei uma solução excelente para este problema, uma ferramenta gratuita chamada “Unknown Devices”. Baixe em \u003ca href=\"http://www.halfdone.com/Development/UnknownDevices/\"\u003eHalfdone Development\u003c/a\u003e uma cópia gratuita pra você também.\u003c/p\u003e\n\u003cp\u003eQuando você baixá-lo, certifique-se de extrair o .exe e o arquivo .zip … e deixá-los na mesma pasta. Eu cometi um erro de pensar o arquivo zip não era necessário. Ele contém todas as informações de pesquisa dos drivers.\u003c/p\u003e","title":"Encontrando drivers para um dispositivo desconhecido"},{"content":"Se o título chamou a sua atenção, você não pode deixar de ler essa entrevista do Business Opportunitites Weblog Brasil com o especialista na área de empreendedorismo, consultor do Sebrae e participante, como conselheiro, no programa de TV O Aprendiz, ao lado de Roberto Justus, o empresário Cláudio Forner, de Porto Alegre, acredita que o sistema de ensino brasileiro não colabora para a formação de empreendedores. Mas também acha que falta atitude nos jovens e profissionais do mercado.\nContinue lendo aqui.\n","permalink":"http://ricardomartins.com.br/falta-atitude-nao-curriculo/","summary":"\u003cp\u003eSe o título chamou a sua atenção, você não pode deixar de ler essa entrevista do Business Opportunitites Weblog Brasil com o especialista na área de empreendedorismo, consultor do Sebrae e participante, como conselheiro, no programa de TV O Aprendiz, ao lado de Roberto Justus, o empresário Cláudio Forner, de Porto Alegre, acredita que o sistema de ensino brasileiro não colabora para a formação de empreendedores. Mas também acha que falta atitude nos jovens e profissionais do mercado.\u003c/p\u003e","title":"Falta Atitude, Não Currículo"},{"content":"Olá! Dica rápida encontrada no Dicas-L:\nO kretcheu Vídeo Blog, faz um trabalho de compartilhamento do conhecimento, através de mini-aulas, entrevistas e tutoriais, enfocando os temas tecnologia, redes e software livre.\nSão alguns formatos:\nDicas Relâmpago Dica relâmpago – 001 – Binários\nSobre os números binários, fundamentos da micro-informática.\nDica relâmpago – 002 – DNS\nDica sobre o funcionamento do DNS.\nDica relâmpago – 003 – Email\nDica sobre o funcionamento do email. Apresentado os riscos e soluções para o uso seguro do email.\nDica relâmpago – 004 – Malwares\nEntenda como funcionam os malwares, quais os tipos, como se prevenir e se defender.\nEpisódios Episódio 000 – Por quê Como? e para quê?\nOs motivos que me levaram a criar o KVB e o que você poderá encontrar aqui.\nEpisódio 001 – Software Livre.\nO que é? Para que serve? O porquê é importante para todos.\nEpisódio 002 – O projeto GNU\nNeste episódio tratamos do Projeto GNU, um sistema operacional completamente livre.\nEpisódio 003 – Tira-dúvidas\nEpisódio 003, tira-dúvidas dos episódios 001 e 002. Respostas aos emails, esclarecendo as dúvidas dos internautas.\nConfira o site do Kretcheu (http://www.kretcheu.com.br/) ou canal do Kretcheu no Blip.TV: http://kretcheu.blip.tv/ e tenha acesso aos demais arquivos.\n","permalink":"http://ricardomartins.com.br/kretcheu-video-blog-mini-aulas-entrevistas-e-tutoriais/","summary":"\u003cp\u003eOlá! Dica rápida encontrada no Dicas-L:\u003c/p\u003e\n\u003cp\u003eO kretcheu Vídeo Blog, faz um trabalho de compartilhamento do conhecimento, através de mini-aulas, entrevistas e tutoriais, enfocando os temas tecnologia, redes e software livre.\u003c/p\u003e\n\u003cp\u003eSão alguns formatos:\u003c/p\u003e\n\u003ch2 id=\"dicas-relâmpago\"\u003eDicas Relâmpago\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"http://blip.tv/file/2911451\"\u003eDica relâmpago – 001 – Binários\u003c/a\u003e\u003cbr\u003e\nSobre os números binários, fundamentos da micro-informática.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"http://blip.tv/file/2911454\"\u003eDica relâmpago – 002 – DNS\u003c/a\u003e\u003cbr\u003e\nDica sobre o funcionamento do DNS.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"http://blip.tv/file/2911458\"\u003eDica relâmpago – 003 – Email\u003c/a\u003e\u003cbr\u003e\nDica sobre o funcionamento do email. Apresentado os riscos e soluções para o uso seguro do email.\u003c/p\u003e","title":"Kretcheu Vídeo Blog - mini-aulas, entrevistas e tutoriais"},{"content":"Tenho participado de reuniões que são verdadeiros martírios. Perde-se um tempo incrível em divagações sobre os mais diversos assuntos que nada têm a ver com o objetivo da reunião. Fala-se de tudo, exceto do que realmente interessa. O tempo passa e a conclusão é sempre a mesma: marcar uma nova reunião para discutir os assuntos que não foram discutidos por “falta de tempo”.\nPor favor, tenhamos foco! Depois de terminada a reunião e de os assuntos terem sido realmente discutidos e concluídos, quem não tiver mais nada para fazer que fique jogando conversa fora. Submeter todos ao tormento da conversa mole é simplesmente inaceitável.\nO dia tem 24 horas para todo mundo. Nenhum viciado em trabalhar tem 26 horas para trabalhar, assim como nenhum folgado tem um dia de 22 horas. A administração eficaz do tempo será o grande diferencial competitivo das pessoas e empresas deste século. Quem fizer mais e melhor em menos tempo, vencerá. A empresa que conseguir economizar o tempo de seus clientes será também a preferida e vencedora.\nUma reunião não pode começar sem hora para terminar, sem pauta definida, sem preparação prévia dos assuntos a serem tratados. Ninguém aguenta!\nPense melhor sobre as reuniões que você tem feito, coordenado ou das quais tenha participado. Veja se você não é daquelas pessoas que gostam de falar, falar, falar sem pensar e polemizar temas sem nenhuma necessidade. Reunião é coisa séria, por favor tenha foco!\n","permalink":"http://ricardomartins.com.br/tenha-foco/","summary":"\u003cp\u003eTenho participado de reuniões que são verdadeiros martírios. Perde-se um tempo incrível em divagações sobre os mais diversos assuntos que nada têm a ver com o objetivo da reunião. Fala-se de tudo, exceto do que realmente interessa. O tempo passa e a conclusão é sempre a mesma: marcar uma nova reunião para discutir os assuntos que não foram discutidos por “falta de tempo”.\u003c/p\u003e\n\u003cp\u003ePor favor, tenhamos foco! Depois de terminada a reunião e de os assuntos terem sido realmente discutidos e concluídos, quem não tiver mais nada para fazer que fique jogando conversa fora. Submeter todos ao tormento da conversa mole é simplesmente inaceitável.\u003c/p\u003e","title":"Tenha foco!"},{"content":"A nossa educação é muito errada. Desde pequenos, os pais acreditam que, para educar uma criança, devem mostrar-lhe cosntantemente seus erros e, com isso, acabam reforçando-os. Vivem dizendo “você não vai dar em nada na vida”, ou “você é um burro”, ou “não sei o que você vai ser na vida”, “você não serve pra nada”. Assim, a criança cresce com a auto-estimadestruída. Esses momentos e palavras instalam-se em nosso subconsciente, e toda a nossa vida passa a ser governada po rimagens de fracasso e destruição.\nAcabe com isso! Reverta essa situação.\nUma das formas de acabar com esse problema é sempre criar, em sua mente, imagens positivas, vencedoras. Imagine-se vencedor, imagine-se conseguindo as coisas que deseja, imagine você ficando rico, sua família feliz… Não deixe imagens negativas entrarem na sua mente. Elas já existem demais dentro dela. Não seja você mais uma pessoa que nega o próprio sucesso.\nA força da imaginação criadora vem sendo comprovada a cada dia. Homens e mulheres de sucesso têm declarado que fazem uso da força da imaginação e ficam surpresos ao ver que seus sonhos se materializaram. Aprenda a fazer relaxamento (qualquer livro sobre o assunto ensina uma técnica que você poderá utilizar) e, durante o exercício, crie imagens mentais de sucesso. Faça isso antes de se deitar e ao amanhecer, como ensinam as pessoas que sempre venceram na vida.\nEmvora essas práticas possam parecer incomuns e até mesmo estranhas, saiba que funcionam. Isto segue o mesmo princípio da fé, que é a certeza das coisas que se esperam. É preciso colocar em nosso subconsciente imagens positivas, frases de sucesso. É preciso condicionar ou re-condicionar a nossa mente para o sucesso. essoas que só falam, pensam e imaginam-se fracassadas não terão outra alternativa na vida a não ser o fracasso. Mude tudo isso, seja positivo.\nUma sugestão que faço é a leitura de um livro chamado “O poder do subconsiente” de Joseph Murphy. Eu lí este livro e aprendí muito a respeito. Fiz uma pesquisa e encontrei um e-book em http://alma-da.org/poder_do_subconsciente.pdf\nAté a próxima!\n","permalink":"http://ricardomartins.com.br/imagine-se-um-vencedor/","summary":"\u003cp\u003eA nossa educação é muito errada. Desde pequenos, os pais acreditam que, para educar uma criança, devem mostrar-lhe cosntantemente seus erros e, com isso, acabam reforçando-os. Vivem dizendo “você não vai dar em nada na vida”, ou “você é um burro”, ou “não sei o que você vai ser na vida”, “você não serve pra nada”. Assim, a criança cresce com a auto-estimadestruída. Esses momentos e palavras instalam-se em nosso subconsciente, e toda a nossa vida passa a ser governada po rimagens de fracasso e destruição.\u003c/p\u003e","title":"Imagine-se um vencedor"},{"content":"Neste post, irei iniciar uma série de artigos relacionados à segurança de redes. Para iniciar, escolhí este tema.\nO que são os ataques monitorados?\nOs ataques por monitoração são baseados em softwares de monitoração de rede conhecido como “sniffer”, instalado sorrateiramente pelos invasores.\nO sniffer grava os primeiros 128 bytes de cada sessão login, telnet e FTP session vista naquele segmento de rede local, comprometendo TODO o tráefgo de/para qualquer máquina naquele segmento, bem como o tráfego que passar por aquele segmento.\nOs dados capturados incluem o nome do host destino, o username e o password. A informação é gravada em um arquivo posteriormente recuperado pelo invasor para ter acesso a outras máquinas.\nEm muitos casos os invasores obtêm acesso inicial aos sistemas usando uma das seguintes técnicas:\nObtêm o arquivo de passwords via TFTP em sistemas impropriamente configurados; obtêm o arquivo de password de sistemas rodando versões inseguras do NIS; Obtêm acesso ao sistema de arquivos local via pontos exportados para montagem com NFS, sem restrições; usam um nome de login e password capturada por um sniffer rodando em outro sistema. Uma vez no sistema, os invasores obtêm privilégios de root explorando vulnerabilidades conhecidas, tal como rdist, Sun Sparc integer division e arquivos utmp passíveis de escrita por todo mundo ou usando uma password de root capturada.\nEles então instalam o software sniffer, registrando a informação capturada num arquivo invisível. Adicionalemtne , eles instalam cavalos de tróia em substituição dentre os seguintes arquivos do sistema, para ocultar sua presença:\n/bin/login\n/usr/etc/in.telnetd\n/usr/kvm/ps\n/usr/ucb/netstat\nO que é Spoofing?\nCertamente a fase que mais ouvimosde nossos pais quando somos criança – depois de “não faça isso” ou “não faça aquilo” é claro é: “não converse com estranhos”. Isso porque pessoas desconhecidas podem ter más intenções, ou querer se aproveitar de nós.\nNum mundo de insegurança e guerras como o de hoje, confiar em quem conhecemos já é uma grande aventura, em quem nunca vimos então, é pedir demais.\nEm networking (internet, ethernet, etc.), isso também acontece. Várias comunicações entre computadores se baseiam nesse princípio de “trusted hosts”, ou seja, “parceiros confiáveis”. Os computadores se comunicam sem a necessidade de uma constante verificação de autenticidade ente eles. Em certos sistemas, com a intenção de obter um melhor nível de segurança, o servidor de rede só libera a utilização de certos serviços a um número restrito e autenticado de usuários, que não são “estranhos” para ele. O método encontrado para furar este esquema é o de falsificar o remetente dos pacotes de dados que viajam na rede. Essa técnica é conhecida por spoofing.\nDisfarce, é basicamente isto que o spoof faz. O ataque acontece quando o invasor fabrica um pacote contendo um falso endereço de origem, fazendo com que o host atacado acredite que a conexão está vindo de um outro local, geralmente se passando por um host que tem permissão para se conectar a outra máquina. Fica mais fácil com esse esquema:\nAcesso confiável\nServidor 1 —————- Servidor2\nO invasor irá dizer ao Servidor 2 que seu DNS/IP é o do Servidor 1, tornando possível a conexão;\n“Por que eu não ouví meus pais?”\nVulnerabilidade\nEsse método de ataque funciona porque os serviços de confiança das redes se baseiam apenas na autenticação de endereços. Como o IP pode ser facilmente mascarado, não há muito problema em aplicar essa técnica.\nTodos os sistemas operacionais com TCP/IP podem ser vulneráveis a um spoofing. Mas MAC rodando A/UX e PCs rodando Linux podem estar vulneráveis sob certas circunstâncias: se estiverem utilizando o X-Window System, Serviços Remotos (R Services), ou algum tipo de NFS mal configurado.\nA primeira etapa de um ataque por spoof é identificar duas máquinas de destino. Uma vez identificadas, o invasor tentará estabelecer uma conexão com o Servidor 2 de forma que ele acredite que ela vem do Servidor 1, quando na verdade vem de sua própria máquina, chamada de X. Isso é feito através da criação de um pacote falso (criado em X, mas com endereço do Servidor 1) solicitando conexão com o Servidor 2.\nDepois de receber esse pacote, o Servidor 2 responderá com um pacote semelhante, que reconhece a solicitação e estabelece números de sequência. Essa é a parte mais trabalhosa do ataque, pois é preciso adivinhar o número de sequência que o servidor está esperando. Além disso, é preciso impedir que o pacote do Servidor 2 chegue até o Servidor 1.\nSe isso acontecesse, o Servidor 1 negaria a conexão e o ataque falharia. Para isso, o invasor envia diversos pacotes a primeira vez para esgotar sua capacidade e impedir que ele responda a segunda vez. Uma vez que essa operação tenha chegado ao fim, a falsa conexão poderá acontecer.\nA preparação do spoofing.\nO spoofing só funciona se todas as máquinas participantes utilizem o FULL TCP/IP, esse ataque exige que os servidores rsh e rlogin e rexec estejam em execução no momento em que o IPSpoofing for realizado.\nO Unix e suas variantes, como o Linux, oferecem estes serviços nativos no sistema operacional. Já o Windows não conta con nenhum destes serviços. Sendo assim, você deve utilizar o Linux em suas redes locais enquanto estiver experimentando o IPSpoofing.\nPode-se verificar se esses serviços estão disponíveis através de uma varredura de portas na máquina-alvo com os serviços:\n512 – rexec\n513 – rlogin\n514 – rsh\nPode-se fazer esta varredura com o Nmap – http://nmap.org/\nA sintaxe para utilização da varredura é\nNmap -O -p512-515 IP_DA_MAQUINA\nApós o parâmetro -p, informe a porta a ser verificada. Já o parâmetro -O identifica o sistema operacional da máquina-alvo. Se for Windows, o IP não será usado neste método de ataque. Certamente não será possível realizar o spoofing através desta máquina. Um raro caso em que o Windows é mais seguro.\nNo caso de computadores que rodam Linux, ele identifica (com sucesso, na maioria das vezes) até mesmo a versão do kernel que está em operação. No entanto, um servidor bem configurado certamente irá identificar o IP de uma suposta invasão durante esse processo. Para evitar que isso aconteça, os hackers costumam usar os parâmetros -f durante o uso do nmap, de forma que o cabeçalho do endereço IP e os pacotes venham fragmentados, o que pode ser muito útil para que o hacker passe despercebido na hora de analisar um sistema.\nTipos de Ataque Spoofing\nOs tipos de ataque que utilizam a técnica de spoofing mais conhecidos são:\nIP Spoofing ARP Spooging DNS Spoofing – Arp Spoofing\nEssa técnica é uma variação do ip spoofing, que se aproveita do mesmo tipo de vulnerabilidade, diferenciando apenas porque se faz na autenticação ARP, apesar de também ser address-based utiliza o endereço MAC (Media Access Control) ou o endereço físico do dispositivo, geralmente uma placa de rede.\n– DNS Spoofing\nTécnica muito simples, não requer grandes conhecimentos do TCP/IP. Consistem em alterar as tabelas de mapeamento de hostname-ipaddress dos servidores DNS, ou seja, seus registros do tipo host, de maneira que os servidores, ao serem perguntados pelos seus clientes sobre um hostname qualquer, informem o ip errado, ou seja, o do host que está aplicando o DNS spoofing.\nComo a máquina alvo é derrubada\nIsso pode ser feito através de várias maneiras, mas uma das mais utilizadas é o DoS (Denial of Service 0 Negação de Serviços). Este método consiste em sobrecarregar o computador alvo até que ele pare de responder. Por incrível que pareça esta é a parte mais complicada de todo o procedimento de spoofing. Uma vez que a máquina-alvo for retirada do ar fica fácil assumir seu enderço IP.\nUma das funções do DoS mais utilizadas é o smurf. Nesta técnica o invasor envia uma solicitação de ping em broadcast para a rede que será atacada. Nesse caso o que vale mesmo é a largura de banda, que precisa ser maior do que a da máquina-alvo. Por esse motivo, dificilmente um smurf parte de um único computador. Geralmente este procedimento necessita de um grupo de atacantes para concretizar a derrubada da máquina-alvo. Nem sempre um invasor dispõe de tanta ajuda assim para realizar um ataque. Para isto, utilizam-se de worms.\nMas o que são worms?\nOs worms são pragas com código malicioso que se auto-propagam pela internet e adicionam entradas nos registros do Windows de usuários. Eles são transmitidos via e-mail, redes peer-to-peer, arquivos compartilhados infectados, messengers, etc. Tais oragas tiram proveito de backdoors e falhas de segurança em clientes de e-mail e sistemas operacionais para se multiplicarem pela internet.\nDentre as diversas formas de uso, no caso do smurf é utilizado da seguinte maneira: São espalhados pela internet, com instuções para dispararem comandos de ping em uma data e hora específica, realizando um ping em broadcast para a máquina-alvo, com o intuito de derrubá-la.\nOutra técnica muito utilizada é o ataque pelo protocolo ICMP, que possui a vantagem em relação aos outros: não precisar de nenhum tipo de programação complexa. Através do Linux, em modo texto, é possível tirar uma máquina do ar com a linha de comando:\nping -t-l 1024 ENDEREÇO_IP\nO ataque\nA etapa mais difícil de ser realizada é a derrubada do alvo, uma vez que o IP da estação-alvo para de responder, é só rodar um programa que muda o endereço de sua requisição. Um exemplo desse tipo de software pe o Hijack.\nPara utilizá-lo basta compilar o programa. É necessário que você tenha um compilador C (como o gcc, por exemplo) instalado em seu Linux. Confira agora como compilar:\ngcc -o hijack hijack.c\nDepois de fazer experiências de teste com o hijack, use o comando:\nhijack host_confiável 23 endereço_alvo\nNeste caso o host_confiável nada mais é do que o endereço que foi derrubado. Já o numero 23, que aparece logo em seguida, é a porta Telnet. Ela é necessária para que o IPSpoofing seja realizada com sucesso. Por fim o endereço-alvo é o IP do computador que será invadido.\nSendo assim, tudo o que o invasor precisa fazer é alterar as configurações deste comando para os dados referentes a máquina-alvo, e pronto: o spoofing está feito.\nComo se proteger:\nO procedimento de IP Spoofing é bastante complexo e pode causar muitos problemas aos administradores de sistema. Por isso é altamente recomendável que você proteja a sua rede antes que ocorra algum ataque.\nNão existe uma solução definitiva que proteja esse tipo de ataque, pois o IP Spoofingé uma característica do TCP/IP. Tudo que ela faz é se utilizar dos recursos deste protocolo e enganar a máquina com a qual o invasor está realizando a troca de pacotes.\nPodemos mencionar duas soluções que podem ser muito úteis para que isso não aconteça. A primeira delas é não utilizar os serviços rexec, rlogin e rsh, exceto se forem extremamente necessários.\nSsses serviços geralmente não são utilizados, pois facilitam invasões. Se esses serviços realmente forem necessários, implante uma política de segurança eficiente com o auxílio de uma ferramenta criada especificamente para esse propósito, as IDS (Intrusion Detection System – Sistema de Detecção de Intrusos). Você pode saber mais sobre estes sitemas no site www.snort.org\nLinks para utilitários de spoofing\nhttp://insecure.org/sploits/ttcp.spoofing.problem.html\nhttp://www.deter.com/unix/\nhttp://all.net/\nReferências\nhttp://www.unixcities.com/dos-attack/index1.html\nhttp://www.rnp.br/newsgen/0003/ddos.html\n","permalink":"http://ricardomartins.com.br/sniffer-spoofing-ataques-monitorados/","summary":"\u003cp\u003eNeste post, irei iniciar uma série de artigos relacionados à segurança de redes. Para iniciar, escolhí este tema.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eO que são os ataques monitorados?\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eOs ataques por monitoração são baseados em softwares de monitoração de rede conhecido como “sniffer”, instalado sorrateiramente pelos invasores.\u003c/p\u003e\n\u003cp\u003eO sniffer grava os primeiros 128 bytes de cada sessão login, telnet e FTP session vista naquele segmento de rede local, comprometendo TODO o tráefgo de/para qualquer máquina naquele segmento, bem como o tráfego que passar por aquele segmento.\u003c/p\u003e","title":"Sniffer Spoofing: Ataques Monitorados"},{"content":"Fico impressionado ao ver o quanto as peassoas choram, reclamam, lamentam, passam o tempo se lamuriando das coisas, dos outros, de tudo enfim. Basta encontrar alguém para começarem a reclamar. “Não dá mais”, “Não aguento mais”, “Do jeito que as coisas vão, não sei o que vai ser de mim”, etc…\nReclamar parece ter virado uma verdadeira praga nos ambientes de trabalho, nas rodas de amigos, nos encontros informais. O salário baixo, as dores nas costas, a dor no estômago, o chefe que não ouve, o cliente que não comprou, o calor que é de matar, o relatório que é chato de fazer, o café que está frio, a chuva que não vem, a chuva que não pára, o filho que não obedece, a esposa que fala demais, o marido que não escuta, o filho que vai mal na escola; é uma ladainha que ninguém mais suporta ouvir. Na verdade, parece que as pessoas ficaram literalmente viciadas em reclamar. É preciso dar um basta nesse vício doloroso e ultrapassado e passar do “plano do choro” ao “plano da ação”.\nEm um círculo vicioso de autopiedade, as pessoas deixam de enxergar as oportunidades, as coisas positivas, e ficam paralisadas, reativas, enquanto o mundo continua numa velocidade espantosa. Um chefe chorão n ão consegue entusiasmar seus subordinados à ação, à decisão rápida, ao desenvolvimento, ao bom atendimento aos clientes. Um subordinado chorão não consegue entusiasmar seus chefes para que o promovam, para que o valorizem.\nO mundo de hoje é dos proativos, é de quem faz, de quem não espera, de quem consegue enxergar oportunidades onde os outros só vêem crise. O mundo de hoje é de quem transforma a realidade e faz as coisas acontecerem. O mundo de hoje é de quem passa do “plano do choro” ao “plano da ação”.\nAnalise suas atitudes, pense se você também não está preso a esse círculo vicioso de só reclamar e pouco agir, e modifique as coisas sobre as quais você tanto reclama. Pergunte-se: ” O que tenho feito para mudar aquilo com que não concordo e de que vivo reclamando?”.\n","permalink":"http://ricardomartins.com.br/passe-do-plano-do-choro-ao-plano-da-acao/","summary":"\u003cp\u003eFico impressionado ao ver o quanto as peassoas choram, reclamam, lamentam, passam o tempo se lamuriando das coisas, dos outros, de tudo enfim. Basta encontrar alguém para começarem a reclamar. “Não dá mais”, “Não aguento mais”, “Do jeito que as coisas vão, não sei o que vai ser de mim”, etc…\u003c/p\u003e\n\u003cp\u003eReclamar parece ter virado uma verdadeira praga nos ambientes de trabalho, nas rodas de amigos, nos encontros informais. O salário baixo, as dores nas costas, a dor no estômago, o chefe que não ouve, o cliente que não comprou, o calor que é de matar, o relatório que é chato de fazer, o café que está frio, a chuva que não vem, a chuva que não pára, o filho que não obedece, a esposa que fala demais, o marido que não escuta, o filho que vai mal na escola; é uma ladainha que ninguém mais suporta ouvir. Na verdade, parece que as pessoas ficaram literalmente viciadas em reclamar. É preciso dar um basta nesse vício doloroso e ultrapassado e passar do “plano do choro” ao “plano da ação”.\u003c/p\u003e","title":"Passe do plano do choro ao plano da ação"},{"content":"Texto interessante, que gostaria de compartilhar com vocês:\n“Dedicação é a capacidade de se entregar à realização de um objetivo.\nNão conheço ninguém que tenha progredido na carreira sem trabalhar pelo menos doze horas por dia nos primeiros anos.\nNão conheço ninguém que conseguiu realizar seu sonho sem sacrificar sábados e domingos pelo menos uma centena de vezes.\nDa mesma forma, se você quiser construir uma relação amiga com seus filhos, terá de se dedicar a isso, superar o cansaço, arrumar tempo para ficar com eles, deixar de lado o orgulho e o comodismo.\nSe quiser um casamento gratificante, terá de investir tempo, energia e sentimentos nesse objetivo. O sucesso é construído à noite! Durante o dia você faz o que todos fazem. Mas, para conseguir um resultado diferente da maioria, você tem de ser especial. Se fizer igual a todo mundo obterá os mesmos resultados.\nNão se compare à maioria, pois, infelizmente, ela não é modelo de sucesso. Se você quiser atingir uma meta especial, terá de estudar no horário em que os outros estão tomando chopp com batatas fritas. Terá de planejar, enquanto os outros permanecem à frente da televisão. Terá de trabalhar, enquanto os outros tomam sol à beira da piscina.\nA realização de um sonho depende da dedicação.\nHá muita gente que espera que o sonho se realize por mágica.\nMas toda mágica é ilusão.\nE ilusão não tira ninguém do lugar onde está… Ilusão é combustível de perdedores…”\nRoberto Shinyashiki\n","permalink":"http://ricardomartins.com.br/dedicacao-e-a-capacidade-de-se-entregar-a-realizacao-de-um-objetivo/","summary":"\u003cp\u003eTexto interessante, que gostaria de compartilhar com vocês:\u003c/p\u003e\n\u003cp\u003e“Dedicação é a capacidade de se entregar à realização de um objetivo.\u003c/p\u003e\n\u003cp\u003eNão conheço ninguém que tenha progredido na carreira sem trabalhar pelo menos doze horas por dia nos primeiros anos.\u003c/p\u003e\n\u003cp\u003eNão conheço ninguém que conseguiu realizar seu sonho sem sacrificar sábados e domingos pelo menos uma centena de vezes.\u003c/p\u003e\n\u003cp\u003eDa mesma forma, se você quiser construir uma relação amiga com seus filhos, terá de se dedicar a isso, superar o cansaço, arrumar tempo para ficar com eles, deixar de lado o orgulho e o comodismo.\u003c/p\u003e","title":"Dedicação é a capacidade de se entregar à realização de um objetivo"},{"content":"Uma das características mais interessantes da juventude é a curiosidade, o desejo de aprender, de saber, de questionar, de cismar. Quando a pessoa, independentemente da idade que tenha, desiste de aprender, de questionar, de perguntar, de insistir, é porque realmente chegou à velhice mental, que é muito pior que a velhice cronológica. Afinal, conheço “jovens” de oitenta anos que estão cada dia mais curiosos, mais questionadores, enfim, mais vivos do que nunca.\nÀs vezes, realmente sentimos que certa “preguiça mental”. Achamos mesmo que o que tínhamos de aprender já aprendemos e pronto. Falamos até que “burro velho não aprende caminho novo” e ficamos acomodados, preguiçosos, parados. Cuidado! A “Síndrome da Velhice” pode ter atacado você!\nAnalise suas condutas e veja se você tem a atitude sã e jovem de aprender sempre. Repare se você ainda tem o pique de aprender, questionar, cismar, discordar, concordar, discutir ou se já desistiu, parou e agora está apenas esperando “dormir” de vez. Acorde! Nunca é tarde para aprender.\n","permalink":"http://ricardomartins.com.br/aprenda-sempre/","summary":"\u003cp\u003eUma das características mais interessantes da juventude é a curiosidade, o desejo de aprender, de saber, de questionar, de cismar. Quando a pessoa, independentemente da idade que tenha, desiste de aprender, de questionar, de perguntar, de insistir, é porque realmente chegou à velhice mental, que é muito pior que a velhice cronológica. Afinal, conheço “jovens” de oitenta anos que estão cada dia mais curiosos, mais questionadores, enfim, mais vivos do que nunca.\u003c/p\u003e","title":"Aprenda sempre"},{"content":"Sem dúvida alguma, nos dias de hoje, em que os apelos e as opções são muito variados, é preciso que todos tenhamos objetivos e metas claros e definidos para tudo o que fazemos.Sem esse foco, ficaremos à mercê do dia-a-dia, dos acontecimentos do cotidiano e não conseguiremos o que realmente desejamos. Esses objetivos e essas metas devem ser, sempre que possível, mensuráveis, funcionais e observáveis, isto é, devem ser possíveis de serem avaliados dentro de um determinado prazo, após sabermos seus resultados. Assim, as metas devem ser quantificadas, enquanto os objetivos podem ser comportamentais e observáveis.\nMas ter objetivos e metas não basta para alcançar sucesso. É preciso escrevê-los. Ao escrevermos, comprometemo-nos duplamente com eles, pois teremos um documento que nos fará responsáveis pelo que realmente desejamos.\nMuita gente comete o erro de não escrever seus objetivos pessoais e profissionais. Digo erro,porque, depois de algum tempo, ou a memória nos trai ou, ao percebermos que não nos empenhamos o suficiente para atingir um desses objetivos, fazemos de conta que não queríamos realmente aquilo, uma vez que nada ficou registrado.\nEscrever produz um efeito mágico: parece que estamos realmente fazendo um documento para o nosso futuro. Depois de escrever, guarde o papel e releia-o de vez em quando. É importante, também, sempre estabelecer prazos, datas, valores, enfim, ser o mais claro e direto possível.\nMuitas pessoas que conheço, ao escreverem seus objetivos, dividem-nos em diversos campos de atuação social – por exemplo: família, profissão, emprego, área financeira, amizades, etc – e definem metas e objetivos para cada uma dessas áreas.\nPare com o corre-corre de sua vida por alguns instantes e escreva numa folha de papel seus objetivos e suas metas pessoais e profissionais. Faça isso em um local calmo. Pense bem antes de escrever. Depois, leia e releia o que escreveu; modifique o que achar necessário. Quarde esse registro em um local que só você saiba e releia-o de vez em quando. Você ficarám surpreso em ver como as cosias certas comecação a acontecer, em direção aos objetivos e às metas traçados por você. Eu falo por experiência própria, experimente também!\n","permalink":"http://ricardomartins.com.br/escreva-seus-objetivos-e-metas/","summary":"\u003cp\u003eSem dúvida alguma, nos dias de hoje, em que os apelos e as opções são muito variados, é preciso que todos tenhamos objetivos e metas claros e definidos para tudo o que fazemos.Sem esse foco, ficaremos à mercê do dia-a-dia, dos acontecimentos do cotidiano e não conseguiremos o que realmente desejamos. Esses objetivos e essas metas devem ser, sempre que possível, mensuráveis, funcionais e observáveis, isto é, devem ser possíveis de serem avaliados dentro de um determinado prazo, após sabermos seus resultados. Assim, as metas devem ser quantificadas, enquanto os objetivos podem ser comportamentais e observáveis.\u003c/p\u003e","title":"Escreva seus objetivos e metas"},{"content":"Em todas as biografias de grandes personalidades e conversas com pessoas de sucesso encontramos um traço comum: elas sempre se recusaram a pensar pequeno. Recusam-se a olhar para si mesmo como fracassadas. Sempre têm uma visão positiva dos acontecimentos. Conseguem encontrar nas crises as oportunidades. Elas acreditam nos outros e nas possibilidades, por menores que aparentemente sejam. Elas têm bom humor e sabem rir de sí próprias e dos erros que cometem.\nDiferentemente dos fracassados, que pensam pequeno e que só conseguem enxergar a desgraça e o perigo, as pessoas de sucesso parecem ter um verdadeiro entusiasmo pela vida. Procurarm muito mais “gostar do que fazem” que viver preocupadas em “fazer o que gostam”. Elas são proativas em vez de reativas. Vão à frente do seu tempo, acreditando, fazendo e transformando a realidade, por mais adversas que sejam as condições. Enquanto os fracassados esperam, elas agem. Enquanto os fracassados se deseperam, elas acreditam ainda mais.\nAdquira o hábito de ler biografias de pessoas bem-sucedidas. Você verá que elas não têm sucesso por acaso, mas o criaram a partir de uma visão grande do mundo, da vida e das profissões que exercem. Elas se recusaram a aceitar o fracasso e a pensar pequeno. Após ler essas biografias, faça um exame de consciência e reflita sobre suas atitudes.\n","permalink":"http://ricardomartins.com.br/pense-grande/","summary":"\u003cp\u003eEm todas as biografias de grandes personalidades e conversas com pessoas de sucesso encontramos um traço comum: elas sempre se recusaram a pensar pequeno. Recusam-se a olhar para si mesmo como fracassadas. Sempre têm uma visão positiva dos acontecimentos. Conseguem encontrar nas crises as oportunidades. Elas acreditam nos outros e nas possibilidades, por menores que aparentemente sejam. Elas têm bom humor e sabem rir de sí próprias e dos erros que cometem.\u003c/p\u003e","title":"Pense grande!"},{"content":"Neste post estarei indicando 5 ferramentas gratuitas da SolarWinds que são essenciais para qualquer administrador de redes e sistemas. São elas:\nWMI Monitor Monitoração poderosa para sistemas Windows e Aplicações\n• Monitore em tempo real as métricas de desempenho em qualquer servidor Windows ou aplicativos\n• Escolha entre uma ampla seleção de templates pré-configurados de aplicativos\n• Customize o desing dos templates das aplicações usando o built-in do WMI Browser\nReal-Time NetFlow Analyzer Capture e analise os dados do fluxo da sua rede e veja o que está ocorrendo nela\n• Responder rapidamente à perguntas como “porque a rede é tão lenta?”\n• Identifique na rede quais os hosts possuem maior tráfego\n• Analisar os picos de tráfego e largura de banda de consumo\nIP Address Tracker\n• Trace a rota de um número ilimitado de endereços IP\n• Obtenha em uma visão unificada e rápida todo o seu range de endereços IP’s\n• Veja quais são os endereços IP em uso – e que não são\nAward-winning TFTP Server O mais robusto, confiável e de fácil utilização TFTP Server gratuito:\n• Faça upload e download paralelamente de imagens de vários dispositivos\n• Upload e configurações de download para dispositivos\n• Transferência de arquivos maiores que 32MB\nFree Kiwi Syslog Server Gerencie o syslog, simplifique as tarefas de gestão:\n• Receba e gerencie mensagens do syslog de seus dispositivos de rede\n• Produção de gráficos de análise e envie por e-mail as estatísticas de tráfego do syslog\n• Armazenar, encaminhar ou fazer split automaticamente das mensagens e arquivos de log, com base na prioridade ou tempo\n* Obs: Para realizar o download, é necessário preencer um cadastro simples, porém o download é gratuito.\n","permalink":"http://ricardomartins.com.br/top5-ferramentas-gratuitas-para-gerenciamento-de-redes/","summary":"\u003cp\u003eNeste post estarei indicando 5 ferramentas gratuitas da SolarWinds que são essenciais para qualquer administrador de redes e sistemas. São elas:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.solarwinds.com/register/registration.aspx?program=937\u0026amp;c=70150000000F2Te\u0026amp;CMP=BIZ-EML-PETRI-T5FTQ3-WMI-DL\"\u003e\u003cstrong\u003eWMI Monitor\u003c/strong\u003e   \u003c/a\u003eMonitoração poderosa para sistemas Windows e Aplicações\u003c/p\u003e\n\u003cp\u003e• Monitore em tempo real as métricas de desempenho em qualquer servidor Windows ou aplicativos\u003cbr\u003e\n• Escolha entre uma ampla seleção de templates pré-configurados de aplicativos\u003cbr\u003e\n• Customize o desing dos templates das aplicações usando o built-in do WMI Browser\u003c/p\u003e","title":"Top5: Ferramentas gratuitas para gerenciamento de redes"},{"content":"Olá leitores! É com prazer que gostaria de informá-los que pasarei a escrever também sobre carreira profissional.\nEstive pensando um pouco, analisando diversos sites/blogs que acompanho, e notei que a internet já está um pouco saturada de sites focados em dicas e artigos relacionados à informática e tecnologia, no entanto, há uma carência em sites com dicas, artigos e informações sobre carreira profissional.\nEntão pensei em por quê não explorar um pouco esta área?! É claro que eu não pretendo parar com as dicas, já que o foco sempre foi este, onde também posso compartilhar minhas experiências e situações vividas no dia-a-dia com informática, porém estarei incluindo mais uma categoria chamada “carreira”, onde pretendo colocar textos e assuntos relacionados à carreira profissional, ligadas ou não à área de T.I.\nCom essa nova categoria, pretendo dar mais uma vida ao site, explorando um pouco mais esta área. Sendo assim, espero também contar com a colaboração de todos, principalmente com os comentários!\nPara estrear a nova categoria, acabo de plubicar o artigo chamado “Não tenha medo do sucesso“. Espero que seja útil.\nAté breve!\n","permalink":"http://ricardomartins.com.br/carreira-nova-categoria-de-artigos/","summary":"\u003cp\u003eOlá leitores! É com prazer que gostaria de informá-los que pasarei a escrever também sobre carreira profissional.\u003c/p\u003e\n\u003cp\u003eEstive pensando um pouco, analisando diversos sites/blogs que acompanho, e notei que a internet já está um pouco saturada de sites focados em dicas e artigos relacionados à informática e tecnologia, no entanto, há uma carência em sites com dicas, artigos e informações sobre carreira profissional.\u003c/p\u003e\n\u003cp\u003eEntão pensei em por quê não explorar um pouco esta área?! É claro que eu não pretendo parar com as dicas, já que o foco sempre foi este, onde também posso compartilhar minhas experiências e situações vividas no dia-a-dia com informática, porém estarei incluindo mais uma categoria chamada “carreira”, onde pretendo colocar textos e assuntos relacionados à carreira profissional, ligadas ou não à área de T.I.\u003c/p\u003e","title":"Carreira - nova categoria de artigos."},{"content":"\nPode parecer um absurdo, mas tem gente que parece ter medo do sucesso.\nSão pessoas que têm tudo para vencer, serem notadas e prósperas, mas que ficam acuadas, com medo. Em vez de agirem proativamente, apenas reagem às circunstâncias, reclamando da má sorte e vendo, com desdém e uma ponta de inveja, os outros se darem bem.\nPara ter sucesso, o primeiro passo é perder o medo dele. É não ficar o tempo todo pensando e repetindo que ele é apenas para quem “nasceu virado pra Lua” e com a estrela da sorte na testa. O sucesso está à disposição de todos os que o buscam e trabalham para conquistá-lo. É claro que é preciso disposição e trabalho. É claro que é preciso que nos livremos da inveja, que prestemos menos atenção no sucesso alheio e mais em nosso próprio trabalho. É claro que precisamos dar um pocuo de tempo ao tempo, estar prontos para colaborar com os outros e criar as condições para que a chamada “sorte” também sorria para nós.\nPerder o medo do sucesso significa tudo isso e, principalmente, uma firme disposição para agir, para fazer as coisas até o fim, para prestar atenção aos detalhes, colaborar com os outros e participar da comunidade.\nO sucesso é uma via de duas mãos: você só será bem sucedido se for capaz de reconhecer, aplaudir o sucesso dos outros e vibrar com ele. Os outros farão o mesmo por você, e então haverá um conjunto de pessoas torcendo e trabalhando pelo seu sucesso. Acredite nisso. Sozinho, isolado, invejoso, você jamais terá êxito. Perca o medo de ser bem sucedido, fazendo o que é certo e seguindo a direção certa.\nSerá que no fundo, você não tem medo do sucesso? Será que não fica muito preocupado com o sucesso alheio, esquecendo-se de construir o seu próprio? Pense nisso.\n","permalink":"http://ricardomartins.com.br/nao-tenha-medo-do-sucesso/","summary":"\u003cp\u003e\u003cimg alt=\"sucesso\" loading=\"lazy\" src=\"/wp-content/uploads/2009/09/sucesso.jpg\" title=\"sucesso\"\u003e\u003c/p\u003e\n\u003cp\u003ePode parecer um absurdo, mas tem gente que parece ter medo do sucesso.\u003c/p\u003e\n\u003cp\u003eSão pessoas que têm tudo para vencer, serem notadas e prósperas, mas que ficam acuadas, com medo. Em vez de agirem proativamente, apenas reagem às circunstâncias, reclamando da má sorte e vendo, com desdém e uma ponta de inveja, os outros se darem bem.\u003c/p\u003e\n\u003cp\u003ePara ter sucesso, o primeiro passo é perder o medo dele. É não ficar o tempo todo pensando e repetindo que ele é apenas para quem “nasceu virado pra Lua” e com a estrela da sorte na testa. O sucesso está à disposição de todos os que o buscam e trabalham para conquistá-lo. É claro que é preciso disposição e trabalho. É claro que é preciso que nos livremos da inveja, que prestemos menos atenção no sucesso alheio e mais em nosso próprio trabalho. É claro que precisamos dar um pocuo de tempo ao tempo, estar prontos para colaborar com os outros e criar as condições para que a chamada “sorte” também sorria para nós.\u003c/p\u003e","title":"Não tenha medo do sucesso"},{"content":"Isso mesmo, agora não tem mais desculpa para não usar o Ubuntu.\nO time de desenvolvimento do Ubuntu libera um curso dividido em 10 lições, completamente grátis na sua versão digital e distribuido pela licença Creative Commons BY-NC-SA.\nO curso, em duas versões (de 72mb) para estudantes e professores, consiste de uma introdução, processo de instalação, uma revisão para escritório e como personalizar, detalhes de conexões, Internet e e-mail, automação usando OpenOffice, os jogos, os aspectos multimídia (images, áudio e vídeo), o sistema de ajuda e finalmente o particionamento.\nApesar de estar desatualizado quanto a versão do Ubuntu (8.04), ainda sim, é uma ferramenta de estudo que pode ajudar muito aos leigos e novatos no sistema. E claro, você pode ganhar algum dindin sendo instrutor ou ensinando.\n","permalink":"http://ricardomartins.com.br/curso-oficial-do-ubuntu-linux-gratuito/","summary":"\u003cp\u003eIsso mesmo, agora não tem mais desculpa para não usar o Ubuntu.\u003c/p\u003e\n\u003cp\u003eO time de desenvolvimento do Ubuntu libera um \u003ca href=\"https://wiki.ubuntu.com/Training\"\u003ecurso\u003c/a\u003e dividido em 10 lições, completamente grátis na sua versão digital e distribuido pela licença Creative Commons BY-NC-SA.\u003c/p\u003e\n\u003cp\u003eO curso, em duas versões (de 72mb) para \u003ca href=\"https://wiki.ubuntu.com/Training?action=AttachFile\u0026amp;do=get\u0026amp;target=student.pdf\"\u003eestudantes\u003c/a\u003e e \u003ca href=\"https://wiki.ubuntu.com/Training?action=AttachFile\u0026amp;do=get\u0026amp;target=instructor.pdf\"\u003eprofessores\u003c/a\u003e, consiste de uma introdução, processo de instalação, uma revisão para escritório e como personalizar, detalhes de conexões, Internet e e-mail, automação usando OpenOffice, os jogos, os aspectos multimídia (images, áudio e vídeo), o sistema de ajuda e finalmente o particionamento.\u003c/p\u003e","title":"Curso Oficial do Ubuntu Linux Gratuito"},{"content":"Descobrí uma ferramenta interessante para cópia de arquivos em rede, então lá vai a dica:\nTrata-se do DeltaCopy, um software sob a licença GPL que utiliza o protocolo rsync para a transferência de arquivos à partir de máquinas Windows. Funciona no estilo cliente/servidor e em alguns testes que eu já fiz, se mostrou bastante rápido.\nA transferência é feita de forma totalmente transparente, e com a possibilidade de fazer o agendamento das tranferências. Permite fazer backups incrementais, enviar e-mails com log da tarfa realizada, e também está disponível o tunelamento via ssh se o servidor de destino for um sistema linux rodando rsync.\nO link para download e maiores informações, vocês podem encontrar em http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp e http://www.ghacks.net/2008/10/02/windows-backup-software-deltacopy/\n","permalink":"http://ricardomartins.com.br/rsync-no-windows/","summary":"\u003cp\u003eDescobrí uma ferramenta interessante para cópia de arquivos em rede, então lá vai a dica:\u003c/p\u003e\n\u003cp\u003eTrata-se do DeltaCopy, um software sob a licença GPL que utiliza o protocolo rsync para a transferência de arquivos à partir de máquinas Windows. Funciona no estilo cliente/servidor e em alguns testes que eu já fiz, se mostrou bastante rápido.\u003c/p\u003e\n\u003cp\u003eA transferência é feita de forma totalmente transparente, e com a possibilidade de fazer o agendamento das tranferências. Permite fazer backups incrementais, enviar e-mails com log da tarfa realizada, e também está disponível o tunelamento via ssh se o servidor de destino for um sistema linux rodando rsync.\u003c/p\u003e","title":"Rsync no Windows"},{"content":"Depois de um bom tempo sem postar nada por aqui, tenho uma dica interessante para compartilhar.\nAcredito que seja de conhecimento de todos o que é um master browser, portanto não entrarei em detalhes. A questão é: se o computador eleito como master browser da sua rede apresentar problemas, até outra máquina assumir o papel de master browser a sua rede ficará meio perdida, e você pode não conseguir visualizar os computadores da rede em “Meus locais de rede”, dando a impressão que a rede esteja fora do ar.\nSe você souber os endereços IP’s ou o nome das máquinas, você consegue acessá-los normalmente através do “executar” no menu iniciar da seguinte forma:\nIPdaMaquinaCompartilhamento Mas para você não precisar ficar a mercê desta situação, você pode definir uma máquina para ser o Master Browser de sua rede, o que tornará mais facil resolver os problemas de uma rede sem master browser, caso esta apresente falha, pois você saberá qual máquina era o Master Browser, então bastará definir outra imediatamente.\nLá vai a dica:\nAbra o regedit e vá até o caminho abaixo:\nHKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/BrowserParameters\nCrie uma nova chave do tipo Reg_SZ com nome IsDomainMaster e valor: True\nDeve haver uma chave chamada MantainServerList, nesta você deve colocar o valor para Yes.\nPronto! Agora você sempre saberá quem é o seu Master Browser\n","permalink":"http://ricardomartins.com.br/como-configurar-o-windows-como-master-browser-para-a-rede/","summary":"\u003cp\u003eDepois de um bom tempo sem postar nada por aqui, tenho uma dica interessante para compartilhar.\u003c/p\u003e\n\u003cp\u003eAcredito que seja de conhecimento de todos o que é um \u003ca href=\"http://en.wikipedia.org/wiki/Domain_Master_Browser\"\u003emaster browser\u003c/a\u003e, portanto não entrarei em detalhes. A questão é: se o computador eleito como master browser da sua rede apresentar problemas, até outra máquina assumir o papel de master browser a sua rede ficará meio perdida, e você pode não conseguir visualizar os computadores da rede em “Meus locais de rede”, dando a impressão que a rede esteja fora do ar.\u003c/p\u003e","title":"Como configurar o Windows como Master Browser para a Rede."},{"content":"\nMobaSSH é um servidor SSH para Windows. Ele permite que você execute comandos e transfira arquivos de um computador remoto rodando Windows a partir de qualquer sistema operacional (GNU / Linux, Unix, HP-UX, AIX, Windows, …) através de uma conexão de rede segura criptografada. O MobaSSH é 100% compatível com clientes Linux / Unix / HPUX / AIX SSH, e também com o Putty ou WinSCP no Windows.\nPrincipais características:\n– Executar comandos remotos em um computador com Windows;\n– Transferir arquivos através de um canal criptografado;\n– Obter informações sobre o computador remoto;\n– Faça backups dos seus computadores através da rede;\n– Instalar software remotamente em computadores com Windows;\n– Administrar remotamente o computador remoto com Windows (o usuário pode permanecer conectado: os comandos são executados em background)\nFaça o download em http://mobassh.mobatek.net/en/\n","permalink":"http://ricardomartins.com.br/mobassh-servidor-ssh-para-o-windows/","summary":"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2009/06/mobasshserver-thumb.png\"\u003e\u003cimg alt=\"mobasshserver-thumb\" loading=\"lazy\" src=\"/wp-content/uploads/2009/06/mobasshserver-thumb.png\" title=\"mobasshserver-thumb\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMobaSSH é um servidor SSH para Windows. Ele permite que você execute comandos e transfira arquivos de um computador remoto rodando Windows a partir de qualquer sistema operacional (GNU / Linux, Unix, HP-UX, AIX, Windows, …) através de uma conexão de rede segura criptografada. O MobaSSH é 100% compatível com clientes Linux / Unix / HPUX / AIX SSH, e também com o Putty ou WinSCP no Windows.\u003c/p\u003e\n\u003cp\u003ePrincipais características:\u003c/p\u003e","title":""},{"content":"Hoje tive que trabalhar de madrugada… Fazer o quê né ?!\nComo neste horário as coisas por aqui são bem tranquilas, eu resolví trazer o meu note para fazer alguns ajustes finos no sistema: atualizei os pacotes, instalei alguns aplicativos e configurei o meu CZero Deleted Scenes no Wine.\nOlhando as configurações do Compiz, notei que não tinha nenum efeito de transparência de janelas bacana. Então mãos à obra!\nProcurando no Google, encontrei coisas interessantes, mas muitas voltadas para o Fluxbox, que consequentemente, não funcionaram corretamente no Gnome. Pesquisando, pastanto e testando, depois de algumas adaptações conseguí ter as minhas janelas com efeitos de transparência!\nVeja o procedimento:\nInstale os pacotes xcompmgr e transset:\n$ sudo apt-get install xcompmgr transset\nDescobri que o transset não necessita do xcompmgr, ele roda sobre o metacity (já vem instalado por padrão no ubuntu), e para ativá-lo (metacity) use Alt + F2 (ou no terminal) e execute o comando gconf-editor, vá em ‘apps’ \u0026gt; ‘metacity’ \u0026gt; e ative o ‘composite manager’.\nPara testar o transset no terminal digite:\n$ transset 0.8\nAparecerá uma cruz no lugar do cursor e daí é só clicar numa janela que ela se tornará transparente em 80%.\nMas colocar transparência nas janelas assim dá trabalho. Para facilitar um pouco esse processo indicaram o uso do ‘xbindkeys’, programa que faz atalhos pelo teclado. Para instalá-lo é fácil, no terminal digite:\n$ sudo apt-get install xbindkeys\nAgora crie o arquivo-texto para configurar os atalhos do xbindkeys. No terminal:\n$ gedit ~/.xbindkeysrc\nNo arquivo em branco aberto digite:\n\u0026quot;transset 0.83\u0026quot;\u0026lt;br\u0026gt;\u0026lt;/br\u0026gt;control + b:4\n\u0026quot;transset 1\u0026quot;\u0026lt;br\u0026gt;\u0026lt;/br\u0026gt;control + b:5\nSalve e feche. Para testar o xbindkeys mais o transset, no terminal digite:\n$ xbindkeys\nDepois testamos o transset segurando o Control e girando a roda do mouse, pra cima deixa a janela transparente, e pra baixo volta ao normal.\nPor fim, para ‘fixar’ o uso deste atalho para o transset, temos que habilitar o xbindkeys para rodar no início da sessão, vá em Menu \u0026gt; Sistema \u0026gt; Preferências \u0026gt; Aplicativos de sessão \u0026gt; + Adicionar, na caixa ‘nome’ e ‘comando’ escreva xbindkeys.\nPronto, agora pode colocar transparência nas janelas e mostrar para todo mundo o seu linux bonitão!\n","permalink":"http://ricardomartins.com.br/janelas-transparentes-no-ubuntu-9-04/","summary":"\u003cp\u003eHoje tive que trabalhar de madrugada… Fazer o quê né ?!\u003c/p\u003e\n\u003cp\u003eComo neste horário as coisas por aqui são bem tranquilas, eu resolví trazer o meu note para fazer alguns ajustes finos no sistema: atualizei os pacotes, instalei alguns aplicativos e configurei o meu CZero Deleted Scenes no Wine.\u003c/p\u003e\n\u003cp\u003eOlhando as configurações do Compiz, notei que não tinha nenum efeito de transparência de janelas bacana. Então mãos à obra!\u003c/p\u003e\n\u003cp\u003eProcurando no Google, encontrei coisas interessantes, mas muitas voltadas para o Fluxbox, que consequentemente, não funcionaram corretamente no Gnome. Pesquisando, pastanto e testando, depois de algumas adaptações conseguí ter as minhas janelas com efeitos de transparência!\u003c/p\u003e","title":"Janelas transparentes no Ubuntu 9.04"},{"content":"Aqui no blog eu já fiz alguns posts que podem te ajudar a bloquear sites na internet e trazer de certa forma alguma segurança para o seu ambiente, seja ele doméstico ou empresarial.\nVocê pode encontrá-los aqui:\nhttp://ricardomartins.com.br/xo-pornografia-com-scrubit/\nhttp://ricardomartins.com.br/voce-conhece-o-opendns/\nhttp://ricardomartins.com.br/bloqueando-sites-na-unha/\nhttp://ricardomartins.com.br/bloqueando-sites-atraves-do-arquivo-hosts/\nhttp://ricardomartins.com.br/bloqueando-sites-atraves-do-arquivo-hosts-parte-3/\nHoje lendo meus feeds, encontrei um post do Catabits explicando como configurar o OpenDNS. Como tem uma explicação muito detalhada, achei interessante divulgar aqui.\nConfiram no link:\nhttp://www.catabits.com.br/blog/internet/protegendo-as-criancas-na-internet\n","permalink":"http://ricardomartins.com.br/protegendo-as-criancas-na-internet/","summary":"\u003cp\u003eAqui no blog eu já fiz alguns posts que podem te ajudar a bloquear sites na internet e trazer de certa forma alguma segurança para o seu ambiente, seja ele doméstico ou empresarial.\u003c/p\u003e\n\u003cp\u003eVocê pode encontrá-los aqui:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://ricardomartins.com.br/xo-pornografia-com-scrubit/\"\u003ehttp://ricardomartins.com.br/xo-pornografia-com-scrubit/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://ricardomartins.com.br/voce-conhece-o-opendns/\"\u003ehttp://ricardomartins.com.br/voce-conhece-o-opendns/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://ricardomartins.com.br/bloqueando-sites-na-unha/\"\u003ehttp://ricardomartins.com.br/bloqueando-sites-na-unha/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://ricardomartins.com.br/bloqueando-sites-atraves-do-arquivo-hosts/\"\u003ehttp://ricardomartins.com.br/bloqueando-sites-atraves-do-arquivo-hosts/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://ricardomartins.com.br/bloqueando-sites-atraves-do-arquivo-hosts-parte-3/\"\u003ehttp://ricardomartins.com.br/bloqueando-sites-atraves-do-arquivo-hosts-parte-3/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eHoje lendo meus feeds, encontrei um post do Catabits explicando como configurar o OpenDNS. Como tem uma explicação muito detalhada, achei interessante divulgar aqui.\u003c/p\u003e\n\u003cp\u003eConfiram no link:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.catabits.com.br/blog/internet/protegendo-as-criancas-na-internet\"\u003ehttp://www.catabits.com.br/blog/internet/protegendo-as-criancas-na-internet\u003c/a\u003e\u003c/p\u003e","title":"Protegendo as crianças na Internet"},{"content":"Um problema com as chamadas “redes sociais” são as URL’s muito compridas. São difícies de lembrar e você acaba sendo obrigado a mandar te procurarem pelo nome – vide orkut, ou você envia o link por e-mail, messenger, etc.\nPor exemplo, algumas das minhas URL’s são:\nhttp://www.orkut.com.br/Main#Profile.aspx?uid=5075637778557459393 http://flickr.com/photos/rmartins \u0026lt;http://www.bloglines.com/public/rmmartins \u0026gt; Uma forma fácil de resolver este problema, é utilizar redirecionamentos permanentes que sejam fáceis de lembrar, utilizando o .htaccess\nPode ser feito da seguinte maneira:\nredirect 301 /nomedoatalho destino\nPor exemplo:\nredirect 301 /orkut http://www.orkut.com.br/Main#Profile.aspx?uid=5075637778557459393 redirect 301 /bloglines http://www.bloglines.com/public/rmmartins redirect 301 /delicious http://delicious.com/rmartins redirect 301 /flickr http://flickr.com/photos/rmartins redirect 301 /twitter http://twitter.com/ricardommartins redirect 301 /linkedin http://www.linkedin.com/in/rmmartins E o resultado:\nhttp://ricardomartins.com.br/orkut http://ricardomartins.com.br/bloglines http://ricardomartins.com.br/delicious http://ricardomartins.com.br/flickr http://ricardomartins.com.br/twitter http://ricardomartins.com.br/linkedin É algo muito fácil de fazer, e ainda pode fazer uma grande diferença: Url’s curtas, fáceis de lembrar, e a possibilidade de promover meu site cada vez que revelo estes endereços à alguém.\n","permalink":"http://ricardomartins.com.br/urls-curtas-usando-seu-htaccess/","summary":"\u003cp\u003eUm problema com as chamadas “redes sociais” são as URL’s muito compridas. São difícies de lembrar e você acaba sendo obrigado a mandar te procurarem pelo nome – vide orkut, ou você envia o link por e-mail, messenger, etc.\u003c/p\u003e\n\u003cp\u003ePor exemplo, algumas das minhas URL’s são:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://www.orkut.com.br/Main#Profile.aspx?uid=5075637778557459393\"\u003ehttp://www.orkut.com.br/Main#Profile.aspx?uid=5075637778557459393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://flickr.com/photos/rmartins\"\u003ehttp://flickr.com/photos/rmartins\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u0026lt;http://www.bloglines.com/public/rmmartins \u0026gt;\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUma forma fácil de resolver este problema, é utilizar \u003ca href=\"http://en.wikipedia.org/wiki/301_redirect\"\u003eredirecionamentos\u003c/a\u003e\u003ca href=\"http://en.wikipedia.org/wiki/301_redirect\"\u003e permanentes\u003c/a\u003e que sejam fáceis de lembrar, utilizando o .htaccess\u003c/p\u003e\n\u003cp\u003ePode ser feito da seguinte maneira:\u003c/p\u003e","title":"Urls curtas usando seu .htaccess"},{"content":"Autor: Danilo Montagna\nEsse artigo demonstra como solucionar os problemas de quebra de disco em um servidor, Dependendo dos serviços que estão sendo rodados no servidor, geralmente acesso à banco de dados, e-mail, sistema corporativos, etc, não seria legal perder todo esse conteúdo por causa de uma falha de disco rígido, e por isso empresas de médio a grande porte investem em sistemas de “tolerância à falhas” ou seja, o Sistema RAID.\nUma das melhores soluções para “tolerância à falhas” para seu servidor é o Sistema RAID.\nDefinição de RAID: RAID significa “Redundant Array of Inexpensive Disks”. Pesquisadores da Universidade de Berkeley na Califórnia foram os que publicaram um estudo definindo o RAID, as suas características e tecnologias. Atualmente existem onze tipos de RAID: 0, 1, 2, 3, 4, 5, 6, 7, 10, 53 e 0+1.\nAbaixo estão as descrições dos RAID mais utilizados:\nRAID 0 – striping sem tolerância à falha\nEste nível tem o nome de “striping”. Os dados do computador são divididos entre dois ou mais discos rígidos, o que oferece uma alta performance de transferência de dados, porém não oferece segurança de dados, pois caso haja alguma pane em um disco rígido, todo o conteúdo gravado neles irá ser perdido. O RAID 0 pode ser usado para se ter uma alta performance, porém não é indicado para sistemas que necessitam de segurança de dados.\nÉ possível usar de dois a quatro discos rígidos em RAID 0, onde os mesmos serão acessados como se fosse um único disco, aumentando radicalmente o desempenho do acesso aos HD’s. Os dados gravados são divididos em partes e são gravados por todos os discos. Na hora de ler, os discos são acessados ao mesmo tempo. Na prática, temos um aumento de desempenho de cerca de 98% usando dois discos, 180% usando 3 discos e algo próximo a 250% usando 4 discos. As capacidades dos discos são somadas. Usando 4 discos de 10 GB, por exemplo, você passará a ter um grande disco de 40 GB.\nEste modo é o melhor do ponto de vista do desempenho, mas é ruim do ponto de vista da segurança e da confiabilidade, pois como os dados são divididos entre os discos, caso apenas um disco falhe, você perderá os dados gravados em todos os discos. É importante citar que neste nível você deve usar discos rígidos idênticos. É até possível usar discos de diferentes capacidades, mas o desempenho ficará limitado ao desempenho do disco mais lento.\nRAID 1 (mirror e duplexing)\nO RAID 1 também é conhecido como “espelhamento”, ou seja, os dados do computador são divididos e gravados em dois ou mais discos ao mesmo tempo, oferecendo, portanto, uma redundância dos dados com segurança contra falha em disco. Esse nível de RAID tende a ter uma demora maior na gravação de dados nos discos, pelo fato da replicação ocorrer entre os dois discos instalados, mais sua leitura será mais rápida, pois o sistema terá duas pontes de procura para achar os arquivos requeridos.\nNeste nível são utilizados dois discos, sendo que o segundo terá uma cópia idêntica do primeiro, ou seja, um CLONE. Na prática, será como se existisse apenas um único disco rígido instalado, pois o segundo seria usado para espelhamento dos dados gravados no primeiro – mas caso o disco principal falhe por qualquer motivo, você terá uma cópia de segurança armazenada no segundo disco. Este é o modo ideal se você deseja aumentar a confiabilidade e a segurança do sistema.\nUm detalhe importante em RAID 1 é que, caso os dois discos estejam na mesma IDE, (1º em master e o 2º em slave), você teria que resetar o micro caso o primeiro disco quebrar, usando um disco por IDE a placa fará a troca automaticamente, sem necessidade de reset.\nRAID 10 (mirror e striping com alta performance)\nO RAID 10 pode ser usado apenas com 4 discos rígidos. Os dois primeiros trabalharão em modo Striping (aumentando o desempenho), enquanto os outros dois armazenarão uma cópia exata dos dois primeiros, mantendo uma tolerância à falhas. Este modo é na verdade uma junção do RAID 0 com o RAID 1 e é muito utilizado em servidores de banco de dados que necessitem alta performance e tolerância à falhas.\nRAID 0+1 (alta performance com tolerância)\nAo contrário do que muitos pensam, o RAID 0+1 não é o mesmo que o RAID 10: embora ambos exijam no mínimo quatro discos rígidos para operarem e funcionam de uma maneira similar, o RAID 0+1 e tem a mesma tolerância à falha do RAID 5. No RAID 0+1, se um dos discos rígidos falhar, ele se torna essencialmente um RAID 0\nRAID 2 (ECC)\nEste nível de RAID é direcionado para uso em discos que não possuem detecção de erro de fábrica. O RAID 2 é muito pouco usado uma vez que os discos modernos já possuem de fábrica a detecção de erro no próprio disco.\nRAID 3 (cópia em paralelo com paridade)\nO RAID 3 divide os dados, a nível de byte, entre vários discos. A paridade é gravada em um disco em separado. Para ser usado este nível, o hardware deverá possuir este tipo de suporte implementado. Ele é muito parecido com o RAID 4.\nRAID 4 (paridade em separado)\nRAID 4 divide os dados, a nível de “blocos”, entre vários discos. A paridade é gravada em um disco separado. Os níveis de leitura são muito parecidos com o RAID 0, porém a gravação requer que a paridade seja atualizada toda as vezes que ocorrerem gravações no disco, tornando-a mais lenta a gravação dos dados no disco. O RAID 4 exige no mínimo três discos rígidos.\nRAID 5 (paridade distribuída)\nO RAID 5 é comparável ao RAID 4, mas ao invés de gravar a paridade em um disco separado, a gravação é distribuída entre os discos instalados. O RAID 5 aumenta a velocidade em gravações de arquivos pequenos, uma vez que não há um disco separado para a paridade. Porém como o dado de paridade tem que ser distribuído entre todos os discos instalados, durante o processo de leitura, a performance deverá ser um pouco mais lenta que o RAID 4. O RAID 5 exige no mínimo três discos rígidos.\nExistem outros RAID que são utilizados em menor escala e/ou são baseados naquele acima mencionados:\nRAID 6 (dupla paridade)\nÉ essencialmente uma extensão do RAID 5 com dupla paridade\nRAID 7 (altíssima performance)\nAs informações são transmitidas em modo assíncrono que são controladas e cacheadas de modo independente. obtendo performances altíssimas.\nRAID 53 (alta performance)\nÉ essencialmente um RAID 3 com cinco discos rígidos\nCom certeza pode-se afirmar que o Sistema de arquitetura RAID é o mais utilizado entre empresas que querem manter segurança de dados em seus servidores. Algumas soluções são bastante caras, mas permitem um nível de segurança compatível com o investimento realizado.\n","permalink":"http://ricardomartins.com.br/entendendo-os-niveis-de-raid-redundant-array-of-inexpensive-disks/","summary":"\u003cp\u003eAutor: Danilo Montagna\u003c/p\u003e\n\u003cp\u003eEsse artigo demonstra como solucionar os problemas de quebra de disco em um servidor, Dependendo dos serviços que estão sendo rodados no servidor, geralmente acesso à banco de dados, e-mail, sistema corporativos, etc, não seria legal perder todo esse conteúdo por causa de uma falha de disco rígido, e por isso empresas de médio a grande porte investem em sistemas de “tolerância à falhas” ou seja, o Sistema RAID.\u003c/p\u003e","title":"Entendendo os Níveis de RAID (Redundant Array of Inexpensive Disks)"},{"content":"Autor: Fábio Kaiser Rauber [fabiorauber at hotmail.com]\nEste tutorial foi desenvolvido para esclarecer um recurso cada vez mais difundido: RAID. Primeiro serão explicados os conceitos principais e, em meio aos conceitos, responderei a perguntas que freqüentemente vem à cabeça dos leitores.\nRAID inicialmente foi feito para servidores, no entanto, muitas placas-mãe SOHO (Small Office Home Office -\u0026gt; Pequenos escritórios ou usuário doméstico) do mercado já vem com um Chip RAID onboard. Mas, o que significa?\nRAID significa Redundant Array of Independent Disks. Em bom português, significa Matriz Redundante de Discos Independentes. Apesar do nome ser complicado, o conceito é bem simples: fazer com que vários discos rígidos trabalhem como se fossem um só. Existem vários tipos de RAID, aqui citaremos os mais comuns:\nRAID 0: Dois ou mais discos rígidos são agrupados. Os dados são gravados distribuindo-se a carga entre os discos que fazem parte da matriz (geralmente em blocos de 32kb ou 64Kb de dados). Este método não é muito seguro, já que se um participante da matriz falhar, todos os dados serão perdidos. No entanto, é o mais rápido, pois a leitura e gravação são distribuídas.\nRAID 1: Também chamado de espelhamento: um dos discos serve de espelho para o outro. Tudo que é gravado em um dos discos é gravado no outro. Isso faz com que a performance de gravação seja um pouco prejudicada, no entanto, a leitura dos dados é acelerada, já que temos dois discos lendo o mesmo arquivo. É uma forma bem segura, mas também a mais cara, sendo que apenas 50% do espaço disponível é aproveitado.\nRAID 5: Melhor relação custo x performance x segurança. Para esse tipo de RAID, há necessidade de no mínimo 3 discos. As informações de paridade são gravadas em cada disco de tal forma que se um dos integrantes da matriz falhar, as informações nele contidas podem ser reconstruídas. Sua performance de gravação é menor do que a do RAID 0 e maior que a do RAID 1. A performance de leitura é a melhor entre as aqui citadas, já que as informações estão distribuídas entre três ou mais discos.\nPode-se implementar RAID de duas maneiras distintas sendo cada qual com suas vantagens e desvantagens: RAID por Software ou Hardware.\nRAID por Software\nA grande vantagem do RAID por software é seu custo: nenhuma placa adicional ou mesmo componente onboard faz parte dos seus requisitos. Na verdade, a única necessidade é ter um sistema operacional que dê suporte a essa tecnologia – como o Windows 2000.\nAqui iremos tratar dos conceitos de RAID por software desse sistema operacional da Microsoft pois no Windows 2000 temos dois tipos de discos: básicos e dinâmicos.\nDisco Básico: É o disco comum, que é subdividido em partições. Pode ter até quatro partições Primárias (aquelas que dão suporte a boot) ou então três Primárias e uma Estendida. Esta última é subdividida em Unidades Lógicas. Um disco básico não dá suporte a RAID por software.\nDisco Dinâmico: Este tipo de disco é de exclusividade dos sistemas operacionais baseados no Windows 2000 (XP e Win2003 inclusos), ou seja, somente esses sistemas operacionais conseguem reconhecê-lo. Um disco dinâmico é subdividido em Volumes ao invés de partições. Nesse caso não há limitações quanto ao número de volumes que podem existir em um disco dinâmico. Com ele podemos criar matrizes de RAID por software.\nComo faço para converter um disco dinâmico de volta para básico?\nIsso não é possível sem que todos os volumes tenham sido deletados. Portanto, tenha certeza do que está fazendo…\nPosso converter meu ZIP drive ou meu disco USB para disco dinâmico?\nNão é possível converter discos removíveis para discos dinâmicos. Tampouco o disco rígido de seu laptop ou notebook pode ser convertido para dinâmico.\nConvertendo um disco básico em um disco dinâmico:\nSelecione o(s) disco(s) a ser(em) convertido(s)…\nE finalmente clique em Convert!\nDepois de ter o seu disco convertido para dinâmico, é importante que você entenda os vários tipos de volumes existentes no Windows 2000:\nVolume Simples: É o equivalente à partição do disco Básico. Todas as partições são convertidas para volumes simples depois que seu disco se torna dinâmico.\nVolume Estendido (ou Spanned): Um volume estendido pode conter espaço em disco de até 32 HDs. Os dados são gravados preenchendo o espaço em disco do primeiro HD, depois do segundo e assim por diante. Por essa razão, não há melhoria na performance.\nVolume Striped: Chamado assim porque os dados são gravados em tiras (stripes). É o nosso famoso RAID 0! Um volume striped pode conter de 2 até 32 discos.\nVolume Espelhado: É o RAID 1.\nVolume Striped com Paridade: Implementação por software do RAID 5. O Windows 2000 suporta até 32 discos em um Volume Striped com Paridade, lembrando que o mínimo é 3.\nA figura abaixo ilustra uma matriz de RAID por software, mais precisamente um volume Striped: note que não necessariamente todo o espaço de determinado disco rígido deve estar ocupado pelo volume.\nPerguntas Freqüentes\nPor que não consigo instalar o Windows em um determinado volume? O Windows 2000 somente pode ser instalado em uma Partição que foi convertida para Volume (isso ocorre automaticamente quando o disco é convertido para dinâmico). O programa de instalação usa a BIOS para se comunicar com o disco, que só reconhece volumes listados na tabela de partições do HD.\nNão consigo fazer um volume Striped com Paridade no meu Windows 2000 Professional! O Windows 2000 Professional não suporta volumes com tolerância a falha (volumes Espelhados e volumes Striped com Paridade).\nPosso mover um volume Striped, Striped com paridade, Estendido ou Espelhado de um computador para outro? Sim. Contanto que todas as unidades de disco rígido integrantes da matriz forem movidas.\nRAID por Hardware\nRAID por hardware é sem dúvida a maneira mais eficiente de implementar matrizes de discos rígidos e qualquer sistema operacional pode reconhecer uma matriz desse tipo, como se fosse um HD simples. A figura abaixo demonstra esse aspecto em uma placa-mãe Soyo K7V Dragon Plus, que contém um chip onboard da Promise modelo FastTrak 100 Lite.\nChip Promise FastTrak 100 Lite\nda Soyo Dragon Plus!\nAlém disso, o RAID por hardware é mais rápido: ao contrário das matrizes de RAID por Software, todo o espaço da unidade de disco é utilizado para a matriz.\nPosso mesclar unidades de disco diferentes em uma matriz de RAID por Hardware? Sim, mas a controladora vai fazer com que elas se tornem “iguais”. Se tivermos um disco de 40Gb de 5400Rpm e um outro disco de 20Gb de 7200 Rpm, teremos que a quantidade de espaço disponível para a matriz será de 40Gb, o espaço restante na unidade de disco maior ficará inutilizado. Quanto à performance, seria como se você tivesse dois discos de 5400 rpm.\nQuero mover minha matriz de RAID por Hardware para outro computador. Funciona, desde que todas as unidades da matriz forem movidas e que as controladoras dos dois computadores sejam as mesmas (como duas Promise Fasttrak 100) ou compatíveis.\nAs controladoras RAID são incompatíveis… Posso ler a minha matriz em uma controladora de disco rígido comum? Você pode ler as unidades em separado e em certas configurações. Apesar desse comportamento variar entre as controladoras RAID, normalmente consegue-se ler qualquer um dos discos de uma matriz de Espelhamento (RAID 1) e uma “matriz” de um disco somente em RAID 0.\nNão existe opção para dar boot pela matriz RAID na minha Bios… Geralmente a Bios da máquina reconhece a controladora RAID como uma SCSI. Assim sendo, tudo o que você deve fazer é selecionar a opção SCSI em uma das opções de boot. Abaixo temos o exemplo da BIOS da Soyo Dragon Plus:\n","permalink":"http://ricardomartins.com.br/raid-perguntas-e-respostas/","summary":"\u003cp\u003eAutor: Fábio Kaiser Rauber [fabiorauber at hotmail.com]\u003c/p\u003e\n\u003cp\u003eEste tutorial foi desenvolvido para esclarecer um recurso cada vez mais difundido: RAID. Primeiro serão explicados os conceitos principais e, em meio aos conceitos, responderei a perguntas que freqüentemente vem à cabeça dos leitores.\u003c/p\u003e\n\u003cp\u003eRAID inicialmente foi feito para servidores, no entanto, muitas placas-mãe SOHO (Small Office Home Office -\u0026gt; Pequenos escritórios ou usuário doméstico) do mercado já vem com um Chip RAID onboard. Mas, o que significa?\u003c/p\u003e","title":"RAID: perguntas e respostas !"},{"content":"Esta dica é bem simples, e mostra como bloquear pendrives no seu windows.\nAcesse a chave abaixo no registro: HKEY_LOCAL_MACHINESYSTEM/CurrenControlSet/Services/USBSTOR/Start\nA dword “Start” possui valor default em 3. Mude para 4.\nOs arquivos listados abaixo, devem ter todas as suas permissões negadas para todos os usuários, inclusive o usuário “System”. C:Windowsinfusbstor.inf\nC:Windowsinfusbstor.pnf\nC:Windowssystem32driversusbstor.sys\n","permalink":"http://ricardomartins.com.br/bloqueando-pendrives-no-windows-facil-facil/","summary":"\u003cp\u003eEsta dica é bem simples, e mostra como bloquear pendrives no seu windows.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eAcesse a chave abaixo no registro:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eHKEY_LOCAL_MACHINESYSTEM/CurrenControlSet/Services/USBSTOR/Start\u003c/span\u003e\u003c/span\u003e\u003c/p\u003e\n\u003cp\u003eA dword “Start” possui valor default em 3. Mude para 4.\u003c/p\u003e\n\u003col start=\"2\"\u003e\n\u003cli\u003eOs arquivos listados abaixo, devem ter todas as suas permissões negadas para todos os usuários, inclusive o usuário “System”.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eC:Windowsinfusbstor.inf\u003c/p\u003e\n\u003cp\u003eC:Windowsinfusbstor.pnf\u003c/p\u003e\n\u003cp\u003eC:Windowssystem32driversusbstor.sys\u003c/p\u003e","title":"Bloqueando pendrives no Windows fácil, fácil"},{"content":"Este artigo mostra como realizar uma configuração no windows, de modo a bloquear o acesso à storage devices, que podem ser entendidos como pendrives, disquetes e cd-roms, pelos usuários nas máquinas com Windows Xp. Desta forma, podemos diminuir drasticamente a incidência de vírus, spywares e malwares na sua rede.\nO Windows possui uma ferramenta chamada Group Policy Editor, que permite que se façam alterações nas permições e políticas de segurança da máquina. Essa ferramenta permite ainda a criação de novos templates de segurança com um pouco de programação em que na sua maioria já se encontra pronta ou semi-pronta.\nPrimeiramente deve-se gerar um arquivo de template, que deve ser um arquivo do tipo Custom_Usb_Policy_Teste.adm, feito no bloco de notas e salvo neste formato com texto em UNICODE. O código dentro do arquivo é o que segue:\nCLASS MACHINE CATEGORY !!category CATEGORY !!categoryname POLICY !!policynameusb KEYNAME “SYSTEMCurrentControlSetServicesUSBSTOR” EXPLAIN !!explaintextusb PART !!labeltextusb DROPDOWNLIST REQUIRED``VALUENAME \u0026#34;Start\u0026#34; ITEMLIST NAME !!Disabled VALUE NUMERIC 3 DEFAULT NAME !!Enabled VALUE NUMERIC 4 END ITEMLIST END PART END POLICY POLICY !!policynamecd KEYNAME “SYSTEMCurrentControlSetServicesCdrom” EXPLAIN !!explaintextcd PART !!labeltextcd DROPDOWNLIST REQUIRED``VALUENAME \u0026#34;Start\u0026#34; ITEMLIST NAME !!Disabled VALUE NUMERIC 1 DEFAULT NAME !!Enabled VALUE NUMERIC 4 END ITEMLIST END PART END POLICY POLICY !!policynameflpy KEYNAME “SYSTEMCurrentControlSetServicesFlpydisk” EXPLAIN !!explaintextflpy PART !!labeltextflpy DROPDOWNLIST REQUIRED``VALUENAME \u0026#34;Start\u0026#34; ITEMLIST NAME !!Disabled VALUE NUMERIC 3 DEFAULT NAME !!Enabled VALUE NUMERIC 4 END ITEMLIST END PART END POLICY POLICY !!policynamels120 KEYNAME “SYSTEMCurrentControlSetServicesSfloppy” EXPLAIN !!explaintextls120 PART !!labeltextls120 DROPDOWNLIST REQUIRED``VALUENAME \u0026#34;Start\u0026#34; ITEMLIST NAME !!Disabled VALUE NUMERIC 3 DEFAULT NAME !!Enabled VALUE NUMERIC 4 END ITEMLIST END PART END POLICY END CATEGORY END CATEGORY``[strings] category=”Custom Policy Settings” categoryname=”Restrict Drives” policynameusb=”Disable USB” policynamecd=”Disable CD-ROM” policynameflpy=”Disable Floppy” policynamels120=”Disable High Capacity Floppy” explaintextusb=”Disables the computers USB ports by disabling the usbstor.sys driver” explaintextcd=”Disables the computers CD-ROM Drive by disabling the cdrom.sys driver” explaintextflpy=”Disables the computers Floppy Drive by disabling the flpydisk.sys driver” explaintextls120=”Disables the computers High Capacity Floppy Drive by disabling the sfloppy.sys driver” labeltextusb=”Disable USB Ports” labeltextcd=”Disable CD-ROM Drive” labeltextflpy=”Disable Floppy Drive” labeltextls120=”Disable High Capacity Floppy Drive” Enabled=”Enabled” Disabled=”Disabled” Feito isso, deve-se ir em START, RUN e digitar o seguinte comando : gpedit.msc\nCom isso a seguinte tela deverá aparecer:\nClicando com o botão direito do mouse em Administrative Templates, e posteriormente em Add/Remove Templates, abre-se uma nova janela:\nClicando em Add… e adicionando o arquivo criado anteriormente, a tela deve mudar para a seguinte:\nFeito isso, clica-se em Close e o menu do Group Policy Editor deve ser igual a este:\nPara que as opções apareçam corretamente deve-se clicar em View e desmarcar a opção que diz Only Show Policies That Can be Fully Managed. Com isso, agora fica muito mais fácil desativar e reativar o uso de pendrives, disquetes até mesmo o cd-rom. Basta entrar em cada uma das opções e fazer o seguinte :\nVale lembrar que este método, bloqueia acesso apenas a dispositivos de storage e sendo assim, dispositivos USB, como mouses, teclados e etc, funcionam normalente.\nObs.: Este turorial foi testado no Windows XP Professional. Acredito que no Windows 2000 também funcione. Apenas no Windows XP Home, ele não funciona pois o mesmo não fornece acesso ao gpedit.msc.\nEste tutorial, foi feito baseando se nas informações obtidas em: http://www.petri.co.il/disable_usb_disks_with_gpo.htm\n","permalink":"http://ricardomartins.com.br/limitando-o-uso-de-storage-devices-pendrives-disquetes-cd-roms-no-windows/","summary":"\u003cp\u003eEste artigo mostra como realizar uma configuração no windows, de modo a bloquear o acesso à storage devices, que podem ser entendidos como pendrives, disquetes e cd-roms, pelos usuários nas máquinas com Windows Xp. Desta forma, podemos diminuir drasticamente a incidência de vírus, spywares e malwares na sua rede.\u003c/p\u003e\n\u003cp\u003eO Windows possui uma ferramenta chamada Group Policy Editor, que permite que se façam alterações nas permições e políticas de segurança da máquina. Essa ferramenta permite ainda a criação de novos templates de segurança com um pouco de programação em que na sua maioria já se encontra pronta ou semi-pronta.\u003c/p\u003e","title":"Limitando o uso de Storage Devices (PenDrives, Disquetes, Cd-Rom’s) no Windows"},{"content":"Lista com as dicas semanais Top 10 dos últimos três meses publicadas em [Lifehacker.com](http://www.lifehacker.com/). Se você perdeu alguma, vale a pena conferir: Top 10 Body Hacks Top 10 Free Windows Downloads Top 10 Must-have Firefox extensions Top 10 Free Computer System Recovery Tools Top 10 Home networking tricks Top 10 USB thumb drive tricks Top 10 Network Utilities Top 10 Greasemonkey user scripts Mac Top 10: Free Downloads, System Utilities, OS X tweaks, Apps That Should’ve Been in Leopard Top 10 Ubuntu applications ","permalink":"http://ricardomartins.com.br/top10-lifehacker/","summary":"\u003cdiv class=\"snap_preview\"\u003eLista com as dicas semanais Top 10 dos últimos três meses publicadas em [Lifehacker.com](http://www.lifehacker.com/). Se você perdeu alguma, vale a pena conferir:\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://lifehacker.com/software/lifehacker-top-10/top-10-body-hacks-257746.php\"\u003eTop 10 Body Hacks\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://lifehacker.com/software/windows/lh-top-10--free-windows-downloads-248303.php\"\u003eTop 10 Free Windows Downloads\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://lifehacker.com/software/firefox-extensions/lh-top-10--must+have-firefox-extensions-246127.php\"\u003eTop 10 Must-have Firefox extensions\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://lifehacker.com/software/lifehacker-top-10/lh-top-10--free-computer-system-recovery-tools-251903.php\"\u003eTop 10 Free Computer System Recovery Tools\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://lifehacker.com/software/home-network/lh-top-10--home-networking-tricks-253887.php\"\u003eTop 10 Home networking tricks\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://lifehacker.com/software/lifehacker-top-10/lh-top-10-usb-thumb-drive-tricks-255738.php\"\u003eTop 10 USB thumb drive tricks\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://lifehacker.com/software/lifehacker-top-10/top-10-network-utilities-267208.php\"\u003eTop 10 Network Utilities\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://lifehacker.com/software/greasemonkey/lh-top-10-greasemonkey-user-scripts-249957.php\"\u003eTop 10 Greasemonkey user scripts\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMac Top 10: \u003ca href=\"http://lifehacker.com/software/lifehacker-top-10/lh-top-10--free-mac-downloads-244619.php\"\u003eFree Downloads\u003c/a\u003e, \u003ca href=\"http://lifehacker.com/software/lifehacker-top-10/top-10-mac-utilities-259649.php\"\u003eSystem Utilities\u003c/a\u003e, \u003ca href=\"http://lifehacker.com/software/lifehacker-top-10/top-10-mac-os-x-tweaks-261579.php\"\u003eOS X tweaks\u003c/a\u003e, \u003ca href=\"http://lifehacker.com/software/lifehacker-top-10/top-10-apps-that-shouldve-been-in-leopard-267978.php\"\u003eApps That Should’ve Been in Leopard\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://lifehacker.com/software/lifehacker-top-10/top-10-ubuntu-applications-265052.php\"\u003eTop 10 Ubuntu applications\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e","title":"Top10 LifeHacker"},{"content":"Há alguns meses, foi publicado no TechNetBrasil, um artigo com o título acima. Não querendo aqui levantar mais flames sobre o assunto, gostaria de deixar bem clara a minha opinião sobre este tema. Eu acredito que não se trata de um sistema ser melhor do que o outro. O que acontece é que existem casos e casos, onde deve ser estudada a viabilidade de se implantar um ou outro dependendo da finalidade e dos recursos disponíveis. Acredito também que hoje em dia o profissional de informática, deve estar antenado com os dois sistemas, e conhecê-los muito bem já que atualmente, nenhuma empresa utiliza 100 % software livre ou proprietário. O que existe hoje são sistemas híbridos, funcionando simultâneamente utilizando os diversos tipos de sistemas operacionais dependendo da necessidade a ser atendida, e portanto, para estar bem colocado profissionalmente, conhecer profundamente o Linux é tão importante quanto conhecer da mesma forma o Windows. O grande problema que existe, são pessoas que conhecem muito pouco de um ou do outro, e saem por aí falando um monte de besteira.\nNo blog http://terramel.wordpress.com/, o autor Leonardo Ribeiro Rodrigues da Rocha, escreveu um post, onde ele comenta em detalhes o artigo publicado no Technet, e explica muito bem, esta questão que traz tantos comentários entre profissionais de informática com pouco conhecimento sobre o software livre.\nO post está no endereço: http://terramel.wordpress.com/2007/06/12/resposta-ao-fud-de-um-colunista-da-microsoft-technet/ e eu recomendo que você faça esta leitura.\nAproveito esta oportunidade para indicar alguns links, onde podem ser encontradas muitas informações úteis sobre os dois sistemas:\nhttp://linuxhelp.blogspot.com/ http://www.zago.eti.br/ http://www.windowsitpro.com/ http://techtutorials.info/ http://seclists.org/ http://shellcity.net/ http://www.securityfocus.com/ http://www.remote-exploit.org/ http://www.petri.co.il/ http://www.openslack.org/%7Epiterpk/ http://www.linuxquestions.org/ http://labmice.techtarget.com/ http://www.infosecwriters.com/ http://www-128.ibm.com/developerworks/linux/ http://www.howtoforge.com/ http://www.debian-administration.org/ http://www.onecomputerguy.com/ ","permalink":"http://ricardomartins.com.br/o-windows-e-muito-melhor-que-o-software-livre/","summary":"\u003cdiv class=\"snap_preview\"\u003eHá alguns meses, foi publicado no TechNetBrasil, um artigo com o título acima. Não querendo aqui levantar mais flames sobre o assunto, gostaria de deixar bem clara a minha opinião sobre este tema.\n\u003cp\u003eEu acredito que não se trata de um sistema ser melhor do que o outro. O que acontece é que existem casos e casos, onde deve ser estudada a viabilidade de se implantar um ou outro dependendo da finalidade e dos recursos disponíveis. Acredito também que hoje em dia o profissional de informática, deve estar antenado com os dois sistemas, e conhecê-los muito bem já que atualmente, nenhuma empresa utiliza 100 % software livre ou proprietário. O que existe hoje são sistemas híbridos, funcionando simultâneamente utilizando os diversos tipos de sistemas operacionais dependendo da necessidade a ser atendida, e portanto, para estar bem colocado profissionalmente, conhecer profundamente o Linux é tão importante quanto conhecer da mesma forma o Windows. O grande problema que existe, são pessoas que conhecem muito pouco de um ou do outro, e saem por aí falando um monte de besteira.\u003c/p\u003e","title":"“O Windows é muito melhor que o Software Livre” ?!?!"},{"content":"Esta é uma dica rápida, para quem precisa quebrar a senha do usuário root em qualquer distribuição linux, utilizando um live-cd.\nBootar com o live-cd. Descobrir em qual área do disco esta instalada a partição / (# cfdisk) Criar um diretório – pode chamar de target (# mkdir /target) Assumindo que a partição instalada no hd, esteja em hda1, monte a partição no diretório /target (# mount /dev/hda1 /target) Acessar o diretório /target (# cd /target) Alterar a partição / que está rodando do cd, para a partição raiz instalada no HD montada no /target (# chroot .) Alterar a senha do root com o comando passwd (# passwd root) Explicando o funcionamento:\nInicializaremos a máquina através da distribuição carregada à partir do cd. Nestes live-cd’s, o usuário disponibilizado é o usuário root.\nDepois de montar a partição / do HD na pasta criada na ramdrive (/target), e tornar a mesma como partição / para o sistema que está rodando via cd (# chroot . ) , ganhamos acesso total ao sistema, pois estávamos rodando do cd como usuário root, e tornamos a partição raiz do HD, como a partição raiz do CD. Agora rodamos o comando passwd para trocar a senha do usuário root.\nObs.: Atentar para o (.) depois do comando chroot, pois ele indica para alterar a raiz para o diretório atual, e neste caso se faz necessário estar dentro do diretório desejado ( no nosso exemplo, o /target)\n","permalink":"http://ricardomartins.com.br/quebrando-a-senha-do-root-no-linux/","summary":"\u003cp\u003eEsta é uma dica rápida, para quem precisa quebrar a senha do usuário root em qualquer distribuição linux, utilizando um live-cd.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eBootar com o live-cd.\u003c/li\u003e\n\u003cli\u003eDescobrir em qual área do disco esta instalada a partição / (# cfdisk)\u003c/li\u003e\n\u003cli\u003eCriar um diretório – pode chamar de target (# mkdir /target)\u003c/li\u003e\n\u003cli\u003eAssumindo que a partição instalada no hd, esteja em hda1, monte a partição no diretório /target (# mount /dev/hda1 /target)\u003c/li\u003e\n\u003cli\u003eAcessar o diretório /target (# cd /target)\u003c/li\u003e\n\u003cli\u003eAlterar a partição / que está rodando do cd, para a partição raiz instalada no HD montada no /target (# chroot .)\u003c/li\u003e\n\u003cli\u003eAlterar a senha do root com o comando passwd (# passwd root)\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eExplicando o funcionamento:\u003c/p\u003e","title":"Quebrando a senha do root no linux"},{"content":"Utilitário de configuração de segurança para Windows. Seconfig XP tem as seguintes características: Capaz de fechar as portas 135, 137-139 e 445 na maioria dos sistemas. Estas portas (mais exatamente – componentes do Windows que funcionam atrás delas) são o ponto de entrada principal em sistemas para a maioria de worms, hackers e etc.\nSeconfig XP simplesmente configura estes componentes do Windows para não usar o TCP/IP como protocolo do transporte (para deixar aquelas portas fechadas). Capaz de desabilitar a maior parte dos serviços desnecessários e inseguros do Windows e mudar outros ajustes relacionados à segurança escondidos no Windows. Tem a funcionalidade de determinar portas atualmente abertas.\nRecomendado para profissionais devido à possibilidade de customizar ajustes avançados. Pequeno e sem nenhum tipo de instalador, o Seconfig XP não instala nenhum arquivo ou serviço pois trabalha somente com o registro do Windows.\nDownload em: http://seconfig.sytes.net/\n","permalink":"http://ricardomartins.com.br/seconfig-xp/","summary":"\u003cdiv class=\"snap_preview\"\u003eUtilitário de configuração de segurança para Windows. Seconfig XP tem as seguintes características: Capaz de fechar as portas 135, 137-139 e 445 na maioria dos sistemas.\n\u003cp\u003eEstas portas (mais exatamente – componentes do Windows que funcionam atrás delas) são o ponto de entrada principal em sistemas para a maioria de worms, hackers e etc.\u003c/p\u003e\n\u003cp\u003eSeconfig XP simplesmente configura estes componentes do Windows para não usar o TCP/IP como protocolo do transporte (para deixar aquelas portas fechadas). Capaz de desabilitar a maior parte dos serviços desnecessários e inseguros do Windows e mudar outros ajustes relacionados à segurança escondidos no Windows. Tem a funcionalidade de determinar portas atualmente abertas.\u003c/p\u003e","title":"Seconfig XP"},{"content":"Produzido por Tomas Stephanson e Monte Reid – ERICSSON Medialab Site oficial: Warriors of The Net\nIdioma: Inglês | Legendas em português\nTempo: 12:49\nTexto do vídeo\nManuscrito escrito por Tomas Stephanson, Monte Reid, translation to portuguese by Leonel Morgado\nFonte: http://www.abusar.org/tcp-ip3.html\nGuerreiros da Internet\nPela primeira vez na História, as pessoas e as máquinas trabalham em conjunto, tornando um sonho realidade. Um força congregadora que não conhece fronteiras geográficas. Sem olhar à etnia, religião ou raça. Uma nova era, onde a comunicação verdadeiramente une as pessoas.\nEsta é a alvorada da Internet.\nQuer saber como tudo funciona? Clique aqui para iniciar a viagem pela Internet.\nOra bem, o que é que realmente aconteceu quando clicou nessa ligação? Despoletou um fluxo de informação. As informações deste fluxo dirigem-se para a sua sala pessoal de correio, onde o Sr. IP as empacota, rotula e despacha. Hás limites ao tamanho de cada pacote. A sala de correio tem de decidir como processar as informações e empacotá-las.\nA seguir, é preciso rotular o pacote IP, com informações importantes, tais como o endereço do remetente, o endereço do destinatário e de que tipo de pacote se trata. Como o pacote em causa se destina a ir para a Internet, também recebe o endereço do servidor proxy, que desempenha uma função muito especial, como veremos mais à frente.\nO pacote é então lançado para a rede local. Esta rede é utilizada para ligar todos os computadores, routers, impressoras e outros equipamentos locais, situados dentro das paredes reais de um único edifício. A rede local é um sítio relativamente anárquico, onde infelizmente podem ocorrer acidentes.\nA auto-estrada da rede local está apinhada com todo o tipo de informações: há pacotes IP, pacotes Novell, pacotes Apple Talk – âhm… que vão em contramão, como é costume. O router local lê os endereços dos pacotes e, se for necessário, recolhe os pacotes, lançando-os noutra rede.\nAh é verdade, o router. Um símbolo de controlo num mundo aparentemente desorganizado. Ele ali está..sistemático, insensível, metódico, conservador e, por vezes, não muito rápido. Mas é de grande precisão… geralmente.\nOs pacotes que saiem do router embrenham-se na intranet da empresa, direitos ao switch de routers. Este é um bocadinho mais eficiente do que os routers, despachando despreocupadamente e depressa os pacotes IP, encaminhando-os habilmente em direcção ao destino. É, mais ou menos, uma espécie de craque digital dos flippers.\nConforme os pacotes vão chegado aos respectivos destinos, são apanhados pela interface de rede, que está preparada para os despachar para o nível seguinte. Neste caso, o proxy. O proxy é utilizado por muitas empresas como “intermediário”, para aliviar a carga da ligação à Internet. E também por questões de segurança. Podemos ver que os pacotes têm tamanhos diferentes, conforme o conteúdo de cada um.\nO proxy abre o pacote e procura o endereço Web (conhecido por URL). Se o endereço for aceitável, o pacote é enviado para a Internet. No entanto, há alguns endereços que não obtêm a aprovação por parte do proxy (que o mesmo é dizer, não cumprem as directivas empresariais ou administrativas). E estes são eliminados sumariamente, pois não queremos disso por cá. Quanto aos que conseguem passar, fazem-se de novo à estrada.\nLogo a seguir… o corta-fogo (firewall). A firewall da empresa existe por dois motivos: evita que algumas coisinhas nojentas que andam pela Internet entrem na intranet; e também evita que as informações confidenciais da empresa sejam enviadas para a Internet.\nUma vez passada a firewall, um router recolhe o pacote e coloca-o numa estrada (ou largura de banda, como costumamos dizer) muito mais estreita. Obviamente, a estrada não é suficientemente larga para que possam caber todos os pacotes.\nÉ capaz de estar a pensar: “O que é que acontece aos pacotes que não chegam ao fim do caminho?” Bem, quando o Sr. IP não recebe uma confirmação de recepção de um dado pacote em tempo útil, limita-se a enviar um pacote para o substituir.\nEstamos agora prontos a entrar no mundo da Internet, uma teia de aranha de redes interligadas que se estende por todo o planeta. Aqui, os routers e switches estabelecem ligações entre redes.\nOra bem, a Internet é um ambiente completamente diferente do que encontramos dentro das muralhas da rede local. Aqui fora, é um faroeste. Muito espaço, muitas oportunidades, muito para explorar muito aonde ir. Graças à existência de muito poucos controlos e regras, as ideias novas encontram aqui solo fértil para ir mais além. Mas devido a esta liberdade, também alguns perigos se escondem. Nunca se sabe quando é que pode parecer o terrível ping mortal. É uma versão especial de um pedido normal de ping, criada por algum imbecil, que descontrola os anfitriões incautos.\nOs percursos dos nossos pacotes podem ser através de satélites, linhas telefónicas, comunicação aérea ou até mesmo cabo transoceânico. Nem sempre tomam o caminho mais rápido nem o mais curto, mas provavelmente chegarão ao destino, mais cedo ou mais tarde. É talvez por isto que às vezes falamos na World Wide Wait (”espera à escala mundial”). Mas quando tudo funciona como deve ser, pode-se dar 5 vezes a volta ao mundo, no tempo de um piscar de olhos (literalmente). E isto ao preço de uma chamada local – ou até por menos.\nQuase ao chegar ao nosso destino, encontramos outra firewall. Conforme o ponto de vista do pacote de dados, a firewall pode ser um bastião de segurança ou um adversário temível. Tudo depende do lado em que se está e das nossas intenções.\nA firewall foi concebida para deixar entrar só os pacotes que cumprem os critérios que tem definidos. Este corta-fogo está a trabalhar nos portos 80 e 25. Todas as tentativas de entrada por outros portos dão com a cara na porta.\nO porto 25 é utilizado para pacotes de correio; já o porto 80 é a entrada para os pacotes da Internet destinados ao servidor Web.\nDentro da firewall, os pacotes são analisados com mais cuidado: alguns passam sem dificuldades por esta “alfândega”, enquanto que outros já oferecem dúvidas. O polícia da firewall não é enganado de qualquer maneira: por exemplo, está atento a pacotes do ping mortal, quando estes se tentam disfarçar de pacotes do ping “normal”.\nPara os pacotes que têm a sorte de aqui chegar, a viagem está quase a terminar. Basta alinharem-se junto à interface, para serem erguidos até ao servidor Web.\nHoje em dia, um servidor Web pode estar a funcionar em muitos tipos de máquinas. Desde um grande sistema central a um computador pessoal, passando pelas câmaras para a Web. E porque não num frigorífico? Com a configuração adequada, pode-se descobrir se há ingredientes que cheguem para um Bacalhau à Brás, ou se é preciso ir às compras. Lembrem-se que estamos na alvorada da Internet: praticamente tudo é possível.\nUm a um, os pacotes são recebidos, abertos e desempacotados. As informações que continham, que constituiem o nosso pedido de informações, é enviada para aplicação do servidor Web. Quanto ao pacote, este é reciclado, ficando pronto para nova utilização, após preenchido com as informações que solicitámos. É então endereçado e é-nos enviado.\nJá de regresso, após passar pelas firewalls, routers e pela Internet. Passa novamente pela nossa firewall na empresa, bem como pela interface.\nEstá pronto a fornecer ao navegador da Web as informações solicitadas.\nE é isto o filme.\nSatisfeitos com o esforço que aplicaram, e cheios de confiança num mundo melhor, os nossos fiéis pacotes de dados cavalgam alegremente em direcção a mais um pôr do Sol, com a certeza de terem servido bem a seus amos.\nE então, isto é ou não é um final feliz?\n","permalink":"http://ricardomartins.com.br/guerreiros-da-internet-ip-pela-paz/","summary":"\u003cdiv class=\"snap_preview\"\u003eProduzido por Tomas Stephanson e Monte Reid – ERICSSON Medialab\n\u003cp\u003eSite oficial: \u003ca href=\"http://www.warriorsofthe.net/\"\u003eWarriors of The Net\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIdioma: \u003cstrong\u003eInglês | Legendas em português\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eTempo: \u003cstrong\u003e12:49\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eTexto do vídeo\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eManuscrito escrito por Tomas Stephanson, Monte Reid, translation to portuguese by \u003cstrong\u003eLeonel Morgado\u003c/strong\u003e\u003cbr\u003e\nFonte: \u003ca href=\"http://www.abusar.org/tcp-ip3.html\"\u003ehttp://www.abusar.org/tcp-ip3.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eGuerreiros da Internet\u003c/p\u003e\n\u003cp\u003ePela primeira vez na História, as pessoas e as máquinas trabalham em conjunto, tornando um sonho realidade. Um força congregadora que não conhece fronteiras geográficas. Sem olhar à etnia, religião ou raça. Uma nova era, onde a comunicação verdadeiramente une as pessoas.\u003c/p\u003e","title":"Guerreiros da Internet - IP pela Paz"},{"content":"Acontece muito, sabe quando quer cancelar um documento e ele fica horas para desaparecer da fila de impressão? Depois de reiniciar ele continua lá, quando não sai imprimindo tudo em várias folhas, você fica doido com aquela situação, gastando tinta e papeis, da vontade jogar a impressora fora? Como gosto de dizer esta frase: Seus problemas acabaram! Pelo menos para quem usa o Windows XP.\nVá ao Iniciar / Executar, escreva cmd e tecle Enter, com este comando abrirá uma janela/Prompt do DOS. Agora escreva os comandos na sequência demonstrada abaixo:\nnet stop spooler cd %systemroot%system32spoolPRINTERS del /f /s *.shd del /f /s *.spl net start spooler exit Pronto, desta forma excluiu todos os documento que estão na fila de impressão (spool).\nPara facilitar o trabalho e resolver em apenas um clique, faça o seguinte:\nAbra o Bloco de Notas, copie o código acima e salve como .bat, dê um nome qualquer, por exemplo, ‘anti-spool.bat’, pode deixar na área de trabalho mesmo, quando o problema persistir, basta executar o pequeno arquivo para ter todas as impressões canceladas instantaneamente.\n","permalink":"http://ricardomartins.com.br/como-cancelar-realmente-uma-impressao/","summary":"\u003cp\u003eAcontece muito, sabe quando quer cancelar um documento e ele fica horas para desaparecer da fila de impressão? Depois de reiniciar ele continua lá, quando não sai imprimindo tudo em várias folhas, você fica doido com aquela situação, gastando tinta e papeis, da vontade jogar a impressora fora? Como gosto de dizer esta frase: Seus problemas acabaram! Pelo menos para quem usa o Windows XP.\u003c/p\u003e\n\u003cp\u003eVá ao Iniciar / Executar, escreva cmd e tecle Enter, com este comando abrirá uma janela/Prompt do DOS. Agora escreva os comandos na sequência demonstrada abaixo:\u003c/p\u003e","title":"Como cancelar realmente uma impressão"},{"content":"Autor: Pedro Augusto de O. Pereira / http://augusto.pedro.googlepages.com/\nIntrodução\nSenhas são o ponto mais fraco em qualquer sistema de segurança. Isso acontece porque geralmente as senhas são definidas por seus usuários: pessoas que não tem idéia de como é fácil adivinhá-las e escolhem como senhas o nome da esposa/marido, o nome do cachorro, a data de casamento/nascimento, entre outros. Senhas que não usem caracteres especiais, números, letras maiúsculas e minúsculas, tenham uma quantidade grande de caracteres (com no mínimo 8 caracteres, por exemplo), correm o risco de serem quebradas por ataques de dicionário, também conhecidos como brute force.\nEm ataques brute force, o atacante tenta adivinhar a senha por tentativa e erro testando várias combinações de usuários e senhas (disponíveis em listas que podem ser encontradas na Internet ou baseando suas tentativas em dados que conseguiu utilizando engenharia social ou por conhecer a vítima do ataque) para tentar logar em um determinado serviço no qual ele não tem autorização, obtendo um shell em um servidor por exemplo.\nEfetuar este tipo de ataque é bem demorado e pode ser facilmente impedido por administradores que utilizem técnicas como limitar o número de tentativas erradas utilizando um determinado nome de usuário. Porém, existem várias ferramentas que fazem com que estes ataques sejam efetuados de modo mais eficiente.\nTHC Hydra\nA que eu mais gosto, é o THC Hydra, desenvolvido pelo Van Hauser do THC.\nO Hydra tem um desempenho muito bom (utiliza threads paralelas, dividindo as senhas e nomes de usuários entre estas threads diminuindo o tempo levado para ele conseguir adivinhar a senha) e consegue efetuar com sucesso ataques brute force nos protocolos TELNET, FTP, HTTP, HTTPS, HTTP-PROXY, SMB, SMBNT, MS-SQL, MYSQL, REXEC, RSH, RLOGIN, CVS, SNMP, SMTP-AUTH, SOCKS5, VNC, POP3, IMAP, NNTP, PCNFS, ICQ, SAP/R3, LDAP2, LDAP3, Postgres, Teamspeak, Cisco auth, Cisco enable, LDAP2, Cisco AAA. Além disso, está em constante desenvolvimento e é completamente gratuito com o código-fonte 100% disponível. Ele ainda possui uma interface gráfica, o HydraGTK. Ela é completamente independente do software e não precisa ser compilada para que você consiga utilizá-lo. Porém, sem ela você só poderá utilizá-lo através da linha de comando.\nVocê pode utilizar o Hydra em qualquer Unix como Linux, *BSD, Solaris, etc; Mac Os/X; no Windows utilizando o Cygwin; em dispositivos móveis que utilizem processadores ARM e Linux e em dispositivos que utilizem o PalmOS.\nSeguem os links para que você possa fazer o download:\nPara Unix: hydra-5.4-src.tar.gz Para Windows/Cygwin: hydra-5.4-win.zip Binário para o ARM: hydra-5.0-arm.tar.gz. Esta versão está um pouco desatualizada, mas em breve será disponibilizada uma nova versão. Binário para o Palm: hydra-4.6-palm.zip. A versão para o Palm é desenvolvida de forma independente das outras, portanto nem todos os protocolos são suportados e os updates não são muito frequentes. Compilando e instalando\nDependendo do pacote que você escolher, será necessário que você compile o software. Algumas releases como a disponível para Windows/Cygwin e ARM já contém tudo compilado e pronto para o uso, com todos os módulos (no port para o ARM você não poderá usar o módulo para SAP R/3).\nSe você escolheu o pacote para Unix, você precisará instalar todas as bibliotecas necessárias para compilar os módulos corretamente. O serviço não é tão difícil, já que ao executar o ./configure, já será mostrado um resumo dizendo as bibliotecas que faltam e onde encontrá-las. Seguem os passos necessários para compilar com sucesso o Hydra em qualquer *nix.\nFaça o download do pacote hydra-5.4-src.tar.gz e descompacte:\ntar xzvf hydra-5.4-src.tar.gz Acesse o diretório que acabou de ser criado e:\ncd hydra-5.4-src ./configure Quando você executa o configure, algumas bibliotecas que são necessárias para alguns módulos como SSHv2 e PostgreSQL (libssh e libpq, respectivamente) são checadas e se não estiverem instaladas no sistema você deverá instalá-las na mão. A boa notícia é que o script já informa o site de onde você pode fazer o download e a maioria dessas bibliotecas já vem com instruções de como compilar. Vale a pena lembrar que, se você não quiser utilizar os módulos que precisam das bibliotecas, pode continuar a compilação normalmente: os outros protocolos irão funcionar sem problemas.\nDepois que o ./configure terminar, só resta executar como root:\nmake \u0026amp;\u0026amp; make install Pronto! O Hydra já está instalado e pronto para ser usado!\nWordlists\nWordlists são, como o nome diz, listas gigantescas de palavras ou nomes de usuários que são utilizadas em ataques bruteforce. O Hydra não vem com nenhuma wordlist e não funciona sem uma, então você precisa dar um jeito nisso. Vou colocar alguns links com wordlists para você começar a brincar com o Hydra:\nhttp://www.outpost9.com/files/WordLists.html http://wordlist.sourceforge.net/ http://www1.harenet.ne.jp/~waring/vocab/wordlists/vocfreq.html Depois que você baixar as listas, junte todas em um único arquivo. No Hydra, você só pode especificar um único arquivo de wordlists para ser utilizado. Você pode usar o cat. Por exemplo:\ncat \u0026lt;substitua isso por todos os arquivos de wordlists que você tem\u0026gt; \u0026gt;\u0026gt; wordlist2.txt É útil também remover entradas duplicadas da sua wordlist, para não perder tempo tentando mais de uma vez uma senha que já não deu certo:\ncat wordlist2.txt | sort | uniq \u0026gt; wordlistfinal.txt Pronto, agora é só fazer o Hydra utilizar o arquivo wordlistfinal.txt como wordlist.\nUtilizando o Hydra\nO Hydra é bem fácil de ser utilizado. Você só precisa especificar o login (ou um arquivo com vários logins), a wordlist com senhas, o host e o protocolo. Se desejar pode fazer com que a saída do comando seja escrita em algum arquivo. Na linha a seguir, mostro o uso básico do Hydra:\nhydra -l root -P ~/wordlistfinal.txt -o bruteforce.txt ftp.foo.bar ftp A linha acima é bem simples. A opção -l diz que você quer fazer brute force em um usuário específico que você já sabe que existe (você poderia usar a opção -L para utilizar um arquivo com vários logins); a opção -P específica qual wordlist será usada para ler as senhas (você poderia usar -p se soubesse uma senha, mas não soubesse de qual usuário é); -o escreve a saída do comando no arquivo bruteforce.txt; ftp.foo.bar é o nome do host que iremos atacar e ftp é o protocolo que o Hydra deve usar.\nSe você por algum motivo precisar interromper a sessão do Hydra, pode começar de onde parou utilizando a opção -R no mesmo diretório em que você interrompeu a execução anterior.\nOutras opções úteis são:\n-s: Se o serviço estiver sendo executado em uma porta diferente, use esta opção para especificar a porta. -t: Indica a quantidade de conexões paralelas no servidor -M: Define uma lista de servidores a serem atacados Como se proteger\nSe proteger de ataques brute force não é tão difícil assim:\nForçar utilização de senhas seguras nos seus servidores. Senhas com caracteres especiais, letras maiúsculas e minúsculas, números e um comprimento de pelo menos 8 caracteres. Determinar um número máximo de erros na tentativa de login. Sempre monitore os log’s procurando por tentativas de login que falharam muitas vezes. Onde puder, mude a porta padrão dos serviços sendo executados na sua máquina (por exemplo, se só você utilizar o SSH você pode mudar a porta dele de 22 para 45600, por exemplo. Isso diminui a incidência de ataques) Onde possível, especifique o IP de origem que pode estabelecer a conexão com determinados serviços Como se vê, é bem simples melhorar a segurança de seus serviços. Isso é o mínimo necessário para não ter muita dor de cabeça com qualquer pessoa que saia usando o Hydra e seus similares por aí. Porém estas não são as únicas técnicas e também não excluem a necessidade de verificação contínua nos log’s e conexões estabelecidas no servidor procurando por atividades suspeitas.\nConclusão\nO Hydra é talvez a melhor ferramenta para ataques de brute force: tem um ótimo desempenho, é multiplataforma e várias opções úteis, além disso está em desenvolvimento constante e novas versões são lançadas frequentemente (não há um ciclo de release definido).\nVale a pena aprender a utilizar a ferramenta (o que não é difícil) e utilizá-la em seus servidores para identificar pontos-fracos antes que alguém faça isso por você\n","permalink":"http://ricardomartins.com.br/ataques-brute-force-utilizando-o-hydra/","summary":"\u003cp\u003eAutor: Pedro Augusto de O. Pereira / \u003ca href=\"http://augusto.pedro.googlepages.com/\"\u003ehttp://augusto.pedro.googlepages.com/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIntrodução\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSenhas são o ponto mais fraco em qualquer sistema de segurança. Isso acontece porque geralmente as senhas são definidas por seus usuários: pessoas que não tem idéia de como é fácil adivinhá-las e escolhem como senhas o nome da esposa/marido, o nome do cachorro, a data de casamento/nascimento, entre outros. Senhas que não usem caracteres especiais, números, letras maiúsculas e minúsculas, tenham uma quantidade grande de caracteres (com no mínimo 8 caracteres, por exemplo), correm o risco de serem quebradas por ataques de dicionário, também conhecidos como brute force.\u003c/p\u003e","title":"Ataques brute force utilizando o Hydra"},{"content":"Autor: Pedro Augusto de O. Pereira / http://augusto.pedro.googlepages.com/\nIntrodução\nSenhas, como já sabemos, são o ponto mais fraco de qualquer sistema de segurança pois geralmente são definidas por pessoas que não são devidamente instruídas e não imaginam que senhas fracas podem ser quebradas em, dependendo de quão fraca, menos de 10 minutos.\nPor isso deve-se definir regras básicas sempre que se trabalha com senhas:\nDefinir um tamanho mínimo de senhas de 8 ou 10 caracteres Utilizar letras maiúsculas e minúsculas Utilizar caracteres especiais como * / = ! @, etc. Utilizar números Fazer com que estas senhas sejam trocadas em intervalos de tempo curtos (o intervalo é definido por você, mas no máximo a cada 20 dias é uma boa média para senhas fortes) Definir a quantidade de senhas já utilizadas que não poderão ser reaproveitadas. Por exemplo, o usuário não poderá trocar a senha atual por uma que ele já tenha utilizado há 5 trocas atrás. Educar os usuários para que eles não contem as senhas para ninguém Educar os usuários para que não anotem as senhas em lugar nenhum Tomando estas providências extremamente simples pode-se impedir que algum atacante consiga quebrar a senha utilizando força bruta (com programas como Hydra ou o John The Ripper, o qual será abordado mais adiante) ou engenharia social. Mesmo que a senha consiga ser quebrada, é provável que esta já não seja mais válida, pois de acordo com sua política o usuário já a trocou, ou seja, o atacante precisará iniciar todo o processo novamente.\nQuando o atacante tem acesso diretamente ao arquivo que contém as senhas (como o arquivo shadow do Linux, onde ficam as senhas de todos os usuários do sistema) ele pode utilizar um software que consiga quebrar a criptografia e descobrir a senha. Um destes softwares e talvez o mais popular é o John The Ripper.\nO John The Ripper\nO John The Ripper é um software livre que consegue identificar automaticamente qual é o algoritmo de criptografia que foi utilizado para cifrar as senhas presentes no arquivo que você indicou para ele. Ele também possui uma versão paga, porém a versão livre não deixa nada a desejar. Neste artigo focaremos na sua versão livre.\nEle é multiplataforma, podendo ser executado em vários sistemas Unix-like, Windows, DOS, BeOS e OpenVMS. É desenvolvido pelo pessoal do projeto OpenWall, que além do JtR possuem vários outros ótimos softwares e até uma distribuição Linux, a OpenWall GNU/Linux (ou Owl). O site do projeto é este.\nPossui vários módulos que aumentam sua funcionalidade, o que eu gostei mais foi um módulo que se integra ao PAM e faz uma monitoração pró-ativa das senhas do sistema, impedindo que usuários utilizem senhas fracas o que facilita a vida do atacante. Este módulo também oferece suporte a passphrases (que são frases ao invés de palavras sendo utilizadas como senha) e também pode gerar senhas, se integrando totalmente com o passwd. Além deste módulo, também foi desenvolvido um patch para o JtR para que ele se utilize de vários processadores em uma mesma máquina ou consiga utilizar um cluster de máquinas para coseguir quebrar as senhas. O nome do patch é MPI pode ser encontrado em http://www.bindshell.net/tools/johntheripper.\nBaixando e instalando\nA instalação do JtR é extremamente fácil. Primeiro acesse o site e faça o download da versão mais nova (1.7.0.2 no momento em que escrevo o texto). Após o download, descompacte o arquivo e acesse o diretório recém criado:\ntar xzvf john-1.7.0.2.tar.gz cd john-1.7.0.2 Neste diretório você irá encontrar o sub-diretório “src”, é nele que estão os fontes do software e é lá que você precisa ir para compilar o programa:\ncd src/ A compilação do JtR é feita baseada no processador que você usa na sua máquina para que ele seja mais bem otimizado e tenha um desempenho melhor enquanto tenta quebrar as senhas. Digite make e uma lista com todas as possibilidades será exibida para você. Escolha a mais adequada e:\nmake clean linux-x86-mmx Lembre-se de substituir o “linux-x86-mmx” pelo valor que mais se adequar ao seu hardware. Após digitar este comando terá início o processo de compilação, que deve levar menos de 5 minutos Todos os binários resultantes da compilação serão colocados no diretório run, vá para lá:\ncd ../run Para testar o binário que foi gerado e verificar se está tudo correto com ele, digite o comando:\n./john –test Isso irá efetuar um teste de benchmarking com todos os algoritmos de criptografia que o JtR suporta. Se você quiser executar o benchmarking com um algoritmo em específico, faça o seguinte:\n./john –test –format=\\[formato que você quer testar\\] O parâmetro format pode ser utilizado também quando você estiver tentando quebrar uma senha e souber qual é o formato dela. As opções são DES, BSDI, MD5, BF, AFS e LM.\nUma característica interessante do software é que você não precisa instalá-lo em outros diretórios do sistema: pode utilizar todas as opções e funcionalidades dele diretamente do diretório “run” que é criado quando você compila o programa. Isso não quer dizer que você não possa instalar o software no diretório que quiser: não há restrição nenhuma quanto a isso. Porém, de acordo com a documentação oficial do software instalar ele system-wide (instalar ele em diretórios como /usr/local/bin, por exemplo) é apenas para pessoas que desenvolvem pacotes do John para o ports de sistemas *BSD ou distribuições do Linux. Fica à seu critério instalar system-wide ou simplesmente executar a partir do diretório “run”.\nSe você observou direitinho o diretório run do pacote, você irá ver que vários arquivos além do binário do JtR estão presentes lá. São eles:\nMailer: é um shellscript desenvolvido para enviar emails para os usuários cujas senhas são fracas e foram quebradas. Seu uso é opcional. john.conf: é o arquivo de configuração do JtR. Será explicado mais adiante. john: é o executável do software. password.lst: um arquivo com algumas senhas para serem utilizadas quando se está quebrando uma senha. *.chr: são arquivos binários utilizados diretamente pelo JtR para quebrar as senhas. unsahdow: Quando você já tem acesso aos arquivos shadow e passwd, este script irá combinar ambos para o uso com o John. Recomenda-se utilizar esta opção com –show (explicado mais adiante). unafs: Pega hashes binário com banco de dados AFS e o coloca em um arquivo no estilo do arquivo /etc/passwd de sistemas Unix-like. Sua saída deve ser redirecionada para um arquivo. unique: Remove entradas duplicadas de uma wordlist sem modificar a ordem. É isso, agora que o John já está instalado, vamos configurá-lo!\nConfigurando o JtR\nToda a configuração do John é feita em um arquivo texto chamado john.conf em sistemas Unix ou john.ini no Windows, por exemplo. Neste arquivo você consegue definir regras para a descoberta de senhas, wordlists, parâmetros para os modos e até definir um novo modo de descoberta de senhas.\nEste arquivo é dividido em várias seções. Todas as seções começam com uma linha com seu nome entre colchetes ( [] ). As opções destas seções são definidas em variáveis de modo bem simples, como em:\nvariável = valor Os nomes de seções e variáveis são case-insensitive, ou seja, SECAO1 e secao1 são a mesma seção e VAR1 e var1 são a mesma variável. Os caracteres # e ; são completamente ignorados, assim como linhas em branco.\nAbaixo estão as explicações das opções dividas por seção:\nOptions:\nWordlist: A wordlist a ser utilizada pelo JtR. O arquivo pode estar em qualquer lugar, basta especificar o caminho correto nessa variável. Idle: Configura o John para usar seu CPU quando este estiver inativo. Diminui o desempenho da quebra da senha porém não impacta tanto no desempenho de outros programas. O padrão desta opção é N (desabilitado). Save: Intervalo no qual o software irá gravar seu progresso para no caso de uma interrupção ele possa recomeçar novamente de onde havia parado. Beep: Emite um bip quando uma senha é quebrada. List.Rules:Single\nNesta seção ficam as regras default do software para a quebra das senhas. São regras como substituição de strings, escrita 1337 e outras List.Rules:Wordlist\nNesta seção ficam as regras de substituição de caracteres, modificações de palavras, etc quando se está usando uma wordlist para tentar quebrar as senhas do arquivo.\nList.Rules:NT\nNesta seção ficam as regras utilizadas quando se está quebrando senhas cifradas utilizando o algoritmo NTLM (Windows).\nIncremental*\nAqui ficam as regras para o tipo de quebra de senhas chamado Incremental (todos os “tipos” de tentativas de quebra de senha que o John utiliza serão explicados mais adiante neste documento).\nList.External:*\nSão alguns filtros pré-definidos para substituição de palavras, eliminação de caracteres indesejados, etc.\nQuando você tiver mais experiência com o JtR será bastante útil dar uma lida nessas seções para entender como ele funciona e ter um conhecimento melhor dos algoritmos.\nModos\nO JtR utiliza alguns modos para que consiga otimizar a quebra da senha. Estes modos são explicados a seguir:\nModo Wordlist\nPara utilizar esse método você vai precisar de uma wordlist. Existem vários lugares na Internet que possuem milhares de wordlists disponíveis gratuitamente, é só dar uma olhada no Google que você irá encontrar várias. Para te ajudar, aqui no item “Wordlists” você encontra vários links para wordlists disponíveis na Internet. Lá você também encontra algumas dicas de como organizar a sua lista. Mas vale lembrar que não é bom que você tenha entradas duplicadas na sua lista, o JtR não vai fazer absolutamente nada com a sua wordlist antes de começar a testar as palavras que tem nela.\nEste é o modo mais simples suportado pelo John. Para utilizá-lo você só especifica uma wordlist e algumas regras para ele fazer combinações das palavras que ele encontrar na lista que você especificou. Quando utilizando determinados algoritmos, o JtR se beneficiará se você colocar senhas com tamanhos mais ou menos parecidos perto umas das outras. Por exemplo, seria interessante você colocar as senhas com 8, 6 ou 9 caracteres perto umas das outras na sua wordlist. A wordlist padrão a ser utilizada pelo John é definida no arquivo john.conf.\nModo Single Crack\nÉ neste modo que você deveria começar a tentar quebrar uma senha. Aqui, além de várias regras de mangling serem aplicadas, o JtR vai utilizar mais informações como o nome completo do usuário e seu diretório home para tentar descobrir qual é a senha. Este modo é muito mais rápido que o modo “Wordlist”.\nSe você utilizar vários arquivos com senha, provavelmente você irá conseguir quebrar mais senhas do que com apenas 1 arquivo sendo utilizado separadamente.\nModo Incremental\nEste é o modo mais poderoso do JtR. Nele serão tentadas todas as combinações possíveis de caracteres para tentar quebrar a senha cifrada. Dada a grande quantidade de combinações possíveis, é recomendável que se defina alguns parâmetros (como tamanho da senha ou conjunto de caracteres a serem utilizados) para que você não fique esperando pela senha ser quebrada por muito tempo. Todos os parâmetros para este modo são definidos no arquivo john.conf, nas seções começadas com Incremental no nome.\nModo External\nEsse modo é bastante complexo. Nele você pode definir regras próprias para o John seguir ao tentar quebrar uma senha. Tais regras são definidas em uma linguagem parecida com a C no arquivo de configuração do programa. Ao ser especificado este modo ao tentar quebrar uma senha na linha de comando, o JtR vai pré-processar as funções que você escreveu para este modo e utilizá-las. Repito: este modo é bastante complexo e leva um tempo até você conseguir aprendê-lo e fazer coisas úteis com ele. Se você está só começando, sugiro que utilize algum dos outros modos que foram mostrados anteriormente, mas se você quer se aventurar e tentar utilizar este modo a documentação oficial do software é um bom ponto de partida: www.openwall.com/john/doc/EXTERNAL.shtml.\nAgora que você já tem um conhecimento geral de quais são os modos disponíveis, podemos passar às opções de linha de comando.\nLinha de comando\nO John suporta várias opções de linha de comando, geralmente usadas para ativar determinados modos de uso do software. Preste bastante atenção no case das opções, o JtR é case-sensitive! Uma característica muito legal dele é que é possível abreviar as opções da linha de comando desde que não haja ambiguidade (mais ou menos da maneira como ocorre no shell de roteadores Cisco, por exemplo). Abaixo vou dar uma explicação básica das opções que o John suporta. Se você se esquecer de alguma opção quando estiver utilizando o JtR, é só digitar “john” no terminal e todas as opções serão impressas para você. As opções podem ser definidas utilizando — ou – e seus parâmetros são definidos utilizando = ou :.\n–single: Define o modo “single” para quebrar as senhas. –wordlist=ARQUIVO: Define o modo “wordlist” para quebrar as senhas e define o arquivo ARQUIVO como sendo de onde as senhas serão lidas. Aqui você pode utilizar também a opção –stdin para dizer que as palavras virão da entrada padrão. –incremental: Define que será utilizado o modo “incremental” para quebrar a senhas. Opcionalmente você pode definir que tipo de modo incremental será utilizado fazendo –incremental[=MODO]. –external=MODO: Define que será utilizado o modo external. –rules: Habilita as regras para wordlist definidas em john.conf quando se utiliza o modo wordlist. –stdout[=LENGTH]: Quando utilizado, faz com que o JtR imprima as possíveis senhas direto na saída padrão ao invés de tentá-las contra um hash. Se você definir o parâmetro LENGTH só serão impressas senhas com caracteres até a quantidade especificada em LENGTH. –restore[=NOME]: Faz com que uma sessão que foi interrompida anteriormente continue de onde parou. Se você definir um nome diferente para a sessão, especifique o nome dela na linha de comando junto com esta opção. A sessão fica gravada na home do John, em um arquivo chamado john.rec. –session=NOME: Define o nome da sessão que pode ser utilizado com a opção restore. A esse nome será automaticamente adicionado a extensão .rec. –status[=NOME]: Mostra o status da última sessão ou, se definido o nome da sessão, da sessão especificada. –make-charset=ARQ: Gera um arquivo charset para ser utilizado no modo “incremental”. –show: Mostra as senhas do arquivo que você especificou para o JtR que já foram quebradas. Esta opção é especialmente útil quando você tem outra instância do JtR rodando. –test: Esta opção faz um benchmark de todos os algoritmos compilados no software e os testa para saber se estão funcionando corretamente. Esta opção já foi explicada anteriormente. –users=[-]Nome do usuário ou UID: Com esta opção você pode especificar para o JtR quais usuário você quer tentar quebrar a senha. Você pode utilizar o nome de usuário ou o UID dele e pode separar vários usuários utilizando uma vírgula. Utilizando o “-” antes do nome do usuário, você faz com que o John ignore aquele usuário ou UID. –groups=[-]GID: Faz com que o John tente quebrar apenas as senhas dos usuários participantes de um grupo especificado (ou ignorá-los, se você utilizar o “-”). –shells=[-]SHELL: Apenas tenta quebrar as senhas dos usuários cujas shells sejam iguais à que foi especificada por você na linha de comando. Utilizando o “-” você ignora as shells especificadas. –salts=[-]NUMERO: Deixa você especificar o tamanho das senhas que serão (ou não) testadas. Aumenta um pouco a performance para quebrar algumas senhas, porém o tempo total utilizando esta opção acaba sendo o mesmo. –format=FORMATO: Permite a você definir o algoritmo a ser usado para quebrar a senha, ignorando a detecção automática do software. Os formatos suportados atualmente são DES, BSDI, MD5, AFS e LM. Você também pode utilizar esta opção quando estiver utilizando o comando –test, como já foi explicado anteriormente neste texto. –save-memory=1, 2 ou 3: Esta opção define alguns níveis para dizer ao John com qual nível de otimização ele irá utilizar a memória. Os níveis variam de 1 a 3, sendo 1 a mínima otimização. Esta opção faz com que o JtR não afete muito os outros programas utilizando muita memória. Exemplos de uso do John\nAqui vou mostrar apenas o uso básico do John. Explorar todas as opções e otimizar o desempenho da descoberta de senhas é a parte mais legal, por isso vou deixar para você mesmo fazer isso.\nNos exemplos que vou mostrar abaixo, vou considerar que você está utilizando o /etc/passwd e o /etc/shadow da sua máquina. Junte estes arquivos utilizando o script unshadow. Também vale lembrar que, se você vai quebrar senhas Windows (LM ou NTLM), você vai precisar de uma ferramenta que faça dumps de hashes destes tipos de senhas. O JtR utiliza o dumper desenvolvido por Jeremy Allison, que pode ser encontrado aqui.\nOk, agora você já tem o arquivo com as senhas e usuários que você fez utilizando o unshadow vamos começar a brincar de cracker O modo mais simples de se usar o John é especificar o arquivo que tem as senhas e usuário e deixar ele fazer tudo automaticamente. Ele irá começar com o modo single crack, depois irá passar para o modo wordlist e finalmente irá passar para o modo incremental. A linha de comando fica assim:\n./john senhas.txt Se você, ao analisar o arquivo, achar que alguns usuários possuem shell inválidas como o /bin/false, você pode fazer com que o John não perca tempo tentando quebrar a senha de tais contas assim:\n./john –show –shells=-/bin/false senhas.txt Assim, todo usuário que o John encontrar e que possuir a(s) shell(s) listada será ignorado e ele passará para o próximo.\nSe você quiser quebrar a senha de vários arquivos ao mesmo tempo no modo single crack, por exemplo, utilize a seguinte linha de comando:\n./john –single senhas.txt senhas2.txt Na linha acima, de acordo com as opções explicadas anteriormente, –single poderia ser abreviado para –si pois assim não haveria nenhuma ambiguidade em relação a este comando.\nSe você quiser especificar o algoritmo a ser usado para quebrar as senhas:\n./john –show –format=DES –single senhas.txt Substitua o DES pelo formato correto das senhas presentes no arquivo.\nConclusão\nManter uma política de senhas fortes pode lhe poupar muita dor de cabeça com ataques brute force. Uma auditoria nas senhas de todos os seus usuários deve ser feita para garantir que você continua seguro e não corre muitos riscos utilizando senhas simples demais.\nTentei abranger o máximo possível das opções do John para que você tenha um bom entendimento do software e consiga utilizá-lo eficientemente para garantir a segurança de sua rede ou para melhorar o seu penetration testing. O que você vai fazer com o software é responsabilidade sua.\nCaso você precise de mais informações sobre algum tópico que não foi coberto neste texto, consulte a documentação on-line do John. Ela é excelente, porém está disponível apenas em inglês. Acesse este site e dê uma lida nela!\n","permalink":"http://ricardomartins.com.br/quebrando-senhas-do-windows-e-do-linux-com-john-the-ripper/","summary":"\u003cp\u003eAutor: Pedro Augusto de O. Pereira / \u003ca href=\"http://augusto.pedro.googlepages.com/\"\u003ehttp://augusto.pedro.googlepages.com/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIntrodução\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSenhas, como já sabemos, são o ponto mais fraco de qualquer sistema de segurança pois geralmente são definidas por pessoas que não são devidamente instruídas e não imaginam que senhas fracas podem ser quebradas em, dependendo de quão fraca, menos de 10 minutos.\u003c/p\u003e\n\u003cp\u003ePor isso deve-se definir regras básicas sempre que se trabalha com senhas:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefinir um tamanho mínimo de senhas de 8 ou 10 caracteres\u003c/li\u003e\n\u003cli\u003eUtilizar letras maiúsculas e minúsculas\u003c/li\u003e\n\u003cli\u003eUtilizar caracteres especiais como * / = ! @, etc.\u003c/li\u003e\n\u003cli\u003eUtilizar números\u003c/li\u003e\n\u003cli\u003eFazer com que estas senhas sejam trocadas em intervalos de tempo curtos (o intervalo é definido por você, mas no máximo a cada 20 dias é uma boa média para senhas fortes)\u003c/li\u003e\n\u003cli\u003eDefinir a quantidade de senhas já utilizadas que não poderão ser reaproveitadas. Por exemplo, o usuário não poderá trocar a senha atual por uma que ele já tenha utilizado há 5 trocas atrás.\u003c/li\u003e\n\u003cli\u003eEducar os usuários para que eles não contem as senhas para ninguém\u003c/li\u003e\n\u003cli\u003eEducar os usuários para que não anotem as senhas em lugar nenhum\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eTomando estas providências extremamente simples pode-se impedir que algum atacante consiga quebrar a senha utilizando força bruta (com programas como Hydra ou o John The Ripper, o qual será abordado mais adiante) ou engenharia social. Mesmo que a senha consiga ser quebrada, é provável que esta já não seja mais válida, pois de acordo com sua política o usuário já a trocou, ou seja, o atacante precisará iniciar todo o processo novamente.\u003c/p\u003e","title":"Quebrando senhas do Windows e do Linux com John The Ripper"},{"content":"Este texto é uma tradução. O texto original está disponível no site http://www.builderau.com.au/program/linux/soa/10_things_you_should_do_to…?feed=rss\nNão coloquei algumas partes do texto nas quais o autor focava muito no Mandriva. Tentei deixar o texto um pouco generalizado, podendo ser usado para qualquer distribuição que você queira.\nFinalidade\nO Linux, assim como o Windows, é apenas um sistema operacional. Quando falo com colegas que estão usando o Linux pela primeira vez, esta é a primeira coisa que deixo clara. O Linux não é uma varinha de condão que pode ser utilizada para resolver todos os problemas da informática. O Linux tem vários problemas, assim como o Windows. Não há um sistema operacional perfeito ou completamente seguro. Essa máquina vai ser um servidor ou uma estação de trabalho? Pensando nisso, vários problemas são evitados.\nInstalação\nDiferente do Windows, o Linux não tem uma versão específica para servidores, outra para estações de trabalho, etc. Durante uma instalação típica, a escolha sobre quais softwares serão instalados é sua. Portanto, de acordo com os softwares que você instala, você define o papel da máquina: servidor ou estação de trabalho. Por isso, você deve saber muito bem quais são os pacotes que o instalador da sua distribuição está instalando para você. Por exemplo, algumas distribuições irão instalar e configurar um servidor Samba ou um servidor de email como parte da instalação básica. Dependendo da finalidade do seu computador e do nível de segurança que você quer, esses serviços podem ser desnecessários ou indesejados. Tirando um tempinho para se familiarizar com o instalador da sua distribuição pode evitar muitas dores de cabeça e reinstalações.\nInstalar e configurar um firewall\nUm firewall provê uma camada a mais de segurança em qualquer rede. Estes softwares permitem que você filtre o tráfego que chega no seu PC, evitando problemas. O software Shorewall (que utiliza o IPTables/Netfilter como backend) simplifica a configuração de um firewall pessoal (um outro pacote bastante interessante é o KMyFirewall, que utiliza o Qt). Instalando e configurando firewalls para sua estação o quanto antes, você pode restringir ou bloquear determinados tipos de tráfego, tanto entrando quanto saindo do seu PC.\nBloquear ou permitir determinados tipos de tráfego da rede é apenas uma camada de segurança, mas como você pode adicionar mais segurança (além das regras do firewall) para um serviço que você realmente precisa que usuários da internet ou intranet utilizem no seu computador? Segurança baseada em hosts é mais uma camada de segurança.\nConfigurando os arquivos /etc/hosts.deny e /etc/hosts.allow\nNa seção anterior, vimos como configurar um firewall para permitir conexões de outros hosts aos serviços que a nossa máquina está provendo utilizando um firewall. Para aumentar a segurança contra tráfego indesejado ou atacantes, podemos limitar os hosts que se conectam a determinados serviços. Os arquivos /etc/hosts.deny e /etc/hosts.allow nos permitem fazer isso.\nQuando um computador tenta acessar um serviço como o SSH, por exemplo, os arquivos /etc/hosts.deny e /etc/hosts.allow são processados e o acesso será permitido ou negado de acordo com as regras destes arquivos. Geralmente, se você esta instalando uma estação de trabalho, é útil se colocar a seguinte linha no /etc/hosts.deny:\n\u0026lt;br\u0026gt;\u0026lt;/br\u0026gt;ALL:ALL\u0026lt;br\u0026gt;\u0026lt;/br\u0026gt;\nIsso vai negar o acesso de qualquer host a qualquer serviço. Parece muito restritivo à primeira vista, mas depois disso você pode adicionar hosts no arquivo /etc/hosts.allow para permitir o acesso aos serviços. Abaixo você encontra um exemplo que permite a alguns hosts conectar ao SSH:\n\u0026lt;br\u0026gt;\u0026lt;/br\u0026gt;sshd: 192.168.0.1 #permite o host 192.168.0.1 acessar o SSH\u0026lt;br\u0026gt;\u0026lt;/br\u0026gt;sshd: foo.bar.com #permite o acesso do host foo.bar.com ao SSH\u0026lt;br\u0026gt;\u0026lt;/br\u0026gt;\nEstes dois arquivos oferecem uma filtragem muito boa baseada em hosts.\nDesabilite ou remova serviços não utilizados\nAssim como no Windows, no seu Linux podem haver serviços rodando em background que você não tem conhecimento ou que não queria que estivesse lá. Utilizando o comando chkconfig (em distribuições baseadas em Red Hat) ou entrando no diretório /etc/rc.d (no Slackware), você pode verificar quais serviços são inicializados e que você não quer e desabilitá-los. Serviços que não estão rodando não oferecem riscos à segurança e não consomem recursos da máquina.\nAumente a segurança de serviços necessários\nSe a sua máquina tem alguns serviços que devem receber conexões da Internet, tenha certeza de que você conhece muito bem todas as opções de configuração destes serviços. Por exemplo, se você precisa utilizar o SSH, tenha certeza de que você verificou todos os detalhes do arquivo /etc/ssh/sshd_config antes de habilitar o serviço. O mínimo que você deve fazer é desabilitar o login do root. Toda máquina Linux tem um usuário root que pode logar via SSH, quando você desabilita este usuário, você inibe ataque de brute force pois o atacante ainda não sabe qual usuário é valido nessa máquina. Se você deixar o login remoto do root habilitado, o atacante só vai precisar descobrir a senha.\nConfigure as opções de rede do kernel\nO prórpio kernel Linux pode oferecer algumas opções de segurança para a rede. Se familiarize com as opções disponíveis no arquivo /etc/sysctl.conf e as configure conforme necessário. As opções deste arquivo controlam, por exemplo, que tipo de informações sobre a rede são logadas nos logs do sistema.\nConecte o PC a um roteador\nUm roteador (mesmo que doméstico) é um hardware bem comum hoje em dia. Ele é a primeira camada de segurança para qualquer rede, seja ela doméstica ou corporativa e permite que vários computadores utilizem o mesmo endereço IP para o acesso à Internet. Isso geralmente dificulta a ação de um atacante ou programa malicioso pois ele bloqueia qualquer tráfego que você não permitiu. Roteadores domésticos são apenas versões mais enxutas de roteadores corporativos que empresas utilizam para separar sua rede da Internet.\nAtualize\nSempre mantenha o software do seu computador atualizado com os últimos patches de segurança seja qual for o sistema operacional que você está utilizando. A sua distribuição irá sempre lançar patches de segurança regularmente e estes devem sempre ser aplicados. Como no Windows, esta deve ser a sua primeira tarefa do dia :).\nOutros softwares\nVocê também deve instalar outros softwares que aumentem a segurança do seu sistema.\nBastille-Linux (http://www.bastille-linux.org/) é um programa que pode ser usado para aumentar a segurança de certos aspectos do Linux. Ele desenvolve uma política de segurança que é aplicada ao sistema e produz relatórios sobre potenciais problemas de segurança. Além disso, é uma ótima ferramenta para se aprender sobre detalhes da segurança do seu Linux.\nO Tripwire (http://sourceforge.net/projects/tripwire) é um software que monitora os binários do seu sistema procurando por modificações não autorizadas. Frequentemente um hacker modifica os binários do seu sistema para dificultar a detecção de uma intrusão. Os programas modificados lhe fornecem informações falsas permitindo que o hacker mantenha o controle sobre seu sistema sem que você perceba.\n","permalink":"http://ricardomartins.com.br/10-coisas-que-voce-deve-fazer-antes-de-conectar-seu-linux-a-internet/","summary":"\u003cp\u003eEste texto é uma tradução. O texto original está disponível no site \u003ca href=\"http://www.builderau.com.au/program/linux/soa/10-things-you-should-do-to-a-new-Linux-PC-before-exposing-it-to-the-Internet/0,339028299,339274586,00.htm\" title=\"http://www.builderau.com.au/program/linux/soa/10_things_you_should_do_to_a_new_Linux_PC_before_exposing_it_to_the_Internet/0,339028299,339274586,00.htm\"\u003ehttp://www.builderau.com.au/program/linux/soa/10_things_you_should_do_to…?feed=rss\u003c/a\u003e\u003cbr\u003e\nNão coloquei algumas partes do texto nas quais o autor focava muito no Mandriva. Tentei deixar o texto um pouco generalizado, podendo ser usado para qualquer distribuição que você queira.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFinalidade\u003c/strong\u003e\u003cbr\u003e\nO Linux, assim como o Windows, é apenas um sistema operacional. Quando falo com colegas que estão usando o Linux pela primeira vez, esta é a primeira coisa que deixo clara. O Linux não é uma varinha de condão que pode ser utilizada para resolver todos os problemas da informática. O Linux tem vários problemas, assim como o Windows. Não há um sistema operacional perfeito ou completamente seguro. Essa máquina vai ser um servidor ou uma estação de trabalho? Pensando nisso, vários problemas são evitados.\u003c/p\u003e","title":"10 coisas que você deve fazer antes de conectar seu Linux à Internet"},{"content":"Autor: Pedro Augusto de O. Pereira / http://augusto.pedro.googlepages.com/\nIntrodução\nO IP foi criado na década de 70 para ser utilizado na ARPANet. Seus primeiros desenvolvedores foram Vinton Cerf (http://en.wikipedia.org/wiki/Vinton_Cerf) e Bob Kahn (http://en.wikipedia.org/wiki/Bob_Kahn). De lá pra cá, o uso do IP aumentou exponencialmente, tornando-o o protocolo padrão para as redes atuais. Embora tenham existido tentativas para desenvolver e popularizar outros protocolos mais bem estruturados (como o OSI – Open Systems Interconnection), estes não obtiveram tanto sucesso quanto o IP (e os outros protocolos do conjunto). Hoje em dia, praticamente não se vê outro protocolo em uso no lugar do IP (talvez, a alternativa mais conhecida, porém já em desuso há alguns anos, é o IPX da Novell).\nO papel do IP numa rede de computadores é encontrar uma rota para chegar ao destino (verificar o estado da rede, garantir a entrega do pacote ou sua integridade não é seu papel. Para isso existem outros protocolos como TCP). Os pacotes roteados pelo IP não necessariamente seguem a mesma rota até o destino, cada pacote é roteado de maneira independente dos outros, demorando tempos diferentes e nem sempre chegando em ordem.\nAtualmente, está em uso o IP versão 4 (IPv4), as versões 1, 2 e 3 nunca foram usadas. A versão 4 é a utilizada em todas as redes no mundo todo. Porém, tanta popularidade causou sérios problemas ao IP. Talvez o mais visível seja a escassez de endereços disponíveis. Há uma previsão de que todos os endereços IPv4 chegarão ao fim em 2014 (talvez antes).\nO IPv4 utiliza um esquema de endereçamento de 32 bits, o que oferece aproximadamente apenas 4 bilhões de endereços (não é nem 1 endereço para cada habitante do mundo). Com o enorme crescimento inesperado da Internet, essa quantidade de endereços já é considerada escassa. Nem se utilizando técnicas como NAT e endereços inválidos para LAN se conseguirá prover endereços suficientes para a quantidade de dispositivos conectados à Internet.\nPensando nisso, a IETF começou o desenvolvimento do IPv6 (IP versão 6 ou IP Next Generation). Esta versão foi criada pensando no enorme crescimento da rede e em algumas coisas que faltavam no IPv4.\nO IPv5\nAntes de partir de vez para o IPv6, você deve estar se perguntando: “Mas o que aconteceu com o IPv5?”.\nO IPv5 foi utilizado para um outro tipo de pesquisas: um protocolo de streaming em tempo real que não tinha muito a ver com o IP. Assim, foi necessário utilizar outro número para evitar confusão.\nO IPv6\nO IPv6 não é o que se pode chamar de “novo protocolo”. Ele já vem sendo desenvolvido desde janeiro de 1995. Sua RFC (Request For Comments) é a 2460 e pode ser encontrada no link http://www.faqs.org/rfcs/rfc2460.html. Algumas outras centenas de RFC’s foram escritas focando em vários pontos diferentes do IPv6 como endereçamento, ICMP, Multicast, entre outros. Essas RFC’s podem ser encontradas aqui: http://playground.sun.com/ipv6/specs/specifications.html.\nVantagens do IPv6\nMaior quantidade de endereços disponíveis: O IPv6 utiliza 128 bits para endereços. Isso evita que os endereços disponíveis se esgotem rapidamente (como aconteceu com o IPv4) e evita também a necessidade do uso de técnicas como NAT. Outra vantagem é que serão alocados blocos de IP maiores, o que faz com que scanear um bloco por uma vulnerabilidade seja muito mais demorado, desestimulando tal prática, fazendo o IPv6 mais resistente à tráfego malicioso. Configuração automática mais simples: Há dois tipos de configuração automática no IPv6: stateless e stateful. A configuração automática “stateless” no IPv6 não exige qualquer configuração manual em hosts, uma configuração mínima (se houver) em roteadores e nenhum servidor adicional para isso. Na configuração stateless, o próprio host gera o endereço utilizando informações disponíveis localmente e informações divulgadas por roteadores. Os roteadores divulgam os prefixos das sub-redes associadas à um link, enquanto os hosts geram um “identificador de interfaces” que é exclusiva na rede. Combinando as duas informações, têm-se o endereço.\nNa configuração stateful, o host obtém os endereços e outras configurações adicionais de um servidor. Esse servidor mantém um banco de dados que associa um endereço à um host. Funciona como o DHCP atual.\nAs configurações stateless e stateful são complementares. Por exemplo, um host pode usar uma configuração stateless para definir o seu endereço e usar a configuração stateful para obter outras informações.\nQuando se deseja um controle maior sobre quais são os endereços que podem ser usados na rede, deve-se usar a configuração stateful. Jumbograms: No IPv4, todo o payload (os dados que o usuário quer transferir, excluindo-se o cabeçalho) se limita a 65.535 bytes. No IPv6 há a possibilidade de se utilizar jumbograms para transferir muito mais que isso (até 4.294.967.295 bytes). Só é possível utilizar jumbograms quando os MTU’s das 2 pontas forem maiores que 65.536 bytes. Utilizando-se este recurso, você consegue aumentar a eficiência da rede. Você pode verificar mais detalhes sobre como utilizar jumbograms lendo a RFC disponível aqui: http://rfc.net/rfc2675.html. Segurança diretamente no protocolo: O IPSec agora é parte integrante do IP, provendo criptografia e autenticação (porém, ainda requer configuração para ser usado). Roteamento mais rápido: O cabeçalho do IPv6 é mais simples, o que aumenta a velocidade no roteamento. Desvantagens do IPv6\nUm potencial problema do IPv6 é que ele é menos eficiente ao utilizar a banda disponível, o que pode causar lentidão em sites de rede com menor banda disponível. Como o IPv6 modificou muitas coisas, é necessário fazer com que outros protocolos (como ICMP e DHCP) sejam adaptados para que consigam trabalhar corretamente com esta versão do protocolo. Além de ser necessário reescrever os protocolos, é necessário desenvolver aplicativos que suportem o IPv6. Este atualmente é o maior problema na adoção do IPv6. Os MTU’s a serem utilizados para a transferência dos dados serão definidos pela origem. Assim, quando se rotear pacotes por rotas diferentes pode-se ter problemas com MTU’s menores o que irá dificultar a utilização de rotas diferentes para cada pacote, como acontece com o IPv4. Os endereços IPv6\nO endereçamento no IPv6 é completamente diferente do utilizado no IPv4. A começar pela quantidade de bits: no IPv6 são utilizados 128 bits para endereçamento, enquanto no IPv4 são apenas 32 bits. 128 bits geram aproximadamente 340.282.366.920.938.463.463.374.607.431.768.211.456 endereços válidos para serem utilizados.\nA estrutura do endereçamento IPv6 também é bastante diferente, um endereço é formado por 8 conjuntos de 4 dígitos hexadecimais. Esse endereço é composto de 2 partes lógicas: uma parte de 64 bits para rede e os outros 64 bits para o host. A parte do endereçamento do host pode ser gerada inserindo-se o endereço MAC da interface de rede, porém essa prática não é obrigatória. No IPv6, não existem classes de endereços (como A, B, C, D ou E). Um exemplo desse tipo de endereço é:\n2394:3756:A34C:FAC9:9021:0000:FF3A:9671\nOs endereços IPv6 são compatíveis com o IPv4. O endereço IPv6 conterá o IPv4 como em:\n::192.168.0.1\ngarantindo interoperabilidade durante a migração das redes. Funciona assim: 96 bits são para o endereço IPv6 e 32 bits são utilizados para o endereço IPv4.\nPorém, esta forma de identificação de hosts já caiu em desuso e implementações modernas não são obrigadas a aceitar este tipo de endereçamento.\nA forma utilizada atualmente é utilizar 96 bits para o endereço IPv6, sendo que os últimos 16 bits do endereço IPv6 serão setados para FFFF e os últimos 32 bits serão utilizados para o endereço IPv4. Assim:\n::FFFF:192.168.0.1\nPara mais informações sobre este tipo de endereçamento, consulte a RFC 4038.\nSe um ou mais grupos do endereço forem todos 0s, pode-se abreviar a escrita do endereço assim:\n2394:3756:A34C:FAC9:9021:0000:FF3A:9671\n2394:3756:A34C:FAC9:9021::FF3A:9671\nPorém, você deve prestar bastante atenção ao fazer abreviações deste tipo pois só pode haver um conjunto de :: no endereço, se não ele não será um endereço válido e não pode ser usado.\nUtilizando CIDR com IPv6\nNo IPv6 você também pode utilizar CIDR para segmentar sua rede. O conceito é praticamente o mesmo, seguindo a estrutura:\n\u0026lt; endereço da rede ipv6 \u0026gt;/\u0026lt; bits da rede \u0026gt;\nFica mais claro com um exemplo. Considere a rede 345A:2381:AB5D:5140:0000:0000:0000:0000. Em notação CIDR podemos escrever isso assim:\n345A:2381:AB5D:5140::/64\nEssa sub-rede contém os hosts de 345A:2381:AB5D:5140:0000:0000:0000:0000 a 345A:2381:AB5D:5140:FFFF:FFFF:FFFF:FFFF.\nO endereço Loopback\nO endereço loopback é utilizado para testar se a pilha TCP/IP do próprio host está funcionando corretamente, sem a necessidade de enviar pacotes a outros hosts da rede. Para fazer este teste execute o comando:\nping ::1\nLembrando que pacotes destinados a loopback não devem de maneira nenhuma ser roteados.O cabeçalho IPv6\nO cabeçalho do IPv6 foi bastante modificado em relação ao cabeçalho do IPv4 e ficou mais simples, com menos campos. Abaixo descrevo os campos deste cabeçalho.\nVersion: Indica a versão do protocolo. Este campo possui 4 bits e está sempre setado como 6.\nTraffic Class: É utilizado pelo host de origem ou pelo roteador para identificar uma prioridade diferente para o pacote (semelhante ao campo TOS do IPv4). Possui 8 bits.\nFlow Label: É usado pela origem para indicar sequências de pacotes que necessitam de um tratamento especial pelos roteadores, como por exemplo, um QoS não padrão ou um serviço em tempo real (como video-conferência). Este campo possui 20 bits.\nPayload Length: É o tamanho do pacote, excluindo-se o cabeçalho. Qualquer cabeçalho opcional será considerado como parte dos dados e não do cabeçalho. Este campo possui 16 bits.\nNext Header: Informa o tipo do cabeçalho que segue o cabeçalho padrão do IPv6. Permite inserir extensões de cabeçalho entre o cabeçalho do IP e do TCP (ou UDP). Essa extensão de cabeçalho pode ser, por exemplo, a autenticação IPSec. Este campo possui 8 bits.\nHop Limit: Desempenha o mesmo papel do campo TTL (Time To Live) do IPv4. A cada roteador pelo qual o pacote passa, é decrementada 1 unidade deste campo. Se a contagem chegar a 0, o pacote é descartado. Este campo possui 8 bits.\nSource Address: Informa qual é o endereço de origem do pacote. Possui 128 bits.\nDestination Address: Informa qual é o endereço de destino do pacote. Possui 128 bits.As extensões do cabeçalho IPv6\nAlém do cabeçalho básico descrito no tópico anterior, o IPv6 pode incluir vários outros cabeçalhos. Esses outros cabeçalhos são inseridos entre o cabeçalho IP e o cabeçalho do protocolo da camada acima (TCP ou UDP). Cada uma dessas extensões é identificada por um valor diferente no campo Next Header do cabeçalho básico. O cabeçalho básico pode conter nenhum, 1 ou mais dessas extensões.\nEsses cabeçalhos de extensão não são examinados nem processados pelos roteadores no caminho até o destino. A única excessão para essa regra é o cabeçalho de extensão Hop-by-Hop, que carrega informações que devem ser processadas por todos os hosts no caminho até o destino. Esse cabeçalho deve ser o primeiro a seguir o cabeçalho básico do IP, quando presente, e seu valor de campo Next Header é 0.\nExtensões de cabeçalho devem sempre ser processadas na ordem em que foram inseridas no cabeçalho. Implementações completas do IPv6 possuem os seguintes cabeçalhos de extensão: Hop-by-Hop, routing, fragment, destination options, authentication, encapsulating security payload.Como configurar IPv6 no Linux\nAtualmente, o suporte do Linux ao IPv6 é apenas no kernel 2.6.x. As versões 2.2.x têm uma implementação de uma definição antiga do protocolo e no 2.4.x o protocolo já não é mais atualizado. Há grandes chances de que a sua distribuição já tenha o suporte ao IPv6 habilitado.\nPara confirmar se seu kernel já tem suporte ao IPv6, procure pelo arquivo if_inet6 no /proc. Se esse arquivo não existir, pode ser que o módulo do IPv6 não esteja carregado, tente o seguinte:# modprobe ipv6Outra maneira simples de descobrir se seu kernel tem o IPv6 habilitado, é pingando você mesmo:# ping6 ::1Se você obtiver sucesso, significa que está tudo funcionando direitinho. Se nenhum destes testes deu certo, você vai precisar recompilar o kernel para habilitar esse suporte.\nPara configurar suas interfaces com IPv6, é só usar as versões mais recentes do ifconfig, route, traceroute, etc. Qualquer distribuição recente já disponibiliza a versão destes programas com o suporte ao IPv6.\nComo configurar IPv6 no OpenBSD\nNo OpenBSD, o suporte ao IPv6 já vem habilitado por padrão desde a versão 2.7. Faça o teste do ping mostrado na seção anterior e verifique se está tudo correto.\nComo configurar o IPv6 no FreeBSD\nO suporte no FreeBSD ao IPv6 já vem habilitado por padrão desde a versão 4.0. Para ativar o IPv6, simplesmente adicione (ou modifique) a seguinte linha no arquivo /etc/rc.conf:\nipv6_enable=”YES”\nComo fica o DNS com o IPv6\nBasicamente, a maior mudança ocorrida nos softwares servidores de DNS foi a adição do registro AAAA, o qual corresponde ao registro A do IPv4, que possui uma referência a apenas um endereço IPv6.\nOutra mudança é no DNS reverso. Todos os números do IPv6 deem ser separados por pontos (começando com o último número) e ao fim de todo o endereço deve ser adicionado o domínio .IP6.ARPA.\nPor exemplo, o DNS reverso para o ip 8902:AC45:12D4:4534:98DE:8453:AB48:90D1 seria:\n1.D.0.9.8.4.B.A.3548.E.D.8.9.4.3.5.4.4.D.2.1.5.4.C.A.2.0.9.8.IP6.ARPA\nPara os outros tipos de registros como MX e NS a mudança é pouca. Agora eles precisam saber quando devolver um endereço IPv4 ou IPv6.\nO BIND já suporta o IPv6 na versão 8.x com patches e nativamente na versão 9.x (9.2.x já tem uma implementação completa). As versões dele para Windows ainda não suportam o IPv6. O DJBDNS com patch também é capaz de resolver nomes para IPv6.Conclusão\nO IPv6 vai resolver muitos problemas que temos atualmente com o IPv4 e trazer muitos benefícios para as redes em geral.\nMuitos países já estão adotando o protocolo (principalmente países asiáticos, por serem muito populosos em geral), porém um sério problema é a falta de aplicativos que suportem o IPv6. Os grandes sistemas operacionais já suportam o IPv6 há algum tempo, porém nem todos os aplicativos que fazem uso de redes o suportam.\n","permalink":"http://ricardomartins.com.br/o-ipv6/","summary":"\u003cp\u003eAutor: Pedro Augusto de O. Pereira / \u003ca href=\"http://augusto.pedro.googlepages.com/\"\u003ehttp://augusto.pedro.googlepages.com/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIntrodução\u003c/strong\u003e\u003cbr\u003e\nO IP foi criado na década de 70 para ser utilizado na ARPANet. Seus primeiros desenvolvedores foram Vinton Cerf (\u003ca href=\"http://en.wikipedia.org/wiki/Vinton_Cerf\" title=\"http://en.wikipedia.org/wiki/Vinton_Cerf\"\u003ehttp://en.wikipedia.org/wiki/Vinton_Cerf\u003c/a\u003e) e Bob Kahn (\u003ca href=\"http://en.wikipedia.org/wiki/Bob_Kahn\" title=\"http://en.wikipedia.org/wiki/Bob_Kahn\"\u003ehttp://en.wikipedia.org/wiki/Bob_Kahn\u003c/a\u003e). De lá pra cá, o uso do IP aumentou exponencialmente, tornando-o o protocolo padrão para as redes atuais. Embora tenham existido tentativas para desenvolver e popularizar outros protocolos mais bem estruturados (como o OSI – Open Systems Interconnection), estes não obtiveram tanto sucesso quanto o IP (e os outros protocolos do conjunto). Hoje em dia, praticamente não se vê outro protocolo em uso no lugar do IP (talvez, a alternativa mais conhecida, porém já em desuso há alguns anos, é o IPX da Novell).\u003c/p\u003e","title":"O IPv6"},{"content":"Autor: Pedro Augusto de O. Pereira / http://augusto.pedro.googlepages.com/\nIntrodução aos honeypots\nHoneypots são uma forma barata e simples de detectar atividades ilícitas na sua rede. Sua principal função é ser atacado (por pessoas, por vírus, por worms, etc), scaneado ou invadido para assim adquirir informações para que você consiga se proteger de forma mais eficiente conhecendo como seus hosts podem ser atacados. O conceito é simples: um honeypot não tem nenhum propósito de produção (não tem nenhum serviço real, não deve receber nenhuma conexão, ninguém deve interagir com ele), portanto qualquer interação com um honeypot é possivelmente uma atividade ilícita (proposital ou não). Por esse motivo, os honeypots tem um baixo número de falso-positivo e geram pouco log, facilitando a leitura e fazendo com que o administrador detecte ataques com mais facilidade.\nCom ele você consegue agir pró-ativamente em relação à segurança. Tenha em mente que honeypots não vão consertar os problemas de segurança da sua rede e têm pouco valor se usados sozinhos (num ambiente ideal, eles são usados com ferramentas como NIDS). Eles são uma ferramenta para que você consiga capturar informações sobre potenciais problemas de segurança e tomar providências antes que eles se tornem problemas maiores. Veja bem: quem vai consertar os problemas identificados é você e não o software de honeypot.\nÉ um conceito relativamente novo, tendo como um de seus maiores estudiosos Lance Spitzner.\nOs honeypots podem ser divididos em 2 tipos: os de produção e os de pesquisa.\nHoneypots de produção\nO papel de um honeypot de produção é ajudar a mitigar prejuízos causados por falhas de segurança em uma organização, adicionando valor à solução de segurança. Seu papel é detectar atividades maliciosas e avisar o administrador de redes sobre isso (e não impedir que atacantes não cheguem à sua rede). Geralmente são honeypots de baixa interatividade, ou seja, o atacante não consegue “invadir” o honeypot pois o software não deixa, o que ele faz é emular um serviço ou shell (por exemplo, ele pode emular uma máquina Windows XP e sofrer ataques de vírus e worms destinados à esse sistema, mostrando outras máquinas infectadas na sua rede), e obter informações um pouco limitadas sobre os dados trocados e um pouquinho da interação do atacante com o host. Consegue também guardar informações sobre este ataque e sua origem (informações extremamente úteis). Geralmente são posicionados dentro da rede interna da empresa.\nEles funcionam emulando vários serviços para enganar o atacante enquanto loga em arquivos as informações que consegue capturar, fornecendo uma visão do que está acontecendo. Com ele você facilmente consegue pegar um micro infectado por um vírus, um usuário malicioso, etc.\nLembre-se sempre: qualquer interação com um honeypot é uma interação não-autorizada (ninguém deve saber que existe o honeypot e ninguém tem motivos para tentar estabelecer uma conexão com um), portanto é possivelmente uma interação maliciosa (gerada por um humano ou por um micro infectado por um vírus ou worm).\nHoneypots de pesquisa\nHoneypots de pesquisa são geralmente de alta-interatividade, ou seja, ela é uma máquina mal configurada que possui várias ferramentas para monitoração (como keyloggers) que verifica o que o atacante fez para conseguir invadir e o que fez depois que conseguiu o acesso. Nela o atacante interage com o Sistema Operacional da máquina e não com um software que emula shells e sistemas. Geralmente se usa um servidor de logs com este tipo pois não se pode confiar nos logs presentes no host já que o atacante pode alterá-los.\nEste tipo de honeypot consegue captar mais informações (como dados trocados, consegue identificar novas ferramentas e capturar o que foi digitado pelo atacante), porém aumenta sifgnificativamente o risco da rede. Por isso geralmente não é colocado dentro de uma rede empresarial: é utilizado somente em institutos de pesquisa em redes que são monitoradas o tempo todo para que não sejam lançados ataques à partir deste host, entre outras ameaças. Essas soluções são bem complexas de serem implementadas exigindo bastante experiência do analista, porém capturam muito mais informações que os honeypots de produção.\nAs duas soluções expostas acima vão te ajudar a melhorar a segurança da sua rede. Você deve escolher qual usar se baseando no que você quer monitorar e descobrir sobre seu atacante. Leve também em consideração os ponteciais riscos aos quais você está expondo a sua rede.\nVantagens dos honeypots\nOs honeypots trazem grandes vantagens, abaixo exponho algumas delas:\nPoucos dados são capturados, porém são dados muito importantes: Os honeypots, ao contrário de várias outras ferramentas, capturam pouquíssimos dados. Porém os dados capturados são muito importantes para o administrador de sistemas. Ao invés de capturar Gigabytes de dados (sendo que a grande parte é inútil) o honeypot vai capturar apenas alguns Megabytes de informações extremamente importantes, também não são gerados milhares de alertas por dia (assim diminui a ocorrência de falso-positivo aumentando a credibilidade da ferramenta. Lembra da história do menino que sempre enganava os outros gritando “Socorro! Socorro!”??). Além disso, gerando poucos dados, é mais provável que o administrador cheque esses dados mais frequentemente (vai me dizer que você nunca ficou com preguiça de ler os logs infinitos que são gerados por algumas ferramentas?), aumentando as chances de identificar um ataque rapidamente. Além disso, por analisar poucos dados, não perde pacotes importantes para a análise como uma ferramenta de IDS perderia se começassem a chegar muitos pacotes da rede em um determinado momento. Descobertas de novas ferramentas e de novas táticas: Utilizando os honeypots você consegue ver como o atacante agiu, que ferramentas usou e como se proteger delas. Se as ferramentas (ou exploits) usados para invadir o seu honeypot nunca foram usadas antes (conhecidas como 0 day), você conseguirá descobrir e em pouco tempo já conseguirá se proteger delas, ficando vulnerável por menos tempo. Uso mínimo de recursos: Os honeypots são extremamente econômicos nos requisitos mínimos para sua execução. Como só analisam o tráfego direcionado a eles, usam pouquíssima banda da sua rede e como são softwares bem leves, exigem o mínimo do hardware, fazendo com que aquela sua máquina PII com 64MB de RAM consiga monitorar uma rede com um desempenho razoavelmente bom. Dados criptografados: Ao contrário de outras ferramentas, os honeypots conseguem trabalhar com os dados criptografados que são direcionados à ele. Simplicidade: Honeypots são extremamente simples: sem algoritmos complexos, sem tabelas de informações para manter, etc. Sendo tão simples assim, é bem menos provável que alguém cometa um erro ao implantá-las em suas redes. Desvantagens dos honeypots\nTodas as ferramentas tem desvantagens, por isso honeypots não trabalham sozinhos: eles complementam outras ferramentas.\n“Alcance” limitado: Honeypots só conseguem analisar os dados que são direcionados à eles. Se nenhum pacote chegar para ele analisar, não será gerado nenhum dado e não se terá o que analisar para melhorar a segurança da sua rede. Para mitigar este problema, se usam ferramentas que monitoram a rede como um NIDS (um exemplo deste tipo de software seria o Snort). Risco: Todo software adiciona riscos à rede. Os honeypots não são diferentes de nenhum outro software. O seu honeypot, por exemplo, corre o risco de ser invadido por alguém (dependendo do nível de interação, como dito anteriormente) e, à partir dele, lançar ataques a outros hosts ou até redes. O projeto “Brazilian Honeypots Alliance”\nO Brasil tem um projeto muito bom relacionado aos Honeypots, é o Brazilian Honeypots Alliance. Este projeto é formado por estudiosos de segurança de institutos como o INPe. O objetivo é formar uma grande honeynet no espaço de endereços do Brasil para analisar e divulgar resultados coletados por honeypots espalhados pelo país.\nNeste projeto são utilizados honeypots de baixa interatividade. Você pode conhecer mais sobre este projeto acessando a URL http://www.honeynet.org.br.\nConclusão\nHoneypots são uma ferramenta extremamente útil para auxiliar na melhoria da segurança da sua rede ou para aprender novos recursos e ataques utilizados por seus inimigos. O principal objetivo deste texto foi te dar uma visão bem básica e sem muitos detalhes da teoria de honeypots. Muitos textos com sugestões de softwares para usar, análises mais profundas de softwares, entre outros, podem ser encontrados aos montes na Internet (geralmente em inglês). Qualquer dúvida, entre em contato comigo!\n","permalink":"http://ricardomartins.com.br/honeypots/","summary":"\u003cp\u003eAutor: Pedro Augusto de O. Pereira / \u003ca href=\"http://augusto.pedro.googlepages.com/\"\u003ehttp://augusto.pedro.googlepages.com/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIntrodução aos honeypots\u003c/strong\u003e\u003cbr\u003e\nHoneypots são uma forma barata e simples de detectar atividades ilícitas na sua rede. Sua principal função é ser atacado (por pessoas, por vírus, por worms, etc), scaneado ou invadido para assim adquirir informações para que você consiga se proteger de forma mais eficiente conhecendo como seus hosts podem ser atacados. O conceito é simples: um honeypot não tem nenhum propósito de produção (não tem nenhum serviço real, não deve receber nenhuma conexão, ninguém deve interagir com ele), portanto qualquer interação com um honeypot é possivelmente uma atividade ilícita (proposital ou não). Por esse motivo, os honeypots tem um baixo número de falso-positivo e geram pouco log, facilitando a leitura e fazendo com que o administrador detecte ataques com mais facilidade.\u003c/p\u003e","title":"Honeypots"},{"content":"Autor: Pedro Augusto de O. Pereira / http://augusto.pedro.googlepages.com/\nIntrodução\nO FreeS/WAN é uma das várias implementações do IPSec (Internet Protocol Security) e IKE (Internet Key Exchange) para GNU/Linux.\nUtilizando estes dois serviços, você pode fazer um túnel seguro entre duas redes distantes com seus dados passando por redes inseguras (como a Internet). O IPSec consegue fazer com que os dados trafeguem de modo seguro através de uma rede insegura, pois tudo o que passará por este túnel é criptografado pelo gateway com IPSec instalado e só é descriptografado na outra ponta. No gateway que conhece a chave para realizar a descriptografia. Assim, você consegue estabelecer uma VPN (Virtual Private Network) entre vários locais diferentes, utilizando a Internet, de forma bastante segura.\nPara descrever como estabelecer um túnel VPN criptografado, neste documento vou me basear na versão 2.06 do FreeS/WAN.\nInstalação\nPara que você consiga usar o FreeS/WAN a partir dos RPM’s, você tem que necessariamente ter os pacotes freeswan-userland-xxx.rpm e freeswan-module-xxx.rpm. Você pode encontrar esses pacotes no seguinte site:\nhttp://www.freeswan.org/download.html\nEntão, para instalar o FreeS/WAN a partir dos pacotes RPM, faça o seguinte:\n# rpm -ivh freeswan-userland-xxx.rpm # rpm -ivh freeswan-module-xxx.rpm Depois de instalar os dois pacotes, serão criados (entre outros) dois arquivos no seu diretório /etc: o ipsec.conf e o ipsec.secrets. Veremos mais adiante para que cada um deles serve.\nGerando as chaves RSA – utilizando o arquivo ipsec.secrets\nAntes de começar a configurar o serviço propriamente dito, vamos gerar as chaves para a autenticação dos nossos gateways. Para isso é só usar o comando ipsec_newhostkey. Por padrão, a chave gerada com este comando deve ir para o arquivo /etc/ipsec.secrets, porém você pode mudar o arquivo para qualquer um que você queira.\nEntão, vamos gerar a nossa chave:\n# ipsec_newhostkey –output /etc/ipsec.secrets –bits 128 –hostname gateway_1 Com o comando acima, nós geramos a chave de autenticação do host gateway_1 de 128 bits e a guardamos no arquivo ipsec.secrets. Esse processo deve ser feito para o outro gateway que estabelecerá o túnel VPN com este gateway.\nTenha certeza absoluta de que o nome da máquina que você forneceu ao gerar a chave é o correto. Se este nome estiver errado, a chave será gerada de forma errônea e você não conseguirá estabelecer um túnel entre os gateways.\nComo você já deve ter percebido, no arquivo ipsec.secrets só deve haver a chave do gateway que você está configurando. Por exemplo, se eu estou configurando o gateway gateway_1, no meu arquivo ipsec.secrets só deverá existir a chave deste host. Quando eu for configurar o gateway_2, no ipsec.secrets deste só deverá haver a chave do gateway_2.\nConfigurando o serviço IPSec – utilizando o arquivo ipsec.conf\nDepois que você gerou todas as chaves necessárias em todos os hosts, é hora de editar o arquivo ipsec.conf para configurar como será a nossa VPN.\nVou tentar deixar claro para que servem todas as opções neste arquivo (que não são muitas).\ninterfaces=%defaultroute\nEssa opção necessariamente tem que estar certa sempre, ou praticamente nada irá dar certo!\nSe o seu gateway for o caminho certo para a VPN, então pode deixar exatamente como está. Se não, altere para a placa de rede que terá a comunicação com a outra ponta da VPN. Por exemplo, se a VPN for estabelecida via a placa de rede eth0, então a linha deverá ficar:\ninterfaces=”ipsec0=eth0?\nA opção interfaces=”ipsec0=eth0? vai ser o suficiente se a sua VPN for bem simples.\nklipsdebug=none\nplutodebug=none\nEstas opções geralmente são mais necessárias quando a sua VPN está com algum problema. Elas “medem” o nível de informação que será logado pelo serviço IPSec. Se você quiser o máximo de informações possível, é só mudar “none” para “all”.\nuniqueids=yes\nEsta opção faz com que uma conexão antiga seja encerrada quando uma nova, com a mesma ID, apareça.\nNas opções acima, será muito difícil você ter que alterar alguma coisa, a não ser que a sua VPN seja um caso um pouco mais específico.\nkeyingtries=0\nEsta opção indica a quantidade de tentativas que devem ser feitas para se negociar uma conexão antes de desistir. Esta opção só tem efeito localmente, ou seja, o outro lado não precisa necessariamente ter o mesmo número de tentativas especificadas nesta opção. Para fazer com que o serviço não desista nunca, deixe com o “0? ou substitua por %forever (é recomendado que se deixe o “0? mesmo).\ndisablearrivalcheck=no\nHabilita ou desabilita a checagem dos pacotes que acabam de chegar do túnel. É recomendado que você nunca desabilite esta opção, pois ela aumenta a segurança e confiabilidade do túnel e não atrapalha em nada.\nauthby=rsasig\nDefine como os gateways participantes da VPN irão autenticar-se. As opções são:\nsecret, para senhas; rsasig, para assinaturas RSA (o padrão e melhor opção); secret|rsasig, para usar ambas as opções ou never, usado se você nunca for querer estabelecer a conexão ou não for aceitá- la. Como já foi dito anteriormente, a melhor opção é usar assinaturas RSA (rsasig).\nleftrsasigkey=%dns\nrightrsasigkey=%dns\nDefine como será encontrada a chave RSA. Os valores que podem ser usados são:\n%none = é o mesmo que não especificar um valor;\n%dnsondemand = é o valor padrão. Significa que a chave será lida do DNS quando for necessária;\n%dnsonload = com esta opção, a chave RSA será lida do DNS quando a conexão for ativada. Nas versões mais atuais do FreeS/WAN, esta opção será tratada como %none se right=%any ou %opportunistic;\n%dns = é tratado como %dnsonload.\ntunnel = define uma conexão host a host, host a sub-rede ou sub-rede a sub-rede. Esta é a opção padrão; passthrough = define que o IPSec não deve ser usado para estabelecer a conexão; drop = define que todos os pacotes devem ser descartados; reject = define que os pacotes devem ser descartados. start = define que a conexão será iniciada assim que o serviço IPSec for iniciado; add = define que a conexão será feita manualmente. Para que se consiga estabelecer a conexão manualmente, deve- se usar o comando ipsec auto –up nome_da_conexão. Os arquivos ipsec.conf devem ser iguais nas duas pontas do túnel; Os arquivos ipsec.secrets devem sempre ser diferentes, cada um com a chave de seu respectivo host; Um gateway não pinga outro gateway; Uma estação não ping um gateway; Uma estação pode pingar outra estação. conn sampleAqui começam as configurações dos túneis que serão estabelecidos. A linha “conn sample” é o nome da conexão. Você poderia mudá-la para qualquer nome, como “conn campinas”. Lembre-se que você não pode mudar o “conn”, apenas o nome que segue.\ntype=tunnel\nDefine o tipo da conexão a ser estabelecida. Você pode colocar os seguintes valores aqui:\nleft=210.xxx.xxx.xxx\nright=200.xxx.xxx.xxx\nDefine qual será a ponta left (ou right) do seu túnel VPN. O FreeS/WAN trabalha do seguinte modo: cada host participante do túnel pode ser left ou right. Não importa qual seja o tipo da VPN a ser estabelecida, você sempre deve definir quem será o left e quem será o right. Nesta opção, deve ser definido o IP do host que você definiu que será o left. Não tem muita importância um host ser left ou right (na verdade, isso praticamente não importa) desde que você seja consistente na sua escolha, ou seja, se você definiu o host gateway1 como left, referencie- se a ele sempre como left.\nleftsubnet=192.168.0.0/24\nrightsubnet=192.168.0.0/24\nAqui é definido qual é o endereço da sub-rede (da rede que está “atrás”) do host. No exemplo é 192.168.0.0, que é um endereço de classe C. Se usássemos um endereço de classe A, deveríamos colocar /8; caso fosse classe B seria /16.\nleftrsasigkey=0s$Pa%6…\nrightrsasigkey=$#1@psoeKe~…\nAqui você deve colocar a chave RSA do host left para que o túnel seja estabelecido com sucesso. A chave que deve ser colocada aqui, é a chave que está no arquivo ipsec.secrets, mais especificamente a chave que está na linha “pubkey=…”, que foi gerada com o comando ipsec_newhostkey explicado anteriormente. O mesmo vale para a opção rightrsasigkey encontrada mais adiante no ipsec.conf.\nleftnexthop=200.xxx.xxx.xxx\nrightnexthop=200.xxx.xxx.xxx\nAqui deve ser definido qual o endereço IP do gateway usado pelo host. Esta opção só tem importância localmente, ou seja, não necessariamente deve ser igual nas duas pontas do túnel.\nauto=start\nDefine quando a conexão referenciada por esta opção será ativada. Alguns valores que podem ser colocados aqui são:\nTestando os túneis\nAgora que nós já configuramos o serviço IPSec, podemos começar nossos testes. Alguns detalhes devem sempre ser observados:\nTendo observado estes detalhes, tente pingar uma estação que esteja na sub-rede da outra ponta. Se tudo estiver correto, a outra estação irá responder a todos os pings.\nTroubleshooting – corrigindo os inevitáveis erros\nCaso você não esteja conseguindo pingar as máquinas da sub-rede da outra ponta do túnel e o serviço IPSec tenha inicializado sem erro nenhum, verifique se as portas 500 do protocolo UDP estão abertas tanto para entrada quanto para saída (para o IKE) e as portas 50 também estejam abertas para entrada e saída. Deixar estas portas fechadas geralmente impede o IPSec de passar da primeira fase da negociação da conexão.\nSe você está tendo problemas ao iniciar o serviço IPSec, é bom que você entenda as etapas da negociação das conexões.\nAs negociações do IKE possuem duas fases: Main Mode, STATE_MAIN.\nAs negociações do IPSec também possuem duas fases: Quick Mode, STATE_QUICK.\nQuando os passos anteriores são realizados com sucesso, serão mostradas as mensagens:\n“nome_da_conexão” STATE_MAIN_I4 (ISAKMP SA established…)\n“nome_da_conexão” STATE_QUICK_I2 (sent QI2, IPSec SA established…)\nQuando você não consegue estabelecer o túnel de forma correta, geralmente estes passos não são atingidos. Assim, o comando:\n# ipsec auto –status\nSerá muito útil, pois ele te mostrará o último estado da negociação que foi alcançado, mas não informa o estado atual, porém você pode deduzir qual o estado atual verificando se o último passo mostrado pelo comando foi finalizado com sucesso.\nPara que o IPSec mostre mais mensagens de erro para facilitar o troubleshoot, você pode usar o comando:\n# ipsec auto –verbose –up nome_da_conexão\nAssim ele irá mostrar mensagens sobre todos os passos da negociação da conexão especificada.\nÉ sempre bom lembrar que também é muito útil que se olhe os logs do seu sistema. Porém o nível de detalhes que serão logados dependerá do que você colocou nas opções “klipsdebug” e “plutodebug” do arquivo ipsec.conf. Se tiver problemas, coloque pelo menos uma delas para “all” para que você tenha uma base melhor para descobrir onde está o erro.\nOutro comando que também pode ajudar muito na hora de achar o erro de alguma conexão do FreeS/WAN é o barf. Ele imprime na tela várias informações relevantes sobre a encriptação e autenticação do IPSec. O uso dele é o seguinte:\n# ipsec barf\nAssim ele já imprime várias informações muito úteis. Porém, é melhor que se passe essas informações para um arquivo para que se possa observá-las com mais calma:\n# ipsec barf \u0026raquo; conexão_com_problema.txt\nBom, estas são algumas dicas básicas para que você consiga resolver os problemas que por ventura apareçam por aí.\nFontes e conclusão Site oficial, com uma documentação extremamente detalhada:* http://www.freeswan.org. Tutorial muito bom sobre o assunto:\nhttp://www.linuxman.pro.br/vpn Esta foi só uma olhada básica no serviço IPSec, que é extremamente útil em muitos casos. Espero que tenha sido de alguma ajuda para você.\n","permalink":"http://ricardomartins.com.br/vpn-com-freeswan/","summary":"\u003cp\u003eAutor: Pedro Augusto de O. Pereira / \u003ca href=\"http://augusto.pedro.googlepages.com/\"\u003ehttp://augusto.pedro.googlepages.com/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIntrodução\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eO FreeS/WAN é uma das várias implementações do IPSec (Internet Protocol Security) e IKE (Internet Key Exchange) para GNU/Linux.\u003c/p\u003e\n\u003cp\u003eUtilizando estes dois serviços, você pode fazer um túnel seguro entre duas redes distantes com seus dados passando por redes inseguras (como a Internet). O IPSec consegue fazer com que os dados trafeguem de modo seguro através de uma rede insegura, pois tudo o que passará por este túnel é criptografado pelo gateway com IPSec instalado e só é descriptografado na outra ponta. No gateway que conhece a chave para realizar a descriptografia. Assim, você consegue estabelecer uma VPN (Virtual Private Network) entre vários locais diferentes, utilizando a Internet, de forma bastante segura.\u003c/p\u003e","title":"VPN com FreeS/WAN"},{"content":"Autor: Pedro Augusto de O. Pereira / http://augusto.pedro.googlepages.com/\nIntrodução\nA instalação de aplicativos no GNU/Linux é um dos pontos que mais causam confusão nos iniciantes por ser um pouco diferente. Para fazer a instalação, nós temos 3 opções: o RPM (para distribuições baseadas na Red Hat como Fedora, Conectiva), a instalação através de código fonte (arquivos .tar.gz, .tar.bz2, etc), sendo que estes independem de distribuição e o apt-get, criado pela Debian.Vou tratar cada uma delas separadamente para que eu possa esclarecer as particularidades de cada uma.\nInstalação através de um tarball\nEsse é um dos tipos de instalação mais populares. Aqui o desenvolvedor empacota os arquivos fonte do programa e os disponibiliza para download, junto com alguns scripts para facilitar a instalação no computador do usuário.\nComo o desenvolvedor lhe envia os códigos-fonte dos arquivos, será necessário compilá- los para que eles funcionem no seu computador. Para conseguir realizar a compilação de qualquer programa no seu sistema, você deve ter os pacotes de desenvolvimento instalados no seu micro (pacotes como a glibc, automake, etc) Falando assim pode parecer que para instalar aplicativos desse jeito é um bicho de sete cabeças, mas não chega nem perto disso =] A compilação é um processo meio padronizado, ou seja, quase sempre você vai precisar digitar os mesmos comandos para instalar qualquer programa. Vou explicar cada um deles abaixo, lembrando que todos eles devem ser executados dentro do diretório criado quando você descompactou o tarball do programa:\n./configure O ./configure na verdade não é um comando, mas sim um shell script. Quando executado, ele verifica se seu sistema possui tudo o que é necessário para que o aplicativo que você está querendo instalar seja executado corretamente, sem nenhum problema. Além disso, ele também gera um arquivo chamado makefile. Este arquivo contém regras sobre a compilação do programa, sem este arquivo, o próximo comando não conseguirá executar pois não terá idéia do que será necessário fazer.\nmake O make usa o makefile gerado pelo ./configure para realizar a compilação do programa.O makefile contém instruções para que o make compile tudo o que for necessário.\nmake install Enquanto o make só compila o programa, o make install instala realmente o programa criando os diretórios necessários, colocando os binários no lugar certo, etc. Lembrando que o make é o único dos 3 comandos que requer permissões de root para ser executado, já que este escreve em lugares em que só o root tem permissão.\nEntão, para instalar um programa através de um tarball:\n# tar -xzvf programa.tar.gz # cd dirdoprograma # ./configure # make # su – root # make install Geralmente são esses os passos executados para que você instale um programa a partir do código fonte. A única coisa que pode variar é o nome do script (o primeiro “comando” digitado). Na maior parte das vezes é configure, mas o desenvolvedor pode colocar outro nome nele, como setup, por exemplo. Por isso, é muito recomendado que você leia o arquivo Readme para ter instruções exatas de como proceder para instalar o aplicativo.\nDepois de instalado, os binários do aplicativo vão estar em /usr/local/bin. Preste atenção a um detalhe muito importante: se seu aplicativo só funcionar em um ambiente específico (o KDE, por exemplo) os binários dele vão para outro diretório: /usr/local/kde/bin.\nPortanto, nunca se esqueça de adicionar esses diretórios na variável PATH de todos os usuários do sistema, para que eles também possam executar o programa.\nVocê deve estar pensando: “Bom instalar é fácil, mas como eu desinstalo um programa?”. Eu respondo: “É mais fácil ainda!”.\nVocê simplesmente vai ter que voltar ao diretório criado pelo tarball quando este foi descompactado e digitar:\n# make uninstall Bem fácil, né? E você achando que instalar e desinstalar programas através dos fontes era difícil.\nRPM\nO RPM (Red Hat Package Manager) é um dos modos mais inteligentes e fáceis de se instalar, desinstalar, monitorar o que está instalado, atualizar programas, etc. Ele ajuda muito o usuário iniciante pois é muito intuitivo e fácil de se usar. Vou lhe ensinar aqui como instalar, desinstalar, atualizar e verificar se algum pacote está instalado no seu sistema, se aprofundar no uso do RPM é com você.\nInstalando\nOs pacotes RPM são arquivos binários pré-compilados para uma certa distribuição. Por isso você sempre vai procurar por pacotes RPM feitos para a sua distribuição. Um ótimo lugar para se encontrar pacotes RPM é no site www.rpmfind.net.\nO processo de instalação é bem fácil. Vou usar como exemplo de instalação o SIM, um clone do ICQ para GNU/Linux.\nCom o pacote em mãos, vá ao console e digite:\n# rpm -ivh sim-0.9.2-1.rh90.i386.rpm Explicando as opções:\n-i: instalar -v: modo verbose. Com esta opção ativada, o rpm irá te falar o que está fazendo. -h: mostra o progresso da instalação do pacote com caracteres #. Opa! Tivemos uma mensagem de erro:\nerror: Failed dependencies:\nlibsablot.so.0 is needed by sim-0.9.2-1.rh90\nsablotron \u0026gt;= 1.0.1 is needed by sim-0.9.2.-1.rh90\nÓ meu Deus! E agora??\nCalma! O RPM está nos dizendo que para o SIM ser executado corretamente ele necessita do pacote sablotron com uma versão maior ou igual a 1.0.1. Portanto, simplesmente procuramos esse pacote (nesse caso é uma biblioteca) e o instalamos:\n# rpm -ivh sablotron-1.0.1-1.rh90.i386.rpm Depois de instalado, instalamos o pacote principal sim-0.9.2-1.rh90.i386.rpm:\n# rpm -ivh sim-0.9.2-1.rh90.i386.rpm Agora sim conseguimos instalar o SIM. Para executá- lo digite “sim” em um terminal.\nAtualizando\nVamos supor que, depois de um tempo, é lançada uma nova versão do SIM e nós queiramos atualizar o nosso programa. Para isso nós utilizaremos a opção -U, assim:\n# rpm -U sim-x.x.x-2.rh90.i386.rpm Assim ele vai atualizar o SIM automaticamente, sem ter que desinstalar a versão antiga e instalar a nova.\nDesinstalando\nPara você desinstalar um pacote RPM qualquer, basta usar a opção -e:\n# rpm -e sim-x.x.x-2.rh90.i386.rpm Verificando quais pacotes estão instalados\nPara você pesquisar se um certo pacote está instalado ou não, você pode usar a opção -qa. Com essas opções o sistema RPM vai consultar toda a base de dados de pacotes RPM e lhe mostrar todos os pacotes RPM que estão instalados no seu micro. É uma boa idéia usar o grep para consultar um pacote específico:\n# rpm -qa | grep pacote Assim, se o pacote estiver instalado, você verá o nome do pacote como única saída do comando. Caso o RPM não ache um pacote com o nome especificado ele simplesmente irá ficar quieto, não te dirá nada.\nBom, isso é o básico sobre RPM. Cabe a você se aprofundar mais no uso desta excelente ferramenta.\nAPT-GET com suporte a RPM\nConforme você vai usando o sistema RPM você vai perceber que ele tem um sério problema. Muitas vezes você tem que instalar vários pacotes para conseguir fazer um programa funcionar (esses pacotes extras são chamados dependências), e depois de um tempo isso vai começar a te chatear muito.\nPensando nisso, foi criado o sistema APT-GET.\nEste sistema funciona como o RPM, mas um pouco mais melhorado. Com ele você pode instalar, desinstalar e atualizar pacotes no seu sistema.Você deve estar se perguntando:\n“Mas qual a grande vantagem dele em cima do RPM?”\nA maior vantagem do APT sobre o RPM é que ele resolve problemas de dependências automaticamente. Assim, se você tentar instalar um pacote o APT já vai instalar todas as dependências dele automaticamente.\nPara instalar o APT você vai precisar baixar o pacote RPM dele e instalá- lo como foi explicado no tópico anterior. Depois de instalá- lo é hora de começar a usar! Digite “apt-get update” para que o apt atualize os pacotes necessários por ele. Lembre- se que neste passo você tem que estar conectado à Internet.\nDepois que ele terminar o passo anterior, você já pode começar a usá- lo para instalar, desinstalar e atualizar seus pacotes.\nPara instalar um pacote qualquer digite:\n# apt-get install pacote Com o comando acima ele vai instalar o pacote e qualquer dependência necessária.\nPara que o apt cheque quais pacotes estão desatualizados no seu sistema e já os atualize digite:\n# apt-get upgrade Para remover algum pacote junto com suas dependências, use:\n# apt-get remove pacote Todas as fontes de onde o APT vai fazer download estão descritas no arquivo /etc/apt/sources.list. Se você quiser adicionar algum lugar de onde o APT deva fazer download de algum pacote, indique- o nesse arquivo. Uma fonte não precisa necessariamente ser um servidor FTP. Você pode adicionar os CD-ROMs da sua distribuição para poder instalar os pacotes contidos neles pelo APT. Você só vai precisar digitar o comando:\n# apt-cdrom add Se você não especificar onde está o seu drive, o APT vai usar as informações contidas no seu arquivo /etc/fstab.\nBom, sobre o APT é isso. Só te mostrei o básico pois o APT é uma ferramenta com muitos recursos. Para escrever esta parte do tutorial, me baseei no excelente arquivo disponível em http://bazar.conectiva.com.br/~godoy/apt-howto/index.html.\nÉ isso! Aposto que agora você vai conseguir instalar qualquer programa (não importa a forma como ele apareça na sua mão!) no seu GNU/Linux. Espero que este artigo tenha te ajudado a esclarecer qualquer dúvida que você tivesse sobre instalação.\n","permalink":"http://ricardomartins.com.br/instalando-programas-no-linux/","summary":"\u003cp\u003eAutor: Pedro Augusto de O. Pereira / \u003ca href=\"http://augusto.pedro.googlepages.com/\"\u003ehttp://augusto.pedro.googlepages.com/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIntrodução\u003c/strong\u003e\u003cbr\u003e\nA instalação de aplicativos no GNU/Linux é um dos pontos que mais causam confusão nos iniciantes por ser um pouco diferente. Para fazer a instalação, nós temos 3 opções: o RPM (para distribuições baseadas na Red Hat como Fedora, Conectiva), a instalação através de código fonte (arquivos .tar.gz, .tar.bz2, etc), sendo que estes independem de distribuição e o apt-get, criado pela Debian.Vou tratar cada uma delas separadamente para que eu possa esclarecer as particularidades de cada uma.\u003c/p\u003e","title":"Instalando programas no Linux"},{"content":"Autor: Pedro Augusto de O. Pereira / http://augusto.pedro.googlepages.com/\nIntrodução\nAdministrar máquinas remotamente é uma coisa extremamente comum não só nos últimos anos, mas desde que a Internet foi concebida.\nNo início, existiam algumas opções para administrar remotamente uma máquina:\nTelnet: o Telnet (Teletype Network) é, talvez, a opção mais conhecida para este tipo de tarefa. Desenvolvido em 1969, é um protocolo de camada de Aplicação e está disponível para praticamente qualquer plataforma que você necessite. Utiliza a porta 23/TCP. Atualmente já caiu em desuso e sua utilização para interagir com qualquer tipo de host (em qualquer rede) é extremamente desencorajada, já que há opções melhores e mais seguras disponíveis atualmente, entretanto alguns dispositivos como switches e roteadores ainda permitem que o acesso ao seu console seja feito utilizando o Telnet (a grande maioria disponibiliza apenas o Telnet, porém alguns roteadores mais novos já permitem o uso do SSH). O protocolo está especificado na RFC 854. RSH: O RSH (Remote Shell) tem um papel muito parecido com o do Telnet, porém foi feito exclusivamente para funcionar em sistemas Unix-like (como o 4.2BSD), em 1983. Ele lida melhor com a transferência do output do shell entre os hosts, sendo uma melhor opção que o antigo Telnet. Também não foi desenvolvido pensando na segurança: não criptografa nenhum dos dados transmitidos pela conexão estabelecida por ele. Utiliza a porta 514 do protocolo TCP. Ele é apenas parte de uma suíte de ferramentas utilizadas para interagir com um determinado host remotamente. Outros exemplos de ferramentas na suíte são rcp, rlogin. Você encontra mais informações sobre estes comandos neste site (em inglês). Estas primeiras soluções eram um bom auxílio, mas representavam muitos riscos aos administradores que as utilizavam já que não ofereciam nenhum tipo de segurança. Por exemplo, todas as senhas utilizadas no processo de login eram enviadas em texto plano, sem cifragem nenhuma. Isso, obviamente, facilita muito a vida do atacante cuja única dificuldade é sniffar o tráfego entre o administrador que utiliza a ferramenta e o servidor onde ele irá se logar.\nQuando o criador do protocolo SSH, Tatu Ylonen, teve sua rede invadida por utilizar estas ferramentas inseguras, percebeu que era necessário um protocolo que permita administração remota de um modo seguro. Assim, com segurança em mente, foi desenvolvido o SSH. Este é, ao mesmo tempo, um protocolo e um aplicativo, cuja principal vantagem é oferecer um modo de se conectar a uma máquina remota de modo seguro, causando menos riscos à segurança do sistema.\nNesta primeira parte de uma série de artigos, vou explicar o que é o SSH. Suas opções de configuração e linha de comando e também alguns exemplos de utilização serão mostrados na parte 2. Na parte 3, vou focar nas técnicas utilizadas para deixar o servidor SSH seguro.\nSe restar qualquer dúvida após ler este artigo, se você quiser fazer uma sugestão ou correção entre em contato comigo utilizando o formulário de contato, que você encontra no menu à esquerda.\nO protocolo SSH\nO SSH (Secure SHell) é ao mesmo tempo um protocolo e uma aplicação para acesso remoto. Os protocolos foram desenvolvidos em 1995 por Tatu Ylonen, fundador da empresa SSH Communications Security. O conjunto permaneceu livre até a sua versão 1.2.12, quando se tornou um produto proprietário desta empresa. Foi desta versão que se originou o aplicativo OpenSSH (uma implementação destes protocolos e várias ferramentas auxiliares), em 1999. Existem também várias outras opções comerciais de implementação do SSH porém, por ser livre, o OpenSSH é a mais popular.\nO protocolo foi desenvolvido com a segurança em mente desde o princípio do projeto. Como consequência, ele é capaz de proteger o host de ataques de IP spoofing, IP source routing e DNS spoof. Basicamente, o atacante só consegue fazer com que o serviço seja interrompido, ele não é capaz de tomar conta da seção (e consequentemente da máquina) que está utilizando o software. Além disso, todo o tráfego transmitido por uma conexão SSH (as senhas e todo o conteúdo, como um arquivo sendo transmitido entre os hosts) é fortemente criptografado, sendo virtualmente impossível para um atacante sniffar e conseguir ler as mensagens trocadas entre os participantes da conexão (pelo menos em tempo hábil para que aquele conteúdo decifrado seja de alguma utilidade para ele).\nA primeira versão, conhecida como SSH1, foi desenvolvida principalmente com a intenção de substituir os “comandos r”: rlogin (permite que o usuário logue no sistema remoto utilizando a porta 513/TCP), rsh (que permite executar comandos no shell remoto como outro usuário. Na ponta onde o usuário irá se conectar é necessário que o daemon rshd esteja sendo executado) e rcp (permite fazer uma cópia de arquivos entre sistemas remotos através da Internet). A segunda versão (SSH2, incompativel com a versão SSH1) tem o intuito de resolver falhas de segurança sérias encontradas na primeira versão e melhora o método de transferência de arquivos entre os hosts (através do SFTP).\nComo a versão utilizada hoje em dia é a 2, é nela que irei focar.\nO SSHv2 é descrito em 5 documentos principais: o SSH Protocol Architecture – RFC 4251 que descreve todo o design do protocolo de um modo geral, sem se aprofundar muito em detalhes de implementação.\nO SSH Transport Layer Protocol – RFC 4253 descreve como funcionará o protocolo da camda de transporte do SSH (o qual utiliza toda a infra-estrutura oferecida pela pilha de protocolos TCP/IP definindo como vai ser a privacidade, integridade, autenticação nos servidores, proteção contra ataques man-in-the-middle, criptografia forte, autenticação, proteção da integridade e, opcionalmente, compressão dos dados). O interessante do protocolo definido por esta RFC é que ele pode ser utilizado não apenas no SSH, mas também em qualquer outra aplicação que requeira segurança nas comunicações feitas através de redes inseguras (como a Internet).\nO protocolo de autenticação é definido no documento SSH Authentication Protocol – RFC 4252. Ele descreve um framework do protocolo de autenticação e métodos de criação de chaves públicas, senhas e autenticação do cliente baseada no host, utilizados pelo SSH para a autenticação do usuário quando este tenta se conectar a algum servidor.\nO protocolo de conexão é descrito no documento SSH Connection Protocol – RFC 4254. Ele provê sessões interativas, execução remota de comandos, forward de conexões TCP/IP e de conexões X11 (você pode fazer um VNC mais seguro utilizando o SSH), tudo isso utilizando apenas um único túnel, por onde todas as conexões serão transmitidas. Este protocolo foi desenvolvido para ser executado utilizando as funções providas pelos protocolos de transporte e autenticação.\nO que é o OpenSSH?\nO OpenSSH é um projeto mantido pelos desenvolvedores do OpenBSD que tem como objetivo oferecer uma implementação completamente livre do protocolo SSH. Ele possui muitas vantagens sobre softwares como o Telnet, por exemplo: autenticação forte; todas as comunicações são automatica e transparentemente cifradas; qualquer porta TCP/IP pode ser redirecionada através de um túnel estabelecido pelo OpenSSH; deposita o mínimo de confiança no lado remoto da conexão; qualquer usuário pode criar qualquer número de chaves de autenticação RSA para utilizar ao conectar a outros servidores; as configurações podem ser específicas para cada usuário ou todos os usuários podem ser obrigados a obedecer uma configuração global; os dados transferidos podem ser compactados, aumentando o desempenho.\nComo o OpenBSD, o OpenSSH é sustentado por doações e venda de algumas peças promocionais como camisetas e pôsteres. Por isso, se você perceber que sua empresa está realmente se beneficiando de todo o bom trabalho feito por este time (que se esforça ao extremo para desenvolver um software de altíssima qualidade, seguro e livre) você deveria fazer uma doação para garantir que o software continue com seu desenvolvimento contínuo.\nO OpenSSH tem ferramentas que são substitutos seguros dos comandos “r”. Uma lista destes comandos segue:\nSSH: Substitui os programas rlogin e Telnet. SCP: Substitui o programa rcp. SFTP: Substitui o FTP. Além disso, também estão inclusos no pacote o SSHd (o daemon servidor do SSH, que aceita as conexões de clientes), ssh-add que adiciona chaves RSA e DSA ao agente de autenticação, ssh-agent que é o agente de autenticação, ssh-keysign que é utilizado pelo SSH par gerar uma assinatura digital necessária durante a autenticação do host no SSHv2, ssh-keyscan que junta as chaves públicas dos hosts para auxiliar na construção dos arquivos ssh_known_hosts (arquivos com os hosts que já se conectaram pelo menos uma vez ao servidor ou aos servidores aos quais o cliente já se conectou), ssh-keygen que gera, gerencia e converte chaves de autenticação para o SSH (pode criar chaves RSA ou DSA, a escolha de qual tipo de chave será gerada é através da opção -t), sftp-server é o servidor de FTP seguro (este utilitário não deve ser utilizado diretamente, mas sim dentro do SSHd, o daemon do SSH, através da opção “Subsystem”).\nO desenvolvimento do OpenSSH é feito por dois times distintos. Um deles se concentra em deixar o código o mais limpo possível para que seja utilizado no OpenBSD nativamente, sem a necessidade de qualquer “adaptação”. O outro time é responsável por portar o OpenSSH para outras plataformas, permitindo que vários outros sistemas operacionais também se aproveitem de todas as possibilidades que o OpenSSH oferece para seus usuários. Este código contém um pouco mais de sujeira que o código desenvolvido para o OpenBSD, porém, nem por isso é menos seguro. Estas versões podem ser identificadas pelo “p” em seus nomes, como em “OpenSSH 4.6p1?.\nAtualmente, o OpenSSH pode ser utilizado em OpenBSD, NetBSD, FreeBSD, AIX, HP-UX, IRIX, Linux, NeXT, SCO, SNI/Reliant Unix, Solaris, Digital Unix/Tru64/OSF, Mac OS X e Cygwin (automaticamente também no Windows, já que o Cygwin pode ser utilizado neste sistema operacional. Se você não conhece o Cygwin, dê uma lida neste artigo do Aurélio. É um ótimo guia para te apresentar esta poderosa ferramenta).\nConclusão\nNesta primeira parte da série de artigos sobre segurança no SSH, quis focar mais na história do protocolo e como ele está estruturado. Também procurei dar uma visão geral sobre o OpenSSH, que é o software no qual focarei nas próximas partes desta série de artigos.\n","permalink":"http://ricardomartins.com.br/tudo-sobre-o-ssh-parte-1/","summary":"\u003cp\u003eAutor: Pedro Augusto de O. Pereira / \u003ca href=\"http://augusto.pedro.googlepages.com/\"\u003ehttp://augusto.pedro.googlepages.com/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIntrodução\u003c/strong\u003e\u003cbr\u003e\nAdministrar máquinas remotamente é uma coisa extremamente comum não só nos últimos anos, mas desde que a Internet foi concebida.\u003c/p\u003e\n\u003cp\u003eNo início, existiam algumas opções para administrar remotamente uma máquina:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTelnet:\u003c/strong\u003e o Telnet (Teletype Network) é, talvez, a opção mais conhecida para este tipo de tarefa. Desenvolvido em 1969, é um protocolo de camada de Aplicação e está disponível para praticamente qualquer plataforma que você necessite. Utiliza a porta 23/TCP. Atualmente já caiu em desuso e sua utilização para interagir com qualquer tipo de host (em qualquer rede) é extremamente desencorajada, já que há opções melhores e mais seguras disponíveis atualmente, entretanto alguns dispositivos como switches e roteadores ainda permitem que o acesso ao seu console seja feito utilizando o Telnet (a grande maioria disponibiliza apenas o Telnet, porém alguns roteadores mais novos já permitem o uso do SSH). O protocolo está especificado na \u003ca href=\"http://tools.ietf.org/html/rfc854\"\u003eRFC 854\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRSH:\u003c/strong\u003e O RSH (Remote Shell) tem um papel muito parecido com o do Telnet, porém foi feito exclusivamente para funcionar em sistemas Unix-like (como o 4.2BSD), em 1983. Ele lida melhor com a transferência do output do shell entre os hosts, sendo uma melhor opção que o antigo Telnet. Também não foi desenvolvido pensando na segurança: não criptografa nenhum dos dados transmitidos pela conexão estabelecida por ele. Utiliza a porta 514 do protocolo TCP. Ele é apenas parte de uma suíte de ferramentas utilizadas para interagir com um determinado host remotamente. Outros exemplos de ferramentas na suíte são rcp, rlogin. Você encontra mais informações sobre estes comandos neste \u003ca href=\"http://pangea.stanford.edu/computerinfo/unix/netcommands/rcommands.html\"\u003esite\u003c/a\u003e (em inglês).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEstas primeiras soluções eram um bom auxílio, mas representavam muitos riscos aos administradores que as utilizavam já que não ofereciam nenhum tipo de segurança. Por exemplo, todas as senhas utilizadas no processo de login eram enviadas em texto plano, sem cifragem nenhuma. Isso, obviamente, facilita muito a vida do atacante cuja única dificuldade é sniffar o tráfego entre o administrador que utiliza a ferramenta e o servidor onde ele irá se logar.\u003c/p\u003e","title":"Tudo sobre o SSH"},{"content":"Autor: Pedro Augusto de O. Pereira / http://augusto.pedro.googlepages.com/\nConsidere o Sandcat um NMap especializado em varrer servidores web (como IIS ou Apache) e aplicações web (o seu site!). Isso facilita muito, pois você pode testar um determinado site ou servidor procurando por vários tipos de falhas como SQL Injection, Blind SQL Injection, XSS, XPath Injection, etc.\nExistem várias opções para este tipo de aplicativo, a que mais gosto e uso regularmente é o scanner da Acunetix, chamado Web Vulnerability Scanner. Uma outra opção que tenho usado há alguns dias e gostado bastante é o Sandcat, da empresa Syhunt.\nEla é gratuita para ser utilizada e bem completa (bem próxima do nível do Web Vulnerability Scanner, da Acunetix). Ele checa por, aproximadamente, 260 vulnerabilidades conhecidas (utilizando o ranking de várias entidades como OWASP, OWASP PHP, CVE, CWE, etc), detecta falhas de XSS (Cross Site Scripting), testas sistemas IDS, consegue explorar sistemas web desenvolvidos utilizando AJAX, descobre e analisa a configuração utilizada no servidor automaticamente para descobrir quais testes são necessários, etc.\nAlém de checar o que pode ser explorado na sua aplicação web, ele também analisa o que pode ser explorado no seu servidor web. No website oficial do produto, é declarado que ele tem compatibilidade total com o Microsoft IIS. Porém já li opiniões e testei pessoalmente o programa utilizando Apache e também tive bons resultados.\nSem dúvida é um download recomendado, porém até agora só há opção para Windows (95, 98, Me, NT, 2000, 2003, XP e Vista). Faça o download aqui.\n","permalink":"http://ricardomartins.com.br/sandcat-scanner-de-vulnerabilidades-de-sistemas-e-servidores-web/","summary":"\u003cp\u003eAutor: Pedro Augusto de O. Pereira / \u003ca href=\"http://augusto.pedro.googlepages.com/\"\u003ehttp://augusto.pedro.googlepages.com/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eConsidere o Sandcat um \u003ca href=\"http://www.insecure.org/nmap\"\u003eNMap\u003c/a\u003e especializado em varrer servidores web (como IIS ou Apache) e aplicações web (o seu site!). Isso facilita muito, pois você pode testar um determinado site ou servidor procurando por vários tipos de falhas como SQL Injection, Blind SQL Injection, XSS, XPath Injection, etc.\u003c/p\u003e\n\u003cp\u003eExistem várias opções para este tipo de aplicativo, a que mais gosto e uso regularmente é o scanner da \u003ca href=\"http://www.acunetix.com/\"\u003eAcunetix\u003c/a\u003e, chamado \u003ca href=\"http://www.acunetix.com/vulnerability-scanner/\"\u003eWeb Vulnerability Scanner\u003c/a\u003e. Uma outra opção que tenho usado há alguns dias e gostado bastante é o \u003ca href=\"http://www.syhunt.com/section.php?id=sandcat\"\u003eSandcat\u003c/a\u003e, da empresa Syhunt.\u003c/p\u003e","title":"Sandcat - Scanner de vulnerabilidades de sistemas e servidores web"},{"content":"\nVocê pode alternar ente usuários pelo Prompt de Comandos do Windows sem precisar realizar o logoff, caso precise acessar pastas e arquivos de outros usuários:\nAbra o prompt de comandos;\nDigite o seguinte comando: runas /user:\\*nomedocomputador\\*contadeusuário explorer.exe\nPronto, agora você ira abrir o Windows Explorer, como se fosse o usuário especificado e poderá acessar os arquivos cujo apenas este usuário tenha permissão para acessar.\n","permalink":"http://ricardomartins.com.br/alternando-ente-contas-de-usuario-pelo-prompt-de-comandos/","summary":"\u003cp\u003e\u003cimg alt=\"runas.jpg\" loading=\"lazy\" src=\"http://adminonline.files.wordpress.com/2007/08/runas.jpg\"\u003e\u003c/p\u003e\n\u003cp\u003eVocê pode alternar ente usuários pelo Prompt de Comandos do Windows sem precisar realizar o logoff, caso precise acessar pastas e arquivos de outros usuários:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eAbra o prompt de comandos;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDigite o seguinte comando: \u003ccode\u003erunas /user:\\*nomedocomputador\\*contadeusuário explorer.exe\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003ePronto, agora você ira abrir o Windows Explorer, como se fosse o usuário especificado e poderá acessar os arquivos cujo apenas este usuário tenha permissão para acessar.\u003c/p\u003e","title":"Alternando ente contas de usuário pelo Prompt de Comandos."},{"content":"Uma solução simples e gratuita para a filtragem de conteúdo ao alcance de escolas, telecentros, pequenas empresas e até usuários domésticos, pois não exige muita qualificação técnica para implantar, é o ScrubIt, parecido com o OpenDNS mas com espectro mais amplo. Enquanto o OpenDNS visa bloquear sites de phishing o ScribIt também não gosta de sites pornográficos. Não é preciso instalar nada, basta configurar o DNS com os endereços dos servidores do ScrubIt: 67.138.54.100 e 207.225.209.66.\nA idéia independe do sistema operacional porém pode ser combinada, nos *BSD e Linux, com o DNSMasq para se ter um melhor desempenho com resolução em cache local.\nExistem outros projetos que também oferecem elementos simples para agregar maior segurança na navegação pela Internet. Exemplos: usando o arquivo de hosts (www.mvps.org/winhelp2002/hosts.htm), a configuração automática do proxy do navegador como No-Ads (www.schooner.com/~loverso/no-ads) ou barrando, pura e simplesmente, algumas maçãs podres (www.spamhaus.org/drop/drop.lasso) da Internet, conforme sugestão recente do Sans Institute.\n","permalink":"http://ricardomartins.com.br/xo-pornografia-com-scrubit/","summary":"\u003cp\u003eUma solução simples e gratuita para a filtragem de conteúdo ao alcance de escolas, telecentros, pequenas empresas e até usuários domésticos, pois não exige muita qualificação técnica para implantar, é o \u003ca href=\"http://www.scrubit.com/\"\u003eScrubIt,\u003c/a\u003e parecido com o \u003ca href=\"http://www.opendns.com/\"\u003eOpenDNS\u003c/a\u003e mas com espectro mais amplo. Enquanto o OpenDNS visa bloquear sites de phishing o ScribIt também não gosta de sites pornográficos. Não é preciso instalar nada, basta configurar o DNS com os endereços dos servidores do ScrubIt: 67.138.54.100 e 207.225.209.66.\u003c/p\u003e","title":"Xô pornografia, com ScrubIt"},{"content":"Essa dica é de um amigo meu (Igor Humberto). Foi publicada em outro site, mas tive a autorização para publicar aqui.\nCenário atual.\nQuem nunca teve problemas para impedir que uma pessoa usasse, sem a sua autorização, o computador em casa? Diversos recursos podem ser usados para tentar impedir que isso aconteça. Diversos métodos poderiam ser aplicados, dos quais podemos citar:\n– Senha no SETUP: Configurar uma senha que liberasse o carregamento do sistema operacional através do setup da placa-mãe parece, a primeira vista, um método bastante eficaz para tentar impedir que uma pessoa não-autorizada usasse o sistema, porém não tem como impedir que o usuário mal-intencionado abra o gabinete e consiga aplicar um Clear CMOS na placa-mãe. Isso faria com que as opções de configuração padrão do setup fossem recarregadas e, dessa forma, removesse a senha configurada por você.\n– Configurar contas com senhas: Também é um método interessante, porém, hoje em dia existe uma farta documentação na Internet que explica, passo-a-passo, como se faz para iniciar o computador usando um sistema que inicialize através do CD-ROM, tal como o ERD Commander e, no caso deste último, use o utilitário Locksmith para redefinir a senha do administrador do sistema. Nesse caso, como uma forma de te irritar, o usuário mal-intencionado poderia, inclusive, impedir o seu próprio acesso.\nBem, eu poderia ficar aqui citando diversos métodos para tentar impedir o acesso de pessoas não-autorizadas, porém, infelizmente, todos esses métodos são reversíveis.\nUsando o SYSKEY.\nA técnica que irei apresentar agora não impede o acesso às informações contidas no disco rígido do computador, mas funciona como um método eficaz para evitar que o sistema operacional seja carregado. Se você parar para pensar, esse recurso seria capaz de impedir que um usuário mal-intencionado usasse a sua máquina e, dependendo da situação, isso já seria suficiente, porque não adiantaria ter acesso aos arquivos, uma vez que um jogo, por exemplo, está instalado no sistema operacional, ou seja, seria necessário carregá-lo para poder jogar.\nExplicando de uma forma bem simples o que essa ferramenta faz é o seguinte: Imagine o banco de dados de contas do sistema (Gerenciador de contas de segurança – SAM) como um baú que precisa de uma chave para abri-lo. Sem essa chave, não importa se você conhece as contas/senhas de todos os usuários do sistema, você não terá como acessá-las, correto?\nBem, o que o SYSKEY faz é exatamente proteger a chave que abre esse baú. Se você não passar por ele, não será capaz de carregar o sistema.\nA utilização da ferramenta é bem simples. Na máquina que você deseja proteger, clique em Iniciar/Executar e digite SYSKEY \u0026lt;ENTER\u0026gt;. A janela do SYSKEY será aberta e você poderá observar que o recurso de criptografia está ativado e que não é possível removê-lo. Clique no botão Avançado, onde você poderá escolher entre as seguintes opções:\nBem, das opções oferecidas, a que cria a melhor relação proteção/facilidade de uso é a Senha gerada pelo administrador, Inicialização da senha, porque devemos considerar que: 1 – Muitos sistemas não possuem mais os drives de disquetes (No Windows Vista, para essa ferramenta, o suporte oferecido ainda é por disquete); 2 – Imagine o caos que seria caso o disquete fosse perdido?\nVale ressaltar que a senha é case sensitive e que, caso você a esqueça, nem a reinstalação do sistema irá permitir que o sistema seja carregado. Você poderá acessar os seus dados fazendo até um dual boot, mas não poderá carregar o referido sistema sem que antes você use a senha configurada previamente.\nEsta solução está disponível no Windows 2000, XP, 2003 e Vista. No NT 4 já era possível usar essa solução, mas era necessário instalar o SYSKEY no sistema.\nBem, por hoje é só!\nAutor: Igor Humberto\nE-mail: igorhumberto@gmail.com\n","permalink":"http://ricardomartins.com.br/como-impedir-o-uso-do-seu-sistema-usando-o-syskey/","summary":"\u003cp\u003eEssa dica é de um amigo meu (Igor Humberto). Foi publicada em outro site, mas tive a autorização para publicar aqui.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCenário atual.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eQuem nunca teve problemas para impedir que uma pessoa usasse, sem a sua autorização, o computador em casa? Diversos recursos podem ser usados para tentar impedir que isso aconteça. Diversos métodos poderiam ser aplicados, dos quais podemos citar:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e– Senha no SETUP\u003c/strong\u003e: Configurar uma senha que liberasse o carregamento do sistema operacional através do setup da placa-mãe parece, a primeira vista, um método bastante eficaz para tentar impedir que uma pessoa não-autorizada usasse o sistema, porém não tem como impedir que o usuário mal-intencionado abra o gabinete e consiga aplicar um Clear CMOS na placa-mãe. Isso faria com que as opções de configuração padrão do setup fossem recarregadas e, dessa forma, removesse a senha configurada por você.\u003c/p\u003e","title":"Como impedir o uso do seu sistema usando o SYSKEY"},{"content":"O Foca GNU/Linux é um guia que traz desde explicações básicas sobre computadores e o sistema GNU/Linux até a administração e segurança do sistema. Os assuntos do guia são explicados em linguagem clara e organizados de forma linear e didática, evitando termos técnicos nos níveis iniciais, até que o usuário se habitue com sua utilização de forma gradual. Isto faz o guia indispensável para o usuário GNU/Linux iniciante ou os mais curiosos. Todas as seções do guia Foca GNU/Linux tem exemplos para melhor compreensão do assunto explicado e links dinâmicos que te levam facilmente a assuntos relacionados (na versão HTML).\nPara facilitar a leitura do guia, é dividido em três níveis de aprendizado: Iniciante, Intermediário e Avançado.\n* A versão Iniciante é ideal para quem NUNCA usou o computador e resolveu adotar o GNU/Linux como seu sistema. A versão iniciante também desenvolvida para aqueles que já ultilizam outros sistemas operacionais (como Windows, OS/2, UNIX) e desejam ou, por simples curiosidade, testar o GNU/Linux. Os assuntos explicados na versão Iniciante vão desde conceitos básicos sobre computadores e sistemas operacionais, o que cada comando faz. A versão Iniciante é independente de distribuição assim você pode usa-la em sistemas Debian, Slackware, RedHat etc.\n* A versão Intermediário matém as características da versão iniciante e entra em assuntos de configuração do sistema, compilação, manutenção, configuração básicas de rede, interfaces, disposistivos, segurança etc. É uma versão do guia indicada para aqueles que desejam explorar mais a fundo o sistema GNU/Linux. Foram introduzidos comandos mais complexos e novas opções aos comandos já disponíveis na versão iniciante.\nA versão intermediário também visa a educação do usuário sobre a escolha e compra de bons periféricos a configuração de dispositivos do sistema (IRQ, DMA e I/O), como evitar conflitos de dispositivos e resolvê-los. Este assunto será útil para qualquer técnico de informática ou usuário (independente se ele é usuário do GNU/Linux ou não) que deseja recomendar ou comprar um bom periférico, sabendo pelo que está pagando.\n* A versão Avançado foi escrita dando especial atenção ao foco de segurança, tendo como objetivo evitar acessos indevidos ao conteúdo da máquina, proteção com barreiras de segurança (autenticação, firewall restritivo, proxy, politicas de segurança de contas, etc.), análise de segurança da máquina, solução de vulnerabilidades, monitoramento, criptografia para transmissão segura de dados, politicas de segurança, como limitar recursos do sistema (como uso de memória pelos usuários, métodos de autenticação, limite de tempo de acesso, etc.).\nO nível Avançado também documenta diversos tipos de serviços de rede (como o Apache, ssh, cvs, etc.), a configuração de seus respectivos clientes. Todos os capítulos documentados com foco objetivo sobre o assunto, com muitos exemplos e mantendo o padrão de organização de conteúdo (como nas tradicionais versões do Foca Linux), links para assuntos relacionados, observações importantes, considerações sobre o que se deve evitar e os riscos, etc. Este nível também traz configurações especiais de rede (como hosts multihomed, bridges).\nSe você quer dar uma conferida, acesse o site: http://guiafoca.org/\n","permalink":"http://ricardomartins.com.br/guia-foca-linux/","summary":"\u003cp\u003eO Foca GNU/Linux é um guia que traz desde explicações básicas sobre computadores e o sistema GNU/Linux até a administração e segurança do sistema. Os assuntos do guia são explicados em linguagem clara e organizados de forma linear e didática, evitando termos técnicos nos níveis iniciais, até que o usuário se habitue com sua utilização de forma gradual. Isto faz o guia indispensável para o usuário GNU/Linux iniciante ou os mais curiosos. Todas as seções do guia Foca GNU/Linux tem exemplos para melhor compreensão do assunto explicado e links dinâmicos que te levam facilmente a assuntos relacionados (na versão HTML).\u003c/p\u003e","title":"Guia Foca Linux"},{"content":"Aprenda a tirar proveito das funcionalidades do Google Search que talvez você não conhecia.\n1. Calculadora\nO Google é uma ótima calculadora e uma das coisas mais simples de se fazer nele é utilizar esse recurso, basta usar os sinais das operações correspondentes: + (soma), * (multiplicação), ^ (potenciação), / (divisão), etc.\nExemplos: 2+2, 50*30, 24/8, etc.\n2. Termo exato\nPara buscar um termo exato no Google basta colocá-lo entre aspas.\nExemplo: “Ser ou não ser, eis a questão”. O Google só exibirá resultados em que a frase exata aparece na página.\n3. Mais de um termo\nSe você quiser que o Google exiba somente resultados com todos os termos pesquisados, basta colocar um sinal de “+” entre eles.\nExemplo: Zorra+Total. Retornará resultados em que ambos os termos (Zorra e Total) aparecem, independente da ordem.\n4. Formatos de arquivos\nDigite o termo desejado e adicione o comando “filetype:” seguido da extensão do arquivo.\nExemplos: carta filetype:doc. Exibirá somente resultados que possuem o termo “carta” em documentos do Microsoft Word (.doc).\nDica: Se você deseja buscar arquivos MP3 no Google utilize o Discovery Music.\n5. Busca em páginas de domínios\nPara buscar somente em um site (domínio), digite o(s) termo(s) desejado(s) seguido do comando “site:” e a URL do domínio.\nExemplo: gmail site:googlediscovery.com. Exibirá somente resultados do Google Discovery que possuam o termo “gmail”.\n6. Definições\nO Google também é um dicionário! Para definições de palavras utilize o comando “define:” seguido do termo desejado.\nExemplo: define:google. Retornará significados e definições de “google”.\n7. Substituição de termos\nSe você quiser buscar um termo exato mas não lembra de alguma palavra, utilize o asterisco no lugar da mesma.\nExemplo: “google custom *”. Exibirá resultados exatos com “google custom” seguido de outro termo relevante.\n8. Termos em URLs\nSe você deseja buscar URLs que possuam determinados termos, utilize o comando “inurl:”.\nExemplo: “inurl:google”. Exibirá resultados em que a palavra “google” aparece em endereços de sites.\n9. Termos em títulos\nMuitas vezes buscamos termos no Google e somos levados à páginas que o possuem, mas somente em algum lugar insignificante da página como o rodapé ou pequenas citações. Para evitar isso, utilize o comando “intitle:” e busque apenas por termos em títulos.\n**Exemplo:**intitle:Google Discovery. Exibirá páginas que possuam Google e Discovery no título.\nVia: Júlio Câmara\n","permalink":"http://ricardomartins.com.br/aproveite-mais-o-google-search/","summary":"\u003cp\u003eAprenda a tirar proveito das funcionalidades do Google Search que talvez você não conhecia.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1. Calculadora\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eO Google é uma ótima calculadora e uma das coisas mais simples de se fazer nele é utilizar esse recurso, basta usar os sinais das operações correspondentes: + (soma), * (multiplicação), ^ (potenciação), / (divisão), etc.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eExemplos:\u003c/strong\u003e \u003cem\u003e2+2\u003c/em\u003e, \u003cem\u003e50*30\u003c/em\u003e, \u003cem\u003e24/8\u003c/em\u003e, etc.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. Termo exato\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003ePara buscar um termo exato no Google basta colocá-lo entre aspas.\u003c/p\u003e","title":"Aproveite mais o Google Search"},{"content":"Este documento é uma coleção de comandos Unix / Linux / BSD. São úteis para profissionais de TI ou para usuários avançados.\nUNIX Toolbox (Versão em PDF – 337K) Aproveito também para divulgar os links abaixo:\nTabela de macetes em linha de comandos para linux.\nComo usar o SSH para executar comandos em uma máquina remota.\nExecutando comandos em múltiplos servidores linux/unix.\nEntendendo as permissões do linux/unix.\nTécnicas avançadas de uso do comando find em sistemas linux/unix.\n","permalink":"http://ricardomartins.com.br/linuxunix-command-toolbox/","summary":"\u003cp\u003eEste documento é uma coleção de comandos Unix / Linux / BSD. São úteis para profissionais de TI ou para usuários avançados.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://cb.vu/unixtoolbox.pdf\"\u003eUNIX Toolbox (Versão em PDF – 337K) \u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eAproveito também para divulgar os links abaixo:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.pixelbeat.org/cmdline.html\"\u003eTabela de macetes em linha de comandos para linux.\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.cyberciti.biz/tips/distributed-administration-using-ssh.html\"\u003eComo usar o SSH para executar comandos em uma máquina remota.\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.cyberciti.biz/tips/execute-commands-on-multiple-linux-or-unix-servers.html\"\u003eExecutando comandos em múltiplos servidores linux/unix.\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.cyberciti.biz/tips/unix-linux-permissions.html\"\u003eEntendendo as permissões do linux/unix.\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.cyberciti.biz/tips/advanced-techniques-for-using-the-unixlinux-find-command.html\"\u003eTécnicas avançadas de uso do comando find em sistemas linux/unix\u003c/a\u003e.\u003c/p\u003e","title":"Linux/Unix Command Toolbox"},{"content":"Este post é uma continuação do post http://ricardomartins.com.br/bloqueando-sites-atraves-do-arquivo-hosts/ – Parte 2\nContinuando a série, estou hoje com a terceira parte.\nPensando em facilitar a vida dos leitores, criei dois scripts em bat. Um para bloquear os sites e outro para desbloquear automaticamente.\nBaixe os arquivos clicando abaixo:\n– Bloqueador\n– Desbloqueador\nO bloqueador, permite bloquear uma lista grande de sites já conhecidos e também permite adicionar sites específicos que você desaeja bloquear o acesso. Também permite exibir a lista de sites bloqueados.\nO Desbloqueador, permite facilmente que você remova um site que esteja bloqueado, caso o tenha feito por engano. O procedimento é simples: será aberta uma lista com os sites bloqueados, e você só precisará remover a linha do site correspondente.\nVale lembrar que existem diversos métodos para burlar esta proteção, através do uso de servidores Proxy e ferramentas similares, porém lembre-se que neste caso você pode aumentar a lista de sites bloqueados incluindo endereços Proxies.\nComo o nosso foco é auxiliar os pais no controle efetivo da internet nos sites que seus filhos acessam, estes métodos para burlar o bloqueio tornam-se mais difíceis de serem utilizados, visto que alguns exigem certo conhecimento técnico.\nPor hoje é só. Até a próxima.\n","permalink":"http://ricardomartins.com.br/bloqueando-sites-atraves-do-arquivo-hosts-parte-3/","summary":"\u003cp\u003eEste post é uma continuação do post \u003ca href=\"http://ricardomartins.com.br/bloqueando-sites-atraves-do-arquivo-hosts/\"\u003ehttp://ricardomartins.com.br/bloqueando-sites-atraves-do-arquivo-hosts/\u003c/a\u003e – Parte 2\u003c/p\u003e\n\u003cp\u003eContinuando a série, estou hoje com a terceira parte.\u003c/p\u003e\n\u003cp\u003ePensando em facilitar a vida dos leitores, criei dois scripts em bat. Um para bloquear os sites e outro para desbloquear automaticamente.\u003c/p\u003e\n\u003cp\u003eBaixe os arquivos clicando abaixo:\u003c/p\u003e\n\u003cp\u003e– \u003ca href=\"http://www.ricardomartins.com.br/arquivos/Bloqueia.zip\"\u003eBloqueador\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e– \u003ca href=\"http://www.ricardomartins.com.br/arquivos/Desbloqueia.zip\"\u003eDesbloqueador\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eO bloqueador, permite bloquear uma lista grande de sites já conhecidos e também permite adicionar sites específicos que você desaeja bloquear o acesso. Também permite exibir a lista de sites bloqueados.\u003c/p\u003e","title":"Bloqueando sites através do arquivo HOSTS - Parte 3"},{"content":"\nUm Firewall é uma ‘passagem’ (“gateway”) que restringe e controla o fluxo do tráfego de dados entre redes, mais comumente entre uma rede empresarial interna e a Internet. Os Firewalls podem também estabelecer passagens seguras entre redes internas. Por exemplo, imagine uma instalação militar hipotética que tenha duas redes, uma para informações não confidenciais e a outra conectada a sistemas estratégicos de defesa. Um Firewall muito eficiente deve ser instalado para assegurar que apenas usuários autorizados tenham acesso a rede mais restrita.\nCastelos e suas fortificações são comumente usados em analogia na descrição dos mecanismos de defesa de um sistema de Firewalls. Um castelo é projetado para proteger as pessoas do lado de dentro dos ataques e tentativas de invasão vindas do lado de fora. Existe portanto, um perímetro de defesa que mantém os atacantes o mais afastados quanto possível. (paredes externas, fossos, crocodilos, etc). O portão do castelo é o ‘posto de controle’ por onde as pessoas e suprimentos devem passar para poder entrar ou sair do castelo. É o ponto de maior concentração de recursos de defesa do castelo.\nO Firewall é esse ‘posto de controle’ das redes internas que, de forma ativa, inspeciona e controla o fluxo do tráfego de dados entre as redes. No caso de um Firewall com Proxy, o tráfego nunca transita livremente entre as redes. Ao invés disso o Proxy ‘re-empacota’ (ou mascara) as requisições e as respostas. Nenhum Servidor interno é acessado diretamente de uma rede externa e nenhum Servidor externo é acessado diretamente a partir da rede interna. Pense nas pessoas dentro do castelo. Durante os tempos de tensão, eles podem preferir manter-se dentro do castelo e usar os ‘agentes proxy’ (representantes) para cuidar de seus interesses e necessidades fora do castelo.\nParte de um projeto confiável de uma rede conectada na Internet é a criação de uma ‘zona desmilitarizada’ ou DMZ (demilitarized zone) que é justamente uma rede parcialmente protegida que se localiza entre a rede protegida e a rede desprotegida. A DMZ é protegida por um sistema de defesa perimetral, muito semelhante aos muros externos e fossos dos castelos. Imagine a praça de comércio de um castelo. Nos tempos medievais, as pessoas da região e comerciantes podiam entrar nessa área do castelo com certa facilidade para entregar e retirar mercadorias. À noite, os portões eram fechados e os mantimentos trazidos para dentro do castelo, normalmente após uma inspeção rigorosa. Os guardas eram posicionados nos portões do castelo durante o dia para inspecionar todas as pessoas que entram e saem do castelo. Se arruaceiros eram localizados tentando entrar no castelo, eles os impediam e os botavam para fora.\nA DMZ segue exatamente essa analogia. Os usuários de Internet podem entrar livremente na DMZ para acessar Servidores WEB Públicos (Sites comuns), enquanto que os roteadores de alerta localizados nos pontos de acesso filtram todo o tráfego não permitido, como por exemplo, inundações de pacotes de dados vindos de Hackers que tentam impedir o funcionamento do sistema por saturação (Ataques do tipo DoS – Deny of Service ou Negação de Serviço). Ao mesmo tempo a rede interna privada está protegida por Firewalls altamente seguros. Dentro dos muros do castelo existia a ‘torre principal’, que era uma estrutura altamente segura que proporcionava a última defesa contra os atacantes.\nInteressantemente, os castelos se mostraram estruturas altamente capazes de resistir aos ataques até a aparição dos canhões. No século 16, Essex e Cromwell derrotaram muitos castelos na Irlanda com pouca milícia. Eles simplesmente estouravam os parapeitos na parte superior dos castelos para que se tornassem indefensáveis e aí então escalavam suas paredes. Comparativamente, que tipos de armas nossas defesas das redes irão enfrentar? Os Firewalls se tornaram equipamentos bastante sofisticados com o passar dos anos, mas eles não constituem uma solução única e absoluta. Eles consistem apenas um dos diversos recursos necessários disponíveis para os administradores de segurança da rede.\nObserve:\nUm Firewall pode ser composto de diversos componentes, incluindo um Roteador, um servidor Gateway e um Servidor de Autenticação. Um Firewall monitora o tráfego que entra e que sai e filtra, redireciona, re-empacota e/ou rejeita pacotes. Esses pacotes podem ser filtrados com base em seus IPs de origem e destino, porta TCP de origem e destino, número total (ou serie ?) de bits do cabeçalho do TCP e assim por diante.\nNo caso de um Firewall do tipo Proxy, o Firewall é o endereço de destino de todas as conexões que saem e entram. Possui a capacidade de executar amplas varreduras de segurança e validação nos pacotes por ele processados. Os Proxys executam versões de softwares e protocolos testados extensivamente e livres de mal-funcionamentos (bugs).\nOs Firewalls podem fazer cumprir as políticas de segurança de uma organização através da filtragem de todo o tráfego que sai e entra na empresa, garantindo que o mesmo está dentro dos parâmetros de segurança pré-estabelecidos pelas políticas de uso da rede. Recursos sofisticados de auditoria, detecção de intrusos e metodologias de autenticação são hoje parte da maioria dos Firewalls comerciais.\nA RFC 2979, “O Comportamento e os Requisitos dos Firewalls de Internet (Behavior of and Requirements for Internet Firewalls) de Outubro de 2000 descreve outras características dos Firewalls.\nOs Hackers e os agressores estão crescendo constantemente em número, em agressividade e evoluindo em conhecimento. Em 2000, a China anunciou que não teria como se manter no nível dos EUA militarmente e que, portanto, ameaçou o financiamento de uma guerra de ‘tecnologia da informação’ contra os Estados Unidos. Os sistemas de computadores das instalações militares estão sob ataques constantes, sejam eles sofisticados ou ordinários. Quantos intrusos não detectados poderão existir nesses sistemas ?\nPor exemplo, um agressor pode planejar um ataque com antecedência usando técnicas de e-mails infectados com vírus para introduzir os chamados ‘programas zumbis’ em centenas ou milhares de computadores de usuários comuns (e inocentes dentro do contexto do ataque), muitos dentro de sua própria rede (usuários locais). Esses programas zumbis são programados para despertar num determinado momento e começar a promover ataques contra outros sistemas. O verdadeiro agressor não pode ser identificado porque os ataques são originados de computadores inocentes por toda a Internet. Toda a Internet pode se tornar uma grande arma apontada para a sua rede privada.\nEm função dessas ameaças, os Firewalls são necessários em praticamente todo computador conectado à Internet, especialmente os conectados constantemente como é o caso das conexões ADSL (ex. Speedy, Velox, BrTurbo, etc) e cabo (ex. Virtua / AJato, etc), para citar os mais comuns no Brasil. Uma instalação domiciliar comum interliga dois computadores (o dos pais e o das crianças) para que ambos possam usufruir de uma mesma conexão ADSL ou cabo. Considerando que essa conexão está constantemente ligada, ela possui um número de IP contínuo que é publicado / divulgado como se fosse uma bandeira na Internet. Os Hackers descobrem o IP mais cedo ou mais tarde e voltam constantemente para examinar e descobrir as brechas até serem capazes de danificar os sistemas. Os Firewalls são projetados para proteger esses ’sistemas’ (rede como um todo) ao mesmo tempo que minimizam a complexidade da configuração.\nTerminologias do Firewall\nA padronização da termologia usada nos Firewall ajuda na compreensão das tecnologias envolvidas nos Firewalls. A RFC 2647, “Termologias de Benchmarking para Performance de Firewall (Benchmarking Terminology for Firewall Performance)” (Agosto 1999) é um dos documentos que tentam estabelecer essa terminologia. Os termos mais importantes que ele descreve são destacados abaixo. Para uma descrição mais completa desses termos, sugerimos a consulta a essa RFC. A lista abaixo foi reordenada para aumentar sua clareza e alguns termos foram substituídos para agregar maior consistência.\nFirewall » Um dispositivo (ou grupo de dispositivos) que força a adoção de políticas de segurança em redes. Os Firewalls conectam redes protegidas ou desprotegidas, ou suporta redes de 3 segmentos, o que permite a criação das redes DMZ\nRedes Protegidas » Um ou mais segmentos de rede no qual o acesso é controlado. As redes protegidas são muitas vezes chamadas de ‘redes internas’, mas a RFC 2647 estipula que o termo é inapropriado porque os Firewalls estão sendo adotados de forma crescente dentro das redes das empresas, onde, por definição, todos os segmentos de rede são ‘redes internas’. Isso vem da conscientização de que os ataques, ou acessos indevidos podem vir de dentro da própria empresa (usuários locais).\nRedes Desprotegidas » Um ou mais segmentos de rede em que o acesso não é controlado pelo Firewall.\nZona Desmilitarizada (DMZ) » (Do Inglês ‘Demilitarized Zone’ (DMZ) ) É o segmento, ou segmentos, de rede localizado entre as redes protegidas e desprotegidas. A DMZ pode não ser conectada a uma rede protegida. A DMZ pode também incluir sistemas de defesa perimetrais. Por exemplo, a DMZ pode ser construída para que se assemelhe (ou simule) a rede protegida, induzindo os hackers à armadilhas virtuais que auditam suas ações de modo a se tentar localizar a origem (localização na Internet) do ataque.\nFirewall de Base Dupla » É um Firewall com duas interfaces, uma conectada na rede protegida e outra conectada na rede desprotegida.\nFirewall de Base Tripla (ou 3 Segmentos) » É um Firewall que pode ser conectado a três segmentos de rede. A rede protegida, a DMZ e a rede desprotegida.\nProxy » É uma requisição para uma conexão feita em nome de um servidor. O servidor Proxy, ou simplesmente Proxy, localiza-se entre a rede protegida e a rede desprotegida. Pense numa área de quarentena onde as pessoas internas usam um telefone para se comunicar com as pessoas de fora. Todas as conexões externas direcionadas a essa região interna do Proxy (protegida) terminam no próprio Proxy. Isso elimina efetivamente o roteamento de IP entre as redes. O Proxy re-empacota as mensagens na forma de novos pacotes que possuem permissão de trafegar na porção protegida da rede. Da mesma forma, ele re-empacota as mensagens internas destinadas aos endereços externos à rede protegida em pacotes que possuem o endereço do próprio Proxy como sendo o endereço de origem da mensagem, no lugar da origem verdadeira (interna). Mais importante que tudo isso, o Proxy inspeciona e filtra todo o tráfego que passa por ele. As regras predefinidas são usadas para determinar que tráfego deve ser encaminhado para fora e que tráfego deve ser bloqueado. Existem dois tipos básicos de Proxy: Software de software, ou aplicação e Circuitos de Proxy.\nTradução de Endereços de Rede (NAT) » (Do Inglês ‘ Network Address Translation (NAT) ‘) é um método de mapear a transposição de um ou mais endereços de IP internos e reservados em um ou mais endereços de IP públicos. O NAT foi criado para conservar as quantidades de endereços IPv4 e se referir a um bloco específico de endereços IP que nunca são reconhecidos ou roteados para a Internet. Com ele e possível a definição de esquemas próprios de IP dentro das redes. Um dispositivo NAT traduz entre endereços internos e externos, e comumente é usado combinado com serviços Proxy. Esses dispositivos são implementados em Firewalls para dar suporte aos esquemas de endereços particulares como definido na RFC 1918.\nSoftware de Proxy » É um servico de Proxy que é configurado e implementado em função das especificações do usuário, em contrapartida a existência de configurações estáticas (que é o caso dos Circuitos de Proxy). O software de Proxy executa todas as funções necessárias de um Proxy, mas para aplicações específicas. Em contraste, um Proxy básico executa filtragens genéricas de pacotes. Um Software de Proxy somente processa pacotes relacionados as aplicações que ele suporta. Se o Proxy não é preparado para determinados tipos de programas, os pacotes provenientes de ou para os mesmos são descartados. Os pacotes são transferidos somente após a conexão se estabelecer, que por sua vez depende de autenticação e autorização.\nCircuitos de Proxy » É um serviço Proxy que define de forma estática qual tráfego será transferido. É uma função especialmente desenhada e executada por Softwares de Proxy, usualmente definida para dar suporte a conexões entre usuários internos e servidores externos. Os pacotes são re-transmitidos sem que seja executado nenhum processamento extenso ou filtros sobre os mesmos pois esses pacotes são oriundos de usuários internos (logo possuem origem confiável) e são direcionados a endereços externos. Entretanto, os pacotes que retornam em resposta aos enviados são extensivamente examinados e filtrados.\nPolíticas » É o documento que define as permissões de acesso para a rede protegida, DMZ e a rede desprotegida. As políticas de segurança definem as diretrizes do que não é permitido ser acessado na rede.\nConjunto de Regras » É o conjunto de regras de controle de acesso que determinam quais pacotes são re-transmitidos e quais são ignorados.\nTráfego permitido » São os pacotes que resultam da aplicação do conjunto de Regras.\nTráfego Ilegal » Pacotes que possuem rejeição especificada no conjunto de regras.\nTráfego Rejeitado » Pacotes que são descartados em função da aplicação de um conjunto de regras.\nAutenticação » É o processo de verificação de que o usuário que requer acesso a rede é realmente quem ele se diz ser. A entidade sendo autenticada pode ser um computador específico ou um usuário específico, de forma que a autenticação pode ser baseada na verificação do IP de origem, porta TCP ou UDP, senhas, e outras formas avançadas de identificação como os cartões tipo TOKEN e biometria.\nAssociação de Seguranças » É o conjunto de informações de segurança atribuído para uma conexão, ou conjunto de conexões, específicas. Essa definição cobre o relacionamento entre as políticas e as conexões. Essas associações podem se estabelecer durante o estabelecimento da conexão e podem ser reiteradas ou revogadas durante a conexão.\nFiltro de Pacotes » É o processo de controle de acesso através do exame dos pacotes baseados no conteúdo dos cabeçalhos dos mesmos. As informações de cabeçalho, como endereços de IP e número da porta TCP, são examinados e comparados com o conjunto de regras, definindo-se então se o mesmo é autorizado ou bloqueado.\nFiltro de Pacotes Estático » É o processo de re-transmissão ou bloqueio de tráfego baseado no conteúdo de uma tabela fixa gerenciada pelo Firewall. Quando usado, os pacotes só são re-transmitidos se pertencerem a uma conexão que foi previamente estabelecida e que está sendo ‘vigiada’ pela tabela estática.\nRegistro (Logging) » É o registro das requisições feitas pelos usuários ao Firewall. Todas as requisições são tipicamente registradas, incluindo as autorizações, os bloqueios e as rejeições. Um sistema de detecção de invasões e intrusos monitora de forma ativa os pontos de acesso para detectar hackers e rastrear o seu progresso.\nSOCKS » É um Circuito de Firewall que tenta garantir um canal seguro entre dois pontos de endereço TCP/IP. Tipicamente, um cliente de acesso a WEB localizado na parte interna de uma rede que quer acessar o servidor WEB externo (na Internet, em outro segmento de rede da mesma empresa ou outra parte da intranet). O SOCKS proporciona serviços de Firewall, assim como auditoria, gerenciamento, tolerância a falhas e outros recursos.\nA maioria dos Firewalls também executam autenticações para verificar a identidade dos usuários ou processos. O serviço RADIUS é o mais comumente usado para isso. É o mesmo serviço de autenticação usado para redes do tipo dial-up (conexão por linha telefônica discada convencional), seja ela para acesso a rede de uma empresa ou conexão com um provedor de acesso a Internet. Através da autenticação dos usuários, o Firewall passa a possuir informações adicionais para a filtragem de pacotes. Por exemplo, ele pode autorizar que somente usuários específicos acessem determinados serviços. Os Firewalls modernos também suportam VPNs, que proporcionam ‘túneis’ virtuais seguros entre o Firewall e o usuário remoto através da Internet. O Firewall autentica o usuário, codifica todas as informações e assegura sua integridade através do uso das assinaturas digitais.\nRicardo Macedo Martins\n","permalink":"http://ricardomartins.com.br/mas-enfim-o-que-e-um-firewall/","summary":"\u003cp\u003e\u003ca href=\"/wp-content/uploads/2009/03/18-03-2009-214642.jpg\"\u003e\u003cimg alt=\"Firewall\" loading=\"lazy\" src=\"/wp-content/uploads/2009/03/18-03-2009-214642.jpg\" title=\"Firewall\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eUm Firewall é uma ‘passagem’ (“gateway”) que restringe e controla o fluxo do tráfego de dados entre redes, mais comumente entre uma rede empresarial interna e a Internet. Os Firewalls podem também estabelecer passagens seguras entre redes internas. Por exemplo, imagine uma instalação militar hipotética que tenha duas redes, uma para informações não confidenciais e a outra conectada a sistemas estratégicos de defesa. Um Firewall muito eficiente deve ser instalado para assegurar que apenas usuários autorizados tenham acesso a rede mais restrita.\u003c/p\u003e","title":"Mas enfim, o que é um firewall ?"},{"content":"Você odeia usuários que colocam espaço no nome de arquivos, causando diversos problemas em qualquer tipo de script que você tenha? Bom, este pequeno one-liner elimina a necessidade de gerar um shell script para efetuar esta mudança …\nfor i in $1 ; do mv \u0026#34;$i\u0026#34; `echo $i | sed \u0026#39;s/ /_/g\u0026#39;` ; done o echo $i | sed ‘s/ /_/g’ é cercado por aspas simples e não por aspas duplas.\n","permalink":"http://ricardomartins.com.br/convertando-espacos-para-underscore/","summary":"\u003cp\u003eVocê odeia usuários que colocam espaço no nome de arquivos, causando diversos problemas em qualquer tipo de script que você tenha? Bom, este pequeno one-liner elimina a necessidade de gerar um shell script para efetuar esta mudança …\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e i in \u003cspan class=\"nv\"\u003e$1\u003c/span\u003e \u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003edo\u003c/span\u003e mv \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$i\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"sb\"\u003e`\u003c/span\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"nv\"\u003e$i\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e sed \u003cspan class=\"s1\"\u003e\u0026#39;s/ /_/g\u0026#39;\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e \u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003edone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eo echo $i | sed ‘s/ /_/g’ é cercado por aspas simples e não por aspas duplas.\u003c/p\u003e","title":"Convertando espaços para underscore"},{"content":"Se você precisa de um mapa da sua rede, o lanmap pode ser a solução. Para instalar ele basta digitar na linha de comando:\nsudo apt-get install lanmap Depois, basta chama-lo com o comando:\nsudo lanmap -i eth0 -r 30 -T png -o /tmp/ Ele irá varrer sua rede e gerar um arquivo chamado lanmap.png na pasta indicada no comando (no nosso caso, a pasta /tmp/), será algo parecido com esta figura.\nPara mais detalhes consulte a man page do programa ou os endereços abaixo:\nhttp://www.ubuntugeek.com/lanmap-network-discovery-tool-that-produces-nice-2d-images.html\nhttp://www.vivaolinux.com.br/dicas/verDica.php?codigo=9529\nhttp://parseerror.com/lanmap/\nAutor: Edivaldo Brito\n","permalink":"http://ricardomartins.com.br/mapa-automatico-da-rede-lanmap-e-a-solucao/","summary":"\u003cp\u003eSe você precisa de um mapa da sua rede, o lanmap pode ser a solução. Para instalar ele basta digitar na linha de comando:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt-get install lanmap\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eDepois, basta chama-lo com o comando:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo lanmap -i eth0 -r \u003cspan class=\"m\"\u003e30\u003c/span\u003e -T png -o /tmp/\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eEle irá varrer sua rede e gerar um arquivo chamado lanmap.png na pasta indicada no comando (no nosso caso, a pasta /tmp/), será algo parecido com \u003ca href=\"/wp-content/uploads/2009/03/18-03-2009-213453.jpg\"\u003eesta figura\u003c/a\u003e.\u003c/p\u003e","title":"Mapa automático da rede? Lanmap é a solução."},{"content":"Esse post é uma atualização do post “Bloqueando sites na unha – Parte 1″\nHá um programa muito bom pra gerenciar o HOST do windows (inclusive o próprio software tem uma lista negra dele que bloqueia milhares de sites, você baixa e carrega o mesmo se quiser). Mas como (acredito eu) não vem ao caso o programa lhe possibilita também criar sua própria lista de bloqueio, sendo assim também possível copiar o arquivo e usar este software em outras maquinas fazendo o mesmo processo (sem ter que editar como você faria apenas na primeira).\nO nome do programa é HOSTS MANAGER, a página oficial do desenvolvedor do programa é essa:\nhttp://www.bluetack.co.uk/forums/index.php?autocom=faq\u0026amp;CODE=02\u0026amp;qid=16\nMas vale lembrar que mesmo bloqueando um site no HOST ainda é possível acessá-lo por sites com serviço de Proxy, como o exemplo do site abaixo:\nhttp://wildproxy.net/\nO programa é em inglês, mas apesar disso é super facil usá-lo.\nSó pra complementar, aqui vai uma screenshot do programa.\nLeia também a continuação deste post em http://ricardomartins.com.br/2009/03/27/bloqueando-sit…-hosts-parte-3bloqueando-sites-atraves-do-arquivo-hosts-parte-3/\n","permalink":"http://ricardomartins.com.br/bloqueando-sites-atraves-do-arquivo-hosts/","summary":"\u003cp\u003eEsse post é uma atualização do post “\u003ca href=\"http://ricardomartins.com.br/2009/02/20/bloqueando-sites-na-unha/\"\u003eBloqueando sites na unha\u003c/a\u003e – Parte 1″\u003c/p\u003e\n\u003cp\u003eHá um programa muito bom pra gerenciar o HOST do windows (inclusive o próprio software tem uma lista negra dele que bloqueia milhares de sites, você baixa e carrega o mesmo se quiser). Mas como (acredito eu) não vem ao caso o programa lhe possibilita também criar sua própria lista de bloqueio, sendo assim também possível copiar o arquivo e usar este software em outras maquinas fazendo o mesmo processo (sem ter que editar como você faria apenas na primeira).\u003c/p\u003e","title":"Bloqueando sites através do arquivo HOSTS - Parte 2"},{"content":"O Título parece estranho, mas logo vão entender melhor…\nHá alguns dias eu precisei acessar uma máquina remotamente, porém para seguir as tradições de Murphy, as máquinas mais distantes estão sempre com a opção de Área de trabalho remota desabilitada. Então eu comecei a fuçar o registro e encontrei uma maneira. Vamos lá:\nO primeiro passo é abrir o regedit na sua máquina local. Depois abra o menu arquivo e escolha “Conectar registro da rede”\nDepois insira o nome ou ip da máquina que deseja se conectar\nInsira o nome de usuário e senha de administrador da máquina e ao dar OK, você estará no registro da máquina remota.\nAgora vá até a chave HKLM/SYSTEM/CurrentControlSet/Control/Terminal Server e mude o valor do Dword fDenyTSConnections para 0\nFeche o registro e agora à partir do prompt reinicie a máquina remotamente para que as alterações tenham efeito: shutdown -m 192.168.1.10 –r –t 0\nEm seguida, pode conectar normalmente na máquina pelo Remote Desktop (mstsc.exe)\nObservação importante: Você só conseguirá se conectar ao registro remotamente se o serviço “Registro Remoto” estiver rodando. Se você ou algum usuário da máquina nunca mecheu nele, não se preocupe, pois por padrão ele já fica configurado para iniciar automaticamente. Caso contrário, não vai ter jeito, você vai precisar se deslocar até a máquina.\n","permalink":"http://ricardomartins.com.br/habilitando-remote-desktop-atraves-do-registro-remotamente/","summary":"\u003cp\u003eO Título parece estranho, mas logo vão entender melhor…\u003c/p\u003e\n\u003cp\u003eHá alguns dias eu precisei acessar uma máquina remotamente, porém para seguir as tradições de Murphy, as máquinas mais distantes estão sempre com a opção de Área de trabalho remota desabilitada. Então eu comecei a fuçar o registro e encontrei uma maneira. Vamos lá:\u003c/p\u003e\n\u003cp\u003eO primeiro passo é abrir o regedit na sua máquina local. Depois abra o menu arquivo e escolha \u003ca href=\"/wp-content/uploads/2009/03/1.jpg\"\u003e“Conectar registro da rede”\u003c/a\u003e\u003c/p\u003e","title":"Habilitando Remote Desktop através do Registro remotamente"},{"content":"Acabei de ser indicado pelo site GotchaIT ao selo “Olha que blog maneiro”.\nEste selo significa que este é um blog maneiro (que maravilha) e que a partir de agora devo seguir algumas regrinhas. Uma delas é indicar mais alguns blogs para o selo com o intuito de aumentar a publicidade e você sabe, é aquele famoso “meme”.\n1 – Exiba a imagem do selo “Olha Que Blog Maneiro” Que você acabou de ganhar!!!\n2 – Poste o link do blog que te indicou.\nhttp://www.gotchait.com/\n3 – Indique 10 blogs de sua preferência:\nEstão em ordem alfabética e não de preferência:\n– Ataliba Teixeira\n– Aurélio\n– E-Mundoz\n– Nerdson\n– Olhômetro\n– O Velho\n– Plínio Torres\n– StartAPP\n– Tales Azevedo\n– Transeunte\n4 – Avise seus indicados\n5 – Publique as regras\n6- Confira se os blogs indicados repassaram o selo e as regras\n7- Envie sua foto ou de um(a) amigo(a) para olhaquemaneiro@gmail.com juntamente com os 10 links dos blogs indicados para verificação. Caso os blogs tenham repassado o selo e as regras corretamente, dentro de alguns dias você receberá 1 caricatura em P\u0026amp;B.\n","permalink":"http://ricardomartins.com.br/selo-olha-que-blog-maneiro/","summary":"\u003cp\u003eAcabei de ser indicado pelo site GotchaIT ao selo “Olha que blog maneiro”.\u003c/p\u003e\n\u003cp\u003eEste selo significa que este é um blog maneiro (que maravilha) e que a partir de agora devo seguir algumas regrinhas. Uma delas é indicar mais alguns blogs para o selo com o intuito de aumentar a publicidade e você sabe, é aquele famoso “meme”.\u003c/p\u003e\n\u003cp\u003e1 – Exiba a imagem do selo “Olha Que Blog Maneiro” Que você acabou de ganhar!!!\u003c/p\u003e","title":"Selo Olha que blog maneiro"},{"content":"Essa dica é para você que tem um filho pequeno em casa, empregados espertinhos na sua pequena rede do trabalho, e precisa bloquear alguns sites de maneira rápida e fácil, sem muita complicação.\nExiste um método mais “completo” de bloqueio de sites através do já citado aqui OpenDNS. Caso você não saiba do que eu estou falando e se interessou, basta acessar aqui.\nAgora vamos ao que interessa.\nNesta dica, vou ensinar como bloquear sites através do próprio arquivo hosts de seu sistema operacional. que funciona de forma semelhante à um DNS, porém muito limitado, pois você não tem como colocar lá todos os endereços ip e todos os nomes de todos os sites da internet.\nComo o seu navegador olha primeiro para o seu arquivo hosts antes de ir procurar algo na internet, basta você apontar o nome de um site que deseja bloquear para o seu ip de localhost, assim toda vez que alguem tentar acessar este site, o seu browser vai procurar o site na sua própria máquina, consequentemente, não conseguirá abrir nada e pdoemos dizer que teve o seu acesso bloqueado.\nA dica é simples, você pode fazer de duas formas.\n1. Manualmente adicione ao seu arquivo /etc/hosts o ip 127.0.0.1 (localhost) apontando para o site que deseja bloquear o acesso.\n127.0.0.1 www.orkut.com\n127.0.0.1 www.youtube.com\n2. Criando um arquivo .bat que automatize esta tarefa para você:\n* Lembre – se que para criar o arquivo .bat, basta abrir o seu notepad, colar as linhas abaixo nele e depois salvar como teste.bat (ou o nome que você preferir .bat)\n@echo off Attrib -r -s -h %WINDIR%/system32/driversetc/hosts echo 127.0.0.1 www.orkut.com \u0026gt;\u0026gt; %SystemRoot%/system32/driversetc/hosts echo 127.0.0.1 www.youtube.com \u0026gt;\u0026gt; %SystemRoot%/system32/driversetc/hosts Attrib +r +h %WINDIR%/system32/driversetc/hosts Outra forma fácil de bloquear conteúdos web é com softwares de filtragem de conteúdo. Com um software deste tipo, qualquer administrador de rede detém as ferramentas específicas para bloquear sites que em geral não são apropriados e, claro, de material sexualmente explícito. Filtros de conteúdo da Web normalmente são muito simples de instalar e, na maior parte, trabalham bem. Alguns dos principais softwares de filtro de conteúdo disponíveis são: Cyber Patrol, Net Nanny, Surf Control e Websense.\nNote-se que não há nenhuma maneira de bloquear tudo explícito o conteúdo da web. Embora a maioria dos navegadores da web e de ajustes de software de filtragem deve bloquear a grande maioria dos conteúdos explícitos, pode haver momentos em que irá passar sorrateiramente através de conteúdos inadequados.\nPor hoje é só ! Até a próxima.\nLeia também a continuação deste post em http://ricardomartins.com.br/2009/03/19/bloqueando-sites-atraves-do-arquivo-hosts/ – Parte 2\n","permalink":"http://ricardomartins.com.br/bloqueando-sites-na-unha/","summary":"\u003cp\u003eEssa dica é para você que tem um filho pequeno em casa, empregados espertinhos na sua pequena rede do trabalho, e precisa bloquear alguns sites de maneira rápida e fácil, sem muita complicação.\u003c/p\u003e\n\u003cp\u003eExiste um método mais “completo” de bloqueio de sites através do já citado aqui OpenDNS. Caso você não saiba do que eu estou falando e se interessou, basta acessar \u003ca href=\"http://ricardomartins.com.br/2008/12/07/voce-conhece-o-opendns/\"\u003eaqui\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eAgora vamos ao que interessa.\u003c/p\u003e\n\u003cp\u003eNesta dica, vou ensinar como bloquear sites através do próprio arquivo hosts de seu sistema operacional. que funciona de forma semelhante à um DNS, porém muito limitado, pois você não tem como colocar lá todos os endereços ip e todos os nomes de todos os sites da internet.\u003c/p\u003e","title":"Bloqueando sites  na unha - Parte 1"},{"content":"Se você lida com linhas de comando no Linux, e não é necessariamente um ninja no assunto, vai gostar de conhecer o Command-line-fu.\nUma verdadeira coleção de linhas de comando comentadas, onde você também pode registrar as suas e formar sua coleção de comandos favorita. Show!\nFonte: Shell City / O Velho\n","permalink":"http://ricardomartins.com.br/procurando-e-guardando-linhas-de-comando/","summary":"\u003cp\u003eSe você lida com linhas de comando no Linux, e não é necessariamente um ninja no assunto, vai gostar de conhecer o \u003ca href=\"http://www.commandlinefu.com/\"\u003eCommand-line-fu\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2009/02/command-line_fu.jpg\"\u003e\u003cimg alt=\"command-line_fu\" loading=\"lazy\" src=\"/wp-content/uploads/2009/02/command-line_fu.jpg\" title=\"command-line_fu\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eUma verdadeira coleção de linhas de comando comentadas, onde você também pode registrar as suas e formar sua coleção de comandos favorita. Show!\u003c/p\u003e\n\u003cp\u003eFonte: \u003ca href=\"http://shellcity.net/\"\u003eShell City\u003c/a\u003e / \u003ca href=\"http://www.ovelho.com/\"\u003eO Velho\u003c/a\u003e\u003c/p\u003e","title":"Procurando e guardando linhas de comando"},{"content":"Essa dica tem origem em um problema que tive no meu trabalho ao precisar baixar o conteúdo de um site.\nNo meu trabalho, não tenho acesso de administrador à máquina que utilizo e pra piorar ainda existe um proxy para realizar a conexão com a internet. Estava eu aqui precisando baixar um site inteiro e pensando e pesquisando no google, juntando os resultados que obtive aqui e alí, encontrei uma forma para resolver o meu problema.\nPrimeiro baixe o Wget for Windows em http://users.ugent.be/~bpuype/wget/.\nDepois de baixar, descompacte o arquivo zip. Através do prompt de comando, entre na pasta onde descompactou o wget e depois siga os comandos abaixo:\nInforme ao wget que deseja usar proxy: wget --proxy=on Configure o endereço do seu proxy e a porta como uma variável de ambiente chamada “http_proxy” no windows: set http_proxy=http://129.20.9.217:8080 Faça o download do que deseja, passando o usuário e a senha do proxy: wget --proxy-user=\u0026#34;usuario\u0026#34; --proxy-passwd=\u0026#34;senha\u0026#34; -r http://www.enderecodosite.com.br/arquivo.zip Espero que seja útil ! E que quem mais precisar de algo similar, não precise levar tanto tempo por aí procurando como fazaer isto, pois além de incompletas, aslgumas dicas da internet não funcionam.\n","permalink":"http://ricardomartins.com.br/usando-o-wget-atraves-de-proxy-no-windows/","summary":"\u003cp\u003eEssa dica tem origem em um problema que tive no meu trabalho ao precisar baixar o conteúdo de um site.\u003c/p\u003e\n\u003cp\u003eNo meu trabalho, não tenho acesso de administrador à máquina que utilizo e pra piorar ainda existe um proxy para realizar a conexão com a internet. Estava eu aqui precisando baixar um site inteiro e pensando e pesquisando no google, juntando os resultados que obtive aqui e alí, encontrei uma forma para resolver o meu problema.\u003c/p\u003e","title":"Usando o Wget através de Proxy no Windows"},{"content":"Esse guia demonstra como você pode criar discos de inicialização USB de várias distribuições Linux utilizando o UNetbootin, algo útil se você desejar instalar uma distribuição Linux em um computador sem drive de CD/DVD…\nhttp://www.howtoforge.com/creating-usb-startup-disks-from-various-linux-distributions-with-unetbootin\nFonte: Linux Security\n","permalink":"http://ricardomartins.com.br/utilizando-o-unetbootin-para-criar-discos-de-inicializacao-usb/","summary":"\u003cp\u003eEsse guia demonstra como você pode criar discos de inicialização USB de várias distribuições Linux utilizando o UNetbootin, algo útil se você desejar instalar uma distribuição Linux em um computador sem drive de CD/DVD…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.howtoforge.com/creating-usb-startup-disks-from-various-linux-distributions-with-unetbootin\"\u003ehttp://www.howtoforge.com/creating-usb-startup-disks-from-various-linux-distributions-with-unetbootin\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFonte: Linux Security\u003c/p\u003e","title":"Utilizando o UNetbootin para criar discos de inicialização USB"},{"content":"Esse tutorial demonstra como realizar backup e restore de discos rígidos e partições com o CloneZilla Live, um Live-CD Linux que contém diversas ferramentas para clonagem e backup, similar ao Norton Ghost…\nhttp://www.howtoforge.com/back-up-restore-hard-drives-and-partitions-with-clonezilla-live\n","permalink":"http://ricardomartins.com.br/backup-e-restore-em-discos-rigidos-e-particoes-com-clonezilla-live/","summary":"\u003cp\u003eEsse tutorial demonstra como realizar backup e restore de discos rígidos e partições com o CloneZilla Live, um Live-CD Linux que contém diversas ferramentas para clonagem e backup, similar ao Norton Ghost…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.howtoforge.com/back-up-restore-hard-drives-and-partitions-with-clonezilla-live\"\u003ehttp://www.howtoforge.com/back-up-restore-hard-drives-and-partitions-with-clonezilla-live\u003c/a\u003e\u003c/p\u003e","title":"Backup e restore em discos rígidos e partições com CloneZilla Live"},{"content":"O Unison é uma ferramenta para sincronização de arquivos Unix e Windows, permitindo a replicação de arquivos e diretórios gravados em diferentes hosts… Artigo disponibilizado pela UbuntuGeek…\nhttp://www.ubuntugeek.com/unison-file-synchronization-tool.html\n","permalink":"http://ricardomartins.com.br/unison-ferramenta-para-sincronizacao-de-arquivos/","summary":"\u003cp\u003eO Unison é uma ferramenta para sincronização de arquivos Unix e Windows, permitindo a replicação de arquivos e diretórios gravados em diferentes hosts… Artigo disponibilizado pela UbuntuGeek…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.ubuntugeek.com/unison-file-synchronization-tool.html\"\u003ehttp://www.ubuntugeek.com/unison-file-synchronization-tool.html\u003c/a\u003e\u003c/p\u003e","title":"Unison: Ferramenta para sincronização de arquivos"},{"content":"Então, você é um pão duro demais para comprar um roteador caro e quer fazer as coisas sozinho. Então você encontrou o tutorial correto! Ele irá mostrar-lhe como configurar um roteador com Ubuntu 8.10 NAT, port fowarding, um servidor DNS e um servidor DHCP.\nConfigura no endereço: http://www.howtoforge.com/nat-gateway-iptables-port-forwarding-dns-and-dhcp-setup-ubuntu-8.10-server\n","permalink":"http://ricardomartins.com.br/configuracao-de-gateway-iptables-port-forwarding-dns-e-dhcp-no-ubuntu-server-810/","summary":"\u003cp\u003e\u003cspan onmouseout=\"_tipoff()\" onmouseover=\"_tipon(this)\"\u003eEntão, você é um pão duro demais para comprar um roteador caro e quer fazer as coisas sozinho.\u003c/span\u003e Então você encontrou o tutorial correto! \u003cspan onmouseout=\"_tipoff()\" onmouseover=\"_tipon(this)\"\u003e\u003cspan class=\"google-src-text\" style=\"direction: ltr; text-align: left;\"\u003eEle \u003c/span\u003eirá mostrar-lhe como configurar um roteador com Ubuntu 8.10 NAT, port fowarding, um servidor DNS e um servidor DHCP.\u003c/span\u003e\u003c/p\u003e\n\u003cp\u003e\u003cspan onmouseout=\"_tipoff()\" onmouseover=\"_tipon(this)\"\u003eConfigura no endereço: \u003ca href=\"http://www.howtoforge.com/nat-gateway-iptables-port-forwarding-dns-and-dhcp-setup-ubuntu-8.10-server\"\u003ehttp://www.howtoforge.com/nat-gateway-iptables-port-forwarding-dns-and-dhcp-setup-ubuntu-8.10-server\u003c/a\u003e\u003cbr\u003e\n\u003c/span\u003e\u003c/p\u003e","title":"Configuração de Gateway, Iptables, Port Forwarding, DNS e DHCP no Ubuntu Server 8.10"},{"content":"Esse artigo disponibilizado pela Howtoforge, explica como configurar o balanceamento de carga entre 2 nodes em uma configuração ativo/passivo com o Perlbal e o heartbeat no Debian Etch…\nhttp://www.howtoforge.com/setting-up-a-high-availability-load-balancer-with-perlbal-heartbeat-on-debian-etch\n","permalink":"http://ricardomartins.com.br/configuracao-para-alta-disponibilidade-e-balanceamento-de-carga-com-perlbalheartbeat/","summary":"\u003cp\u003eEsse artigo disponibilizado pela Howtoforge, explica como configurar o balanceamento de carga entre 2 nodes em uma configuração ativo/passivo com o Perlbal e o heartbeat no Debian Etch…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.howtoforge.com/setting-up-a-high-availability-load-balancer-with-perlbal-heartbeat-on-debian-etch\"\u003ehttp://www.howtoforge.com/setting-up-a-high-availability-load-balancer-with-perlbal-heartbeat-on-debian-etch\u003c/a\u003e\u003c/p\u003e","title":"Configuração para alta disponibilidade e balanceamento de carga com Perlbal/Heartbeat"},{"content":"Neste documento, disponibilizado pelo ukuug.org, Simon Myers apresenta um conjunto de slides em formato contínuo contendo diversas dicas e truques úteis para a utilização do Bash…\nhttp://www.ukuug.org/events/linux2003/papers/bash_tips/\n","permalink":"http://ricardomartins.com.br/dicas-e-truques-bash/","summary":"\u003cp\u003eNeste documento, disponibilizado pelo ukuug.org, Simon Myers apresenta um conjunto de slides em formato contínuo contendo diversas dicas e truques úteis para a utilização do Bash…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.ukuug.org/events/linux2003/papers/bash_tips/\"\u003ehttp://www.ukuug.org/events/linux2003/papers/bash_tips/\u003c/a\u003e\u003c/p\u003e","title":"Dicas e truques Bash"},{"content":"Os malwares têm sido uma grande ameaça para redes corporativas e PCs em geral. Espalhados por sites, e-mails, entre outras formas, causaram vários prejuízos em 2006. Em documento pdf para o Milw0rm, Nicolas Falliere discute mais sobre como os malwares funcionam, detalhando as funções de programas que roubam senhas…\nhttp://www.milw0rm.com/papers/133\n","permalink":"http://ricardomartins.com.br/anatomia-dos-malwares/","summary":"\u003cp\u003eOs malwares têm sido uma grande ameaça para redes corporativas e PCs em geral. Espalhados por sites, e-mails, entre outras formas, causaram vários prejuízos em 2006. Em documento pdf para o Milw0rm, Nicolas Falliere discute mais sobre como os malwares funcionam, detalhando as funções de programas que roubam senhas…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.milw0rm.com/papers/133\"\u003ehttp://www.milw0rm.com/papers/133\u003c/a\u003e\u003c/p\u003e","title":"Anatomia dos Malwares"},{"content":"Em artigo para o seu blog, Erick Lubow discute mais sobre melhores formas de administrar o Apache, mostrando configurações para um melhor gerenciamento de logs, dicas de segurança, organização da estrutura de diretórios e como melhorar a performance do servidor…\nhttp://eric.lubow.org/blog/2007/system-administration/27/a-few-apache-tips/\n","permalink":"http://ricardomartins.com.br/dicas-para-administracao-do-apache/","summary":"\u003cp\u003eEm artigo para o seu blog, Erick Lubow discute mais sobre melhores formas de administrar o Apache, mostrando configurações para um melhor gerenciamento de logs, dicas de segurança, organização da estrutura de diretórios e como melhorar a performance do servidor…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://eric.lubow.org/blog/2007/system-administration/27/a-few-apache-tips/\"\u003ehttp://eric.lubow.org/blog/2007/system-administration/27/a-few-apache-tips/\u003c/a\u003e\u003c/p\u003e","title":"Dicas para administração do Apache"},{"content":"Em artigo disponibilizado pelo ComputerWorld.com, Deni Connor apresenta 10 utilitários de armazenamento para gerenciar uma Storage-Area Network (SAN), monitorar e avaliar a privacidade de sua rede e mais…\nConfira aqui ","permalink":"http://ricardomartins.com.br/10-utilitarios-livres-para-armazenamento/","summary":"\u003cp\u003eEm artigo disponibilizado pelo ComputerWorld.com, Deni Connor apresenta 10 utilitários de armazenamento para gerenciar uma Storage-Area Network (SAN), monitorar e avaliar a privacidade de sua rede e mais…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://computerworld.com/action/article.do?command=viewArticleBasic\u0026amp;taxonomyName=security\u0026amp;articleId=9011725\u0026amp;taxonomyId=17\u0026amp;intsrc=kc_feat\"\u003eConfira aqui  \u003c/a\u003e\u003c/p\u003e","title":"10 utilitários livres para armazenamento"},{"content":"ste artigo, disponibilizado pelo VivaOLinux.com.br, descreve a criação de um pendrive com boot usando Linux e antivírus para remover vírus em Windows de uma maneira muito fácil…\nhttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6160\n","permalink":"http://ricardomartins.com.br/remover-virus-do-windows-usando-pendrive-com-linux/","summary":"\u003cp\u003este artigo, disponibilizado pelo VivaOLinux.com.br, descreve a criação de um pendrive com boot usando Linux e antivírus para remover vírus em Windows de uma maneira muito fácil…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6160\"\u003ehttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6160\u003c/a\u003e\u003c/p\u003e","title":"Remover vírus do Windows usando pendrive com Linux"},{"content":"Existe um comando, cuja função primordial é construir listas de parâmetros e passá-la para a execução de outros programas ou instruções. Este comando é o xargs e neste artigo, disponibilizado pelo Dicas-L.com.br, Júlio Neves demonstra sua utilização…\nhttp://www.dicas-l.com.br/cantinhodoshell/cantinhodoshell_20070226.php\n","permalink":"http://ricardomartins.com.br/o-comando-xargs/","summary":"\u003cp\u003eExiste um comando, cuja função primordial é construir listas de parâmetros e passá-la para a execução de outros programas ou instruções. Este comando é o xargs e neste artigo, disponibilizado pelo Dicas-L.com.br, Júlio Neves demonstra sua utilização…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.dicas-l.com.br/cantinhodoshell/cantinhodoshell_20070226.php\"\u003ehttp://www.dicas-l.com.br/cantinhodoshell/cantinhodoshell_20070226.php\u003c/a\u003e\u003c/p\u003e","title":"O comando xargs"},{"content":"Em artigo disponibilizado pelo Dicas-L.com.br, Rubens Queiroz de Almeida descreve detalhadamente os passos necessários para a configuração básica de um servidor DNS…\nhttp://www.dicas-l.com.br/sysadmin/sysadmin_20070314.php\n","permalink":"http://ricardomartins.com.br/configuracao-de-servidores-dns/","summary":"\u003cp\u003eEm artigo disponibilizado pelo Dicas-L.com.br, Rubens Queiroz de Almeida descreve detalhadamente os passos necessários para a configuração básica de um servidor DNS…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.dicas-l.com.br/sysadmin/sysadmin_20070314.php\"\u003ehttp://www.dicas-l.com.br/sysadmin/sysadmin_20070314.php\u003c/a\u003e\u003c/p\u003e","title":"Configuração de servidores DNS"},{"content":"Discutido há vários anos, o BPL – Broadband over Power Lines, ou PLC – Power Line Communications é nada mais que a injeção de sinais de alta frequência na fiação elétrica, ou seja, usando uma infra-estrutura já existente – e tudo isso possui seus prós e contras. Neste artigo, disponibilizado pelo Guia do Hardware.net, Júlio César Bessa Monqueiro descreve o funcionamento desse tipo de conexão à Internet, seu atual status e que benefícios pode trazer – em especial ao Brasil…\nhref=http://www.guiadohardware.net/artigos/internet-rede-eletrica/\n","permalink":"http://ricardomartins.com.br/entendendo-a-internet-via-rede-eletrica/","summary":"\u003cp\u003eDiscutido há vários anos, o BPL – Broadband over Power Lines, ou PLC – Power Line Communications é nada mais que a injeção de sinais de alta frequência na fiação elétrica, ou seja, usando uma infra-estrutura já existente – e tudo isso possui seus prós e contras. Neste artigo, disponibilizado pelo Guia do Hardware.net, Júlio César Bessa Monqueiro descreve o funcionamento desse tipo de conexão à Internet, seu atual status e que benefícios pode trazer – em especial ao Brasil…\u003c/p\u003e","title":"Entendendo a Internet via rede elétrica"},{"content":"A massiva popularização da web trouxe um problema grave, que é a escassez de endereços disponíveis. Chegamos então ao IPV6, que promete colocar ordem na casa, oferecendo uma faixa muito maior de endereços e uma migração suave a partir do padrão atual (IPV4). É ponto pacífico que o IPV6 vai ser adotado mais cedo ou mais tarde. Já existem projetos de uso em larga escala em países como o Japão, China e Coréia do Sul e a adoção tende a se acelerar rapidamente no decorrer dos próximos anos. Neste artigo, disponibilizado pelo Guia do Hardware.net, Carlos E. Morimoto fornece mais informações sobre o IPV6…\nhttp://www.guiadohardware.net/artigos/entendendo-ipv6/\n","permalink":"http://ricardomartins.com.br/entendendo-o-ipv6/","summary":"\u003cp\u003eA massiva popularização da web trouxe um problema grave, que é a escassez de endereços disponíveis. Chegamos então ao IPV6, que promete colocar ordem na casa, oferecendo uma faixa muito maior de endereços e uma migração suave a partir do padrão atual (IPV4). É ponto pacífico que o IPV6 vai ser adotado mais cedo ou mais tarde. Já existem projetos de uso em larga escala em países como o Japão, China e Coréia do Sul e a adoção tende a se acelerar rapidamente no decorrer dos próximos anos. Neste artigo, disponibilizado pelo Guia do Hardware.net, Carlos E. Morimoto fornece mais informações sobre o IPV6…\u003c/p\u003e","title":"Entendendo o IPV6"},{"content":"Este artigo, disponibilizado pelo VivaOLinux.com.br, apresenta a instalação e configuração de um servidor FTP com proftpd, serviço essencial para quem trabalha com transferências de arquivos…\nhttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6348#\n","permalink":"http://ricardomartins.com.br/instalando-e-configurando-um-servidor-ftp/","summary":"\u003cp\u003eEste artigo, disponibilizado pelo VivaOLinux.com.br, apresenta a instalação e configuração de um servidor FTP com proftpd, serviço essencial para quem trabalha com transferências de arquivos…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6348#\"\u003ehttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6348#\u003c/a\u003e\u003c/p\u003e","title":"Instalando e configurando um servidor FTP"},{"content":"O Kernel Linux é o centro de um grande e complexo sistema operacional. Ao mesmo tempo em que ele é enorme, é extremamente bem organizado no que diz respeito a subsistemas e camadas. Nesse artigo, disponibilizado pela IBM, o autor explora a estrutura geral do Kernel Linux e descreve seus subsistemas e interfaces principais…\nhttp://www.ibm.com/developerworks/linux/library/l-linux-kernel/?S_TACT=105AGX59\u0026amp;S_CMP=GR\u0026amp;ca=dgr-lnxw06LKernalAnatomy\n","permalink":"http://ricardomartins.com.br/anatomia-do-kernel-linux/","summary":"\u003cp\u003eO Kernel Linux é o centro de um grande e complexo sistema operacional. Ao mesmo tempo em que ele é enorme, é extremamente bem organizado no que diz respeito a subsistemas e camadas. Nesse artigo, disponibilizado pela IBM, o autor explora a estrutura geral do Kernel Linux e descreve seus subsistemas e interfaces principais…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.ibm.com/developerworks/linux/library/l-linux-kernel/?S_TACT=105AGX59\u0026amp;S_CMP=GR\u0026amp;ca=dgr-lnxw06LKernalAnatomy\"\u003ehttp://www.ibm.com/developerworks/linux/library/l-linux-kernel/?S_TACT=105AGX59\u0026amp;S_CMP=GR\u0026amp;ca=dgr-lnxw06LKernalAnatomy\u003c/a\u003e\u003c/p\u003e","title":"Anatomia do Kernel Linux"},{"content":"Esse artigo, disponibilizado pela Linux-Tip, demonstra como utilizar o SSH para redirecionar suas conexões X11 de forma mais segura. Além disso, o autor explica como executar diversas aplicações Linux em clientes Windows XP utilizando o PuTTY e o X-Deep/32…\nhttp://www.linux-tip.net/cms/content/view/302/26/\n","permalink":"http://ricardomartins.com.br/redirecionamento-x11-usando-ssh/","summary":"\u003cp\u003eEsse artigo, disponibilizado pela Linux-Tip, demonstra como utilizar o SSH para redirecionar suas conexões X11 de forma mais segura. Além disso, o autor explica como executar diversas aplicações Linux em clientes Windows XP utilizando o PuTTY e o X-Deep/32…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.linux-tip.net/cms/content/view/302/26/\"\u003ehttp://www.linux-tip.net/cms/content/view/302/26/\u003c/a\u003e\u003c/p\u003e","title":"Redirecionamento X11 usando SSH"},{"content":"Um servidor proxy é uma peça importante em uma rede interna que tenha contato com outra pública, pois implementa uma série de facilidades e controles. Ao final do artigo você será capaz de instalar e configurar o servidor proxy (Squid), além de fazê-lo atuar como proxy transparente… Disponibilizado pelo VivaOLinux…\nhttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6533\n","permalink":"http://ricardomartins.com.br/servidor-proxy-squid/","summary":"\u003cp\u003eUm servidor proxy é uma peça importante em uma rede interna que tenha contato com outra pública, pois implementa uma série de facilidades e controles. Ao final do artigo você será capaz de instalar e configurar o servidor proxy (Squid), além de fazê-lo atuar como proxy transparente… Disponibilizado pelo VivaOLinux…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6533\"\u003ehttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6533\u003c/a\u003e\u003c/p\u003e","title":"Servidor proxy (Squid)"},{"content":"Hoje é impossível pensar em uma empresa que não tenha backup, independente se for pequena, média ou grande. Neste artigo, enviado ao Dicas-L.com.br, Renato José Rudnicki fornece explicações sobre o que é um backup, quais os tipos, mídias usadas e alguns conceitos importantes…\nhttp://www.dicas-l.com.br/dicas-l/20070427.php\n","permalink":"http://ricardomartins.com.br/conceitos-sobre-tipos-utilizacao-e-gerenciamento-de-backups/","summary":"\u003cp\u003eHoje é impossível pensar em uma empresa que não tenha backup, independente se for pequena, média ou grande. Neste artigo, enviado ao Dicas-L.com.br, Renato José Rudnicki fornece explicações sobre o que é um backup, quais os tipos, mídias usadas e alguns conceitos importantes…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.dicas-l.com.br/dicas-l/20070427.php\"\u003ehttp://www.dicas-l.com.br/dicas-l/20070427.php\u003c/a\u003e\u003c/p\u003e","title":"Conceitos sobre tipos, utilização e gerenciamento de backups"},{"content":"O software Samba é uma implementação open source de protocolos de rede para compartilhar arquivos entre cumputadores UNIX/Linux e Windows. Este artigo, enviado ao cyberciti.biz, ensina a trabalhar com as permissões de acesso aos compartilhamentos Samba…\nhttp://www.cyberciti.biz/tips/how-do-i-set-permissions-to-samba-shares.html\n","permalink":"http://ricardomartins.com.br/permissoes-de-compartilhamento-samba/","summary":"\u003cp\u003eO software Samba é uma implementação open source de protocolos de rede para compartilhar arquivos entre cumputadores UNIX/Linux e Windows. Este artigo, enviado ao cyberciti.biz, ensina a trabalhar com as permissões de acesso aos compartilhamentos Samba…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.cyberciti.biz/tips/how-do-i-set-permissions-to-samba-shares.html\"\u003ehttp://www.cyberciti.biz/tips/how-do-i-set-permissions-to-samba-shares.html\u003c/a\u003e\u003c/p\u003e","title":"Permissões de compartilhamento Samba"},{"content":"A VentureCake disponibilizou uma lista de 10 dicas sobre shell, prometendo serem desconhecidas, mas extremamente úteis!\nhttp://www.venturecake.com/10-linux-shell-tricks-you-dont-already-know-for-once/\n","permalink":"http://ricardomartins.com.br/10-dicas-sobre-shell-que-voce-ainda-nao-conhece/","summary":"\u003cp\u003eA VentureCake disponibilizou uma lista de 10 dicas sobre shell, prometendo serem desconhecidas, mas extremamente úteis!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.venturecake.com/10-linux-shell-tricks-you-dont-already-know-for-once/\"\u003ehttp://www.venturecake.com/10-linux-shell-tricks-you-dont-already-know-for-once/\u003c/a\u003e\u003c/p\u003e","title":"10 dicas sobre shell que você ainda não conhece"},{"content":"Esse tutorial, disponibilizado pelo CyberCiti, descreve a instalação do FUSE e a utilização do sshfs para a montagem remota de sistemas de arquivos de forma mais segura em seu sistema Linux…\nhttp://www.cyberciti.biz/tips/rhel-centos-mounting-remote-filesystem-using-sshfs.html\n","permalink":"http://ricardomartins.com.br/sshfs-montando-sistemas-de-arquivos-remotos-de-forma-segura/","summary":"\u003cp\u003eEsse tutorial, disponibilizado pelo CyberCiti, descreve a instalação do FUSE e a utilização do sshfs para a montagem remota de sistemas de arquivos de forma mais segura em seu sistema Linux…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.cyberciti.biz/tips/rhel-centos-mounting-remote-filesystem-using-sshfs.html\"\u003ehttp://www.cyberciti.biz/tips/rhel-centos-mounting-remote-filesystem-using-sshfs.html\u003c/a\u003e\u003c/p\u003e","title":"sshfs: Montando sistemas de arquivos remotos de forma segura"},{"content":"Devido a perguntas como “O que é Shell Script?” e “Como programar em Shell Script?”, Jefferson Virgilio resolveu escrever esta introdução, afim de esclerecer algumas dúvidas de usuários iniciantes. Disponibilizado pelo VivaOLinux.com.br…\nhttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6293\n","permalink":"http://ricardomartins.com.br/o-que-e-shell-script/","summary":"\u003cp\u003eDevido a perguntas como “O que é Shell Script?” e “Como programar em Shell Script?”, Jefferson Virgilio resolveu escrever esta introdução, afim de esclerecer algumas dúvidas de usuários iniciantes. Disponibilizado pelo VivaOLinux.com.br…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6293\"\u003ehttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6293\u003c/a\u003e\u003c/p\u003e","title":"O que é Shell Script"},{"content":"Netcat é uma ferramenta usada para ler e escrever dados em conexões de rede usando o protocolo TCP/IP. Dada sua grande versatilidade, o Netcat é considerado pelos hackers o canivete suíço do TCP/IP, podendo ser usado para fazer desde portscans até ataques brute force. Este artigo, disponibilizado pelo VivaOLinux.com.br, apresenta as funções do famoso Netcat…\nhttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6298\n","permalink":"http://ricardomartins.com.br/tutorial-netcat/","summary":"\u003cp\u003eNetcat é uma ferramenta usada para ler e escrever dados em conexões de rede usando o protocolo TCP/IP. Dada sua grande versatilidade, o Netcat é considerado pelos hackers o canivete suíço do TCP/IP, podendo ser usado para fazer desde portscans até ataques brute force. Este artigo, disponibilizado pelo VivaOLinux.com.br, apresenta as funções do famoso Netcat…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6298\"\u003ehttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6298\u003c/a\u003e\u003c/p\u003e","title":"Tutorial Netcat"},{"content":"Largura de banda, na computação, refere-se à taxa de dados suportada pela conexão de rede ou interface. Mais comumente expressados em bits por segundo (bps). Este artigo, disponibilizado pelo UbuntuGeek.com, fornece breves descrições e links para ferramentas de monitoramento de banda para sistemas Linux…\nhttp://www.ubuntugeek.com/bandwidth-monitoring-tools-for-linux.html\n","permalink":"http://ricardomartins.com.br/ferramentas-linux-de-monitoramento-de-banda/","summary":"\u003cp\u003eLargura de banda, na computação, refere-se à taxa de dados suportada pela conexão de rede ou interface. Mais comumente expressados em bits por segundo (bps). Este artigo, disponibilizado pelo UbuntuGeek.com, fornece breves descrições e links para ferramentas de monitoramento de banda para sistemas Linux…\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.ubuntugeek.com/bandwidth-monitoring-tools-for-linux.html\"\u003ehttp://www.ubuntugeek.com/bandwidth-monitoring-tools-for-linux.html\u003c/a\u003e\u003c/p\u003e","title":"Ferramentas Linux de monitoramento de banda"},{"content":"Em uma rede de grande porte onde existem muitas estações que necessitam do serviço de TCP/IP, para facilitar o trabalho do administrador de redes, usa-se um servidor DHCP, onde a distribuição de IPs é automática a partir de um IP base que é configurado pelo administrador neste servidor. Neste artigo, disponibilizado pelo VivaOlinux.com.br, Eliseu Ribeiro Cherene Viana trata as principais funções de configuração do dhcpd, com definição de IPs fixos para computadores definidos pelo endereço MAC e outras opções….\nhttp://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6325\n","permalink":"http://ricardomartins.com.br/implementando-um-servidor-dhcp/","summary":"\u003cp\u003eEm uma rede de grande porte onde existem muitas estações que necessitam do serviço de TCP/IP, para facilitar o trabalho do administrador de redes, usa-se um servidor DHCP, onde a distribuição de IPs é automática a partir de um IP base que é configurado pelo administrador neste servidor. Neste artigo, disponibilizado pelo VivaOlinux.com.br, Eliseu Ribeiro Cherene Viana trata as principais funções de configuração do dhcpd, com definição de IPs fixos para computadores definidos pelo endereço MAC e outras opções….\u003c/p\u003e","title":"Implementando um servidor DHCP"},{"content":"Eu sempre fui apaixonado por máquinas Dell. As máquinas têm excelente performance, estabilidade, estrutura, e praticidade para técnicos que assim como eu precisam mecher no hardware destas máquinas, onde geralmente você não precisa de uma única ferramenta para abrir. A estrutura interna é totalmente modular e muito bem estruturada para melhorar a ventilação interna e facilitar a manutenção.\nUma coisa que sempre me chamou muita atenção é o Suporte. Ao ligar para o suporte da Dell, você é sempre muito bem atendido, e percebe que o atendente é alguém realmente qualificado (diferente de muitas empresas do ramo) e que está sempre disposto a te ajudar a resolver o seu problema. Além disto quando o problema é no hardware do seu equipamento, ou você não é apto o suficiente para mecher na máquina, geralmente em 24 horas eles encaminham um técnico para trocar a peça em questão ou fazer o que for preciso no sistema.\nHá cerca de três meses, eu comprei um notebook Dell Inspiron 1525. É uma máquina excelente e não tenho nada a reclamar a não ser por um probleminha que encontrei.\nO botão que liga o Wireless apresentava uma folga, e ao tocar no mesmo, fazia um barulho bastante irritante. Eu nem uso tanto o Wireless assim, mas eu sou bastante chato, pois o equipamento foi bastante caro e não tem nem 3 meses de uso ! Além do mais, não foi um problema causado por mim, já que veio assim, então acho que não teria nada de mais em reclamar.\nLiguei para eles e informei o corrido. Ficaram de madnar um técnico no dia seguinte para verificar. No dia seguinte, eu não estava em casa, mas expliquei para minha esposa o problema e quando o técnico chegou ela passou para ele as informações.\nMais tarde ela me ligou dizendo que ele já tinha trocado o botão e o problema já estava resolvido. Pois bem, cheguei em casa e fui testar, porém para minha decepção o problema persistia. Perguntei a ela se ela viu o cara trocando a peça e ela disse que não, mas ele falou que o reparo já havia sido feito e portanto ela acreditou que já estava ok, inclusive constava na ordem de serviço que ele deixou que havia sido feita a troca do botão. Achei estranho que a ordem de serviço era de uma empresa chamada NCR, pois sempre que acompanho chamados deste tipo no meu trabalho, onde vem um técnico fazer um reparo, os técnicos são da Unisys, uma empresa bastante conceituada.\nImediatamente liguei de volta e informei que ainda não estava ok. Agendaram uma nova visista no dia seguinte. Desta vez eu estava em casa, e veio um outro técnico, desta vez da Unisys. Junto com ele, estava uma caixa com a peça para troca. Achei estranho, pois a caixa era muito grande para um botão. Ele tirou da caixa a parte superior inteira do laptop, chamada de Palm Hast. Esta parte é aquela logo abaixo do teclado, onde fica o touchpad. Questionei sobre a peça, pois o meu problema era apenas com o botão. Ele me informou que foi o que mandaram ele trocar. Expliquei que havia algum engano, pois o botão fica na lateral do laptop, e então porquê mandaram a parte superior inteira ? Ele concordou comigo e ligamos novamente para Dell para informar o engano. Mesmo assim ele disse se eu não queria que trocasse, e eu deixei trocar pois até aí tudo bem, ganhei uma parte superior novinha para o meu laptop.\nNo dia seguinte voltou o mesmo rapaz, desta vez com 3 caixas! Aí eu não entendí nada, e ele me explicou: Desta vez mandaram uma placa-mãe nova, a base do laptop (a parte de baixo) e outra placa wireless.\nPelo que entendí, era necessário apenas a base, pois é onde vem o botão preso e onde estava a folga. Mas ele trocou a base, a placa-mãe e a placa wireless !\nEnquanto conversávamos, o rapaz me explicou que não é a primeira vez que isso acontece. Eles não poupam nem um pouco nos reparos e não tem enrolação. Fornecem tudo que for preciso para resolver o problema do cliente.\nFiquei surpreso mais uma vez com o suporte e a garantia da Dell. E é por isso que eu sempre recomendei e continuarei recomendando: Computador, é DELL !\nObservação: Eu não to sendo patrocinado para escrever isso aqui não ! Apenas acho que quando um produto ou serviço é bom, deve ser recomendado !\n","permalink":"http://ricardomartins.com.br/relato-sobre-o-suporte-dell/","summary":"\u003cp\u003eEu sempre fui apaixonado por máquinas Dell. As máquinas têm excelente performance, estabilidade, estrutura, e praticidade para técnicos que assim como eu precisam mecher no hardware destas máquinas, onde geralmente você não precisa de uma única ferramenta para abrir. A estrutura interna é totalmente modular e muito bem estruturada para melhorar a ventilação interna e facilitar a manutenção.\u003c/p\u003e\n\u003cp\u003eUma coisa que sempre me chamou muita atenção é o Suporte. Ao ligar para o suporte da Dell, você é sempre muito bem atendido, e percebe que o atendente é alguém realmente qualificado (diferente de muitas empresas do ramo) e que está sempre disposto a te ajudar a resolver o seu problema. Além disto quando o problema é no hardware do seu equipamento, ou você não é apto o suficiente para mecher na máquina, geralmente em 24 horas eles encaminham um técnico para trocar a peça em questão ou fazer o que for preciso no sistema.\u003c/p\u003e","title":"Relato sobre o Suporte Dell"},{"content":"Vocês sabiam que a maioria esmagadora das “travadas” (crash) do seu windows são por causa de drives defeituosos? E como saber qual deles foi o culpado? Simples, com o WhoCrashed.\nO WhoCrashed mostra os drives que vem travando seu computador com um único clique, fazendo uma análise “post-mortem” dos dados coletados no momento do “crash”. É a promessa de acabar com o mistério!\nFonte: Shell City\n","permalink":"http://ricardomartins.com.br/o-que-travou-o-meu-windows/","summary":"\u003cp\u003eVocês sabiam que a maioria esmagadora das “travadas” (crash) do seu windows são por causa de drives defeituosos? E como saber qual deles foi o culpado? Simples, com o \u003ca href=\"http://www.resplendence.com/whocrashed\"\u003eWhoCrashed\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/wp-content/uploads/2008/12/whocrashed_screen.jpg\"\u003e\u003cimg alt=\"whocrashed_screen\" loading=\"lazy\" src=\"/wp-content/uploads/2008/12/whocrashed_screen.jpg\" title=\"whocrashed_screen\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eO WhoCrashed mostra os drives que vem travando seu computador com um único clique, fazendo uma análise “post-mortem” dos dados coletados no momento do “crash”. É a promessa de acabar com o mistério!\u003c/p\u003e\n\u003cp\u003eFonte: \u003ca href=\"http://shellcity.net/\"\u003eShell City\u003c/a\u003e\u003c/p\u003e","title":"O que travou o meu Windows !?"},{"content":"Hoje vou compartilhar com vocês alguns comandos que permitem que analistas de suporte possam manter um diagnóstico bem mais amplo do sistema. Os comandos devem ser executados em modo de console. (Menu iniciar \u0026gt; Executar \u0026gt; escreva”cmd” ou “command” \u0026gt; enter ou ok).\nInteragindo com o gerenciador de tarefas do windows.\nExibir todos os serviços que estão interagindo com os processos (cada serviço do windows deve estar dentro de um processo e os processos possuem um ou varios serviços), isso ajuda a saber as interações entre eles.\nComando: tasklist /svc\nExibir os processos que do windows e as suas respectivas DLLs, bibliotecas e códigos dependentes. Isso mais uma vez ajuda a saber qual dll, biblioteca ou código está sendo usada em casa processo. (M = Modulo)\nComando: tasklist /m\nInteragindo com o registro do windows.\nExibir os programas que rodam juntamente quando o windows é iniciado. Muitas pessoas ou analistas vão no registro buscar informações de programas maliciosos, a ponto de tentar bloqueá-los ou apagá-los de serem executados junto com o sistema. Que tal fazer uma busca diretamente no registro? Usando o comando “reg query” , você pode buscar automaticamente qualquer chave do registro. Por exemplo, para buscar todos os programas que são executados junco com o windows execute:\nComando: reg query hklmsoftwaremicrosoftwindowscurrentversionrun\nEspero que estes comandos possam ser úteis !\nAté a próxima.\n","permalink":"http://ricardomartins.com.br/comandos-do-windows-para-seguranca-e-analise-do-sistema/","summary":"\u003cp\u003eHoje vou compartilhar com vocês alguns comandos que permitem que analistas de suporte possam manter um diagnóstico bem mais amplo do sistema. Os comandos devem ser executados em modo de console. (Menu iniciar \u0026gt; Executar \u0026gt; escreva”cmd” ou “command” \u0026gt; enter ou ok).\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInteragindo com o gerenciador de tarefas do windows.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eExibir todos os serviços que estão interagindo com os processos (cada serviço do windows deve estar dentro de um processo e os processos possuem um ou varios serviços), isso ajuda a saber as interações entre eles.\u003c/p\u003e","title":"Comandos do Windows para segurança e análise do sistema"},{"content":"Hoje vou postar sobre como configurar o Modem BandLuxe C120 no Ubuntu.Eu tenho o Velox 3G há cerca de 3 meses, e até então ainda não tinha conseguido configurar o modem acima no meu Ubuntu.\nPesquisei bastante na internet, cheguei a ver sobre o SmartConnect, porém este modelo não é suportado. Quando estava quase desistindo, botei o tico e teco para funcionar e a solução está nas linhas abaixo…\nO Windows me deu a dica para resolver essa…\nQuando plugo este modem no Windows, ele reconhece como um pendrive, onde dentro estão os drivers e arquivos de instalação do software de conexão. Notei que depois de ter os drivers e o software instalado, ao abrir o gerenciador de dispositivos e ir até “Controladores USB” pode-se verificar que o nome referente ao modem fica desabilitado. Ele funciona normalmente, mas não é reconhecido mais como pendrive e não exibe os arquivos contidos na memoria flash embutida nele.\nEntão pensei: “- E se eu desabilitar no linux o usb_storage ?”\nLá vai a dica:\nPelo network-config do Ubuntu, eu não consegui nenhum resultado. Então instalei o gnome-ppp, que você pode baixar clicando aqui.\nPara instalar o gnome-ppp, você pode dar duplo clique na interface gráfica mesmo. Após instalado, precisa executar como root, pois caso contrário dá um erro de permissão no wvdial.conf.\nPara isto, aperte Alt+F2 (executar), e na tele que aparece digite gksu gnome-ppp. Agora vamos configurar a conexão.\nNa aba Modem, configure o dispositivo como /dev/ttyUSB1. Depois configure o número a ser discado: *99#\nExistem outras opções, mas basta configurar estas.\nAgora vamos ao bizu-master:\nAntes de tentar se conectar, execute os seguintes comandos:\n# mount /media/BandLuxeC120 # modprobe -r usb\\storage Pronto ! Agora é so mandar conectar ! Caso queira facilitar as coisas, basta inserir as linhas acima em um script shell para facilitar o processo.\nEntendeu ?! É simples: Antes de conectar, você precisa que o recurso de usb_storage do modem esteja desabilitado. Como geralmente ele já monta o dispositivo automaticamente durante o boot caso esteja plugado, você precisa desmontar antes de desativar o usb_storage pois se não vai dar erro, pois o recurso está em uso.\nAté a próxima.\n","permalink":"http://ricardomartins.com.br/configurando-o-modem-bandluxe-c120-3g-no-ubuntu/","summary":"\u003cp\u003eHoje vou postar sobre como configurar o Modem BandLuxe C120 no Ubuntu.Eu tenho o Velox 3G há cerca de 3 meses, e até então ainda não tinha conseguido configurar o modem acima no meu Ubuntu.\u003c/p\u003e\n\u003cp\u003ePesquisei bastante na internet, cheguei a ver sobre o \u003ca href=\"http://smartconnect3g.wordpress.com/\"\u003eSmartConnect\u003c/a\u003e, porém este modelo não é suportado. Quando estava quase desistindo, botei o tico e teco para funcionar e a solução está nas linhas abaixo…\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eO Windows me deu a dica para resolver essa…\u003c/strong\u003e\u003c/p\u003e","title":"Configurando o Modem BandLuxe C120 (3G) no Ubuntu"},{"content":"O OpenDNS é um serviço de dns gratuito, aberto e seguro. Eu utilizo na minha casa para melhorar a velocidade da conexão, mas estes dias eu fui até o site deles para dar uma pesquisada melhor sobre o serviço e descobri que diferente dos servidores DNS oferecidos pelos provedores em geral (onde normalmente são apenas o serviço básico de consulta de endereços e nada mais), o OpenDNS vai muito além disto, pois oferece recursos adicionais que protegem a conexão.\nFiz então uma pesquisa na internet, para mostrar para vocês a lista de recursos disponíveis:\nFiltragem de conteúdo: É claro que nem tudo na Internet é bem vindo no seu computador. Decida o que bloquear e o que permitir na sua rede com ferramentas de fácil utilização. É possível escolher categorias prédefinidas, como jogos, webmail e muito mais. Proteção contra phishing: Fraudes eletrônicas são um tipo de ataque comum hoje em dia. A equipe do OpenDNS também opera o PhishTank.com, uma das maiores iniciativas contra esse tipo de ataque. Os serviços são integrados e sites conhecidos por realizar phishing são automaticamente bloqueados do seu acesso. Bloqueio de domínios: É possível bloquear ou permitir zonas, ou regiões da Internet com as ferramentas online. Bloqueio de sites adultos: Proteja seus filhos, os alunos de sua escola ou limite o acesso dos funcionários de sua empresa. As ferramentas do OpenDNS oferecem um controle granular de acesso. Bloqueio de Webproxy: Muitos espertinhos hoje usam um tipo de webproxy para burlar o controle de acesso das redes empresariais. Faça o bloqueio desses serviços facilmente. Whitelist de domínios: No caso de paranóia completa, faça sua própria lista de endereços que podem ser acessados, o restante será totalmente bloqueado. Correção de erro de digitação: É muito comum as pessoas digitarem o endereço faltando apenas uma letra, por exemplo: www.google.cm ou www.wikipedia.og. O OpenDNS está preparado para corrigir estes pequenos erros sem ladainha. Ele tenta deduzir o endereço que você quer acessar automaticamente. Proteção contra quedas de DNS: Se o servidor de DNS do seu provedor sair fora do ar, você fica praticamente ilhado — olha que isso ocorre com mais frequência do que o esperado. Usando o OpenDNS, você conta com uma equipe dedicada a manter o serviço de DNS no ar, funcionando sem problemas. Maior segurança e dedicação: A equipe do OpenDNS foi uma das primeiras a aplicar a proteção contra o envenenamento de cache DNS (DNS Cache Poisoning). A vulnerabilidade esteve disponível por vários anos e os fundadores do OpenDNS fizeram a correção muito antes das outras empresas, que apenas recentemente autalizaram seus servidores em uma operação conjunta. Mais velocidade: Não é difícl encontrar o caso onde o DNS do seu provedor demora para encontrar algum nome. Isso faz com que sua navegação fique mais lenta e os sites demorem para carregar. O OpenDNS faz questão de oferecer um DNS com velocidade e baixo tempo de resposta, você provavelmente vai notar uma diferença na navegação das páginas da Internet. Para utilizar apenas para melhorar a velocidade da conexão, basta setar os endereços DNS deles na sua conexão.\nO OpenDNS oferece serviços empresariais para quem deseja pagar por mais funcionalidades customizadas e suporte. Entretanto, todas as funcionalidades listadas acima estão disponíveis gratuitamente. Para o usuário comum, que usa a Internet em casa, nem é preciso fazer um cadastro! Basta configurar o seu roteador, desktop ou notebook para utilizar os servidores de DNS do OpenDNS. Existem tutoriais para todos os sitemas operacionais e diversos aparelhos ou equipamentos. A configuração de DNS é feita na sua conexão de Internet e não é preciso instalar nada, nenhum programa. Caso queira usar todas as funcionalidades avançadas, basta fazer um cadastro e configurar a sua conta separadamente, onde você especifica o seu ip fixo ou sua faixa de ip’s. Caso não tenha ip fixo, basta instalar um software que checa a sua conexão de tempos em tempos e atualiza as informações no site.\nDepois de fazer a configuração, visite a página do OpenDNS novamente e você deve ver um aviso dizendo que está funcionando (You are using OpenDNS. Thanks!).\nAbaixo alguns links com mais informações:\nhttp://www.abusar.org/MovOpenDNS.html\nhttp://hamacker.wordpress.com/2007/11/27/censurando-a-internet/\nhttp://www.opendns.com/\n","permalink":"http://ricardomartins.com.br/voce-conhece-o-opendns/","summary":"\u003cp\u003eO OpenDNS é um serviço de dns gratuito, aberto e seguro. Eu utilizo na minha casa para melhorar a velocidade da conexão, mas estes dias eu fui até o site deles para dar uma pesquisada melhor sobre o serviço e descobri que diferente dos servidores DNS oferecidos pelos provedores em geral (onde normalmente são apenas o serviço básico de consulta de endereços e nada mais), o OpenDNS vai muito além disto, pois oferece recursos adicionais que protegem a conexão.\u003c/p\u003e","title":"Você conhece o OpenDNS ?"},{"content":"Para quem não conhece, o VI é um poderoso editor de textos do sistema Unix. Muito útil na manipulação de arquivos de log e criação de scripts. Neste post, estarei passando algumas dicas de utilização do VI que pra mim foi muito útil conhecer, então estou repassando… Inserção de caracteres:\ni – insere texto antes do caracter atual.\nI – insere texto no início da linha atual.\na – insere texto após o caracter atual.\nA – insere texto no final da linha atual.\no – insere texto no início da próxima linha (inserindo uma nova linha).\nO – insere texto no início da linha anterior (inserindo uma nova linha).\nOBS: Para sair do modo de inserção de caracteres, digite \u0026lt;ESC\u0026gt;.\nDeleção de caracteres:\n\u0026lt;DEL\u0026gt; – deleta a letra anterior ao cursor (depende da configuração).\nx – deleta a letra do cursor\nnx – deleta as próximas n letras\ndw – deleta o restante da palavra atual\nndw – deleta as n próximas palavras\nu – undelete (restaura o que foi apagado por último ou apaga o que foi inserido por último).\ndd – deleta a linha atual\nndd – deleta n linhas a partir da atual\nSubstituição de caracteres:\ns – substitue a letra atual (e entra no modo de inserção).\nS – substitue a linha atual (e entra no modo de inserção).\nr – substitue a letra atual (nao entra no modo de inserção).\nR – entra no modo de substituição (sai com \u0026lt;ESC\u0026gt;).\n~ – substitue maiusculo/minusculo.\n. – repete o último comando.\nMovimentação de cursor:\n(em algumas situações as setas funcionam):\nj – uma linha para baixo\nk – uma linha para cima\nh – um caracter para a esquerda\nl – um caracter para a direita\nb – volta para o início da palavra.\nw – adianta para a próxima palavra.\n0 – início da linha\n$ – fim da linha\nnG – vai para a linha n (0G ou G vai para a ultima linha).\n% – usado em parenteses para achar o par.\n+n – vai + n linhas para baixo.\n-n – vai n linhas para cima.\nBusca de palavras:\n/palavra – procura palavra a partir da atual.\n?palavra – procura palavra a partir da atual (voltando para o início do arquivo).\nn – procura próxima ocorencia (na mesma direcao de busca).\n# – destaca todas as ocorrencias iguais a palavra onde o cursor esta posicionado.\nOperações com buffers:\nyy – Copia a linha inteira\nnyy – coloca n linhas no buffer (copiar).\nnY – coloca n linhas no buffer (copiar).\nndd – deleta as n linhas (a partir da atual) e coloca no buffer (copiar).\np – retira o conteudo do buffer (colar) e coloca após a linha atual.\nP – retira o conteudo do buffer (colar) e coloca antes da linha atual.\nOperações de bloco:\nml – marca a linha l (mx marca a linha x, etc usando o alfabeto).\n‘a – vai para a linha marcada a.\nPara ler ou escrever o arquivo (ou parte dele) usa-se os comandos:\n:r arquivo – ler o arquivo para dentro do arquivo atual, a partir do local atual.\n:w – salva alterções\n:w abc – Grava arquivo com o nome ‘abc’\n:q – sai sem modificar o arquivo (se foi alterado tem que usar :q!).\n:wq – sai, salvando o arquivo editado.\nZZ – sai, salvando o arquivo editado.\n:’a,’b[operação] – realiza a operação no bloco contido entre as marcas a e b.\n:d – deleta a linha atual (útil como operação de blocos).\n:s/string1/string2/ – substitue o string1 por string2\n","permalink":"http://ricardomartins.com.br/dicas-de-comandos-do-vi/","summary":"\u003cdiv class=\"entry\"\u003ePara quem não conhece, o VI é um poderoso editor de textos do sistema Unix. Muito útil na manipulação de arquivos de log e criação de scripts. Neste post, estarei passando algumas dicas de utilização do VI que pra mim foi muito útil conhecer, então estou repassando…\n\u003cp\u003e\u003cstrong\u003eInserção de caracteres:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003ei – insere texto antes do caracter atual.\u003cbr\u003e\nI – insere texto no início da linha atual.\u003cbr\u003e\na – insere texto após o caracter atual.\u003cbr\u003e\nA – insere texto no final da linha atual.\u003cbr\u003e\no – insere texto no início da próxima linha (inserindo uma nova linha).\u003cbr\u003e\nO – insere texto no início da linha anterior (inserindo uma nova linha).\u003cbr\u003e\nOBS: Para sair do modo de inserção de caracteres, digite \u0026lt;ESC\u0026gt;.\u003c/p\u003e","title":"Dicas de comandos do VI"},{"content":"No endereço http://wwwacs.gantep.edu.tr/docs/perl-ebook/, existe um tutorial que certamente pode te ajudar bastante. É claro que se você não conhece muito sobre programação, você não vai aprender Perl em 21 dias conforme o título sugere, mas dá pra você começar a ter umas boas noções. Confira!\n","permalink":"http://ricardomartins.com.br/aprenda-perl-em-21-dias/","summary":"\u003cp\u003eNo endereço \u003ca href=\"http://wwwacs.gantep.edu.tr/docs/perl-ebook/\"\u003ehttp://wwwacs.gantep.edu.tr/docs/perl-ebook/\u003c/a\u003e, existe um tutorial que certamente pode te ajudar bastante. É claro que se você não conhece muito sobre programação, você não vai aprender Perl em 21 dias conforme o título sugere, mas dá pra você começar a ter umas boas noções. Confira!\u003c/p\u003e","title":"Aprenda Perl em 21 dias"},{"content":"Hoje estava eu aqui testando uns shell scripts, e descobri uma forma de verificar qual o arquivo de log mais recente criado em um diretório. Basta você executar:\n$ ls -1rtd /home/pasta/* | tail -1\nSe quiser testar, entre no seu /home, e crie 4 arquivos, por exemplo, arq1, arq2, arq3 e arq4, com algum intervalo entre o tempo de criação de cada um.\nDepois execute:\n$ cd ~\n$ ls -1rtd * | tail -1\nE a saída será:\n-rw-rw-r-- 1 ricardo ricardo 0 Jun 6 12:22 arq4\nAté a próxima…\n","permalink":"http://ricardomartins.com.br/verificando-o-arquivo-mais-recente/","summary":"\u003cdiv class=\"entry\"\u003eHoje estava eu aqui testando uns shell scripts, e descobri uma forma de verificar qual o arquivo de log mais recente criado em um diretório.\n\u003cp\u003eBasta você executar:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e$ ls -1rtd /home/pasta/* | tail -1\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eSe quiser testar, entre no seu /home, e crie 4 arquivos, por exemplo, arq1, arq2, arq3 e arq4, com algum intervalo entre o tempo de criação de cada um.\u003c/p\u003e\n\u003cp\u003eDepois execute:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e$ cd ~\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e$ ls -1rtd * | tail -1\u003c/code\u003e\u003c/p\u003e","title":"Verificando o arquivo mais recente"},{"content":"Essa é uma dica rápida para matar todos os processos de um usuário de uma vez só. Basta executar:\n$ ps -efu$USER | awk '{print $2}' | xargs -i bash -c \u0026quot;echo matando {};kill -TERM {}\u0026quot;\nAgora explicando…\nO comando “ps -efu$USER” vai mostrar todos os processos iniciados pelo usuário que você está usando. (Para verificar qual é este usuário, usa-se o comando “whoami” ou o comandi “id”).\n$ ps -efu$USER\u0026lt;br\u0026gt;\u0026lt;/br\u0026gt;USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND\nrmartins 12577 0.0 0.0 2424 1300 ? S 14:38 0:00 script_test.ksh\nrmartins 12638 0.0 0.0 2148 788 ? R+ 14:39 0:00 top\nrmartins 12439 0.0 0.0 2424 1296 ? S+ 14:37 0:00 watchlog_ricardo.sh\nEm seguida usamos o awk para exibir apenas o segundo campo da saída do ps -efu$USER.\n$ ps -efu$USER | awk '{print $2}'\nPID\n12577\n12638\n12439\nDepois usamos o xargs para montar uma lista à partir da resposta do awk e guardar a mesma em { }, e depois o Kill -TERM na lista que esta dentro de { }.\nVejamos abaixo o resultado:\n$ ps -efu$USER | awk '{print $2}' | xargs -i bash -c \u0026quot;echo matando {};kill -TERM {}\u0026quot;\nmatando 12577\nmatando 12638\nmatando 12439\nTerminated\nObs.: A opção bash -c echo matando {} é só para mostrar a informação de qual processo ele está matando no momento da execução da linha de comando. Caso queira matar os processos sem nenhuma informação, execute:\n$ ps -efu$USER | awk '{print $2}' | xargs -i kill -9 {}\nAté a próxima\n","permalink":"http://ricardomartins.com.br/matando-processos-por-usuario/","summary":"\u003cdiv class=\"entry\"\u003eEssa é uma dica rápida para matar todos os processos de um usuário de uma vez só.\n\u003cp\u003eBasta executar:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e$ ps -efu$USER | awk '{print $2}' | xargs -i bash -c \u0026quot;echo matando {};kill -TERM {}\u0026quot;\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eAgora explicando…\u003c/p\u003e\n\u003cp\u003eO comando “ps -efu$USER” vai mostrar todos os processos iniciados pelo usuário que você está usando. (Para verificar qual é este usuário, usa-se o comando “whoami” ou o comandi “id”).\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e$ ps -efu$USER\u0026lt;br\u0026gt;\u0026lt;/br\u0026gt;USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND\u003c/code\u003e\u003c/p\u003e","title":"Matando processos por usuário"},{"content":"Teclas de Atalho do BASH\n* Histórico:\nCTRL + P: equivale a seta para cima\nCTRL + N: equivale a seta para baixo\nCTRL + R: Busca por uma linha de forma descendente\nCTRL + S: Busca por uma linha de forma ascendente\nCTRL + J: Finaliza busca\nCTRL + G: Aborta a busca e retorna a linha original\nALT + CTRL + Y: Mostra argumentos do último comando\nALT + .: Mostra o último argumento do último comando\nALT + _: Mostra o último argumento do último comando\nALT + \u0026gt;: Busca pelos últimos argumentos\nALT + \u0026lt; + \u0026gt;: “Cola o último argumento buscado e inicia nova busca\n!$: imprime na tela a última palavra do comando anterior\n!!: equivale ao CTRL + P +\n* Movendo o cursor:\nCTRL + B: um caracter para esquerda\nCTRL + F: um caracter para direita\nALT + B: uma palavra para esquerda\nALT + B: uma palavra para direita\nCTRL + A: início da linha\nCTRL + E: fim da linha\nCTRL + X + X: se estiver no inicio vai para o fim e vice versa\n* Apagando Caracteres\nCTRL + D: equivale a tecla DEL\nCTRL + U: todos a esquerda do cursor\nCTRL + K: todos a direita do cursor\nALT + D: a primeira palavra a direita do cursor\nCTRL + W: a primeira palavra a esquerda do cursor\nCTRL + Y: cola a última palavra apagada\nALT + Y: cola a penúltima palavra apagada\n* Completando linha:\nALT + ?: Equivale ao TAB\nALT + *: Equivale ao TAB porém escreve as opções na tela.\nALT + /: Equivale pobremente ao TAB\n* Outras funções do TAB Completa nomes\n/: Mostra a estrutura de diretório\n*: Mostra os sub-diretórios\n~: Mostra os usuários cadastrados em /etc/passwd\n$: Mostra as variáveis do sistema\n@: Mostra as entradas em /etc/hosts\n* Outros\nCTRL + _: Desfaz o último comando\nCTRL + X: Desfaz o último comando\nCTRL + U: Desfaz o último comando\nALT + R: Desfaz todos os comandos\nCTRL + L: Limpa a tela\nCTRL + I: Limpa a tela imprimindo o último comando no topo\nCTRL + T: Troca a posição de 2 caracteres anteriores ao cursor\nALT + T: Troca a posição das 2 palavras anteriores\n* Em ordem alfabética\nCtrl+A Move o cursor para o início da linha Home\nCtrl+B Move o cursor uma posição à esquerda \u0026lt;-\nCtrl+C Envia sinal EOF() para o sistema\nCtrl+D Apaga um caractere à direita Delete\nCtrl+E Move o cursor para o fim da linha End\nCtrl+F Move o cursor uma posição à direita -\u0026gt;\nCtrl+H Apaga um caractere à esquerda Backspace\nCtrl+I Completa arquivos e comandos TAB\nCtrl+J Quebra a linha Enter\nCtrl+K Recorta do cursor até o fim da linha\nCtrl+L Limpa a tela (igual ao comando clear)\nCtrl+N Próximo comando\nCtrl+P Comando anterior\nCtrl+Q Destrava a shell (veja Ctrl+S)\nCtrl+R Procura no histórico de comandos\nCtrl+S Trava a shell (veja Ctrl+Q)\nCtrl+T Troca dois caracteres de lugar\nCtrl+U Recorta a linha inteira\nCtrl+V Insere caractere literal\nCtrl+W Recorta a palavra à esquerda\nCtrl+X Move o cursor para o início/fim da linha (2x) Home/End\nCtrl+Y Cola o trecho recortado\n","permalink":"http://ricardomartins.com.br/atalhos-da-linha-de-comando-set-o-emacs/","summary":"\u003cp\u003eTeclas de Atalho do BASH\u003c/p\u003e\n\u003cp\u003e* Histórico:\u003c/p\u003e\n\u003cp\u003eCTRL + P: equivale a seta para cima\u003cbr\u003e\nCTRL + N: equivale a seta para baixo\u003cbr\u003e\nCTRL + R: Busca por uma linha de forma descendente\u003cbr\u003e\nCTRL + S: Busca por uma linha de forma ascendente\u003cbr\u003e\nCTRL + J: Finaliza busca\u003cbr\u003e\nCTRL + G: Aborta a busca e retorna a linha original\u003cbr\u003e\nALT + CTRL + Y: Mostra argumentos do último comando\u003cbr\u003e\nALT + .: Mostra o último argumento do último comando\u003cbr\u003e\nALT + _: Mostra o último argumento do último comando\u003cbr\u003e\nALT + \u0026gt;: Busca pelos últimos argumentos\u003cbr\u003e\nALT + \u0026lt; + \u0026gt;: “Cola o último argumento buscado e inicia nova busca\u003cbr\u003e\n!$: imprime na tela a última palavra do comando anterior\u003cbr\u003e\n!!: equivale ao CTRL + P +\u003c/p\u003e","title":"Atalhos da linha de comando (set -o emacs)"},{"content":"Por Marcelo Matias\nVocê já se deparou com algum problema onde foi preciso fazer a reinstalação do Windows para recuperar a máquina? Tela azul, arquivos corrompidos, volume danificado, hotfix que não pôde ser removido, malware persistente, driver ou serviço corrompido… Quanto tempo o seu cliente fica sem trabalhar quando um problema desses ocorre?\nSe você infelizmente já passou por essa situação saiba que existe uma ferramenta da Microsoft feita especialmente para você: chama-se Diagnostics and Recovery Toolset (DaRT).\nO DaRT é um produto que faz parte do Microsoft Desktop Optimization Pack (MDOP), mas teve sua origem como “ERD Commander” da antiga Wininternals (adquirida pela Microsoft em 2006).\nO DaRT é composto por 14 ferramentas que permitem principalmente manutenção em PCs que não conseguem carregar o Windows por algum motivo. Ele te ajuda a identificar o problema que ocasionou tela azul, trocar senha de usuário local, recuperar arquivos excluídos, editar o registro, controlar o startup de drivers e serviços, recuperar volumes danificados, acompanha antimalware off-line, e muito mais. Existem versões para Windows XP/Server 2003, Vista/Server 2008 e Windows 7/Server 2008 R2.\nAtualmente com a versão 7.0 em fase beta (download já disponível), a grande novidade do DaRT é a possibilidade de suporte remoto (KVM remoto) diretamente pelo ambiente de recuperação (sem carregar o Windows), sem a necessidade de deslocamento físico do técnico de suporte.\nSe você tem interesse em experimentá-lo (altamente recomendado) é preciso preencher o seguinte formulário para liberar ter acesso ao link para download: http://go.microsoft.com/fwlink/?LinkID=213952\nAs formas de implementação do ambiente de recuperação do DaRT são bem flexíveis, suportando CD, DVD, boot PXE (ex.: Windows Deployment Services), USB (pendrive/HD), ou partição local de recuperação.\nVocê se lembra do artigo que escrevi sobre como criar partição de recuperação do Windows 7? Você pode incluir o DaRT 7 nesse processo, evitando ao máximo a reinstalação do PC.\nEu registrei abaixo alguns processos para que você possa conhecer:\nInstalação do DaRT Criação da mídia de recuperação Processo de suporte remoto (a grande novidade do DaRT 7.0) Visão geral das ferramentas Clique nas imagens para exibição em tamanho real.\nInstalação do DaRT (nos PCs dos técnicos de suporte).\nÉ basicamente Next, Next, Finish. Você só deve fazer essa instalação nas máquinas dos técnicos que vão criar a mídia de recuperação ou iniciar a sessão de suporte remoto.\nImportante lembrar que para gerar a mídia de recuperação do DaRT ou fazer análise de dump de memória é preciso instalar o Debugging Tools for Windows.\nCriação da mídia de recuperação:\nDurante a criação você precisa indicar o caminho dos arquivos de instalação do Windows para que o DaRT possa reaproveitar o ambiente de recuperação que já vem no Windows, para a partir daí incluir suas ferramentas de diagnóstico e reparo.\nVocê pode nesse momento escolher quais ferramentas farão parte dessa mídia de recuperação. Na tela seguinte você escolhe a opção de permitir ou não o suporte remoto nos PCs que forem iniciados a partir dessa mídia.\nLembre-se de instalar o Debbuging Tools com antecedência, caso contrário você não vai conseguir avançar. Como o DaRT acompanha uma ferramenta antimalware (antispyware+antivírus) você tem a opção de baixar automaticamente a atualização via internet ou fazer isso manualmente.\nSe por algum motivo você tiver PCs que precisam de algum driver especial de disco ou rede esse é o momento para fazer essa inclusão. Na sequência você pode incluir outras ferramentas que farão parte da mídia de recuperação, deixando-a ainda mais poderosa.\nAo final desse processo um arquivo .ISO será gerado. Consulte o próprio Help do DaRT para saber como reaproveitar esse arquivo em outros métodos de distribuição como citado anteriormente.\nLembre-se que se você instalar o DaRT no Windows 7 x64 você só vai conseguir gerar mídia de recuperação 64-bits. Se você precisa gerar mídia de recuperação x86 você deve usar Windows 32-bits (pode usar máquina virtual para isso).\nSuporte Remoto quando o PC não consegue carregar o Windows\nAgora que você já criou a mídia de recuperação chegou a hora de usá-la. No meu caso eu aproveitei o .ISO para iniciar uma máquina virtual que tem o Windows 7 instalado.\nAssim que o boot é realizado por essa mídia a instalação do Windows será identificada (se você não ver nada nessa tela é porque provavelmente você precisa incluir o driver da controladora do disco). Lembre-se que se o disco estiver protegido pela criptografia Bitlocker será preciso entrar com a senha de recuperação do disco antes de prosseguir com a manutenção.\nA tela a seguir mostra o ambiente de recuperação que já acompanha o Windows 7. Perceba que o DaRT incluiu mais uma opção no final dessa lista. Ao clicar nesse link você verá todas as ferramentas disponíveis.\nPara acionar o suporte remoto clique em “Remote Connection”. Anote o número do ticket, endereço IP e porta de comunicação. Se você precisa especificar IP fixo clique na ferramenta TCP/IP na tela inicial do DaRT. Se a placa de rede não foi reconhecida provavelmente você vai precisar incluir o driver no momento da criação da mídia.\nA partir de algum PC onde você instalou o DaRT carregue o “DaRT Remote Connections Viewer”\nNa tela de “Ticket Information” digite os dados anotados a partir da máquina a ser suportada e clique em “Connect”. Pronto, você já está controlando remotamente o PC. Na tela abaixo eu carreguei o Computer Management, que permite coletar informações da máquina, verificar informações do disco e controlar a inicialização de drivers, serviços e aplicativos.\nVisão geral das ferramentas que compõem o DaRT:\nSolution Wizard: Assistente de solução de problemas para orientar qual a melhor ferramenta a ser usada com base no atual sintoma.\nTCP/IP Config: para definir IP fixo se necessário (IPV4 ou IPV6)\nERD Registry Editor: caso você precise fazer alguma mudança no registro do Windows mas que por algum motivo não consegue, ou não deve, fazer com o Windows carregado.\nLocksmith: conhece aquele caso onde tiramos o PC do domínio e não sabemos a senha do usuário admin local? Pois é, essa ferramenta permite trocar essa senha, permitindo logon local no PC para fazer o reingresso ao domínio.\nCrash Analizer: Você indica o arquivo contendo o dump de memória e ele te mostra o que ocasionou a Tela Azul (no caso abaixo foi um driver). Você pode carregar o Computar Management do DaRT e controlar a inicialização desse driver, desabilitando-o. Você pode fazer o mesmo com serviços ou outros programas de carregamento automático.\nDisk Wipe: Ferramenta para remover todo o conteúdo do disco rígido, evitando que arquivos ou partições possam ser recuperados (usa um algoritmo do Departamento de Defesa Norte Americano). Muito útil quando você precisa se desfazer de algum PC antigo.\nHotfix Uninstall: Sabe aquele hotfix que por algum problema não consegue ser removido a partir do Windows? Essa ferramenta permite removê-lo “na marra”. Como o Windows não está carregado a eficácia é maior.\nSFC Repair: Para reparar algum arquivo de sistema que pode ter sido corrompido ou substituído inadequadamente.\nStandalone System Sweeper: Para remover aquele spyware ou vírus que o antivirus tradicional não consegue remover por estar carregado em memória.\nDisk Commander: para reparar volumes danificados.\nFile Restore: para recuperar arquivos excluídos\n","permalink":"http://ricardomartins.com.br/conheca-o-microsoft-diagnostics-and-recovery-toolset-dart-7-0-beta/","summary":"\u003cp\u003ePor \u003ca href=\"http://marcelomatias.wordpress.com/\"\u003eMarcelo Matias\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eVocê já se deparou com algum problema onde foi preciso fazer a reinstalação do Windows para recuperar a máquina? Tela azul, arquivos corrompidos, volume danificado, hotfix que não pôde ser removido, malware persistente, driver ou serviço corrompido… Quanto tempo o seu cliente fica sem trabalhar quando um problema desses ocorre?\u003c/p\u003e\n\u003cp\u003eSe você infelizmente já passou por essa situação saiba que existe uma ferramenta da Microsoft feita especialmente para você: chama-se Diagnostics and Recovery Toolset (DaRT).\u003c/p\u003e","title":"Conheça o Microsoft Diagnostics and Recovery Toolset – DaRT 7.0 (Beta)"},{"content":"Apenas compartilhando um vídeo que eu fiz mostrando como criar uma VM Linux (Ubuntu) pelo Azure CLI. No vídeo é explicado passo a passo do processo, no entanto vou colocar abaixo os comando executados para caso você queira testar, possa copiar e colar os comandos e ganhar tempo:\naz login az group create -n mylab -l brazilsouth az vm create --resource-group mylab --name mylabvm --image UbuntuLTS --generate-ssh-keys Importante comentar que é necessário ter o Azure CLI instalado e uma assinatura do Azure válida. Caso precise instalar o Azure CLI, aqui está o link com o tutorial e para criar uma assinatura do Azure gratuitamente, clique aqui.\n","permalink":"http://ricardomartins.com.br/criando-uma-vm-linux-ubuntu-pelo-azure-cli/","summary":"\u003cp\u003eApenas compartilhando um vídeo que eu fiz mostrando como criar uma VM Linux (Ubuntu) pelo Azure CLI. No vídeo é explicado passo a passo do processo, no entanto vou colocar abaixo os comando executados para caso você queira testar, possa copiar e colar os comandos e ganhar tempo:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eaz login\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eaz group create -n mylab -l brazilsouth\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eaz vm create --resource-group mylab --name mylabvm --image UbuntuLTS --generate-ssh-keys\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eImportante comentar que é necessário ter o Azure CLI instalado e uma assinatura do Azure válida. Caso precise instalar o Azure CLI, \u003ca href=\"https://docs.microsoft.com/pt-br/cli/azure/install-azure-cli\"\u003eaqui está o link \u003c/a\u003ecom o tutorial e para criar uma assinatura do Azure gratuitamente, \u003ca href=\"https://azure.microsoft.com/pt-br/free/\"\u003eclique aqui.\u003c/a\u003e\u003c/p\u003e","title":"Criando uma VM Linux (Ubuntu) pelo Azure CLI"},{"content":"Uma seleção dos meus projetos, guias e contribuições. A maioria focada em Azure, Cloud, Kubernetes e DevOps.\nProjetos Projeto Descrição Link AI for Infra Guia prático de IA para engenheiros de infraestrutura — 220+ páginas, 15 capítulos, 10 cenários de troubleshooting ai4infra.com PTU Calculator Estimador de PTU do Azure OpenAI — compare modelos de preço PAYGO, PTU e híbrido ptucalc.com Azure Governance Made Simple Ebook de 30 capítulos — identidade, políticas, IaC, custos, observabilidade, governança em escala book.azgovernance.com Startup-Scale Landing Zone Landing Zone Azure opinada para startups — deploy em menos de 1 hora (Bicep + Terraform) startupscalelanding.zone AKS Newsletter Atualizações mensais curadas sobre Azure Kubernetes Service aksnewsletter.com Azure Digital Natives Guide Checklist completo de Azure para startups e equipes digital-native azdnguide.com Azure Feed Atualizações diárias agregadas dos blogs do Azure azurefeed.news Linux Hackathon O 1º hackathon de Linux da Microsoft — parte do programa oficial \u0026ldquo;What The Hack\u0026rdquo; linuxhackathon.com Guias de Estudo Guia Idioma Link AKS Learning Path Inglês aks-learning.github.io Azure Fundamentals Study Guide Inglês azure-fundamentals.com Guia de Estudo Azure Fundamentals Português github.com/ricmmartins/guia-estudo-az900 AWS Cloud Practitioner Study Guide Inglês github.com/ricmmartins/study-guide-aws-ccp Guia de Estudo AWS Fundamentals Português github.com/ricmmartins/guia-estudo-fundamentos-aws Coleções no Microsoft Learn Coleção Link Azure for AWS Professionals aka.ms/Azure4AWSPros Exam AZ-305 (Azure Solutions Architect Expert) Training aka.ms/az-305-training Exam AZ-400 (DevOps Solutions) Training aka.ms/az-400-training Acompanhe as atualizações mais recentes no meu Activity Log\nVeja todos os repositórios no meu GitHub\n","permalink":"http://ricardomartins.com.br/projetos/","summary":"Projetos e contribuições","title":"Projetos"},{"content":"Nesta semana foi lançado o Azure Container Instance, que é uma excelente opção para rodar containers no Azure de forma simples e rápida, sem ter que se preocupar com provisionamento de máquina virtual e requisitos relacionados.\nEntão eu preparei um vídeo mostrando como usar e você pode conferir abaixo:\nPara mais referências, abaixo alguns links onde você pode ler e se aprofundar mais sobre o assunto:\nhttps://azure.microsoft.com/en-us/blog/announcing-azure-container-instances/ https://docs.microsoft.com/en-us/azure/container-instances/container-instances-overview https://docs.microsoft.com/en-us/azure/container-instances/ https://docs.microsoft.com/en-us/azure/container-instances/container-instances-quickstart https://docs.microsoft.com/en-us/azure/container-instances/container-instances-orchestrator-relationship https://regularitguy.com/2017/08/01/azure-container-instances-demo/ https://thenewstack.io/azure-container-instances-proof-microsoft-innovating-containers/ http://www.infoworld.com/article/3212211/containers/what-is-aci-microsofts-azure-container-instances-explained.html ","permalink":"http://ricardomartins.com.br/saiba-mais-sobre-o-azure-container-instance/","summary":"\u003cp\u003eNesta semana foi lançado o Azure Container Instance, que é uma excelente opção para rodar containers no Azure de forma simples e rápida, sem ter que se preocupar com provisionamento de máquina virtual e requisitos relacionados.\u003c/p\u003e\n\u003cp\u003eEntão eu preparei um vídeo mostrando como usar e você pode conferir abaixo:\u003c/p\u003e\n\u003cscript async=\"\" id=\"asciicast-131745\" src=\"https://asciinema.org/a/131745.js\" type=\"text/javascript\"\u003e\u003c/script\u003e\n\u003cp\u003ePara mais referências, abaixo alguns links onde você pode ler e se aprofundar mais sobre o assunto:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://azure.microsoft.com/en-us/blog/announcing-azure-container-instances/\"\u003ehttps://azure.microsoft.com/en-us/blog/announcing-azure-container-instances/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.microsoft.com/en-us/azure/container-instances/container-instances-overview\"\u003ehttps://docs.microsoft.com/en-us/azure/container-instances/container-instances-overview\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.microsoft.com/en-us/azure/container-instances/\"\u003ehttps://docs.microsoft.com/en-us/azure/container-instances/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.microsoft.com/en-us/azure/container-instances/container-instances-quickstart\"\u003ehttps://docs.microsoft.com/en-us/azure/container-instances/container-instances-quickstart\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.microsoft.com/en-us/azure/container-instances/container-instances-orchestrator-relationship\"\u003ehttps://docs.microsoft.com/en-us/azure/container-instances/container-instances-orchestrator-relationship\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://regularitguy.com/2017/08/01/azure-container-instances-demo/\"\u003ehttps://regularitguy.com/2017/08/01/azure-container-instances-demo/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://thenewstack.io/azure-container-instances-proof-microsoft-innovating-containers/\"\u003ehttps://thenewstack.io/azure-container-instances-proof-microsoft-innovating-containers/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://www.infoworld.com/article/3212211/containers/what-is-aci-microsofts-azure-container-instances-explained.html\"\u003ehttp://www.infoworld.com/article/3212211/containers/what-is-aci-microsofts-azure-container-instances-explained.html\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e","title":"Saiba mais sobre o Azure Container Instance"},{"content":"Olá Mundo! Meu nome é Ricardo Martins e este blog é o meu memory dump. Chamo esse blog assim porque ele é meu ajudante de memória. É frustrante quando eu passo horas para aprender alguma coisa legal, que, em cerca de três meses, talvez menos, não consigo me lembrar mais.\nInspirado no artigo Do things, write about it, é só mais uma forma de escrever um pouco sobre coisas do meu dia-a-dia. É assim que venho mantendo este blog desde 2007.\nQuem é o Ricardo? Nasci em Niterói (no último dia de 1984). Sou reservadamente convencional, multitarefa monofoco, command line heavy-user, interneteiro curioso, pai de três filhos incríveis e um marido sortudo.\nAlguém detalhista, com um desejo de fazer as coisas de maneira certa. Capaz de trabalhar de modo constante, meticuloso e deliberado. Sou persistente, cooperativo, cauteloso e organizado. Não sou o melhor no que eu faço, mas tenho disciplina e consistência.\nComo faz: Sou multitarefa, porém monofoco. Cada coisa de uma vez, na sua vez. Não tenho receios sobre o que desconheço e gosto de desafios. Aliás, PRECISO deles, porque só o dinheiro não vale a dedicação de 1/3 do meu dia, tem que ter EMOÇÃO.\nO que eu faço? Sou um profissional de TI com 20+ anos de experiência, trabalhando com infraestrutura, DevOps e computação em nuvem. Minhas áreas de foco incluem:\nCloud Architecture \u0026amp; Operations Kubernetes e AKS Infraestrutura como Código Cultura DevOps \u0026amp; automação Desenvolvimento de conteúdo e capacitação de clientes Minha estrela guia: tornar a vida mais fácil para desenvolvedores, operadores e clientes. Construir sistemas simples, eficientes e que não quebram às 2h da manhã.\nTrajetória Profissional Período Cargo Empresa Abr/2024 – Atualmente Principal Cloud Solution Architect Microsoft Jan/2023 – Mar/2024 Senior Managed OpenShift Black Belt Red Hat Dez/2019 – Jan/2023 Senior Customer Engineer (Azure FastTrack) Microsoft Jun/2019 – Dez/2019 Azure Technical Trainer Microsoft (Redmond, WA) Dez/2015 – Jun/2019 Cloud Solution Architect Microsoft (Rio de Janeiro) Abr/2003 – Dez/2015 Systems Engineer \u0026amp; Consultant Diversas empresas De Brasil → Redmond → Florida. Muitas mudanças, muito crescimento e muitas histórias pelo caminho.\nFormação Mestrado interrompido em Engenharia Eletrônica / Redes e Sistemas Distribuídos (UERJ) Tecnólogo em Redes de Computadores (Senac/RJ) Técnico em Eletrônica (Escola Técnica Estadual Henrique Lage) Certificações Profissionais Ativas Microsoft Azure Network Engineer Associate Microsoft AI Fundamentals Red Hat Certified OpenShift Administrator Red Hat Certified Specialist in Containers AWS Certified Cloud Practitioner Kubernetes and Cloud Native Associate Linux Foundation Certified Systems Administrator Azure Solutions Architect Expert Azure DevOps Engineer Expert Azure Security Engineer Associate Azure Administrator Associate Azure Fundamentals Lista completa no Credly Curiosidades 2002 — Aos 17 anos, fiz meu primeiro curso de montagem e manutenção de micros no Cefet/RJ. 2003 — Primeiro emprego como estagiário técnico. 2004 — Me aprofundei em Linux. Primeira certificação profissional (Conectiva Linux). 2005-2010 — Comecei e tranquei faculdade 4 vezes. A vida andava rápido demais. 2007 — Me casei aos 22 anos. 2009-2011 — Cheguei a trabalhar em 3 empregos simultâneos. 2011 — Fui pai pela primeira vez! Decidi terminar a faculdade de vez. 2012 — Comecei a trabalhar com Cloud Computing. Também descobri o que é lay-off :D 2013 — Pai pela segunda vez! Finalmente terminei a faculdade após 8 anos de tentativas. 2015 — Consegui uma vaga em uma multinacional (achei que tinha zerado a vida). 2016 — Segunda viagem de avião da vida, primeira viagem internacional aos 31 anos com inglês de escola pública. 2018 — Pai pela terceira vez! 2019 — Me mudei para Redmond/WA nos EUA como instrutor técnico na gringa. 2020 — Mudança para Winter Garden/FL onde moro hoje. O lado humano Sou mais um daqueles com quem você cruza na rua e nem nota. Não fumo, não bebo, não jogo futebol. Não vivo sem minha esposa, filhos e minha família. O resto eu corro atrás…\nSou do tipo que canta mal mas canta assim mesmo, que manda bilhete e diz \u0026ldquo;eu te amo\u0026rdquo;, que sossega com o pôr-do-sol e adora trovões. Que faz árvore genealógica, que não suporta ver ninguém triste e que adora nostalgia da infância.\nTambém sou do tipo que acredita em Deus, que fica vendo a lua nascer, e que não vive sem o mar por perto pelo simples prazer de admirar as ondas indo e vindo.\nLinks 🌐 Blog em Inglês 📋 Publicações e Atividades 💼 LinkedIn 🐙 GitHub ","permalink":"http://ricardomartins.com.br/sobre/","summary":"Sobre Ricardo Martins","title":"Sobre"}]