Construindo o Firewall do Linux

Primeiro, precisamos configurar o servidor de proxy Squid para ser capaz de realizar proxy transparente para o computador para crianças e negar o acesso a sites pornográficos e alguns vírus.
Lula pode ser encontrada em www.squid-cache.org, e é o servidor proxy mais usado no Linux, a maioria das distribuições têm pacotes para o Squid. A melhor documentação para o Squid é o arquivo de configuração em si, que é fortemente comentou.
Vamos executar o Squid na sua porta padrão, 3128. Para poder usar o Squid como proxy transparente, temos de acrescentar as seguintes informações no arquivo de configuração (normalmente / etc / squid / squid.conf):

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Em seguida, precisamos definir as listas de acesso Squid para a rede interna tenha acesso a Lula e negar sites pornográficos e arquivos perigosos. Nós vamos fazer isso por toda a nossa rede interna, mas vamos usar o proxy transparente só para o computador para crianças. Qualquer arquivo pode ser um vírus, e as extensões de arquivo que se seguem são apenas um exemplo, assim sinta-se livre para adicionar qualquer extensão de arquivo que você considera perigoso. No arquivo squid.conf, podemos acrescentar as seguintes linhas:

acl all src 0.0.0.0/0.0.0.0
src 192.168.1.0/24 acl our_network
acl porn url_regex-i sexo adulto fetiche hardcore porn
acl downloads urlpath_regex \. exe $ \. rar $ \. zip $ \. pif $ \. scr $
http_access deny porn
http_access deny downloads
http_access allow our_network
http_access deny all

A ACL chamado "porn", contém uma lista de nomes que não são permitidos na URL, assim você não será capaz de acessar um site que tenha uma dessas palavras em seu nome, utilizando o servidor proxy.
A ACL chamada "downloads" contém uma lista dos tipos de arquivo que não têm permissão para ser acessada, assim você não será capaz de fazer download de arquivos com as extensões da lista, usando o servidor proxy.
Agora temos que configurar o servidor proxy, vamos implementar o firewall para coincidir com a política de segurança que acabou de construir.
Para que o dispositivo de jogos, temos de descobrir como ele funciona quando acolhimento GameSpy Arcade jogos nele. Nós vamos para seus sites, e vemos que temos de transmitir as seguintes portas para o dispositivo de jogos:

  • 6500 UDP: para GameSpy Arcade
  • 6700 UDP: para GameSpy Tunnel
  

Vamos avançar com as portas:

iptables-t nat-A PREROUTING-p udp - dport 6500-j DNAT - to 192.168.1.200
iptables-t nat-A PREROUTING-p udp - dport 6700-j DNAT - to 192.168.1.200

Para que o dispositivo de jogos para trabalhar, também temos que fazer NAT para ele, que serão incluídos na regra de NAT para toda a nossa rede, que será no final.
Em seguida, nós precisamos de negar o acesso para a impressora de rede à Internet. Normalmente, não fazemos a filtragem na tabela NAT, mas não queremos fazer masquerading para o endereço IP da impressora. Uma vez que a impressora possui um endereço IP privado, não será acessível a partir do exterior e também vamos cair pacotes saindo de eth0 na cadeia POSTROUTING da tabela NAT para que o endereço IP da impressora não recebe contaminados.

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.100-j DROP

Para computador das crianças, vamos realizar proxy transparente, o que significa que o computador vai usar o servidor proxy sem configurar o web browser. Já configurar o servidor proxy, então agora precisamos para redirecionar todo o tráfego para a porta 80 TCP para o servidor proxy. Queremos também que o computador das crianças à porta de acesso TCP 443, que é HTTPS:

iptables-t nat-A PREROUTING-s 192.168.1.55-p tcp - dport 80-j REDIRECT - to-port 3128
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-p tcp - dport 443-j MASQUERADE

Agora, os pedidos de 192.168.1.55 para qualquer máquina com destino a porta 80 ou 443 vai para o nosso servidor de proxy, assim tudo é feito localmente e não temos que disfarçar 192.168.1.55 para aqueles pedidos.
Em seguida, precisamos de disfarçar o computador para crianças quando ele envia pedidos de DNS para o nosso provedor:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-p udp - dport 53-j MASQUERADE

Pedidos de DNS usar a porta UDP 53, então agora o computador para crianças podem acessar quaisquer servidores DNS.
Queremos que lhes permitam usar o Yahoo! Messenger só para conversar (e não de voz ou de transferência de arquivos). Lendo o Yahoo! Ajuda Messenger, vemos que o Yahoo! Messenger utiliza as portas 20, 23, 25, 80, 119, 5050, 8001 e 8002. Além disso, vemos que os anfitriões necessária para mensagens instantâneas usando o Yahoo! Messenger são:

  1. scs.msg.yahoo.com
  2. scsa.msg.yahoo.com
  3. scsb.msg.yahoo.com
  4. scsc.msg.yahoo.com

