TCC Seguranca -1.0

50
Faculdade Eniac Graduação Tecnológica em Tecnologia de Redes de Computadores Adriano José dos Santos Luan Moreno Segurança Em Redes Linux- SRL Servidores Críticos Guarulhos 2013

Transcript of TCC Seguranca -1.0

Page 1: TCC Seguranca -1.0

Faculdade Eniac

Graduação Tecnológica em Tecnologia de Redes de Computadores

Adriano José dos Santos

Luan Moreno

Segurança Em Redes Linux- SRL

Servidores Críticos

Guarulhos

2013

Page 2: TCC Seguranca -1.0

Segurança Em Redes Linux- SRL

Servidores Críticos

Trabalho de Conclusão de Curso

apresentado à Faculdade Eniac, como

requisito parcial para a obtenção do título de

Graduação Tecnológica em Tecnologia de

Redes de Computadores

Orientador: Prof. Andreia Pereira

Guarulhos

2013

Page 3: TCC Seguranca -1.0

Dedico este TCC a minha Família, pois sem

a união e apoio não seria possível acreditar

no melhor que podemos alcançar.

Page 4: TCC Seguranca -1.0

Agradeço primeiramente a Deus e as pessoas que

nos incentivaram ao longo desta trajetória da vida.

Page 5: TCC Seguranca -1.0

“Você pode encarar um erro como uma besteira a

ser esquecida ou como um resultado que aponta

uma nova direção.”

Steve Jobs

Page 6: TCC Seguranca -1.0

Sumário

Introdução .......................................................................................................................................... 8

1. A Internet ................................................................................................................................. 10

1.1 O TCP/IP e a Internet .......................................................................................................... 11

1.2 Um breve histórico ............................................................................................................... 12

2. Segurança em Redes ................................................................................................................ 13

2.1 O que é segurança na rede ................................................................................................ 13

2.2 Criptografias ......................................................................................................................... 14

2.3 Sistemas de Detecção de Invasão .................................................................................... 18

2.4 Ataques e segurança .......................................................................................................... 21

2.5 Mecanismo de segurança .................................................................................................. 22

3. Segurança com servidores Linux ............................................................................................ 24

3.1 História do Linux .................................................................................................................. 24

3.2 Servidores Linux .................................................................................................................. 24

3.3 Servidores de rede local ..................................................................................................... 25

3.4 Servidores de internet ......................................................................................................... 26

4. Firewall......................................................................................................................................... 27

4.1 Níveis de segurança ............................................................................................................ 28

4.2 Configurações de um Firewall no Linux ........................................................................... 28

4.3 Filtragens de pacotes .......................................................................................................... 29

5. Servidor Proxy Squid ................................................................................................................. 30

5.1 Configuração Proxy Squid .................................................................................................. 30

6. Políticas de Segurança ............................................................................................................. 32

6.1 Procedimentos de segurança ............................................................................................ 33

7. Revisão Bibliográfica ................................................................................................................. 34

8. Conclusão ................................................................................................................................... 35

Page 7: TCC Seguranca -1.0

9. Referências Bibliográficas ........................................................................................................ 36

10. Anexos ....................................................................................................................................... 37

10.1 Arquivo de configuração de um Firewall (Iptables) ..................................................... 37

10.2 Arquivo do de configuração do Proxy (Squid)............................................................... 45

11. Termo de compromisso e responsabilidade ........................................................................ 50

Page 8: TCC Seguranca -1.0

8

Introdução

Trata-se de um trabalho de conclusão de curso como requisito parcial para obtenção

de titulação em tecnólogo do curso de Tecnologia Redes de Computadores. O tema

deste estudo foi escolhido em função do grande crescimento da internet e a falta de

segurança. A que hoje em dia é fundamental para que os computadores e

servidores estejam protegidos para combater invasões e outros tipos de ameaça.

Ameaças como as de spam, vírus e hackers são muito comum em redes internas e

externas, e sem conhecimento adequado e com ferramentas adequadas fica

praticamente impossível detectar e eliminar algo do gênero.

O problema que as empresas andam sofrendo hoje em dia é a falta de segurança

dentro da rede local, ocasionando problemas como ataques por de hackers e

grandes problemas com acesso indevido do próprio usuário que infringem regras de

política de segurança da empresa constantemente e com isso prejudicando e

expondo e dados que ficam armazenados e a integridade da empresa, também mais

um dos grandes problemasé sem dúvida obter o controle e impedir acessos a sites

indesejáveis, poremfuncionários diariamente esta diariamenteacessando sites que

não são de conduta da empresa com isso ocasionando em certos momentos do dia

lentidão da internet e insegurança contra vírus.

O projeto é sobre implantação de segurança por meio de servidores com sistema

operacional Linux aonde serão instalado alguns serviços que tem um ponto muito

forte na segurança com aplicações como o Firewall (Iptables) e Proxy (Squid), com

esses serviços citados e mais alguns é possível obter ponto muito positivo para uma

rede, assim teremos grande controle para rede local e rede externa e diminuindo a

vulnerabilidade acabando com problemas já citados anteriormente, Além de tudo e

primordial ter controle de todo e qualquer acesso aos sites visualizados, impedindo o

uso indevido e tendo controle do que os funcionários da empresa estão acessando

em tempo real assim mesmo bloqueando e limitando certos sites como

(facebook,uol,terra,globo,etc).

É importante fazer levantamentos de quais problemas, ou seja, quem poderá ter

acesso total ou quem vai ter acesso limitado para utilizar a internet, também será

levantado como e o que os hackers estão invadindo.

Page 9: TCC Seguranca -1.0

9

Esse projeto é de alta relevância para toda e qualquer empresa, pois nossa rede

interna até o momento não tem uma segurança adequada impedindo que hackers

tentem invadir a mesma, e também não temos controle diário dos sites que os

funcionários estão acessando com a implantação dos servidores esses problemas

serão controlados. O objetivo é implantar servidores Linux para ter controle de sites

acessados por funcionários diariamente, e assim bloqueando tudo que não faz parte

da política da empresa e também vamos trabalhar para deixar a rede interna da

empresa com segurança evitando que hackers tentem invadir a mesma. Nosso

objetivo é ter esses controles para posteriormente não temos problemas com

invasões e também para que nossa internet não sofra com lentidão por uso indevido

dos funcionários. O intuito da pesquisa é apresentar uma visão ampla sobre a

importância da segurança em rede e como implantá-la, além de apresentar os

diversos tipos de ameaças às quais uma organização está sujeita na internet e no

dia a dia.

Page 10: TCC Seguranca -1.0

10

1. A Internet

A internet não é de modo algum uma rede, mais sim um conjunto vasto de

redes diferentes que trabalham com protocolos comuns e também fornecem certos

serviços. Também é um sistema usual no sentindo de não ter tido um planejamento

adequado e não possui um controle adequado por ninguém. Através da internet

podemos fazer muitas coisas e temos vários recursos aonde citaremos alguns.

(TANENBAUM ANDREW, 2001)

Trocar correspondências com qualquer pessoa dentre os milhões de

usuários na rede espalhados pelo mundo;

Discutir assuntos específicos com grupos de pessoas que têm os

mesmos interesses;

Obter programas e arquivos de textos, imagens, sons, animação e

vídeos;

Ter acesso a banco de dados, notícias de jornais, dados financeiros,

boletins meteorológicos, entre outros;

Fazer pesquisas bibliográficas;

Navegar em páginas com informações sobre empresas ou pessoas;

Divertir-se em sites de entretenimento;

Fazer compras ou requisitar serviços;

A internet pode parecer estranha mais não possui um dono, ou seja, não existi uma pessoa que possa dizer que é proprietária, a internet pertence a todos que estejam conectados nela. Dessa forma, na internet cada um é responsável pela parte que utiliza. (TANENBAUM ANDREW, 2001)

Page 11: TCC Seguranca -1.0

11

1.1 O TCP/IP e a Internet

Ajunção de protocolos TCP/IP foi criadapropriamente para ser um protocolo utilizado

diretamente na Internet, e tem como característica principal o suporte direto a

comunicação de redes de diferentes tipos. Neste caso a arquitetura do TCP/IP é

independente da infra-estrutura de rede física ou lógica usada. Efetivamente, toda

tecnologia de rede pode ser empregada como meio de transporte dos protocolos

TCP/IP. O protocolo TCP/IP e a internet compartilham junta uma história que

retrocede a várias décadas.

O sucesso da internet se deve em grande parte do design elegante do TCP/IP e ao fato que ele é uma família de protocolos aberta e não proprietária. Por outro lado, a alavancagem fornecida pela internet ajudou o TCP/IP prevalecer sobre várias famílias de protocolo concorrentes que foram favorecidas num momento ou em outro por razoes políticas e comerciais. (EVI NEMETH, 2004)

