A Basic Script Firewall, Linux como uma estação de trabalho

Até agora, nós aprendemos principalmente sobre o uso do iptables opções de filtragem. Agora vou construir um pequeno script de firewall que eu acho que deveria ser padrão na instalação de qualquer distribuição Linux.
Por padrão, todas as distribuições Linux têm a política ACCEPT padrão em todas as cadeias de filtro. Além disso, em uma instalação padrão, a maioria das distribuições Linux deixar um monte de serviços em execução. Se você instalar uma distribuição Linux velho e decide ir para o almoço depois de ter arrancado apenas sem firewall e com um endereço IP público, as chances são boas que pelo tempo que você tenha comido sua sopa, um rootkit já está instalado no seu computador.
Vamos dar uma olhada no seguinte script simples:

  

#! / bin / bash
# atribui a variável $ IPT com o comando iptables
IPT = / sbin / iptables
# definir políticas em cada cadeia
$ IPT-P INPUT DROP
$ IPT-P FORWARD DROP
$ IPT-P OUTPUT ACCEPT # default, mas defini-lo de qualquer maneira
# descarregar todas as regras na tabela filter
F $ IPT -
# permitir o tráfego na interface de loopback
$ IPT-A INPUT-i lo-j ACCEPT
# permitir o tráfego ICMP
P icmp $ IPT-A INPUT-j ACCEPT
# permitir o tráfego de entrada de DNS
P udp $ IPT-A INPUT-- sport 53-j ACCEPT
# permite estabelecer conexões TCP
P tcp $ IPT-A INPUT-! - syn-j ACCEPT

Então, o que nós fizemos aqui foi para definir a política de INPUT e FORWARD cadeias de DROP. A política de cadeia OUTPUT é definido para aceitar, que é a política padrão para esta cadeia.
Nós não vamos acrescentar qualquer regra da cadeia para a frente porque este é um computador pessoal e não um roteador, e assim o envio será desligado. Nós também não vai acrescentar quaisquer regras na cadeia OUTPUT-qualquer coisa que se originam em OK.
A seguir, vamos liberar todas as regras existentes fora do quadro do filtro. Neste ponto, nada realmente funciona. Alguns aplicativos usam conexões TCP / IP na interface de loopback, assim é seguro para permitir pacotes que entram no lo "interface".
Nós aprendemos sobre ataques ICMP no artigo 2. No entanto, é minha opinião que ICMP deve ser permitido. Filtragem ICMP não permitirá que você testar sua conexão de internet usando o ping, traceroute, mtr, etc, e também o caminho da descoberta do MTU não vai funcionar, que é um protocolo muito importante em muitos casos.

Respostas DNS usa o protocolo UDP e porta de origem 53. Tenha em mente que a linha:

P udp $ IPT-A INPUT-- sport 53-j ACCEPT

é uma violação de segurança em potencial. Deixamos-lo assim, porque mais cedo afirmou que este é o que nós pensamos que o firewall padrão deve ser semelhante. No entanto, se você não estiver executando um servidor DNS (o que não é recomendado para um computador pessoal), aceitar conexões UDP com porta de origem 53 só de DNS do seu provedor servidores (as que têm em / etc / resolv.conf). Por exemplo, se os servidores DNS do provedor estão 1.1.1.1 e 1.1.2.1, substituir o anterior, de acordo com:

$ IPT-A INPUT-s 1.1.1.1-p udp - sport 53-j ACCEPT
$ IPT-A INPUT-s 1.1.2.1-p udp - sport 53-j ACCEPT

Dessa forma, você estará mais seguro.

 

A última coisa de que precisamos para a nossa conexão à Internet para o trabalho é para permitir o tráfego de entrada TCP para conexões TCP já estabelecidos. Melhor formulada, negar todo o tráfego TCP de entrada que não pertence a uma conexão TCP que este computador iniciado (negar pacotes TCP SYN).


iproute2 e Controle de Tráfego

iproute2 é um pacote de software que fornece várias ferramentas para roteamento avançado, túneis e controle de tráfego.
iproute2 foi originalmente concebido por Alexey Kuznetsov, e é bem conhecido para a implementação de QoS no kernel do Linux e agora é mantido por Stephen Hemminger. O principal local de iproute2 é http://linux-net.osdl.org/index.php/Iproute2e seu site principal documentação é http://www.lartc.org.
As ferramentas mais importantes que oferece são iproute2 ip e tc.
Configuração de Rede: "IP" Tool

A ferramenta IP fornece a maior parte das necessidades de uma configuração de rede Linux. Você pode configurar interfaces, ARP, política de roteamento, túneis, etc
Agora, com IP IPv4 e IPv6, pode fazer praticamente qualquer coisa (incluindo muitos que não precisamos em nossas situações particulares). A sintaxe de ip não é difícil, e há muita documentação sobre este assunto. No entanto, a coisa mais importante é saber o que precisamos e quando precisamos dela.
Primeiro de tudo, o IP é a principal ferramenta que precisamos para protocolos de roteamento dinâmico (BGP, OSPF e RIP) no Linux fornecidas pela Zebra, que será discutido posteriormente neste artigo.
Vamos dar uma olhada no comando ip ajudar a ver o ip sabe:

root @ router: ~ # ip ajuda

