A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linux como um roteador doméstico

Apresentações semelhantes


Apresentação em tema: "Linux como um roteador doméstico"— Transcrição da apresentação:

1 Linux como um roteador doméstico
Netfilter/Iptables Linux como um roteador doméstico

2 Cenário 2 Linux como um roteador SOHO (Stands Offices and Home Offices). A máquina Linux irá atuar como um roteador semelhante ao que temos em nossas residências. Provendo a conexão ao Provedor Internet. Compartilhando este acesso com as máquinas da LAN. Normalmente os roteadores SOHO possuem uma porta WAN e portas LAN. Equipamento local do usuário (Modem DSL). Geralmente o provedor nos fornece um endereço IP público via DHCP. PPPoE. Conexões Ethernet. Conexões sem fio.

3 Topologia

4 Endereços O Roteador Linux tem:
O endereço público na interface eth0, fornecido dinamicamente pelo provedor de acesso (modo NAT). O endereço privado /24 na interface eth1, configurado por você. O Laptop possui o endereço O Desktop possui o endereço O PC das crianças possui o endereço

5 Configurando a rede Configure as interfaces de rede e os nomes dos hosts conforme o slide anterior. É interessante criar configurações que se mantenham após a reinicialização das máquinas.

6 Definindo a política de segurança (1)
As crianças precisam: Usar o navegador para pesquisar na Internet. Não queremos que elas acessem sites pornográficos. Não queremos que elas façam download de vírus. Também não queremos que elas acessem conteúdos P2P. O Laptop pode: Acessar qualquer coisa.

7 Definindo a política de segurança (2)
O Desktop pode: Acessar qualquer coisa. Conectar-se à LAN a partir da Internet, via VNC. O Roteador Linux precisa: Rodar SSH a partir da rede interna.

8 Construindo o proxy Inicialmente precisamos instalar em nossa máquina firewall, o proxy server Squid. ./configure --prefix=/squid make all make install

9 Configurando o Squid (1)
Adicione as linhas abaixo no arquivo /etc/squid.conf. As entradas se referem ao usuário que irá inicializar o Squid. cache_effective_user Manager cache_effective_group Manager

10 Configurando o Squid (2)
Para ser capaz de usar o Squid como um Transparente Proxy, temos que adicionar a seguinte informação no arquivo de configuração em /squid/etc/squid.conf. http_port 3128 transparent

11 Criando lista de acesso no Squid
Agora, precisamos definir listas de acesso para a rede interna acessar o Squid e para proibir o acesso a sites pornográficos e a arquivos perigosos. Faremos isso para a rede inteira, mas nós usaremos o Transparente Proxy somente para o computador das crianças. Qualquer arquivo pode ser um vírus. O que se segue é apenas um exemplo.

12 Criando lista de acesso no Squid (2)
Insira em squid.conf as linhas abaixo: acl all src / (pré-definida) acl porn url_regex –i sex adult porn hardcore fetish acl downloads urlpath_regex\.exe$\.rar$\.zip$\. pif$ \.src$ acl nossa_rede src /24 http_access deny porn http_access deny downloads http_access allow nossa_rede http_access deny all

13 ACLs A ACL chamada porn contém a lista de nomes que não são permitidas na URL. Você não conseguirá acessar sites que possuem estas palavras na URL, via proxy. A ACL chamada downloads contém a lista de tipos de arquivos não permitidos. Não será possível fazer download de arquivos com estas extensões.

14 Próximos passos Agora que já configuramos o proxy, vamos configurar o firewall cujas regras devem casar com as políticas de segurança que nós acabamos de construir.

15 Computador das crianças
Para o computador das crianças nós executaremos o Transparent Proxy. Significa que o computador acessará o proxy sem precisar configurar o navegador. Nós já configuramos o proxy server. Agora, nós precisamos que todo o tráfego para a porta 80 TCP seja redirecionado para o proxy server. Nós também queremos que o computador das crianças acesse a porta 443 TCP (HTTPS).