Os protocolos e o modelo TCP/IP também tiveram os seus problemas. Em primeiro lugar, o modelo não diferencia com a necessária clareza os conceitos de serviço, interface e protocolo. A boa pratica da engenharia de software exige uma diferenciação entre especificação e implementação algo que o OSI faz com muito cuidadoao contrário do TCP/IP. Consequentemente, o modelo TCP/IP não é o melhor dos guias para criação de novas redes com base em novas tecnologias. Em segundo lugar, o modelo TCP/IP não é nem um pouco abrangente e não consegue descrever outras pilhas de protocolos que não a pilha TCP/IP. Por exemplo, seria praticamente impossível tentar descrever a Bluetooth usando o modelo TCP/IP. Em terceiro lugar, a camada host/rede não é realmente uma camada no sentido que o termo é usado no contexto dos protocolos hierarquizados. Trata-se na verdade, de uma interface (entre as camadas de rede e de enlace de dados). A distinção entre uma interface e uma camada é crucial e você deve considerá-la com cuidado. Em quarto lugar o modelo TCP/IP não faz distinção (nem sequer menciona) entre as camadas física e de enlace de dados. Elas são completamente diferentes. A camada física está relacionada ás características de transmissão do fio de cobre, dos cabos de fibra óptica e da comunicação sem fio. A tarefa da camada de enlace de dados é delimitar o início e o final dos quadros e enviá-los de um lado ao outro com o grau de confiabilidade desejado. Um modelo mais adequado deve incluir as duas camadas como elementos distintos, modelo TCP/IP não faz isso”. Tanenbaum, Andrew, (2001)

Page 12: TCC Seguranca -1.0

12

1.2 Um breve histórico

A internet foi desenvolvida a muito tempo atrás com intuito de pesquisa destinadas a

bases militares dos estados unidos, daí então após guerra a ArphaNet não foi mais

útil para utilização dos mesmos ocasionando acesso a cientistas que mais tarde

disponibilizaram a rede para universidades e assim repassando a outras

universidades do mundo todo, foi por esse meio que a rede internet passou a ser

utilizada por usuários domésticos até chegar a grande quantidade de mais de 5

milhões de acesso e assim mais e mais usuários se conectavam com a rede que

gerou uma comunicação mundial. Assim que a World Wide Web nasceu e veio à

tona tudo ficou mais bonito e atraente atraindo cada vez mais utilizadores chamados

de internautas, com seu conteúdo grande e abrangente disponibilizou tecnologias

com diversos sistemas que pode gerar um ambiente que contem endereço próprio e

que e possível ser encontrado por qualquer usuário que esteja conectado na rede,

isso e a internet de todos que de fato e um mundo sem fim que cresce cada dia mais

e mais, em termos de segurança não pode ser deixada de lado pois como tudo tem

seu lado bom e ruim.

A internet não é um produto da Microsoft ou de outra empresa do tipo, O progenitor da internet moderna foi uma rede chamada ARPNET estabelecida em 1969 pela DARPA (Defence Advanced Research Agency), o braço de P&D do Departamento de Defesa dos Estados Unidos. A ARPANET tornou-se eventualmente o backbone NFSNET que conectava em vários pontos denominados peer. (NEMETH, 2011).

Page 13: TCC Seguranca -1.0

13

2. Segurança em Redes

Com a popularização da internet, a proteção da privacidade se tornou extremamente

importante para cada cidadão, pois os seus dados pessoais trafegam na internet, e

podem ser invadidos. Criptografia é a chave que permite solucionar

tecnologicamente este problema. Para tornar seguro o comércio eletrônico há

necessidade de se ter criptografia de alto nível, tanto de segurança como de

eficiência, nas várias plataformas. Os algoritmos de chave pública vêm resolver os

problemas de autenticação e integridade.Além disso, um problema ocorrido na

criptografia de chave simétrica (apresenta a mesma chave para cifrar e decifrar) é

resolvido, pois, propõem um modelo onde são utilizadas duas chaves, uma para

cifrar outra para decifrar. Com a modernização dos sistemas surgiu possibilidade da

criação de assinatura digital, assim usando o que cada pessoa tem como único

como as digitais, leitura da retina, leitura facial além de outros métodos eletrônicos.

2.1 O que é segurança na rede

Conforme James F. Kurose& Keith W. Ross (2005), a Segurança em redes tem

como foco proteger a comunicação entre dispositivos, assim assegurando que a

informação não seja alterada ou vista por quem não deveria. Com isso foi adotado o

método de criptografar/criptar as informações. Suponhamos que exista dois

roteadores que precisam se comunicar com segurança, eles são roteador 01 e

roteador 02. O roteador 01 quer que suas informações sejam entendidas apenas

pelo roteador 02, onde os dois estão se comunicando por uma rede insegura, á

internet. O roteador 02 quer ter certeza que a informação que chegou a ele, foi de

fato enviada pelo roteador 01 e vice e versa, além de precisarem saber se a

informação transmitida é integra, que não tenha sido alterada no caminho. O

fundamental para que tudo isto ocorra é ter certeza que os dispositivos possam

realmente se comunicar garantindo que não tenha nada que possa negar essa

transição de informação. A seguir os principais itens desejáveis para uma

comunicação segura:

Page 14: TCC Seguranca -1.0

14

Confidencialidade: Somente quem enviou e recebeu a informação é quem deve

interpretar, pois essa informação poder ser interceptada no caminho, então por isso

a informação deve estar criptografada e somente quem tem a chave deve decifrar a

informação.

Autenticação do ponto final: A autenticação é quem vai envolver o roteador 01 e 02

em uma rede segura além de garantir a identidade de ambos as partes, assim

confirmando ser quem realmente diz que é.

Integridade de mensagens: Mesmo que haja uma comunicação entre as partes onde

a autenticação foi estabelecida, eles também querem assegurar que o conteúdo de

sua comunicação não seja alterado, por acidente ou intencional, durante a

transmissão. Para proporcional uma maior integridade na mensagem podem ser

utilizados protocolos na camada de transporte e de enlace, assim são utilizadas

técnicas de verificação de pacotes.

Segurança operacional: Se falando de organizações, sabemos que possuem redes

conectadas à Internet. Essas redes podem ser comprometidas potencialmente por

atacantes que ganham acesso a essas redes por meio da rede pública a internet.

Esses atacantes podem inserir Worms nos hospedeiros na rede, e então adquirir

segredos corporativos, mapear as configurações da rede interna e lançar ataques

DoS. Para este problema são implementados Firewall e sistemas de detecção de

invasão realizada na inspeção dos pacotes, o Firewall localizado entre a rede local e

a Internet pode barrar e alertar um administrador se a alguma suspeita.

2.2 Criptografias

Segundo James F. Kurose & Keith W. Ross (2005), a criptografia já são usadas a

muitos anos, para proteger nossas informações, até nos dias de hoje métodos

utilizados a anos, ainda estão inseridos nos sistemas. Como a Cifra de César, que

substitui as letras para esconder a informação, o nome do métodos foi uma

homenagem ao Júlio César que usou esta pratica para se comunicar com os

generais. Como grande parte dos estudos tecnológicos, a criptografia teve uma

grande evolução na guerra. A Cifra de César é o método de trocar uma letra por

Page 15: TCC Seguranca -1.0

15

outras, assim tornando ilegível para quem interceptar a informação, como todo

método de cifrar, pode ser decifrado. Existem duas situações que podem ser

consideradas ao decifrar o código de Cesar:

O interceptador conhece ou adivinha que algum tipo de cifra de substituição

simples foi utilizado, mas não especificamente que é um código de César;

O interceptador sabe que é a Cifra de César que foi utilizada para esconder a

mensagem e pode tentar descobrir o valor de troca das letras, seguindo o

alfabeto são 26 letras a serem decifradas.

Figura 1: Código de César com chave de 3 unidades

(Fonte: Wikipédia)

As técnicas de Criptografia permitem que o remetente modifique os dados de forma

que um elemento não autorizado tenha acesso a informação que foi interceptada.

Muito se evoluiu desde os códigos de encriptação usados na antiguidade até os dias

de hoje. No entanto, até a década de 1970, um conceito se manteve firme entre os

diversos métodos propostos. A mesma chave era usada para esconder e para

revelar os dados. É o que chamamos de criptografia simétrica. Com a evolução

desse paradigma de criptografia ao longo dos séculos, hoje temos mecanismos

seguros e eficientes, como o 3DES (Triple Data Encryption Standard) e o AES

(Advanced Encryption Standard), que são os algoritmos base para os protocolos

