quinta-feira, 8 de maio de 2014

Exemplos de 25 regras mais usada no Linux Iptables


À primeira vista, as regras do iptables pode parecer enigmática.
Neste artigo, eu dei 25 regras de iptables práticas que você pode copiar / colar e usá-lo para as suas necessidades.
Estes exemplos atuará como modelos básicos para que você possa ajustar essas regras que atendam às suas necessidades específicas.
Para facilidade de referência, todas estas 25 regras do iptables são em formato de script shell:iptables-rules
1. Excluir regras existentes
Antes de iniciar a construção de novo conjunto de regras, você pode querer para limpar todas as regras padrão e regras existentes. Use o comando iptables nivelado como mostrado abaixo para fazer isso.
iptables -F

2. Definir Políticas Cadeia Padrão

A política de cadeia padrão é ACCEPT. Altere isso para soltar para todas as entradas, FORWARD, e as cadeias de saída como mostrado abaixo.
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT


Quando você faz tanto INPUT, e política padrão da chain OUTPUT como DROP para cada necessidade de regras de firewall que você tem, você deve definir duas regras. ou seja, uma para entrada e outra para saída.
Em todos os nossos exemplos abaixo, temos duas regras para cada cenário, como já definido GOTA como política padrão para entrada e chain OUTPUT.
Se você confiar em seus usuários internos, você pode omitir a última linha acima. ou seja, não deixe cair todos os pacotes de saída por padrão. Nesse caso, para cada necessidade de regras de firewall que você tem, você só tem que definir apenas uma regra. ou seja, definir regra apenas para entrada, como a saída é aceitar para todos os pacotes.
Nota: Se você não sabe o que um meio de cadeia, você deve primeiro se familiarizar com os fundamentos do IPTables .

3. Bloquear um endereço IP específico

Antes de prosseguir irá outros exemplos, se você quiser bloquear um endereço IP específico, você deve fazer isso primeiro, como mostrado abaixo. Altere o "xxxx" no exemplo a seguir para o endereço IP específico que você gostaria de bloquear.
BLOCK_THIS_IP = "xxxx"
iptables-A INPUT-s "$ BLOCK_THIS_IP"-j DROP
Isso é útil quando você encontrar algumas atividades estranhas de um endereço IP específico em seus arquivos de log, e você deseja bloquear temporariamente que endereço IP enquanto você fazer mais pesquisas.
Você também pode usar uma das seguintes variações, que bloqueia apenas o tráfego TCP na conexão eth0 para este endereço IP.
iptables-A INPUT-i eth0-s "$ BLOCK_THIS_IP"-j DROP
iptables-A INPUT-i eth0-p tcp-s "$ BLOCK_THIS_IP"-j DROP

4. Permitir que todos os entrada SSH

As seguintes regras permitem que TODAS as conexões ssh de entrada na interface eth0.
iptables-A INPUT-i tcp eth0-p - dport 22-m state - Estado Novo, ESTABLISHED-j ACCEPT
iptables-A OUTPUT-tcp o eth0-p - sport 22-m state - state ESTABLISHED-j ACCEPT
Nota : Se você gosta de entender exatamente o que todos e cada um dos argumentos significa, você deve ler como adicionar regras de firewall IPTables

5. Permitir SSH de entrada apenas de uma rede sepcific

As seguintes regras permitem conexões ssh recebidas apenas de 192.168.100.X rede.
iptables-A INPUT-i eth0-p tcp-s 192.168.100.0/24 - dport 22-m state - Estado Novo, ESTABLISHED-j ACCEPT
iptables-A OUTPUT-tcp o eth0-p - sport 22-m state - state ESTABLISHED-j ACCEPT
No exemplo acima, ao invés de / 24, você também pode usar a máscara de sub-rede completo.ou seja, "192.168.100.0/255.255.255.0".

6. Permitir HTTP e HTTPS de entrada