Assim é melhor para disfarçar o computador para crianças endereço IP ao acessar os anfitriões; devemos fazer assim:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scs.msg.yahoo.com-j MASQUERADE
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scsa.msg.yahoo.com-j MASQUERADE
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scsb.msg.yahoo.com-j MASQUERADE
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scsc.msg.yahoo.com-j MASQUERADE

Quando usando um nome canônico, em vez de um endereço IP na sintaxe do iptables, o roteador Linux irá resolver o endereço IP (s) do nome canônico e inserir as regras do kernel usando os endereços IP. Se um nome canônico é resolvido para vários endereços IP, então o iptables irá inserir no kernel um certo número de regras igual ao número de endereços IP resolvido, cada linha com um dos endereços IP resolvidos.

 

Agora que temos um conjunto de acesso para o computador para crianças, temos de negar o acesso a outras portas e hosts. Nós fazemos isso na cadeia POSTROUTING da tabela nat:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-j DROP

O laptop e computador de mesa deve ser capaz de acessar qualquer coisa, e assim, não há regras especiais são inseridos por eles, com exceção da regra MASQUERADE para a nossa rede, que irá adicionar agora:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.0/24-j MASQUERADE

Mais uma configuração deve ser feita na tabela NAT para fornecer a capacidade para log em remotamente para o computador desktop usando VNC. Montamos VNC Server para utilizar a porta TCP 9112 no computador desktop, então temos que fazer DNAT para esta porta como se segue:

iptables-t nat-A PREROUTING-p tcp - dport 9112-j DNAT - to 192.168.1.11

Trata-se de toda a configuração que precisamos para a rede local. Nós precisamos criar algumas regras de firewall para proteger o roteador Linux.
Primeiro, precisamos SSH a correr no roteador Linux para que possamos administrá-lo remotamente. Para garantir o acesso via SSH, o melhor é criar uma corrente chamada SSH em que permitir ou negar o acesso ao SSH. Se uma vulnerabilidade é descoberta no OpenSSH, é muito provável que os worms digitalização para servidores OpenSSH na porta 22 aparecerá em algumas horas. Portanto, pode-se desejar executar o servidor SSH em outra porta que não a um padrão (por exemplo, 1234). A cadeia de SSH é criada por:

iptables-N SSH

A seguir, vamos inserir uma regra que diz ao kernel para procurar a cadeia de SSH para todas as conexões TCP na porta 1234:

iptables-A INPUT-p tcp - dport 1234-j SSH

Devemos inserir as regras na cadeia de SSH para permitir o acesso apenas de hosts confiáveis. Digamos que o endereço IP em nosso escritório é 1.2.3.4:

iptables-A SSH-s 1.2.3.4-j ACCEPT
iptables-A SSH-s 192.168.1.0/27-j ACCEPT
iptables-A SSH-s 0 / 0-j DROP

A primeira regra aceita ligações a partir de nosso escritório endereço IP 1.2.3.4. A segunda regra permite receber conexões SSH apenas a partir 192.168.1.0/27, que contém os endereços IP de 192.168.1.1 para 192.168.1.32, como nós não queremos permitir que o acesso via SSH a partir do computador dos filhos, a impressora eo dispositivo de jogos . A terceira regra gotas todas as outras conexões de entrada na porta 1234.
O servidor proxy (Squid) tem a sua própria segurança, por meio de listas de acesso. No entanto, a melhor forma de protegê-lo eo roteador é deixar cair pacotes TCP SYN a partir da Internet na cadeia de entrada. Desta forma, nenhuma conexão de entrada para o roteador Linux pode ser feita a partir da Internet, exceto o ssh na porta 1234 de 1.2.3.4, o que é combinado antes desta regra. Nós também queremos aceitar todos os pacotes na interface loopback (lo) para o IPC (processo de comunicação interna).

iptables-A INPUT-i lo-j ACCEPT
iptables-A INPUT-i eth0-p tcp - syn-j DROP

Descartando pacotes SYN oferece uma boa proteção para os processos que podem ter bugs. No entanto, isso só cai conexões TCP com a flag SYN marcada (o pedido para configurar uma conexão TCP), e não oferece qualquer protecção ao software que abre as portas UDP.

um artigo submetido por Ronald T Besser


Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre.
Importante: Este artigo "Construindo Linux Firewall" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.


Online: 361 users browsing the articles directory