usados.Hoje os protocolos mais usados para proteção de dados na Internet, é o SSL

(Secure Sockets Layer) e o TLS (TransportLayer Security) utilizam a criptografia

simétrica para proteger os dados transmitidos e armazenados. No entanto, a

criptografia simétrica possui um desafio conceitual importante e impossível de ser

resolvido. Esse processo exige duas chaves de acesso para decifrar os dados, uma

está com que emite o dado e a outra deve estar com quem vai receber, para que

assim ela possa decifrar o que foi codificado do outro lado. Para uma comunicação

Page 16: TCC Seguranca -1.0

16

feita entre dois locais fixos que sempre vão estar se comunicando esse método é

eficaz, pois a troca da chave é feita no primeiro contato.

Figura 2: Esquema de funcionamento da criptografia simétrica

(Fonte: GTA.UFRJ)

Mas se tratando da comunicação feita através de duas pessoas na internet, esse

método não seria viável, pois não teria como uma enviar para outra a chave de

acesso. Para este caso a solução foi encontrada na criptografia assimétrica, na qual

utiliza-se duas chaves distintas, mas que se complementam. Por essa propriedade,

dá-se o nome de par de chaves, que é composto pela chave pública e pela chave

privada. A chave pública é liberada para todos que desejam se comunicar com o

emissor da chave enquanto a chave privada fica em poder de quem a emitiu.Assim a

Pessoa que envia a mensagem codifica a os dados com uma chave pública, e quem

recebe decodifica com a chave privada. Com esta técnica apenas quem possui a

chave privada poderá ter acesso a informação. Uma desvantagem dos algoritmos de

criptografia assimétrica existentes é o seu desempenho, que são algumas dezenas

de vezes mais lentos que os métodos simétricos. Sendo assim, na prática, a

criptografia assimétrica é utilizada para definir uma chave de sessão, que será

utilizada na criptografia simétrica durante a comunicação. Esse é o funcionamento

dos protocolos SSL e TLS, usados largamente na Internet. No entanto, na

criptografia assimétrica, as chaves públicas podem ser forjadas, fazendo com que o

emissor não obtenha a chave pública correta do destinatário. Para solucionar esse

problema, os engenheiros da Internet. Criaram a figura da Autoridade Certificadora,

que funciona como um cartório, autenticando as chaves públicas das pessoas. É

essa autenticação da chave pública do seu banco, por exemplo, que faz o seu

navegador exibir o singelo cadeado de segurança, fazendo com que você saiba que

o site é mesmo do banco e não de um criminoso.

Page 17: TCC Seguranca -1.0

17

Além do uso tradicional da criptografia para manter a confidencialidade dos dados,

como mostrado até aqui nesse artigo, a criptografia possui outras finalidades no

mundo dos computadores. Através da criptografia, pode-se implementar técnicas de

garantia de integridade dos dados e de autenticação das mensagens. A garantia de

integridade garante que se um dado for modificado, essa modificação é detectada,

informando ao destinatário que a mensagem foi comprometida. Já a autenticação

das mensagens é o que comumente chama-se de assinatura digital. Tal técnica

permite garantir que uma mensagem veio de quem diz ser o remetente. Para

garantir a origem, basta que o emissor codifique a mensagem utilizando a sua chave

privada. Assim, todos terão certeza que foi realmente aquele emissor quem enviou a

mensagem.

- Chave particular: a metade secreta de um par de chaves criptográficas que é

usada com um algoritmo de chave pública. As chaves particulares são usadas para

decriptografar uma chave de sessão simétrica, assinar dados digitalmente ou

decriptografar dados que foram criptografados com a chave pública correspondente.

- Chave pública:a metade não secreta de um par de chaves criptográficas que é

usada com um algoritmo de chave pública. As chaves públicas normalmente são

usadas ao criptografar uma chave de sessão, verificar uma assinatura digital ou

criptografar dados que possam ser decriptografados com a chave particular

correspondente.

- Autenticação do destino: visa esconder informações sigilosas das pessoas que

controlam as linhas de comunicação e os computadores intermediários (provedores).

- Integridade de informação: busca evitar que um mal-intencionado leia e altere parte

da informação transitando na linha de comunicação antes de chegar ao destino, ou

seja, o destinatário gostaria de detectar se alguma alteração parcial foi feita na linha.

- Autenticação da origem: é como evitar que um falso usuário (origem) envie uma

informação para destinatário, ou seja, o destinatário deseja ter certeza que foi o

usuário verdadeiro que enviou a informação.

- Integridade de banco de dados: é como evitar que alguma pessoa desautorizada

leia as informações já enviadas e armazenadas no computador do destinatário.

Page 18: TCC Seguranca -1.0

18

- Detecção de integridade de informação: evita que alguma pessoa desautorizada

leia e altere as informações já enviadas e armazenadas no computador do

destinatário.

Outra aplicação da criptografia pode ser vista em redes privadas virtuais. Em uma

VPN existe um túnel criptográfico entre duas ou mais redes que estão conectadas

utilizando como meio uma rede pública.

Uma VPN usa protocolos de criptografia por tunelamento que fornecem a

confidencialidade, autenticação e integridade necessárias para garantir a

privacidade das comunicações, possibilitando comunicações seguras através de

redes inseguras.

2.3 Sistemas de Detecção de Invasão

Para Coulouris, Dollimore, Kindberg, (2007), quando falamos em segurança da

informação, existem equipamentos e softwares essenciais para uma rede como

Antivírus e Firewall, com eles conseguimos o mínimo de segurança para a

comunicação de uma rede interna a uma rede externa. Com o Firewall podemos

implementar políticas de segurança, onde será controlado tudo que entra e sai da

rede, assim impedindo a entrada do que não está autorizado. A ferramenta utilizada

para monitorar o tráfego da rede e para detectar e alertar sobre ataques e tentativas

de acessos indevidos chama-se IDS (Sistema de Detecção de Intrusos). Na grande

maioria das vezes não bloqueia uma ação, mas verifica se esta ação é ou não uma

ameaça para um segmento de rede. Conforme Uchôa (2005), o complemento do

IDS, o IPS (Sistema de Prevenção de Intrusos), tem a capacidade de identificar uma

intrusão, analisar a relevância do evento e bloquear determinados eventos,

fortalecendo assim a técnica de detecção de intrusos. O IPS usa a capacidade de

detecção do IDS juntamente com a capacidade de bloqueio de um Firewall,

notificando e bloqueando de forma eficaz ações suspeitas ou indevidas em diversos

pontos de uma arquitetura de rede, sendo considerada uma das ferramentas de

segurança de maior abrangência. O IPS atua na camada de monitoramento, mas

pode ser configurado para gerar ações de bloqueio, de forma que, pode atuar

também na camada de controle de acesso ao sistema. O IDS e IPS devem ser

Page 19: TCC Seguranca -1.0

19

configurados de forma a reduzir o número de falsos positivos facilitando a análise

dos dados coletados. Configurado de forma incorreta, um IPS pode bloquear tráfego

legítimo. O IDS no seu sentido mais restrito se refere a aplicativos capazes de alertar

sobre 45 tentativas de invasão, como o aplicativo Snort, e em um sentido mais

amplo, também monitorar a integridade do sistema, como os aplicativos AIDE ou o

Tripwire.

Alguns aplicativos utilizados para detecção de intrusos, são capazes de desenvolver

análise de tráfego e registro de pacotes em tempo real. Estes aplicativos analisam

protocolos, buscam e associam padrões de conteúdo e podem ser usados para

detectar uma variedade de ataques. O Snort e o LIDS (Sistema de Detecção de

intrusos do Linux) são algumas ferramentas que merecem destaque. De acordo com

Uchôa (2005), o Snort possui uma base de assinaturas bastante completa e exige

pouco esforço computacional da máquina onde é instalado. Já o LIDS, adiciona

novas funcionalidades ao kernel do Linux para detecção de intrusos aumentando a

segurança do sistema. Porém, para sua utilização, é necessária a recompilação do

kernel. A grande parte dos sistemas comerciais de detecção de intrusão é baseada

em rede.Nesse tipo de IDS os ataques são capturados e analisados através de

pacotes de rede. Ouvindo um segmento de rede, o NIDS pode monitorar o tráfego

afetando múltiplas estações que estão conectadas ao segmento de rede, assim

protegendo essas estações. Os NIDS também podem consistir em um conjunto de

sensores ou estações espalhados por vários pontos da rede. Essas unidades

monitoram o tráfego da rede, realizando análises locais do tráfego e reportando os

ataques a um console central. As estações que rodam esses sensores devem estar

limitadas a executar somente o sistema de IDS, para se manterem mais seguras