As seguintes regras permitem que todo o tráfego web de entrada. ou seja, o tráfego HTTP para a porta 80.
iptables-A INPUT-i tcp eth0-p - dport 80-m state - Estado Novo, ESTABLISHED-j ACCEPT
iptables-A OUTPUT-tcp o eth0-p - sport 80-m state - state ESTABLISHED-j ACCEPT
As seguintes regras permitem que todas as chamadas recebidas tráfego web segura. ou seja, o tráfego HTTPS para a porta 443.
iptables-A INPUT-i tcp eth0-p - dport 443-m state - Estado Novo, ESTABELECIDO-j ACCEPT
iptables-A OUTPUT-o eth0-p tcp - sport 443-m state - state ESTABLISHED-j ACCEPT

7. Combine várias regras em conjunto, utilizando MultiPorts

Quando você está permitindo conexões de entrada de mundo exterior a várias portas, em vez de escrever regras individuais para cada porta, você pode combiná-los usando a extensão de múltiplas como mostrado abaixo.
O exemplo a seguir permite que todos SSH de entrada, tráfego HTTP e HTTPS.
iptables-A INPUT-i eth0-p tcp-m multiport - dports 22,80,443-m state - Estado Novo, ESTABLISHED-j ACCEPT
iptables-A OUTPUT-o eth0-p tcp-m multiport - Esportes 22,80,443-m state - state ESTABLISHED-j ACCEPT

8. Permitir SSH Outgoing

As seguintes regras permitem a conexão ssh saída. ou seja, quando você ssh de dentro para um servidor externo.
iptables-A OUTPUT-o eth0-p tcp - dport 22-m state - Estado Novo, ESTABLISHED-j ACCEPT
iptables-A INPUT-i tcp eth0-p - sport 22-m state - state ESTABLISHED-j ACCEPT
Por favor note que este é um pouco diferente do que a regra de entrada. ie Nós permitimos que tanto o novo estado e estabelecida com chain OUTPUT, e único estado ESTABELECIDO na chain INPUT. Para a regra de entrada, que é vice-versa.

9. Permitir SSH saída apenas para uma Rede Específico

As seguintes regras permitem a conexão ssh de saída apenas para uma rede específica. ou seja, você um ssh apenas para 192.168.100.0/24 rede pelo lado de dentro.
iptables-A OUTPUT-o eth0-p tcp-d 192.168.100.0/24 - dport 22-m state - Estado Novo, ESTABLISHED-j ACCEPT
iptables-A INPUT-i tcp eth0-p - sport 22-m state - state ESTABLISHED-j ACCEPT

10. Permitir saída HTTPS

As seguintes regras permitem o tráfego seguro de saída web. Isso é útil quando você quer permitir o tráfego de internet para seus usuários. Em servidores, essas regras também são úteis quando você quer usar o wget para baixar alguns arquivos de fora.
iptables-A OUTPUT-o eth0-p tcp - dport 443-m state - Estado Novo, ESTABELECIDO-j ACCEPT
iptables-A INPUT-i tcp eth0-p - sport 443-m state - state ESTABLISHED-j ACCEPT
Nota: Para o tráfego HTTP web saída, adicionar duas regras adicionais, como o acima, e mudar 443-80.

11. Carregar saldo a receber o tráfego da Web

Você também pode carregar equilibrar o seu tráfego web da usando regras de firewall iptables.
Este usa o iptables extensão enésima. O seguinte exemplo de carga equilibra o tráfego HTTPS para três endereço IP diferente. Para cada pacote 3 º, é balanceamento de carga para o servidor apropriado (usando o contador 0).
iptables-A PREROUTING-i eth0-p tcp - dport 443-m state - Estado de Nova-m enésimo - contador 0 - a cada 3 - pacote 0-j DNAT - to-destination 192.168.1.101:443
iptables-A PREROUTING-i eth0-p tcp - dport 443-m state - Estado de Nova-m enésimo - contador 0 - a cada 3 - pacote 1-j DNAT - to-destination 192.168.1.102:443
iptables-A PREROUTING-i eth0-p tcp - dport 443-m state - Estado de Nova-m enésimo - contador 0 - a cada 3 - pacote 2-j DNAT - to-destination 192.168.1.103:443