16 Configurando iptables –t nat –A PREROUTING –s –p tcp – -dport 80 –j REDIRECT - –to-port 3128 iptables –t nat –A POSROUTING –o eth0 -s –p tcp – -dport 443 –j MASQUERADE

17 Computador das crianças Masquerade
Agora, vamos mascarar o computador das crianças quando ele enviar requisições DNS para nosso provedor de acesso. iptables –t nat –A POSTROUTING –o eth0 –s –p udp – -dport 53 –j MASQUERADE Requisições DNS usam a porta UDP 53.

18 Yahoo! Nós queremos que as crianças usem o “Yahoo!Messenger” somente para chat sem voz e sem transferência de arquivos. Lendo os manuais da ferramenta, vê-se que o Yahoo! Messeger usa as portas 20, 23, 25, 80, 119, 5050, 8001 e 8002. Também vê-se que os sites que o “Yahoo!Messenger” utiliza para Instant Messeger são: scs.msg.yahoo.com, scsa.msg.yahoo.com, scsb.msg.yahoo.com e scs.cmsg.yahoo.com.

19 MASQUERADE É melhor mascarar o computador das crianças quando ele acessa esses sites. Nós devemos fazer: iptables -t nat -A POSTROUTING -o eth0 -s d scs.msg.yahoo.com -j MASQUERADE NOTA: Ao inserir um nome de máquina ao invés do seu endereço IP, o DNS irá resolver este nome. Se um nome é resolvido para múltiplos endereços IP, o iptables irá inserir uma regra independente para cada endereço.

20 Proibindo o acesso aos demais hosts
Agora que nós permitimos o acesso do computador das crianças a determinados sites, devemos agora proibir o acesso a outras portas e outros sites. iptables –t nat –A POSTROUTING –o eth0 –s –j DROP

21 iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE
Laptops e Desktop O Laptop e o Desktop precisam ser capazes de acessar qualquer site, então nenhuma regra é necessária a não ser o MASQUERADE para a nossa rede. iptables -t nat -A POSTROUTING -o eth0 -s /24 -j MASQUERADE

22 Protegendo o firewall Já fizemos todas as configurações necessárias a proteção de nossa rede local. Agora vamos proteger o nosso firewall. Em primeiro lugar nós precisamos rodar o SSH em nosso firewall para que ele possa ser administrado remotamente. Para isto precisamos criar uma nova chain. Podemos chamá-la de SSH. Se uma vulnerabilidade for descoberta no SSH, rapidamente haverá scanners de worms na porta padrão do SSH. A porta 22. Então devemos alterar essa porta.

23 iptables –A INPUT –p tcp - -dport 1234 –j SSH
Criando a chain SSH Criando a chain SSH. iptables –N SSH Agora, vamos inserir uma regra para pedir ao kernel para checar as regras na chain SSH, para toda conexão TCP na porta 1234. iptables –A INPUT –p tcp - -dport –j SSH

24 Inserindo regras na chain SSH
Devemos inserir uma regra na chain SSH permitindo acesso somente para hosts confiáveis. Digamos que o endereço IP do PC do nosso escritório seja iptables –A SSH –s –j ACCEPT iptables –A SSH –s /27 –j ACCEPT iptables –A SSH –s 0/0 –j DROP

25 Significado das regras
A primeira regra aceita conexões a partir do computador de nosso escritório. A segunda regra permite conexões SSH de entrada somente oriundas de computadores com endereços no intervalo de à A terceira regra descarta todos as demais conexões para a porta 1234.

26 Finalmente... O proxy Squid tem a sua própria segurança usando as Listas de Acesso. Mesmo assim vamos que pacotes TCP SYN, vindos da Internet estabeleçam conexão com nosso Squid/Router/Firewall, exceto na porta 1234 a partir de PC Vamos também, liberar todos os pacotes vindos da interface loopback para IPC (processos internos de comunicação). iptables –A INPUT –i lo –j ACCEPT iptables –A INPUT –i eth0 –p tcp - –syn –j DROP


Carregar ppt "Linux como um roteador doméstico"

Apresentações semelhantes


Anúncios Google