contra ataques. Muitos desses sensores rodam num modo chamado "stealth", de

maneira que torne mais difícil para o atacante determinar as suas presenças e

localizações.

Segundo BECE, podemos destacar as vantagens do IDS baseados em rede:

A implementação de um NIDS tem pouco impacto sobre a performance da rede.

Eles geralmente ficam em modo passivo, apenas escutando o tráfego da rede sem

interferir no seu funcionamento. NIDS bem posicionados podem monitorar uma

Page 20: TCC Seguranca -1.0

20

grande rede. Os IDSs baseados em rede podem ser muito seguros contra a maioria

dos ataques, além de ficarem invisíveis aos atacantes.

E também as desvantagens:

Os NIDS podem ter dificuldade em processar todos os pacotes em uma rede que

possua um grande tráfego de dados. Eles não podem analisar o tráfego de

informações criptografadas Esse problema vem aumentando em função da

utilização de VPNs pelas organizações (e pelos atacantes também). Muitas

vantagens dos NIDSs não se aplicam mais as modernas redes baseadas em

switches. Os switches dividem as redes em pequenos segmentos (usualmente uma

estação por porta) e provêm ligações lógicas diretas entre as estações no mesmo

equipamento. A maioria dos switchs não tem um sistema de monitoramento de

portas e isso limita ao NIDS apenas analisar uma estação. Mesmo que o switch

possua o recurso de monitoramento, apenas uma porta não poderá receber todo o

tráfego passando pelo equipamento. A maioria dos NIDSs não pode reconhecer se

um ataque foi bem sucedido. Eles apenas apontam que um ataque foi iniciado.

Dessa maneira eles apenas detectam um ataque, sendo que o administrador de

sistemas deve verificar se o host apontado foi atacado. Alguns IDSs baseados em

rede têm problemas em lidar com pacotes de dados fragmentados. Esses tipos de

pacotes podem até tornar um NIDs instável ou mesmo travar o seu funcionamento.

Os HIDSs operam sobre informações coletadas em computadores individuais.

Através disso os HIDs podem analisar as atividades das estações com confiança e

precisão, determinando exatamente quais processos e usuários estão envolvidos em

um tipo particular de ataque no sistema operacional. Além disso, ao contrário dos

sistemas baseados em rede, os baseados em host (estação) podem ver as

conseqüências de uma tentativa de ataque, como eles podem acessar diretamente e

monitorar os arquivos e processos do sistema usualmente alvos de ataques. Alguns

HIDSs suportam um gerenciamento centralizado e relatórios que podem permitir que

um apenas um console possa gerenciar várias estações. Outros geram mensagens

em formatos que são compatíveis com os sistemas de gerenciamento de redes.

Segundo BECE, podemos descrever as vantagens dos IDSs baseados em host:

Page 21: TCC Seguranca -1.0

21

Esse tipo de IDS tem a capacidade de monitorar eventos locais de um host,

podendo detectar ataques que não poderiam ser detectados por um IDS de rede.

Eles podem operar em um ambiente onde o tráfego de rede é criptografado, a

informação é analisada antes de ser criptografada na origem, ou depois de ser

decriptada no destino. Quando o IDS de host opera em nível de sistema operacional,

ele pode ajudar a detectar 'Trojan Horses' ou outros tipos de ataques que envolvam

problemas de integridade nos programas.

E também as desvantagens:

Esse tipo de IDS é difícil de se gerenciar porque cada host monitorado precisa ser

configurado. Como as informações utilizadas para análise do HIDS estão

armazenadas no host, um atacante pode invadir o sistema e desabilitar essas

funcionalidades. Os HIDSs não podem reconhecer ataques que sejam destinados a

rede inteira porque apenas conseguem monitorar os pacotes de redes recebidos

pelo próprio host. Um IDS baseado em host consome recursos de processamento

do host monitorado, influenciando na sua performance.

2.4 Ataques e segurança

No entendimento de Uchôa (2005), o monitoramento de arquivos de registro é

importante para identificar falhas em serviços, tentativas de invasão e ações

anormais no sistema. Toda política de segurança deve ser implementada a partir de

um estudo que engloba toda a rede, softwares, hardwares, periféricos e até a cultura

da empresa. Também é importante configurar o nível de detalhamento de registro

das informações de acordo com a necessidade da empresa e criticidade do serviço.

Existem utilitários, como o logwatch, que permitem informar ao superusuário através

de e-mail sobre registros ligados à segurança do sistema.

É importante inspecionar arquivos de registro para verificar atividades suspeitas. Por

exemplo, nos arquivos de registro podem ser encontrados IP's que não deveriam

estar acessando a rede, ou registro de atividades suspeitas em horários incomuns.

Um atacante pode camuflar uma invasão substituindo arquivos de registro de um

computador. Para identificar ações realizadas pelo atacante, o administrador deve

Page 22: TCC Seguranca -1.0

22

utilizar ferramentas de verificação de integridade.

2.5 Mecanismo de segurança

O SNORT é uma ferramenta NIDS desenvolvido por Martin Roesch "open-source"

bastante popular por sua flexibilidade nas configurações de regras e constante

atualização frente às novas ferramentas de invasão. Outro ponto forte desta

ferramenta é o fato de ter o maior cadastro de assinaturas, ser leve, pequeno, fazer

escaneamento do micro e verificar anomalias dentro de toda a rede ao qual seu

computador pertence. O código fonte é otimizado, desenvolvido em módulos

utilizando linguagem de programação C e, junto, com a documentação, são de

domínio público. O Snort conta ainda, com o permanente desenvolvimento e

atualização, que são feitos diariamente, tanto em relação ao código propriamente

dito, como das regras de detecção. Os padrões utilizados na construção das regras

de detecção das subversões são introduzidos no sistema de configuração, tão

rápido quando são enviados os alertas originados pelos órgãos responsáveis, como

por exemplo o CERT, Bugtraq (lista de discussão), entre outros. Por ser uma

ferramenta peso leve, a utilização do Snort é indicada para monitorar redes TCP/IP

pequenas, onde pode detectar uma grande variedade do tráfego suspeito, assim

como ataques externos e então, fornece argumento para as decisões dos

administradores. Os módulos que compõe o Snort são ferramentas poderosas,

capazes de produzir uma grande quantidade de informação sobre os ataques

monitorados, dado que é possível avaliar tanto o cabeçalho quanto o conteúdo dos

pacotes, além de disponibilizar, por exemplo, a opção de capturar uma sessão

inteira. O Snort monitora o tráfego de pacotes em redes IP, realizando análises em

tempo real sobre diversos protocolos (nível de rede e aplicação) e sobre o conteúdo

(hexa e ASCII).

Page 23: TCC Seguranca -1.0

23

Outro ponto positivo desse software é o grande número de possibilidades de

tratamento dos alertas gerados. O subsistema de registro e alerta é selecionado em

tempo de execução através de argumentos na linha de comando, são três opções

de registro e cinco de alerta. O registro pode ser configurado para armazenar

pacotes decodificados e legíveis em uma estrutura de diretório baseada em IP, ou

no formato binário do tcpdump em um único arquivo. Para um incremento de

desempenho, o registro pode ser desligado completamente, permanecendo os

alertas. Já os alertas podem, ser enviados ao syslog, registrados num arquivo de

texto puro em dois formatos diferentes, ou ser enviados como mensagens WinPopup

usando o smbclient. Os alertas podem ser enviados para arquivo texto de forma

completa e o alerta rápido. O alerta completo escreve a mensagem de alerta

associada à regra e a informação do cabeçalho do pacote até o protocolo de

camada de transporte. A opção de alerta rápido escreve um subconjunto

condensado de informação do cabeçalho alerta. Por fim, uma última opção desabilita

os alertas completamente.Existe também, a possibilidade de utilizar métodos como o

Database Plug-in por exemplo, para registrar pacotes em uma variedade de bases

de dados diferentes (MySQL, PostgreSQL, entre outros), as quais contam com

recursos próprios para efetuar consultas, correlações e dispõem de mecanismos de

visualização para analisar dados.

Page 24: TCC Seguranca -1.0

24

3. Segurança com servidores Linux

A segurança com servidores Linux hoje e um dos pontos positivos entre os

administradores de rede por nos trazer uma segurança muito grande quando

falamos em serviços de sistemas críticos, a grande vantagem de trabalhar com

servidores Linux que os serviços que podemos utilizar têm como ponto positivo a

segurança que comparada a de outros sistemas operacionais não e tão forte quanto

aos agregados ao Linux, programas como vírus e outras pragas torna-se inúteis,

pois tem sua ação limitada pelas restrições de acesso que existe no sistema de

arquivos do Linux, o Linux também e vulnerável a vírus,mas devido a essa