12. Permitir Ping de fora para dentro

As seguintes regras permitem que os usuários de fora para ser capaz de executar ping seus servidores.
iptables-A INPUT-p icmp - icmp-type echo-request-j ACCEPT
iptables-A OUTPUT-p icmp - icmp-type echo-reply-j ACCEPT

13. Permitir Ping de dentro para fora

As seguintes regras permitem que você pingar de dentro para qualquer um dos servidores externos.
iptables-A OUTPUT-p icmp - icmp-type echo-request-j ACCEPT
iptables-A INPUT-p icmp - icmp-type echo-reply-j ACCEPT

14. Permitir Loopback Acesso

Você deve permitir o acesso de auto-retorno completo em seus servidores. ou seja, acesso usando 127.0.0.1
iptables-A INPUT-i lo-j ACCEPT
iptables-A OUTPUT-o lo-j ACCEPT

15. Permitir rede interna para a rede externa.

No servidor de firewall, onde uma placa ethernet está ligado ao externo, e outra placa de rede conectada aos servidores internos, use as seguintes regras para permitir conversa da rede interna para a rede externa.
Neste exemplo, eth1 está ligado à rede externa (internet), e eth0 está ligado à rede interna (por exemplo: 192.168.1).
iptables-A FORWARD-i eth0-o eth1-j ACCEPT

16. Permitir DNS saída

As seguintes regras permitem conexões DNS saída.
iptables-A OUTPUT-p udp-o eth0 - dport 53-j ACCEPT
iptables-A udp-i eth0 INPUT-p - sport 53-j ACCEPT

17. Permitir conexões NIS

Se você estiver executando o NIS para gerenciar suas contas de usuário, você deve permitir que as conexões NIS. Mesmo quando a conexão SSH é permitido, se você não permitir que o NIS relacionado conexões ypbind, os usuários não poderão se autenticar.
As portas do NIS são dinâmicas. ou seja, quando o ypbind começa ele aloca as portas.
Primeiro faça uma rpcinfo-p, como mostrado abaixo e obter os números de porta. Neste exemplo, verificou-se através da porta 853 e 850.
rpcinfo-p | grep ypbind
Agora, permita conexão de entrada para a porta 111, e as portas que foram usadas por ypbind.
iptables-A INPUT-p tcp - dport 111-j ACCEPT
iptables-A INPUT-p udp - dport 111-j ACCEPT
iptables-A INPUT-p tcp - dport 853-j ACCEPT
iptables-A INPUT-p udp - dport 853-j ACCEPT
iptables-A INPUT-p tcp - dport 850-j ACCEPT
iptables-A INPUT-p udp - dport 850-j ACCEPT
O texto acima não irá funcionar quando você reiniciar o ypbind, como ele vai ter diferentes números de porta nesse momento.
Há duas soluções para isso: 1) Usar endereço IP estático para o seu NIS, ou 2) Use algumas técnicas inteligentes shell script para pegar automaticamente o número de porta dinâmica da saída do comando "rpcinfo-p", e usá-las no acima regras de iptables.

18. Permitir Rsync de uma rede específica

As regras a seguir permite rsync apenas a partir de uma rede específica.
iptables-A INPUT-i eth0-p tcp-s 192.168.101.0/24 - dport 873-m state - Estado Novo, ESTABELECIDO-j ACCEPT
iptables-A OUTPUT-o eth0-p tcp - sport 873-m state - state ESTABLISHED-j ACCEPT

19. Permitir apenas conexão com o MySQL a partir de uma rede específica

Se você estiver executando o MySQL, normalmente você não quer permitir a ligação directa do exterior. Na maioria dos casos, você pode ter servidor web rodando no mesmo servidor onde o banco de dados MySQL é executado.
No entanto DBA e os desenvolvedores podem precisar entrar diretamente para o MySQL a partir de seu laptop e desktop usando o cliente MySQL. Nesses casos, você pode querer permitir que sua rede interna para falar com o MySQL diretamente, como mostrado abaixo.
iptables-A INPUT-i eth0-p tcp-s 192.168.100.0/24 - dport 3306-m state - Estado Novo, ESTABLISHED-j ACCEPT
iptables-A OUTPUT-o eth0-p tcp - sport 3306-m state - state ESTABLISHED-j ACCEPT