A ligação IP comando mostra as configurações do dispositivo de rede que pode ser mudado com ip link set. Este comando é usado para modificar propriedades do dispositivo e não o endereço IP.
Os endereços IP podem ser configurados usando o comando ip addr. Este comando pode ser usado para adicionar uma primária ou secundária (alias) de endereços IP para um dispositivo de rede (ip addr add), para exibir os endereços IP para cada dispositivo de rede (show ip addr), ou para apagar os endereços IP das interfaces (ip addr del). Endereços IP também podem ser lavados usando critérios diferentes, por exemplo, Dynamic IP addr flush irá liberar todas as rotas adicionada ao kernel através de um protocolo de roteamento dinâmico.
Vizinho / Arp gestão tabela é feita usando ip vizinho, que tem alguns comandos expressivamente chamado adicionar, alterar, substituir, excluir e flush.
túnel IP é usado para gerenciar conexões de túnel. Os túneis podem ser gre, ipip, e sentar. Nós vamos incluir mais um exemplo no artigo sobre como construir túneis IP.
A ferramenta IP oferece uma maneira de monitorar as rotas, endereços e estados de dispositivos em tempo real. Isso pode ser feito utilizando monitor de ip, rtmon e comandos rtacct incluída no pacote iproute2.
Muito importante e provavelmente o objeto mais utilizado da ferramenta ip é via IP, o que pode fazer qualquer operação sobre a tabela de roteamento do kernel. Ele possui comandos para adicionar, alterar, substituir, excluir, mostrar, flush, e obter rotas.
Uma das coisas iproute2 introduzido ao Linux, que garantiu sua popularidade foi a política de roteamento. Isto pode ser feito usando a regra de IP e via IP em alguns passos simples.

Controle de Tráfego: TC

O comando tc permite aos administradores para a construção das diferentes políticas de QoS em suas redes usando Linux em vez de muito caro máquinas dedicadas QoS. Usando Linux, você pode implementar QoS em todas as maneiras qualquer máquina QoS dedicado pode e até mais. Além disso, pode-se fazer uma ponte com um bom PC com Linux que pode ser transformado em um poderoso e muito barato máquina QoS dedicado.
Para isso, suporte a QoS tem de ser configurado no kernel do Linux (CONFIG_NET_QOS = "Y" e CONFIG_NET_SCHED = "Y").

Classless Queuing Disciplines (qdiscs Classless)

Qdiscs Classless são as mais simples porque eles só aceitam, gota, atraso ou reprogramar dados. Eles podem ser conectadas a uma interface e só pode moldar a interface inteira.

Existem várias implementações qdisc em Linux, a maioria deles incluídos no kernel do Linux.

  1. FIFO (pfifo e bfifo): O mais simples qdisc, que funciona pelo Em primeiro lugar, a primeira regra de Fora. Algoritmos FIFO tem um limite de tamanho da fila (tamanho do buffer), que pode ser definido de pacotes para pfifo ou em bytes para bfifo.
  2. pfifo_fast: O qdisc padrão do Linux em todas as interfaces. É importante saber como funciona a pfifo_fast, por isso vamos explicá-lo em breve.
  3. Token Bucket Filter (TBF): Uma qdisc simples que é perfeito para abrandar uma interface para um valor especificado. Pode permitir rajadas curtas sobre a taxa e processador é muito amigável.
  4. Stochastic Fair Queuing (SFQ): Um dos qdiscs mais amplamente utilizado. SFQ tenta distribuir razoavelmente a transmissão de dados entre um número de fluxos.
  5. Enhanced Stochastic Fair Queuing (Esfq): Não incluído no kernel do Linux, ele funciona da mesma maneira como SFQ com a ressalva de que o utilizador pode controlar mais de parâmetros do algoritmo tais como a profundidade (fluxos) limite, opções de tamanho da tabela hash (codificado em SFQ original) e hash tipos.
  6. Random Early Detection and Generic Random Early Detection (RED e GRED): qdiscs adequado para dados backbone fila, com taxas de dados de 100 Mbps.

Há qdiscs mais do que as que eu tenho afirmado aqui. No entanto, pela minha experiência, SFQ e esfq fazer um grande trabalho, e são os qdiscs que eu tenho com os melhores resultados.
Como eu disse anteriormente, o qdisc padrão do Linux para todas as interfaces é pfifo_fast. Normalmente, seria de pensar que este é apenas como pfifo, significando que há um buffer e pacotes de passar pelo buffer usando o First In First Out regra. Na verdade, não é bem verdade. pfifo_fast tem 3 bandas-0, 1 e 2-em que os pacotes são colocados de acordo com suas byte TOS. Os pacotes são enviados a partir dessas bandas como segue:

  1. Pacotes na faixa de 0 têm a mais alta prioridade
  2. Pacotes na faixa 1 são enviados somente se não houver pacotes na faixa de 0
  3. Pacotes na banda de 2 têm a menor prioridade e são enviados somente se não houver nenhum pacote em 1 a 0 e bandas.

É importante saber isto porque esta pode ser uma forma de otimizar a forma como os pacotes de viagens através de interfaces de rede de roteadores nosso Linux.

um artigo submetido por Philip A Clare


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 "A Basic Script Firewall, Linux como uma estação de trabalho" 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: 135 users browsing the articles directory   


  

|