separação de privilégios entre processos a segurança prevalece e por isso hoje as

empresas estão migrando para servidores com sistema operacional Linux.

3.1 História do Linux

O Linux nasceu em 1991 como um projeto pessoal de Linus Torvalds, o Linux e

projeto ramificado do antigo Minix, um sistema operacional escrito por Andrew

Tanenbaum, de fato o Linux gero para o mundo um grande interesse de estudo e

logo seu kernel assumiu vida própria. Apesar de o Linux ter grandes características

do UNIX não podemos apontar sua origem para ele, pois o UNIX vem de algumas

décadas atrás, o sistema criado foi em 1969 como um projeto de pesquisa no AT&T

Bell Labs e em 1976 o UNIX ficou gratuito nas universidades e assim tornou-se base

para diversas distribuições. O Linux é desenvolvido e mantido por muitas pessoas

ao redor do mundo como programadores, hackers de alguma forma contribuem para

manter o kernel gratuitamente.

3.2 Servidores Linux

Os servidores Linux hoje em dia nos traz uma grande gama de serviços que

podemos usar sem medo de ser feliz, por ser todos softwares livres e distribuídos

Page 25: TCC Seguranca -1.0

25

pela licença GPL (General Public Licence), sem dizer que temos várias distribuições

para escolher, as mais usadas são Debian, CentOS, Fedora, ou RedHat Enterprise,

para quem precisa de suporte comercial, Ubuntu.

De acordo com Morimoto, Carlos, (2008), - Servidores são maquinas que deve ficar ligadas o tempo todo, sempre executando a mesma coisa. Existem vários tipos de servidores, como servidores web, servidores de arquivos, Servidores de impressão, etc. sendo que uma única e exclusivamente máquina pode rodar vários serviços simultaneamente só dependendo da configuração de hardware e da demanda.

3.3 Servidores de rede local

De acordo com Tanenbaum Andrew, (2001) – As redes locais que são chamadas

muitas vezes de LANS, são exatamente redes privadas para certos lugares como

edifícios, campus universitário e empresa. Essa rede local abrange alguns

quilômetros de extensão. Elas são amplamente usadas para fazer a conexão de

computadores pessoais e estações de trabalho em escritórios e instalações

industriais de empresa. Utilizando esse recurso da rede LAN podemos fazer

compartilhamento de impressoras e a troca de informações em tempo real. A rede

LAN possui três características forte que distinguem de outros tipos de redes: (1)

tamanho, (2) transmissão, (3) topologia. A rede Lan tem um tamanho restrito, o que

significa que o pior tempo de transmissão é limitado e conhecido com bastante

antecedência. Também a rede Lan é composta por cabos que interligam aos

computadores com isso diminuindo os erros e mantendo a estabilidade da conexão

sempre boas.

Dentro de uma rede local, tudo começa com o cabeamento, onde

você pode empregar uma combinação de rede cabeada e pontos de

acesso wireless. As redes cabeadas oferecem como vantagem a

velocidade e a estabilidade da conexão, enquanto as redes wireless

primam pela praticidade, de forma que o ideal acaba sendo usar uma

combinação das duas. (MORIMOTO, CARLOS, 2011)

Page 26: TCC Seguranca -1.0

26

3.4 Servidores de internet

Os servidores de Internet são maquinas feitas para controlar o acesso de uma rede

ao acesso na Internet, a verificação de segurança baseada em pacotes, portas, mais

é feito no através do mesmo. Isto não significa que tais verificações também não

sejam feitas em outros locais, como nos firewalls das estações de trabalho. O

servidor de internet também pode implementar funções de cache de páginas de

internet, log de acessos ou conversas em chats. A principal vantagem de utilizar um

computador como servidor de internet é que há uma gama muito maior em termos

de serviços disponíveis, o que nem sempre é possível em dispositivos compactos

como os roteadores, que também podem fazer o papel de “servidores de internet”,

por assim dizer. Hoje em dia, com a popularização do Linux a maior parte dos

servidores de internet o utilizam. Além de oferecer maior segurança, é um sistema

gratuito com centenas de ferramentas também gratuitas à disposição. A internet e

formada por uma malha de cabos de fibra ótica, que interligam praticamente toso os

países. Mesmo em locais mais remotos, é possível se conectar via modem, via

celular ou algum tipo de rede sem fio de longa distância, ou até mesmo via satélite.

A peça central são os roteadores, que interligam diferentes segmentos da rede,

formando uma coisa só. Cada roteador conhece os vizinhos, sabe quais redes estão

conectadas a eles e sabe escolher o caminho mais curto para cada pacotes de

dados (MORIMOTO, 2008, p. 20.)

Page 27: TCC Seguranca -1.0

27

4. Firewall

Um servidor com que contém o serviço de Firewall tem como principal função

bloquear portas para evitar invasões e ataques de terceiros, pode ser definido como

um sistema que controla os pacotes e conexões de rede que passam por ele, seja

no sentido de entrada ou na saída Muitos administradores de rede prefere deixar

apenas a porta ssh aberta e fechando todas as outras portas e assim abrindo

conforme a necessidade da rede interna isso é de grande importância para a

segurança da rede interna. Uma definição bem básica diz que o Firewall tem como o

principal objetivo proteger uma ou mais redes internas de outras redes.

Figura 03: Funcionamento Firewall Iptables

Fonte: Elaborado pelo Autor.

Agora serão demonstradas algumas regras básicas do Firewall e logo em seguida

será demonstrado um script com passo a passo em pleno funcionamento. O

comando iptables é o responsável por ler todos os parâmetros que o script pode ter

e atualizar os mesmo, no decorrer do script será visto alguns comandos importante

como Accept que é quando algum pacote ou ip pode ser aceito na rede, também

Page 28: TCC Seguranca -1.0

28

tem o comando reject e Drop que é quando algum pacote deve ser bloqueado pelo

filtro do iptables assim o mesmo não pode passar para a rede interna.

A função básica de um firewall em um servidor é bloquear o acesso a portas que não estão em uso, evitando assim a exposição de serviços vulneráveis, ou que não devem receber conexões por parte da internet. (MORIMOTO, CARLOS, 2008),

4.1 Níveis de segurança

Os IPTABLES é um dos firewall em software livre mais utilizados, e como ele já vem

instalado por padrão, na maioria das distribuições Linux e pelo fato dele ser bom de

desempenho, ter um nível de segurança considerável e ser de fácil configuração ele

será utilizado para proteger o sistema operacional e a rede. Porem todos os

servidores em uma rede deve ser assegurado individualmente e monitorado com

ferramentas de segurança como o crack, tcpd, nmap, COPS e tripwire.

Com a existência dos firewall, nenhum risco estará associado, pois o firewall não permitirá que este serviço seja acessível via rede. Além disso, o firewall registra todos os acessos à máquina melhorando o nível de segurança e rastreabilidade; e ainda pode identificar e bloquear ataques mesmo em algumas portas liberadas, identificando

pacotes com formação anômala. (SILVA 2008 p. 201)

4.2 Configurações de um Firewall no Linux

Neste Capitulo será apresentada uma estrutura de um Firewall Iptables configurado

com base o sistema operacional Linux, ter um bom script de Firewall e muito

importante para obter uma rede segura e livre de ameaças, um arquivo de script

bem configurado com todas as regras implementadas de forma designada a serviços

necessários dentro da rede. As linhas de script abaixo são muito importantes pois

verifica tudo que entra e sai da rede, o arquivo e responsável pelo bloquei oi

liberação de todo acesso que trafega na rede, todas as configurações são inseridas

neste arquivo que fica encarregado por bloquear algum tipo de invasão e sites que

não devem ser acessados.

Page 29: TCC Seguranca -1.0

29

Além de proteger maquinas individuais, o firewall pode ser implementado com algumas precauções de segurança em nível de rede, há três categorias principais de firewall: são eles filtragem de pacotes, proxy de serviço e inspeção de estados. (NEMETH, 2004, p. 504)

Arquivo de configuração do Firewall movido para Anexo

4.3 Filtragens de pacotes

A filtragem de pacotes é relativamente a forma de bloquear ou liberar dados que

trafegam em uma determinada rede de uma forma seletiva conforme os dados

atravessam uma interface. Os critérios usados são os endereços de origem e

destino, porta de origem e destino e protocolo. A filtragem tem suas regras definidas

que especificam critérios em que o pacote deve se enquadrar, um Firewall

configurado para filtragem de pacotes tem a finalidade de limitar os tipos de trafego

que podem passar através de um gateway de Internet ou através de um gateway

interno que separa domínios dentro de uma empresa baseando em informações

contidas no cabeçalho do pacote. É bem semelhante atravessar um fronteira