20. Permitir Sendmail ou Postfix Tráfego

As seguintes regras permitem o tráfego de correio. Pode ser sendmail ou postfix.
iptables-A INPUT-i tcp eth0-p - dport 25-m state - Estado Novo, ESTABLISHED-j ACCEPT
iptables-A OUTPUT-tcp o eth0-p - sport 25-m state - state ESTABLISHED-j ACCEPT

21. Permitir IMAP e IMAPS

As seguintes regras permitem o tráfego IMAP/IMAP2.
iptables-A INPUT-i tcp eth0-p - dport 143-m state - Estado Novo, ESTABELECIDO-j ACCEPT
iptables-A OUTPUT-o eth0-p tcp - sport 143-m state - state ESTABLISHED-j ACCEPT
As seguintes regras permitem o tráfego IMAPS.
iptables-A INPUT-i tcp eth0-p - dport 993-m state - Estado Novo, ESTABELECIDO-j ACCEPT
iptables-A OUTPUT-o eth0-p tcp - sport 993-m state - state ESTABLISHED-j ACCEPT

22. Permitir POP3 e POP3S

As seguintes regras permitem o acesso POP3.
iptables-A INPUT-i tcp eth0-p - dport 110-m state - Estado Novo, ESTABELECIDO-j ACCEPT
iptables-A OUTPUT-o eth0-p tcp - sport 110-m state - state ESTABLISHED-j ACCEPT
As seguintes regras permitem o acesso POP3S.
iptables-A INPUT-i tcp eth0-p - dport 995-m state - Estado Novo, ESTABELECIDO-j ACCEPT
iptables-A OUTPUT-o eth0-p tcp - sport 995-m state - state ESTABLISHED-j ACCEPT

23. Prevenir Ataque Dos

A seguinte regra de iptables irá ajudá-lo a evitar a negação de serviço (DoS) ataque em seu servidor web.
iptables-A INPUT-p tcp - dport 80-m limit - limit 25/minute - limit-burst 100-j ACCEPT
No exemplo acima:
  • -M limit: Este usa a extensão iptables limite
  • -Limite 25/minute: Isso limita apenas máximo de 25 conexão por minuto. Altere este valor com base em sua exigência específica
  • -Burst-limit 100: Esse valor indica que o limite / minuto será aplicada somente depois que o número total de conexão tenham atingido o nível-limite de ruptura.

24. Port Forwarding

As seguintes vias exemplo todo o tráfego que vem da porta 442-22. Isto significa que a ligação ssh entrada pode vir tanto a porta 22 e 422.
fila-A PREROUTING iptables-t-p TCP-d 192.168.102.37 - dport 422-j DNAT - to 192.168.102.37:22
Se você fizer o acima, você também precisa permitir explicitamente conexão de entrada na porta 422.
iptables-A INPUT-i tcp eth0-p - dport 422-m state - Estado Novo, ESTABELECIDO-j ACCEPT
iptables-A OUTPUT-o eth0-p tcp - sport 422-m state - state ESTABLISHED-j ACCEPT

25. Registrar pacotes descartados

Você também pode querer registrar todos os pacotes perdidos. Estas regras devem ser na parte inferior.
Primeiro, crie uma nova corrente chamada de registro.
iptables-N REGISTRO
Em seguida, verifique se todas as conexões de entrada restantes saltar para a cadeia de log como mostrado abaixo.
iptables-A INPUT-j REGISTRO
Em seguida, registrar esses pacotes, especificando um costume "log-prefix".
iptables-A limite REGISTRO-m - limite 2/min-j LOG - log-prefix "IPTables Packet Dropped:" - log-level 7
Finalmente, soltar esses pacotes.
iptables-A REGISTRO-j DROP
Todas as 25 regras do iptables acima estão em formato de script shell: iptables-rules

    Nenhum comentário:

    Postar um comentário