Sintoma: Ao anexar um arquivo a um WorkItem no servidor team foudation utilizando o Visual Studio nos deparamos a seguinte mensagem de erro ao Salvar o Anexo:

TF237082: The Attachment could not be uploaded. Verify that you have a network connection and that Team Foundation Server is avaible. If the problem persists, provide the following information to the server administrator.
The Server returned the following message: The remote server returned an error: (500) Internal Server Error.

Ao Anexar arquivos ao Work Item utilizando o Tem WebAccess recebemos a mensagem a seguir:

“Attachment upload failed. Check that you have a network connection and that the Team Foudation Server is availble. If the problem persists, contact your Team Foudation Server Administrator.”

Ao checar os eventos ocorridos no servidor TFS nos deparamos com o seguinte evento de erro no momento em que tentamos anexar o arquivo no work item:

O Seguinte log de evento ocorre no meu servidor tfs imediatamente apos o erro gerado no portal ou no Visual Studio:
Event Type: Error
Event Source: TFS WorkItem Tracking
Event Category: None
Event ID: 3000
Date:  12/8/2010
Time:  4:32:57 PM
User:  N/A
Computer: %SERVERNAME%
Description:
TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 12/8/2010 6:32:57 PM
Machine: %SERVERNAME%
Application Domain: /LM/W3SVC/322882837/Root/WorkItemTracking-3-129362259372029125
Assembly: Microsoft.TeamFoundation.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Process Details:
  Process Name: w3wp
  Process Id: 6100
  Thread Id: 4312
  Account name: %Domain\User%

Detailed Message: TF51334: An unknown Web service error occurred: A severe error occurred on the current command.  The results, if any, should be discarded.. Check the Event Log for more information.
Web Request Details
    Url: http://teamserver.dominio.local:8080/WorkItemTracking/v1.0/AttachFileHandler.ashx [method: POST]
    User Agent: Team Foundation 9.0.21022.8, (WebAccess 9.0.3000)
    Headers: Content-Length=15280&Content-Type=multipart%2fform-data%3b+boundary%3d————————–8cd650cc10fa8fe&Accept-Language=pt-BR&Expect=100-continue&Host=teamserver.perlink.net%3a8080&User-Agent=Team+Foundation+9.0.21022.8%2c+(WebAccess+9.0.3000)&X-TFS-Version=1.0.0.0&X-TFS-Session=a1f46f21-1b5a-4b1a-8b82-b85cd4137581
    Path: /WorkItemTracking/v1.0/AttachFileHandler.ashx
    Local Request: False
    Host Address: %IP Client%
    User: %domain\user% [authentication type: NTLM]

Exception Message: TF51334: An unknown Web service error occurred: A severe error occurred on the current command.  The results, if any, should be discarded.. Check the Event Log for more information. (type ConfigurationException)

Exception Stack Trace:

Inner Exception Details:

Exception Message: A severe error occurred on the current command.  The results, if any, should be discarded. (type SqlExistingConnectionForciblyClosedException)

Exception Stack Trace:    at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.HandleDalError(Exception e)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(IRequestContext context, String sqlBatch, List`1 parameterList, Boolean& errorOnBulkUpdate, String connectionString)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayload(IRequestContext context, String sqlBatch, List`1 parameterList, Boolean& errorOnBulkUpdate)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.AdoDbBase.ExecuteBatchQuery(IRequestContext context, String sqlBatch, List`1 parameterList)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchInternal(IRequestContext context, Boolean passInConnectionInfo, String server, String database)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatch()
   at Microsoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.AddFileAttachment(String attachmentServerName, String attachmentDatabaseName, String clientUserName, Stream fileInput, String fileGuid, String projectUri)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.AttachmentUploadHandler.ProcessRequest(HttpContext context)

Inner Exception Details:

Exception Message: A severe error occurred on the current command.  The results, if any, should be discarded. (type SqlException)
SQL Exception Class: 11
SQL Exception Number: 0
SQL Exception Procedure:
SQL Exception Line Number: 0
SQL Exception Server: %SQL SERVER%
SQL Exception State: 0
SQL Error(s):

Exception Data Dictionary:
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 10.00.1600
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 0
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476
Exception Stack Trace:    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader()
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteReaderWithRetry(SqlCommand sqlCommand, SqlConnection sqlConnection, SqlDataReader& dataReader)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(IRequestContext context, String sqlBatch, List`1 parameterList, Boolean& errorOnBulkUpdate, String connectionString)