internacional de carro passando por um posto alfandegário. Se especificado os

endereços de destino, números de portas e tipos de protocolos que são aceitáveis, o

gateway simplesmente descarta pacotes que não atendem ao perfil preestabelecido

(NEMETH, 2004,)

Em geral, os firewalls configurados para filtragem de pacotes oferecem um aumento muito significativo na segurança e com baixo custo em termos de desempenho ou de complexidade (NEMETH, 2004, p. 504.)

Page 30: TCC Seguranca -1.0

30

5. Servidor Proxy Squid

O serviço Squid permite compartilhar a conexão para vários computadores,

trabalhando como um intermédio entre os computadores e a internet. Ele faz o

trabalho de guardar os cachês mais acessados das páginas web assim deixando a

conexão mais rápida, pois o tempo de resposta é mais eficiente. O squid também

pode ser utilizado como um servidor Proxy, temos também a conexão via Nat, essa

conexão faz com que os computadores da rede acessam a internet diretamente,

sem restrições. O Proxy já é diferente ele é mais burocrático ele se limita a passar as

requisições antes ele analisa todo o trafego de dados e assim vai separando o que

pode ou não pode passar e guardando as informações para usar posteriormente.

Um servidor Webproxy é capaz de analisar pacotes na camada de aplicativo (camada 7). Isto oferece uma flexibilidade muito maior, porque permite que o trafego dentro de um serviço, como o trafego da porta 80 (http) possa ser filtrado. (RICCI, BRUNO, 2006, p. 02),

5.1 Configuração Proxy Squid

O Squid é composto por um único pacote com isso fica mais fácil a configuração e a

criação de regras de acesso para segurança da rede local, abaixo temos um

configuração completa feita para melhor desempenho em segurança da rede.

Figura 4: Funcionamento Proxy Web Squid

Page 31: TCC Seguranca -1.0

31

Fonte: Elaborado pelo autor

Toda a configuração do squid é feita nesse arquivo. A configuração descrita abaixo

está de forma transparente na rede ou seja assim que o serviço e ativado em modo

transparente na rede todas as maquinas já estão sendo filtradas pelas regras,

lembrando que o proxy trabalha em conjunto com Firewall.

Arquivo de configuração do Squid movido para anexo

Page 32: TCC Seguranca -1.0

32

6. Políticas de Segurança

Política de segurança e um quesito indispensável em qualquer rede, seja ela

pequena, média e grande, pois o impacto que traz para possíveis causas de quebra

de informações e vulnerabilidade e muito grande quando se diz respeito à usuário e

sistemas. Independente das ferramentas que esteja sendo usada para proteção de

uma rede é de grande importância uma que haja sempre uma boa política de

segurança implantada para minimizar riscos que possa vir a ocorrer, pois de fato boa

parte de causas que envolvem vírus, trojans e spywares e falhas nos sistemas e

devido ao uso incorreto de usuários sem conhecimento o qualquer tipo de malicia na

internet. Decisões relacionadas a políticas de segurança a ser tomada ou não tem

que determinar uma grande segurança da rede, porém não e de bom tom que

decisões sejam tomadas sem antes ter identificado as metas para segurança.

Seja lá qual for a política de segurança adotada, ela deve ser explicita, por escrito, entendida e assinada por todos os usuários e administradores de sistemas. O cumprimento da política deve ser consistente, até mesmo quando os usuários são clientes que estão pagando por serviços computacionais. A falha na aplicação de políticas enfraquece sua validade legal e perceptível. (NEMETH, 2004, p. 618.)

Page 33: TCC Seguranca -1.0

33

6.1 Procedimentos de segurança

Um procedimento de segurança deve definir:

Uma lista contendo todos serviços de rede que serão oferecidos;

Quais áreas e departamentos proverão os serviços;

Quem terá acesso a esses serviços;

Como será provido o acesso;

Quem administrara esses serviços

De acordo com NEMETH 2008 Outras questões de política importante que

podem ter um escopo mais abrangente do que simplesmente seu grupo de

administrador de sistema local são:

Tratamento de brechas de segurança

Controle de exportação de sistemas de arquivos

Critérios para seleção de senhas

Remoção de logins motivadas

Material envolvendo direitos autorais

Page 34: TCC Seguranca -1.0

34

7. Revisão Bibliográfica

TANENBAUM (2001, p. 54), em “Redes de Computadores”, citado nos capítulos 1

observa a que a internet tem por finalidade ser a tecnologia de todos e para tudo,

não existe um dono, parecer estranho mas é a realidade, a internet e o maior meio

de comunicação hoje em dia, o autor cita isso de forma clara, isso sem dúvida

fundamentou grande importância na abordagem SRL.

NEMETH (2004, p. 486), em sua obra “Manual Completo do Linux”, referenciado no

capítulo 21, define que as tecnologias atuais e de fato algo de extrema importância e

responsabilidade, isso com certeza traz garantia e segurança, confiabilidade e maior

comprometimento dos usuários.

MORIMOTO (2008, p. 16), em sua obra “Servidores Linux: Guia Prático”,

referenciado no capítulo 1, define que servidores Linux podem ser divididos em dois

grandes grupos, isso difere muito na segurança pois temos os servidores locais e

servidores de internet, cada um realizando sua devida missão e de fato é uma

importância enormena abordagem da segurança em redes Linux.

Ricci (2008, p. 1,), em sua obra “Squid: Solução Definitiva”, referenciado no capítulo

1,7 define que Proxy refere-se a um software que atua como gateway de aplicação

entre o cliente e o serviço a ser acessado, interpretando as requisições e

repassando-as ao servidor de destino, isso sem dúvida é fator primordial e uns dos

diversos pontos positivos de segurança para rede, assim os benefícios são maiores

ao ter a integração de proxy junto a solução de firewall, somando segurança mais

confiabilidade dentro da rede, protegendo a rede provada contra os acessos

indevidos de uma rede pública com esses pontos o autor me trouxe conhecimento

que foram fundamentais na abordagem dos servidores críticos.

Page 35: TCC Seguranca -1.0

35

8. Conclusão

A segurança em redes independente do sistema operacional e ferramentas

utilizadas requer significativamente grande grau de conhecimento e estudo, com a

rápida evolução da tecnologia e os diversos meios de comunicação que temos no

dia de hoje fica bem claro que de fato segurança e ponto que engloba muita coisa

quando se diz respeito a ambiente seja ele doméstico ou corporativo. Neste trabalho

foi desenvolvido e mostrado tecnologias que ajudam a minimizar a falta de

segurança e falta de conhecimento de usuários de diversos tipos de rede. Porem um

administrador de rede que utilizando sistema operacional Linux e implementa

aplicações como um bom firewall, servidor proxy, ferramentas de segurança e uma

política de segurança, tende a minimizar possíveis falhas que pode existir em uma

rede sem um gerenciamento correto. Após entender os riscos que a internet pode

trazer e com base em estudos realizados durante o desenvolvimento deste trabalho,

os benefícios que gera com a utilização de todas as aplicações mostradas foram as

principais contribuição para meu conhecimento. A utilização dessa ferramentas de

segurança torna possível proteger, monitorar e recuperar um sistema após um

possível ataque ou até mesmo descumprimento de políticas. Chegamos à conclusão

que, apesar de não ser possível proteger totalmente os servidores, os

administradores utilizando diversas técnicas e tecnologias como as descritas podem

garantir um alto nível de segurança.

Page 36: TCC Seguranca -1.0

36

9. Referências Bibliográficas

TANEBAUM, Andrew. Redes de computadores 4ª ed. Amsterdam: editora Campus.

2003

STALLING, Willian. Criptografia e Segurança de Redes: princípios e praticas – 4

ed. Editora person. 2007

NEMETH, Evi; SNYDER, Garth; Hein, Trent R. Manual Completo de linux: guia do

administrador – 2 ed. São Paulo: Pearson Makron Books, 2004.

KUROSE, James F.; ROSS, Keith W. - Redes de Computadores e a Internet: uma

abordagem top-down - 5 ed. São Paulo: Editora Pearson

RICCI, Bruno. Squid: solução definitiva. São Paulo: Editora Ciência Moderna. 2006 MORIMOTO, Carlos Eduardo - Servidores Linux: Guia prático. Porto alegre: Sul Editores. 2008 UCHÔA, Joaquim Quinteiro. Segurança Computacional. Lavras: UFLA/FAEPE, 2005. Outras Referências:

SILVA, Gilson Marques da. Segurança em Redes Linux: princípios e praticas – 1 ed. São Paulo: Editora Ciência Moderna, 2008

COULOURIS, Geoge; DOLLIMORE, Jean; KINDBERG, Tim. – Sistemas

Distribuídos: Conceitos e projetos – 4 ed. Porto Alegre: Bookman, 2007.

Referências Eletrônicas: Hammershmitt, Gisele. Breve História da internet. Disponível em <http://gihammer.wordpress.com/2008/03/07/breve-historia-da-internet/>. Acesso em 19 março 2013.

Page 37: TCC Seguranca -1.0

37

10. Anexos

10.1 Arquivo de configuração de um Firewall (Iptables)

#!/bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

/sbin/modprobe ip_tables

/sbin/modprobe iptable_nat

/sbin/modprobe ip_nat_ftp

/sbin/modprobe ip_conntrack_ftp

### protecao contra flooding

for f in /proc/sys/net/ipv4/conf/*/rp_filter; do

echo 0 > $f

done

### logar pacotes estranhos

for f in /proc/sys/net/ipv4/conf/*/log_martians; do

echo 0 > $f

done

###

firewall="/etc/firewall"

ip_interno="$(cat ${firewall}/ip_interno)"

ip_valido="$(cat ${firewall}/ip_externo)"

Page 38: TCC Seguranca -1.0

38

rede_interna="$(cat ${firewall}/rede_interna)"

iptables="/sbin/iptables"

caixa=$(nslookup -sil cmt.caixa.gov.br | grep -v \# |grep Address | awk '{print $2}' )

caixa=$(nslookup -sil conectividade.caixa.gov.br | grep -v \# |grep Address | awk

'{print $2}' )

orkut=$(nslookup -sil www.orkut.com.br | grep -v \# |grep Address | awk '{print $2}'

)

if [ "$1" != "blockip" ]; then

$iptables -F

$iptables -t nat -F

########

$iptables -X

$iptables -X FIREWALL >/dev/null 2>&1

########

$iptables -P INPUT DROP

$iptables -P FORWARD DROP

$iptables -P OUTPUT ACCEPT

########

$iptables -N FIREWALL

$iptables -A FIREWALL -m limit --limit 20/minute -j LOG --log-level info --log-prefix

"FIREWALL: "

$iptables -A FIREWALL -j DROP

# Permitir pacotes de conexões estabelecidas

$iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Page 39: TCC Seguranca -1.0

39

$iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Loopback local

$iptables -A INPUT -i lo -j ACCEPT

# Não permitir pacotes na interface errada

$iptables -A INPUT -s 192.168.0.0/16 -i eth0 -j DROP

$iptables -A FORWARD -s 192.168.0.0/16 -i eth0 -j DROP

# DNS

$iptables -A INPUT -p tcp --dport 53 -j ACCEPT

$iptables -A INPUT -p udp --dport 53 -j ACCEPT

# Regras de ICMP

$iptables -A INPUT -p icmp -j ACCEPT

$iptables -A INPUT -p icmp -i eth1 -j ACCEPT

$iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT

$iptables -A INPUT -p icmp --icmp-type 5 -j ACCEPT

$iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT

$iptables -A INPUT -p icmp -s $ip_valido -j ACCEPT

$iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

$iptables -A FORWARD -p icmp --icmp-type 3 -j ACCEPT

$iptables -A FORWARD -p icmp --icmp-type 5 -j ACCEPT

$iptables -A FORWARD -p icmp --icmp-type 11 -j ACCEPT

##############################################################

Page 40: TCC Seguranca -1.0

40

#Regras de liberação por porta (interno e externo) - Arquivo

/etc/firewall/portas_entrada

entrada=$(cat ${firewall}/portas_entrada | awk '{print $1}' )

for port in $entrada; do

$iptables -A INPUT -p tcp -i eth1 -s $rede_interna -d $ip_interno --dport $port -j

ACCEPT

$iptables -A INPUT -p tcp -i eth0 -s ! $rede_interna -d $ip_valido --dport $port -j

ACCEPT

done

### Regras de liberação por porta (somente interno) - Arquivo

/etc/firewall/portas_interno

interno=$(cat ${firewall}/portas_interno | awk '{print $1}' )

for port in $interno; do

$iptables -A INPUT -p tcp -i eth1 -s $rede_interna -d $ip_interno --dport $port -j

ACCEPT

done

### Liberação acesso Samba ###

samba=$(cat ${firewall}/samba | awk '{print $1}' )

for ip in $samba; do

$iptables -A INPUT -i eth1 -s $ip -p udp -d $ip_interno -j ACCEPT

$iptables -A INPUT -i eth1 -s $ip -p tcp -d $ip_interno --dport 135:139 -j ACCEPT

$iptables -A INPUT -i eth1 -s $ip -p tcp -d $ip_interno --dport 445 -j ACCEPT

done

Page 41: TCC Seguranca -1.0

41

## Liberação acesso SSH ### - Arquivo /etc/firewall/ssh

ssh=$(cat ${firewall}/ssh | awk '{print $1}' )

for ip in $ssh; do

$iptables -A INPUT -i eth1 -s $ip -p tcp --sport 1024:65535 -d $ip_interno --dport 22 -j

ACCEPT

done

### Mascaramento de IP's ## - Arquivo /etc/firewall/masquerade

masquerade=$(cat ${firewall}/masquerade | awk '{print $1}' )

for ip in $masquerade; do

$iptables -A FORWARD -d $ip -j ACCEPT

$iptables -A FORWARD -s $ip -j ACCEPT

$iptables -A INPUT -s $ip -j ACCEPT

$iptables -t nat -A POSTROUTING -s $ip -j MASQUERADE

done

### Bloqueio de IP's #### - Arquivo /etc/firewall/blockip

fi

blockip=$(cat ${firewall}/blockip | awk '{print $1}' )

for ip in $blockip; do

$iptables -I INPUT -s $ip -j DROP

$iptables -I INPUT -s $ip -m limit --limit 18/minute -j LOG --log-level info --log-prefix

"IP Bloqueado: "

$iptables -I FORWARD -s $ip -j DROP

$iptables -I FORWARD -s $ip -m limit --limit 18/minute -j LOG --log-level info --log-

prefix "IP Bloqueado: "

Page 42: TCC Seguranca -1.0

42

done

if [ "$1" != "blockip" ]; then

#mascaramento local

masq_local=$(cat ${firewall}/masq_local | awk '{print $1}' )

for ip in $masq_local; do

$iptables -t nat -A POSTROUTING -o eth0 -s $rede_interna -d $ip -j MASQUERADE

$iptables -A FORWARD -s $rede_interna -d $ip -j ACCEPT

$iptables -A FORWARD -d $rede_interna -s $ip -j ACCEPT

done

# Redirecionamento para o squid

$iptables -t nat -A PREROUTING -p tcp -s 10.100.0.0/16 -m multiport -d ${caixa}/16 -

-dport 80,443 -j ACCEPT

$iptables -t nat -A PREROUTING -p tcp -s 10.100.0.0/16 -d 10.100.0.0/16 -j

ACCEPT

$iptables -t nat -A PREROUTING -p tcp -s 10.100.0.0/16 -d 200.139.97.224/28 -j

ACCEPT

$iptables -t nat -A PREROUTING -p tcp -s 10.100.0.0/16 -d 200.173.13.80/28 -j

ACCEPT

# Liberação para configuração do IE7, necessária na primeira inicialização do IE7

$iptables -t nat -A POSTROUTING -p tcp -s 10.100.0.0/16 -d 65.55.0.0/16 --dport 80

-j MASQUERADE

$iptables -A FORWARD -s 10.100.0.0/16 -d 65.55.0.0/16 -j ACCEPT

$iptables -A FORWARD -d 10.100.0.0/16 -s 65.55.0.0/16 -j ACCEPT

#----Redirecionamento para o sistema interno

Page 43: TCC Seguranca -1.0

43

#$iptables -t nat -I PREROUTING -p tcp -d 200.173.13.87 --dport 8080 -j DNAT --to

10.100.0.247:80

#$iptables -I FORWARD -p tcp -d 10.100.0.247 --dport 80 -j ACCEPT

#$iptables -I FORWARD -p tcp -s 10.100.0.247 --sport 80 -j ACCEPT

#Bloquear o site facebook

FACEBOOK_IP_RANGE=”31.13.64.0-31.13.127.255 31.13.24.0-31.13.31.255

74.119.76.0-74.119.79.255 69.63.176.0-69.63.191.255 69.171.224.0-69.171.255.255

66.220.144.0-66.220.159.255 204.15.20.0-204.15.23.255 173.252.64.0-

173.252.127.255”

Iptables –N FACEBOOK

# FACEBOOK DENY

For face in $FACEBOOK_IP_RANGE; do

Iptables –I FORWARD –M tcp –p tcp –m iprange –dst-range $face –dport 443 –j

FACEBOOK

Iptables –I FORWARD –m tcp –p tcp –m iprange –dst-range $face –dport 80 –j

FACEBOOK

Done

FACEBOOK_ALLOW=” 0x:30:67:3x:b9:ad zz:24:2c:aa:2d:55”

#MSR_LIBERADO

For MSR_LIBERADO in $FACEBOOK_ALLOW;

Do

Iptables –I FACEBOOK –m mac –mac-source $MSR_LIBERADO –j ACCEPT

Done

Page 44: TCC Seguranca -1.0

44

Iptables –A FACEBOOK –j reject

$iptables -I FORWARD -d $excessoes -s 207.46.0.0/16 -j ACCEPT

$iptables -I FORWARD -s $excessoes -d 207.46.0.0/16 -j ACCEPT

done

#-------Windows update

update=$(cat ${firewall}/winupdate | awk '{print $1}' )

for update in $update; do

$iptables -t nat -I POSTROUTING -s $rede_interna -d $update -j MASQUERADE

$iptables -I FORWARD -s $rede_interna -d $update -j ACCEPT

Fonte: Configuração retirada do local de trabalho (Mercatudo Casas André Luiz)

(firewall.sh) Rodando em um servidor com Linux CentOS 6 Server.

Page 45: TCC Seguranca -1.0

45

10.2 Arquivo do de configuração do Proxy (Squid)

# Porta onde o servidor ficará disponível e o Proxy transparente

HTTP_port 3128 transparent

Icp_port 3130

Htcp_port 0

Visible_hostname Mercatudo

Tcp_outgoing_adress 255.255.255.255

Udp_incoming_address 0.0.0.0

Udp_outgoing_address 255.255.255.255

Icp_query_timeout 0

Maximum_icp_query_timeout 2000

Mcast_icp_query_timeout 2000

Dead_peer_timeout 10 seconds

Hierarchy_stoplistcgi-bin ?

# Proibir Musica

Acl_proibir musica urlpath_regex –I “/etc/squid/proibir_musica”

Acl query urlpath_regexcgi-bin \?

No_cachedeny query

# Quantidade de memória Ram usada para cachê:

Cachê_mem 128 mb

# Porcetagem no qual o squid começará a descartar os arquivos mais antigos em

cachê:

Cachê_swap_low 90

Cachê_swap_high 95

# Quantidade de memória em disco usado para cachê:

Maximum_object_size 512 mb

Minumum_object_size 0 kb

Page 46: TCC Seguranca -1.0

46

# Determina o tamanho maximo dos arquivos que serão guardados no cachê feito

na memória RAM:

Maximum_object_size_in_memory 8 kb

Ipcache_size 1024

Ipcache_low 90

Ipcache_high 95

Fqdncache_size 1024

Cache_ replacement_policylru

Memory_replacement_policylry

# Monitorar o log usando o login no lugar do ip da máquina:

Log_fqdn on

Log_ip_on_direct on

Hosts_file /etc/hosts

# Caminho onde serão armazenados os arquivos de log.

# Quantidade de espaço no HD= 2048

Cache_dirufs /var/spool/squid 204816 256

Cache_acess_log /var/log/squid/acess.log

Cache_log /var/log/squid/store.log

# atualização do cache

Refresh_pattern ^ftp: 15 20% 2280

Refresh_pattern . 15 20% 2280

# [email protected]

FTP_list_width 32

FTP_passive on

ftp_sanitycheck on

dns_retransmit_interval 5 seconds

dns_timeout 5 minutes

Page 47: TCC Seguranca -1.0

47

# Define as palavras que serão liberadas pelo squid:

acl whitelist url_regex “/etc/squid/whitelist”

# Define as palavras que serão bloqueadas pelo squid:

Acl blacklist url_regex “/etc/squid/blacklist”

# Regra mime

Acl streaming rep_mime_type –I “/etc/squid/mimeaplicativo”

# Login-internet-acl

# Regras-almoço-https

Aclalmoço-https-time time “/etc/squid/grupos/almoço-https.time”

Acl almoço-https-srcsrc “/etc/squid/grupos/almoco-https.src

Aclalmoço-https-dstdomain-allow dstdomain “/etc/squid/grupos/almoco-

https.dstdomain.allow”

Aclalmoco-https-url_regex-allow url_regex “/etc/squid/grupos/almoco-

https.url_regex.allow

Aclalmoco-https-dstdomain-deny dstdomain “/etc/squid/grupos/alomoco-

https.dstdomain.deny”

Aclalmoco-https-url_regex-deny url_regex “/etc/squid/grupos/almoco-

https.url_regex.deny”

http_acess deny almoco-https !almoco-https-time

http_acess allow almoco-https-srcalmoco-https-time almoco-https-dstdomain-allow

http_acess allow almoco-https-srcalmoco-https-time almoco-https-url_regex-allow

http_acess deny almoco-https-srcalmoco-https-time almoco-https-dstdomain-deny

http_acess deny almoco-https-srcalmoco-https-time almoco-https-url_regex-deny

# Regra-Faculdades

Acl faculdades-time time “/etc/squid/grupos/faculdades.time”

Acl faculdades-srcsrc “/etc/aquid/grupos/faculdades.src”

Acl faculdades-dstdomain-allowdstdomain

“/etc/squid/grupos/faculdades.dsrdomain.aloow”

Acl faculdades-url_regex-allowurl_regex

“/etc/squid/grupos/faculdades.url_regex.allow”

Page 48: TCC Seguranca -1.0

48

Acl faculdades-dstdomain-denydstdomain

“/etc/squid/grupos/faculdades.dstdomain.deny”

Acl faculdades-url_regex-denyurl_regex

“etc/squid/grupos/faculdades.url_regex.deny”

http_acessdeny faculdades-src !faculdades-time

http_acessallow faculdades-src faculdades-time faculdades-dstdomain-allow

http_acessallow faculdades-src faculdades-time faculdades-url_regex-allow

http_acessdeny faculdades-src !faculdades-time faculdades-dstdomain-deny

http_accessdeny faculdades-src !faculdades-time faculdades-url_regex-deny

# Regras geral-usuário

Acl usergeralsrc “/etc/squid/grupos/usergeral_src”

http_acess allow usergeral

# Configuração mínima recomendada

Aclallsrc 0.0.0.0/0.0.0.0

# Define o range da rede interna:

Aclminharedesrc 10.100.0.0/255.255.0.0

Acl manager protocachê_object

Acllocalhostsrc 127.0.0.1/255.255.255.255

Aclssl_ports port 443 563

Aclsafe_ports port 80 # http

Aclsafe_ports port 21 # ftp

Aclsafe_ports port 443 563 # https, snews

Aclsafe_ports port 70 # gopher

Aclsafe_ports port 210 # wais

Aclsafe_ports port 1025-65535 #-unregistered ports

Aclsafe_ports port 280 # http-mgmt

Aclsafe_ports port 488 # gss-http

Aclsafe_ports port 591 #filemaker

Aclsafe_ports port 631 #cups

Aclsafe_ports port 777 # multiling http

Page 49: TCC Seguranca -1.0

49

Aclsafe_ports port 901 # swat

Acl purge method PURGE

Acl CONNECT method CONNECT

# Only allow cachemgracess from localhost

http_acess allow manager localhost

http_acess deny manager

# Only allow purge requests from localhost

http_acess allow paurgelocalhost

http_acess deny purge

# Deny requests to unknown ports

http_acess deny !safe_ports

# Deny CONNECT to other than SSL ports

http_acess deny CONNECT !SSL_ports

# insert your own rule (s) here to allow acess from your clients

http_acess allow localhost

http_acess allow whitelist

#http_acess deny proibidos

http_acess deny blacklist

http_acess deny proibir_musica

http_acess allow minharede

#streaming

http_reply_acess deny streaming

#and finally deny all other acess to this proxy

http_acess deny all

#allow icp queries from everyone

Icp_acess allow all

#redirect_program /usr/bin/squidguard –c /etc/squid/squidguard.conf

Fonte: Elaborado pelo autor - Configuração retirada do local de trabalho (Mercatudo

Casas André Luiz, Rodando em um servidor com Linux CentOS 6 Server.

Page 50: TCC Seguranca -1.0

50

11. Termo de compromisso e responsabilidade

Autenticidade e exclusividade sob as penas da Lei 9610/98

Pelo presente, o abaixo assinado declara, sob as penas da lei, que o presente

trabalho é inédito e original, desenvolvido especialmente para os fins educacionais a

que se destina e que, sob nenhuma hipótese, fere o direito de autoria de outrem.

Para maior clareza, firmo o presente termo de originalidade.

Guarulhos, 08 de 09 de 2013