Solução: Depois de uma longa jornada cheguamos a conclusão de que existia uma tabela corrompida no database TfsWorkItemTrackingAttachments.

Essa tabela traz todos os anexos do portal TFS e por algum motivo corrompeu… para solucionar esse problema basta recorrer ao bom e velho bkp que não impactará nos outros dados do nosso portal e já que não conseguiamos anexar documentos fazia algum tempo, um restore não trouxe nenhuma perda para nossos projetos (o maximo que se perde aí sao os anexos que foram incluidos nos workitens caso o bkp seja de dias anteriores ao dia do problema ocorrido.

Recomendo que seja feito os seguinte passsos:
1 – Backup do banco TfsWorkItemTrackingAttachments
2 – Detach no banco TfsWorkItemTrackingAttachments
3 – Rename nos arquivos mdf e ldf para TfsWorkItemTrackingAttachments.mdf.old e TfsWorkItemTrackingAttachments_1.ldf.old
4 – Restore do banco com o Backup do ultimo dia em que foi utilizada a função de anexo em um work Item pelo Visual Studio ou pelo Team System WebAccess

Anúncios

Treinamento
EficienTI

Administração de um Firewall PFSense

Treinamentos

Versão 1

Emissão: 15 de Janeiro de 2011

Validade: Indeterminada

Conteúdo

SUMÁRIO EXECUTIVO
ADMINISTRAÇÃO DO PFSENSE
1.    OBJETIVO
2.    SOBRE O PFSENSE

3.    PRÉ-REQUISITOS

4.    INTRODUÇÃO À SEGURANÇA EM REDE

4.1.    Definição

5.    PRÉ-REQUISITOS PARA INSTALAÇÃO DO PFSENSE

5.1.    Compatibilidade de Hardware

5.2.    Mídia do PFSENSE

5.3.    Requisitos de Hardware

6.    INSTALAÇÃO DO PFSENSE

7.    CONFIGURAÇÕES INICIAIS DO PFSENSE

8.    AUMENTANDO A SEGURANÇA DO PFSENSE
9.    INSTALAÇÃO DE PACKAGES
9.1.    Instalando os Packages
9.2.    Verificando Packages instalados

10.    RULES: DEFININDO REGRAS DE ACESSO

11.    PROXY: CONFIGURAÇÕES DO SQUID

11.1.    Configurações Iniciais do Serviço de Proxy

11.2.    Métodos de Autenticação

11.3.    Cache

11.4.    Access Control

12.    PROXY: CONFIGURAÇÕES DO SQUIDGUARD
12.1.    Baixando BlackLists
12.2.    Gerenciando BlackLists
12.3.    SquidGuard Logs

13.    DHCP SERVER

14.    DHCP RELAY

15.    NAT PORT FORWARD

15.1.    Port Forward

15.2.    NAT 1:1

16.    BACKUP / RESTORE

Sumário Executivo

A EficienTI é uma empresa de prestação de serviços de Infra-Estrutura de TI, originada a partir de uma empresa parceira Gold Microsoft, especializada em Infra-Estrutura de TI.

Outros serviços oferecidos pela EficienTI incluem soluções de hospedagem, terceirização de serviços de TI e serviços de ServiceDesk.

A EficienTI se caracteriza pelo compromisso absoluto com a entrega de soluções de alta qualidade, dentro do prazo e custo estimados. Nossos gerentes são especializados na entrega de soluções que melhor atendam a necessidade dos clientes, de maneira eficiente e de acordo com o escopo definido.

A EficienTI possui profissionais com especialização nas competências Microsoft relativas a NetWorking Infrastructure Solutions, Linux, Gerência, Melhores Práticas e Controle de T.I. Entre as certificações de seus profissionais estão ITILF, COBITF, CSM, LPIC-1, LPIC-2, MCTS, MCSE, MCSA, MCDBA, MCSD e MCAD.

Administração do PFSENSE

Objetivo

Capacitar à instalar, configurar e administrar recursos de Firewall, Proxy, DHCP, NAT Port Forwarding e VPN utilizando o pfSense, um firewall estavel montado sobre a plataforma FreeBSD.

Sobre o PFSense

O pfSense é um dos mais conhecidos e provavelmente mais rico, em recursos, entre os sistemas para appliance pré-configurado. Nascido em uma versão customizada do estável FreeBSD, conta com uma interface amigável que facilita a administração. Com gerenciamento via Web, oferece inúmeros recursos, focado para ambiente de roteamento e firewalling, bem como segurança de networking, excelente solução para VPN entre outros diversos recursos.

Pré-Requisitos

Conhecimento básico em redes de computadores

Introdução à Segurança em Rede

Definição

Consiste em atuar em uma linha de defesa eficaz em três pontos principais em uma rede:

  • Defesa contra catástrofes
  • Defesa contra falhas previsíveis
  • Defesa contra acesso não autorizado

Para atacas essas áreas com eficiência, podemos trabalhar com os seguintes recursos de TI:

  • Criptografia
  • Gestão de Chaves Públicas
  • Firewalls
  • Sistema de Detecção de Intrusão
  • Redes Virtuais Privadas (VPN)
  • Segurança em Redes Sem Fio

Pré-Requisitos para Instalação do PFSense

Compatibilidade de Hardware

Antes de iniciar a instalação do PFSense, recomenda-se verificar no centro de compatibilidade do FreeDSD afim de escolher o melhor hardware possível para a instalação: http://www.freebsd.org/releases/7.2R/hardware.html

Mídia do PFSENSE

Primeiramente devemos baixar a ultima versão estável do PFSense disponível no site do PFSEnse.org http://www.pfsense.org/mirror.php?section=downloads

Após realizar o Download da imagem através de um dos mirro’s disponíveis, podemos usar o 7-zip para Descompactar a imagem e finalmente o um gravador de imagem (.ISO), cito por exemplo, o BurnWare Free

Requisitos de Hardware

Recomenda-se utilizar um servidor com pelo menos 1.5 Ghz de processador e 512MB de Ram.

Necessário utilizarmos no mínimo 2 placas de rede

Instalação do PFSense Passo a Passo

Passo 1

O CD baixado no site do PFSense, funciona com um “live cd”, ou seja, todo o sistema pfsense já está previamente carregado e pronto para uso ao iniciarmos o nosso servidor a partir do CD Rom. Isso pode ser muito útil para casos de emergência em que faz-se necessário subir rapidamente o firewall, tendo que apenas iniciar o servidor a partir do cd e importar as configurações que podem ser salvas em um arquivo XML.

Passo 2

Ao inicializar o cd será carregado o sistema PFSense até que seja necessário realizar as configurações iniciais de rede conforme print abaixo

Passo 3

As interfaces de rede disponíveis serão exibidas, como no exemplo acima, como em0 e em1. Quando for perguntado se você quer configurar uma vlan responda que não digitando N e em seguida enter.

Você será perguntado agora quais são as suas interfaces LAN e WAN, basta definir de acordo com a sua preferência conforme print abaixo:


Passo 4

Após esse processo o PFSense já estará pronto para utilização visto que é um live cd, porem recomenda-se realizar a instalação no próprio disco rígido para maior performance e estabilidade do sistema. Faça isso usando a opção 99

Passo 5

Aceite as configurações de console atuais (vídeo, teclado etc…)

Passo 6

Quick Install para uma instalação automatizada

Passo 7

  1. Será exibido um alerta de que seu HD será formatado e o PFSense instalado no disco rigido, clique ok

    Passo 8

    Quando for perguntado da instalação do Kernel, marque a opção que melhor se adequar ao seu processador. Basicamente, se você estiver utilizando um único processador escolha “Uniprocessor Kernel” caso esteja usando mais de um processador marque “Symmetric Multiprocessing Kernel”

    Passo 9

    Quando for exibida a tela abaixo você terá finalizado a instalação do PFSense com sucesso. Será solicitado o Reboot do servidor, lembrando que será necessário retirar o cd da unidade

    Configurações Iniciais do PFSense

    Passo 1

    Após a instalação e reboot do PFSENSE (Boot a partir do HD), estaremos com nosso sistema pronto para ser configurado via Web

    Passo 2

    Caso necessário, podemos alterar o IP da rede interna com a opção 2.

    Obs: Lembre-se de não habilitar o DHCP no seu PFSense caso não seja realmente necessário.

    Após a definição do IP correto da rede interna podemos acessar o PFSense a partir de uma estação na sua rede interna, digitando pelo seu navegador o endereço da LAN do PFSense.

    Digite as credenciais: Usuario: Admin; Password: pfsense, para inicializar o wizard de configuração inicial.

    Passo 3

Configure o Nome do seu servidor Proxy/firewall, domínio e o DNS apontando para os servidores interno, caso disponível.

Passo 4

Altere o timezone para America/São Paulo

Passo 5

Configure sua interface WAN de acordo com as configurações da sua prestadora de serviço de internet

Passo 6

Confirme as configurações da sua LAN e redefina e documente sua senha de acesso ao PFSENSE. Será solicitado que você recarregue as configurações do PFSense:

Passo 7

Com isso o PFSense já esta devidamente configurado com as configurações básicas e apto a navegação de seus clientes.

Aumentando a Segurança do PFSENSE

Para uma melhor experiência com o PFSense, devemos deixar a tela do console bloqueada para acesso somente autorizado com senha, para isso basta navegar em System, Advanced e na opção Miscellaneous marque a Check-box Password protect… salve as alterações e reinicie o PFSENSE

Instalação de Packages

Instalando os Packages

Selecionamos alguns dos pacotes mais importantes para nossa estrutura inicial. Abaixo a lista dos Packages que devemos instalar. Para instalá-los navegue em SYSTEM > PACKAGES e clique no botão “+” ao lado da descrição do pacote. Execute a instalação na seguinte ordem:

1 – squid: Servidor Proxy. Reduz utilização da conexão e melhora tempo de resposta fazendo cachê de suas requisições além de prover um nível básico de controle e segurança no acesso à URL’s potencialmente perigosos

2 – Lightsquid: Ferramenta responsável pela geração de relatórios de acesso

3 – squidGuard: Poderosa ferramenta de acesso que integrado ao squid permite controlar a navegação baseado no endereço de origem, destino, URL, Hoário ou combinações desses itens. Conta com blacklists agrupados em categorias de sites e atende 1000.000 solicitações em 10 segundos segundo o site oficial.


Verificando Packages instalados

Poderemos consultar os pacotes instalados posteriormente em Installed Packages.

Rules: Definindo Regras de Acesso

Firewall > Rules: Podemos editar nossas regras permitindo ou negando o acesso à protocolos e portas de qualquer origem para qualquer destino, defindo conforme política de segurança da TI da empresa ou Grupo.

Caso você não tenha nenhuma regra de liberação criada o comportamento do PFSense é de bloquear todo trafego de entrada e saída.

Proxy: Configurações do Squid

Services > Proxy Server:

Configurações Iniciais do Serviço de Proxy

Na aba General do nosso Proxy Server podemos definir as configurações básicas do nosso serviço tais como:

  • Interface
  • Habilitar Proxy Transparente
  • Log
  • Porta
  • Servidores DNS

Métodos de Autenticação

Para configuração do Squid como proxy da nossa organização, podemos utilizar basicamente 3 metodos de acesso:

  • Transparent Proxy
  • Autenticação com usuario Local do PFSense
  • Autenticação Integrada com recursos Externos (LDAP – Windows Active Directory)

Transparent Proxy: A estação de trabalho se conecta ao PFSense como Gateway que se apropria da requisição para sair para internet como Proxy. Para habilitar basta marcar a check box correspondente na aba geral do Proxy Server

PFSense Local User: Para este método de autenticação deve-se criar um ou mais usuarios na ana Local Users e em seguida em Auth Settings definir o metodo de autenticação como Local.

Autenticação Integrada com AD (LDAP): Para que os usuarios de um dominio Windows 2003 possam autenticar com seus usuarios do AD no PFSense devemos definir em Auth Setting o método de autenticação LDAP seguindo as configurações abaixo:

  • Versão do LDAP: 3 (para Windows 2003 Server)
  • Authentication Server: IP ou FQDN do Servidor
  • Authentiocation Port: 389
  • User DN (user1 criado no dominio dom1.local por exemplo):
    • cn=user1,cn=Users,dc=dom1,dc=local
  • LDAP Password: Senha do usuarios definido em User DN
  • LDAP Base Domain: dc=dom1,dc=local (conforme exemplo do dominio dom1.local)
  • User DN Attribute: uid
  • Search Filter: sAMAccountName=%s

Cache

Na Aba Cache Mgmt podemos configurar as opções de cache do pfsense.

Recomendações da comunidade PFSense:

  • HardDiskSize 3000 (3GB)
  • Memory: 50% da Capacidade do seu server
  • Minimum object size: 0
  • Maximum object size: opcional
  • Hard disk cache system: aufs (é uma versão alternativa de unionfs que tem como objetivo melhorar a confiabilidade e o desempenho do sistema de armazenamento)

Access Control

Na aba access control do Proxy Server temos a opção de configurar um controle básico de acesso definindo por exemplo, uma blascklist básica para o serviço squid

Proxy: Configurações do SquidGuard

Services > Proxy Filter

Baixando BlackLists

Com a configuração de Blacklists, através do serviço do SQUID Guard, podemos baixar listas organizadas por grupos e categorias para facilitar o bloqueio ou liberação para maquinas, usuários e grupos. Para isto devemos adicionar o seguinte endereço à BLACK LIST URL: http://www.shallalist.de/Downloads/shallalist.tar.gz

Com esse endereço devidamente adicionado clique em Upload URL e aguarde alguns minutos.

Obs: Lembre-se de Salvar e aplicar as alterações após a finalização do Upload

Gerenciando BlackLists

Você pode gerenciar sua Blacklist por grupos ou simplesmente configurar sua regra default.
Para isso basta acessar a Aba Default em Proxy Filter e clicando em: Destination Ruleset, gerenciar as listas baixadas, liberando ou bloqueando o s acessos conforme a necessidade e política da empresa.
A criação e gerenciamento de grupos customizados por maquinas ou usuário (caso você integre o PFSENSE ao Active Directory), pode ser feito na aba
ACL do Proxy Filter. Lembre-se de sempre salvar as configurações realizadas, clicando em Save no fim da página e aplicar as alterações clicando em Apply na aba General settings.

SquidGuard Logs

Na aba Log do ProxyFilter podemos acompanhar uma lista de urls que foram bloqueadas acessando a oção Blocked.

Outra opção interessante do Log do Sq    uid Guard esta na opção Filter Log, onde você pode acompanhar o funcionamento ou parada do serviço SquidGuard. Essa opção pode ser útil para um troubleshoting aonde podemos verificar se o serviço está iniciado se o último log gerado for uma mensagem semelhante à “squidGuard ready for requests“, ou se o serviço está parado quando também explícito na ultima entrada do Log.

DHCP Server

Services > DHCP Server: Para ativação do serviço basta marcar a check box Enable DHCP Server e definir o escopo para sua rede interna.

DHCP Relay

Services > DHCP Server: Para recebimento automatico de um IP em uma rede, a estação que faz a solicitação necessita iniciar a negociação com um broadcast na rede afim de encontrado o Servidor DHCP, porem por default a maioria dos roteadores não encaminham tráfego de broadcast. Podem haver casos em que o servidor DHCP está localizado em uma sub-rede que conecta-se a outra sub-rede através de um roteador (no nosso caso o pfsense). Nesse caso devemos configurar o DHCP Relay que se encarregará de pegar os pacotes enviados pelo cliente DHCP e encaminhará para o servidor DHCP

NAT Port Forward

Firewall > Port Foward:

Port Forward

Consiste em redirecionar uma porta específica de um nó para outro.

  • Por exemplo: O WebSite da minha empresa, configurado em um servidor na minha rede interna, precisa ser publicado para acesso externo. Para que isso seja possível devemos criar um port foward redirecionando todo trafego que chegar na porta 80 da interface wan do PFSense para a porta 80 do meu servidor web interno.

NAT 1:1

Destinado a ligar dois nós de redes distintas aonde todo trafego de internet (para o IP publico especificado) é direcionado a um IP especifico da nossa rede interna. Para Permitir o tráfego à partir da internet deve-se criar uma regra do firewall (rules).

Backup / Restore

Para importar as configurações do PFSense, Navegue por Diagnostics, Backup/Restore e importe as configurações em XML que contem as configurações desejadas. Você pode editar o arquivo XML com um bloco de notas a fim de realizar os ajustes necessários antes de realizar o import.

ATENÇÃO!!!!!!!!!!

No campo “Restore Area” você deve restaurar exatamente a configuração especifica que deseja, por exemplo: Configurações de Rules.. Configuração de TUDO (All)… Caso seja feito algum restore em área incorreta, isto pode fazer com que o pfsense pare de funcionar visto que serão feitas alterações em locais incorretos.

Maiores informações clique aqui…

NOME

DATA

HORA

STATUS

DESCRIÇÃO DAS ALTERAÇÕES

Thiago Lima

15/01/2011

12:00

Pendente

Adição de VPN e Correções