Segunda, 5 de Janeiro de 2009



Iptables rápido

Por: Flavio Torres - flaviotorres[@]linuxmasters.info
Publicado em: 08/11/2008

Torres, Flavio. IPTABLES PARA QUEM NÃO CONHECE IPTABLES. São Paulo, 2008.

Sumário


1 Conceito de segurança
2 Mecanismos de segurança
3 Conceitos de Firewall
 Iptables, funcionalidades
 Trabalhando com NAT em sua rede
 Trabalhando com filtros de pacote
 Tratamentos especiais, TOS
 Módulos
 Resumão
  ativando nat
  apagando regras
  redirecionamento para squid
  redirecionamento de portas
  liberando portas
  bloqueio de ping
  bloqueio de portas
  bloqueio de conexões

 

1 Conceito de segurança

      A segurança da informação é, sem dúvida, um dos assuntos mais importantes dentre as pautas de reunião de tecnologia em qualquer entidade.

      Autenticidade, confidencialidade em manter as informações a salvo de acesso e divulgação não autorizadas, confiabilidade, compartilhamento de dados, disponibilidade e integridade da informação estão diretamente ligados à segurança. Segurança da informação são mecanismos que promovem a integridade de uma estrutura de rede que se aplicam nos conceitos mais simples, que vão desde políticas de troca periódica de senhas até a trituração de documentos impressos.

      Mobilidade e facilidade já fazem parte do nosso dia-a-dia, comprar e configurar um roteador Wi-Fi tornou-se trivial, já com as mais diversas distribuições de Linux, instalar e configurar um servidor como proxy acaba sendo tarefa de 15 minutos. É exatamente neste tipo de facilidade que pessoas mal intencionadas aplicam as mais diversas formas comumente utilizadas para explorar estas “vulnerabilidades”, com o simples uso de ferramentas desenvolvidas especialmente para esta finalidade, a invasão.

     Ataques direcionados às redes além de comprometer os recursos e a disponibilidade comprometem o principal: as informações. Como os ataques podem ser originados de qualquer posição dentro ou fora da área da rede em questão, acaba dificultando a tarefa de localização precisa da origem do ataque e do atacante. O intruso que consiga entrar em uma rede ficará com um acesso privilegiado para lançar ataques aos elementos constituintes dessa rede havendo risco acrescido para ocorrência das situações exemplificadas a seguir:

• Furto ou violação da informação e dos serviços da rede;
• Abuso da conexão com à Internet;
• Utilização dessa conexão “ponte” para prática de atos ilícitos, o que, em caso de posterior investigação policial, envolverá o utilizador titular do link invadido;
• Vandalismo – destruição de dados, interferência ao normal funcionamento da rede, etc.

A contra medida simples configurada em separado ou em conjunto não devem ser consideradas medidas de segurança suficientes para impedir um indivíduo motivado a entrar na rede.

2 Mecanismos de segurança

Contamos com os mecanismos de segurança físicos e lógicos:

• os métodos físicos são barreiras que limitam o contato ou acesso à informação ou a infra-estrutura de dados que contém as informações, podem ser exemplificados como: portas, trancas, acesso por identificação biométrica, blindagem, entre outros.
• os métodos lógicos destacam-se por controles eletrônicos que impedem ou limitam o acesso à informação.

Adicionalmente, agregamos aos mecanismos lógicos:

- Criptografia: É a forma de cifrar dados, utilizando algoritmos altamente complexos, ou não, para tornar a informação ininteligível à terceiros. A decriptografia é utilizada pela parte autorizada a receber esta informação e devidamente com o algoritmo de decriptação é realizado o processo inverso.

- Assinatura digital: Código utilizado para verificar a integridade de um documento, porém, não garante sua confidencialidade.

- Garantia da integridade da informação: Conseguimos facilmente utilizando funções de “Hashing”, seria como tirar uma “foto” do documento antes de enviar, e então para o receptor verificar sua integridade ele tiraria outra “foto” do documento e realizava a comparação.

- Controle de acesso: destacam-se por senhas, sistemas biométricos, controle de acesso explícito, como por exemplo, um firewall...


3 Conceitos de Firewall

     Firewall, não é nada mais do que um porteiro ou um segurança com sua árdua função de verificar quem pode entrar e sair, além de manter a consonância das coisas, atualmente, já se tornou imprescindível sua utilização.
     Existem firewalls comerciais, muitos; também existe um método de construção onde podemos definir as próprias regras, onde você define o que quer controlar; praticidade? Nem tanto para uma corporação com mais de 5 mil regras. De qualquer forma, com um pouco de organização, conseguimos trabalhar, e muito bem, com o iptables.
     No Linux, o iptables é embutido no kernel, o que o torna, sem dúvida, superior em relação aos seus concorrentes. Obviamente nenhum firewall irá corrigir os erros de sua rede, mas ele poderá limitar o uso destes serviços à certos computadores. Não faz sentido disponibilizar um serviço de FTP a toda a internet sendo que apenas a filial necessita deste acesso, muito menos manter um serviço web ativo no seu servidor, se nem ao menos você necessita dele lá. Então, como definir políticas de acesso aos serviços em que eu realmente necessito mante-los?

Iptables
Para entendermos o iptables, veremos como ele trabalha para então conhecermos o quê ele pode nos proporcionar. Teremos agora, um método bem didático de explicação. Preparado??

O iptables está organizado por 3 tabelas, a saber:

Filter: Onde é controlado o de filtro de pacotes, basicamente, quem entra e quem sai da sua rede. É composta por três funções:

• INPUT: Controla o que entra no servidor.
• FORWARD: Controla o que entra no servidor mas deve ser redirecionado a uma outra máquina.
• OUTPUT: Controla o que sai do servidor.

NAT: Ela trabalha com funções de NAT (Network Address Translation), seria uma troca do endereço de rede. As funções dela são:
• PREROUTING: Utilizada quando necessitamos tomar ações ANTES do datagrama ser roteado.
• POSTROUTING: Utilizada quando necessitamos tomar ações APÓS o roteamento do datagrama.
• OUTPUT: Utilizada quando necessitamos realizar alterações nos datagramas após eles serem roteados.

Mangle: Trabalha com alterações especiais nos pacotes, por exemplo alterar a prioridade de um datagrama IP, ou marcar um determinado datagrama para que ele seja trabalhado por um roteamento especial, como sair por outro gateway. As funções dela são:
• PREROUTING: Utilizada quando necessitamos modificar os datagramas dando um tratamento especial antes que eles sejam roteados.
• OUTPUT: Modifica especialmente os datagramas gerados pelo servidor antes que eles sejam roteados.


Veja um exemplo didático:


Agora que já sabemos tudo sobre as situações das tabelas, vamos conhecer alguns comandos:

Comandos do iptables

iptables: o binário
iptables-save: binário que salva as regras em memória.
ip6tables: iptables para IPv6.
iptables-restore: binário responsável carregar em memória as regras que foram salvas pelo ‘iptables-save’.

Forma de utilização:
# iptables –t nat
diz ao iptables que será usado a tabela nat

# iptables –t filter
diz ao iptables que será usado a tabela filter

# iptables –t mangle
diz ao iptables que será usado a tabela mangle


iptables -<comando> [cadeia]
Ex: iptables -A INPUT

-A chain Ex: iptables –A INPUT

Iptables, insira as regras ao final da chain INPUT.
-D chain Ex: iptables –D INPUT

Iptables, apague as regras da chain INPUT, não vou mais utilizá-las.
-D chain regra_num Ex: iptables –D FORWARD 25

Iptables, apague da chain FORWARD a regra residente na posição 25.
-R chain regra_num Ex: iptables –R FORWARD 20 –s 192.168.30.10 –d 192.168.40.0/24

Iptables, substitua a regra 20 da chain FORWARD pela regra dada ‘–s 192.168.20.10 –d 192.168.30.0/24 -j DROP.’
-I chain Ex: iptables –I INPUT

Iptables, insira no inicio da lista a regra.
-L chain Ex: iptables –L INPUT

Iptables, liste as regras da chain INPUT. Nota: Caso não haja nenhuma chain especificada, todas as regras em todas as chains são listadas.
-F chain Ex: iptables –F FORWARD

Iptables, remova todas as regras da chain FORWARD. Nota: Se nenhuma chain for especificada, remove as regras de todas as chains existentes, inclusive as do usuário
-Z chain Ex: iptables –Z

Iptables, zere os contadores de datagramas e de bytes em todas as regras da chain especificada, ou para todas as chains se nenhuma for especificada.
-N chain Ex: iptables –N VIRUS

Iptables, crie uma chain chamada VIRUS, utilizado para tratar diversos casos com o mesmo ALVO.
-e chain Ex: iptables –e WORMS worms

Iptables, renomeie a chain WORMS para worms
-X chain Ex: iptables –X WORMS

Iptables, apague a chain WORMS, não vou mais utilizá-la. Nota: o iptables apagará todas se não for especificada uma.
-C chain Ex: iptables –C WORMS

Iptables, verifique o datagrama descrito pela regra especificada contra a chain especificada. Este comando retorna uma mensagem descrevendo como a chain processou o datagrama. Isso é muito útil para testar a configuração do firewall, e para uma análise posterior.
-P chain política Ex: iptables –P INPUT DROP
Iptables, defina a política padrão para a chain INPUT dentro de uma política especificada a DROP. As políticas válidas são: ACCEPT, DROP, QUEUE e RETURN.

 


Controles a serem tomados:

-p <protocolo> Ex: -p tcp.

Iptables, é sobre o protocolo tcp! (você encontra uma tabela de protocolos em /etc/protocol)
-i <interface> Ex: -i eth0, -i eth1, -i eth+ (todas eth)

Iptables, controle tudo o que ENTRA (-i de INPUT) pela interface ethX . Esta regra também se aplica a chain FORWARD.
-o <interface> Ex: -o eth0, -o eth1, -o eth+ (todas eth)

Iptables, controle o que SAI (-o de OUTPUT). Esta regra também se aplica nas chains FORWARD e OUTPUT
-s <ip> Ex: -s 192.168.0.1/24

Iptables, controle o que vier da ORIGEM (-s de SOURCE) 192.168.0.1/24
-d <ip> Ex: -d 192.168.0.2/24

Iptables, controle o que vai com DESTINO (-d de DESTINATION)
! <pacote|ip> Ex: -d ! 192.168.0.2/24, ou –p ! udp

Iptables, com qualquer DESTINO (-d de DESTINATION) EXCETO 192.168.0.2, o mesmo para protocolo, qualquer um exceto udp.
-j <ação> Ex: -j ACCEPT, -j DROP, -j REJECT, -j LOG

Iptables, o que casar com as ações definidas voce vai ACEITAR, vai NEGAR, vai REJEITAR ou vai GRAVAR.
--sport <porta> Ex: --sport 22

Iptables, o que for da PORTA de ORIGEM (--sport de SOURCE PORT) 22
--dport <porta> Ex: --dport 80

Iptables, o que for para a PORTA de DESTINO 80 (--dport de DESTINATION PORT)

 


DICA: Tanto para --sport quanto para --dport podemos utilizar range de portas:
Ex: --dport 6881:6889
Ou multiportas:
Ex: -m multiport --dport 5190,4000,53

Ações a serem tomadas quando alguma regra combina ou casa (para os íntimos)

ACCEPT Aceitar o datagrama IP
DROP Bloquear o datagrama IP, descarta o datagrama sem informar ao emissor
REJECT Rejeita o datagrama IP, informa o emissor, Ex: icmp destination host unreacheable
LOG Cria Logs das ações solicitadas.
SNAT Modifica o endereço de origem (SOURCE NAT) dos datagramas IP antes deles serem roteados. Ex: Dizer que um datagrama enviado do host X para o Y originou-se do host Z.
DNAT Modifica o endereço de destino (DESTINATION NAT) dos datagramas IP das máquinas clientes. Ex: Encaminhar um datagrama com destino a porta 80 para a 3128 (do squid!)
REDIRECT Redireciona a porta. Ex: o que vier para a porta 7153 redirecionar para a porta 3389 (a porta do Terminar Service)
TOS Tratamento especial no datagrama, veremos mais adiante!


      Nossa! Quanta coisa hein? Se você conseguiu chegar até aqui, é sinal de que apenas passou os olhos pelas tabelas, não!? Tome notas, leia, imprima, releia e tenha as tabelas no bolso, se entendê-las dominará o iptables facilmente!
Agora chega de “bla bla bla” e vamos as reais situações.

A maioria das situações abaixo foram retiradas da lista linux-board do YahooGroups, a qual sempre presto uma ajuda nas horas vagas.

Vamos tomar como exemplo a situação de rede, a quase padrão na maioria dos casos:

Rede: eth0 interna
Rede: eth1 externa

Trabalhando com NAT em sua rede

Mascarar conexão

Devemos habilitar, antes, o nat em seu kernel:

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

E então:

iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j MASQUERADE


Iptables, adicione na tabela nat (-t nat), após ser roteado (-A POSTROUTING):
• O que for de origem da minha rede (-s 192.168.0.0/24)
Qual o alvo, o que fazer?
• -j MASQUERADE (mascarar a conexão)


SNAT: modificação do endereço de origem das máquinas para um único IP ou faixa de IP's.
Qualquer regra que utilize SNAT deve ser aplicada a chain POSTROUTING.

DNAT: modificação do endereço de destino das máquinas para um único IP ou fixa de IP's.
Qualquer regra que utilize DNAT deve ser aplicada a chain PREROUTING.


E então, fácil? Calma, veremos muitos exemplos, até você decorá-los. Vejamos uma regra:

iptables –t nat –A POSTROUTING –s 192.168.0.1 –o eth0 –j SNAT -–to 192.168.2.12


Iptables, adicione na tabela POSTROUTING (-t nat –A POSTROUTING):
• o que vier com origem do host (-s 192.168.0.1)
• e especificamente o que sai pela rede eth0 (-o eth0)
• deverá ter seu endereço alterado (-j SNAT) para 192.168.2.12

Tá ficando bom, vejamos uma com DNAT:

Redirecionar conexões que entrem na porta 7155 para a porta 3389 (Terminal Service) de uma máquina interna de sua rede.

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 7152 -j DNAT --to 192.168.0.126:3389


iptables como vai? Adicione na tabela PREROUTING (-t nat –A PREROUTING):
• O que for TCP e que vier com destino à porta 7152 (--dport 7152)
terá seu destino de rede alterado para 192.168.0.126 (-j DNAT –-to 192.168.0.126:3389)


Quando não especificamos uma origem ou um destino (-s <IP>, -d <IP>) o iptables segue o padrão que é ANY, ou seja, qualquer (0/0). É redundante colocarmos algo como –s 0/0 ou –d 0/0. Note que na regra acima, deixamos explícito a porta destino do pacote, já que ele viria pela 7152 e além de alterarmos o IP de destino, alteramos também a porta para 3389.


Redirecionar conexões da porta 80 para 3128

iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -i eth0 --dport 80 -j REDIRECT --to-port 3128


iptables, adicione na tabela nat (-t nat), antes de ser roteado (-A PREROUTING) :
• O que for de origem (-s, de source) 192.168.0.0./24
• E que seja do protocolo tcp (-p tcp)
• E que entre pela interface eth0 (-i de input, eth0)
• Com destino a porta 80 (--dport 80)
Qual o alvo, o que fazer? :
• Redirecionar para a porta 3128 (-j REDIRECT –to-port 3128)

 


Trabalhando com filtros de pacote

      Há pessoas que trabalham, de cara, bloqueando tudo e liberando apenas o necessário. Há outras que trabalham liberando tudo o que necessita e bloqueia o resto, veja, é diferente...

Note que quando se lista uma tabela do iptables (iptables –t filter –L), você vê que a política padrão é ACCEPT:

# iptables -t filter -L
Chain INPUT (policy ACCEPT)

Então, vamos montar a política de que, por padrão o pacote é bloqueado.

iptables –P INPUT DROP
iptables –P OUTPUT DROP
iptables –P FORWARD DROP

Bloquear tudo com destino ao site www.pornografia.com

iptables –A FORWARD –s 192.168.0.0/24 –d www.pornografia.com –j DROP



iptables, adicione na tabela de encaminhamento de pacotes (iptables –A FORWARD):
• Tudo o que for de origem (-s, de source, origem ) 192.168.0.0/24
• e com destino a (-d, de destination, destino) www.pornografia.com
• seja bloqueado (-j alvo, “o que fazer?”) DROP (bloquear, negar)


Liberar tudo o que vier do site www.empresa.com.br

iptables –A FORWARD –s www.empresa.com.br –d 192.168.0.0/24 –j ACCEPT


iptables, adicione na tabela de encaminhamento (iptables –A FORWARD):
• O que vier da origem (-s www.empresa.com.br)
• Com destino a minha rede interna (-d 192.168.0.0/24)
• Será liberado (-j ACCEPT)


Bloquear totalmente aquele cara que esta consumindo sua banda:

iptables –A FORWARD –s 192.168.0.15 –d 192.168.0.1 –j DROP


Adicionar na tabela de encaminhamento (-A FORWARD):
• o que for de origem (-s) do IP 192.168.0.15 e com destino ao gateway de internet (-d) 192.168.0.1 será bloqueado (-j DROP).


Já deu um susto? Então você pode excluir a regra:

iptabes –D FORWARD –s 192.168.0.15 –d 192.168.0.1 –j DROP

Há uma forma de excluir a regra pelo seu número, para listar as regras e sua ordem fazemos:

# iptables -t filter -nL --line-numbers
26 DROP 0 -- 192.168.0.15 192.168.0.1

E então, excluímos:

# iptables -D FORWARD 26

Tratamentos especiais em pacotes, TOS

      “O tipo de serviço é um campo existente no cabeçalho de pacotes do protocolo ipv4 que tem a função especificar qual é a prioridade daquele pacote. A prioridade é definida usando o algoritmo FIFO do próprio kernel, sendo uma das alternativas de controle/priorização de tráfego das mais simples e rápidas.
Uma das vantagens da utilização do tipo de serviço é dar prioridade ao tráfego de pacotes interativos (como os do ICQ, IRC, servidores de chat), etc. Com o TOS especificado, mesmo que esteja fazendo um download consumindo toda a banda de sua interface de rede, o tráfego com prioridade interativa será enviado antes, aumentando a eficiência do uso de serviços em sua máquina.” - Guia Foca Linux.


Antes de começar, algumas definições:

Tipo de TOS
AJUSTE
Espera mínima (Minimize-delay)
16
Máximo processamento (Maximize-throughput)
8
Máxima confiança (Maximize-reability)
4
Customínimo (Minimize-cost)
2
Prioridade normal (Normal-service).
0

 

Prioridade máxima para conexões SSH:

iptables –t mangle –A PREROUTING –i eth1 –p tcp –-sport 22 –j TOS –-set-tos 16


iptables, adicione na tabela mangle (-t mangle) antes de ser roteado (-A PREROUTING):
• o que entrar pela interface eth1 (-i eth1) que for tcp (-p tcp)
• com origem da porta 22 (--sport 22) dar o máximo de processamento (-j TOS –-set-tos 16)

Você deve ter notado, na regra de DNAT láaa em cima, há uma coisinha estranha (-p tcp -m tcp) –m tcp... o que seria isto? Módulos!

Módulos

Os módulos ampliam o poder do iptables, é uma forma de explandir ainda mais suas regras, afinal, já somos expert em iptables!

Veja alguns módulos:

TIPO
DESCRIÇÃO
limit Limita o número de vezes de uma regra
state Estado da conexão, (NEW,ESTABLISHED, RELATED e INVALID “já obsoleto”)
mac Isto mesmo, podemos trabalhar por endereços MAC, bacana, não?
multiport Já pensou especificar 10 regras de tratamento de portas? O Multiport faz isto por você!
string Dá uma espiada no conteúdo do pacote em busca de uma “string”
owner Observa quem criou o pacote, trabalha apenas com a chain OUTPUT.

 


A opção limit limita a quantidade de vezes que a regra deve ser executada em um intervalo de tempo, estremamente útil para trabalhar com tentativas de ataques. Ataque DoS (Denial of Service), entende?

iptables –A INPUT –p icmp --icmp-type echo-request –m limit --limit 1/s –j ACCEPT


Definimos que aceitaremos pacotes de icmp (-p icmp) tipo do ping (--icmp-type echo-request) se eles forem recebidos apenas no limite de um segundo (-m limit --limit 1/s). Podemos ter s, m, h, d (segundo, minuto, hora e dia).

Certo, se eu desejar bloquear estes tipos de requisições, afinal, ninguém precisa saber se estamos vivos ou não, a regra seria ... ?

iptables –A INPUT –p icmp –j DROP

Bloquear tudo o que entrar e que seja do tipo icmp. Esta ficou fácil, não?

Mas... Como ele controla isto, a quantidade de vezes... é memória, banco de dados?

Não, ele utiliza as flags de inicialização de um datagrama IP, elas são:

FLAG
Descrição
ACK Acknowledgement. Informa ao receptor o próximo número da seqüência do pacote
SYN Syncronize. Utilizada para realizar o sincronismo dos números seqüênciais.
FIN Finalização. Flag utilizada para indicar a finalização de uma conexão
PSH Push. Informa ao tcp que se deve enviar todos os pacotes que estejam no buffer ao destinatário
URG Urgent. Prioridade no envio.

 

Para um melhor entendimento, veja:

 

- O Cliente envia um datagrama com a flag SYN, para o firewall, é uma nova conexão;
- O servidor recebe a requisição, e responde com a dupla SYN+ACK;
- Para o firewall, há uma conversa, estabilizou!

Fechamento de uma conexão:


Imagine o que aconteceria se enviássemos vários pacotes SYN forjando a origem para um Host B, este host B enviaria um pacote SYN+ACK de volta para o Host A e ficaria aguardando o estabelecimento de conexão (ora se forjamos a origem, é óbvio que nunca o receberá), este é o tipo de conexão three-way e várias requisições neste estado de ‘half-connection’ geram o famoso Syn-flood, muitas conexões abertas aguardando um pacotinho ACK de confirmação que nunca chegará.


A opção state trabalha com o estado da conexão:

NEW: nova conexão
ESTABLISHED: conexão já pertencente e estabilizada entre as duas pontas.
RELATED: conexão que se relaciona com um outro pacote, por exemplo mensagens de erro.
INVALID: Conexões inválidas, pacotes com problemas ou não formados corretamente.


iptables –A INPUT –m state --state INVALID –i eth1 –j DROP

Bloqueia o que entrar (-A INPUT) pela interface eth1 (-i eth1) e com estado inválido (--state INVALID).

A opção mac permite-nos trabalhar por este tipo de endereçamento:

iptables –A INPUT –m mac --mac-source 00:50:04:EE:3D:FD –j DROP

Bloqueia o que for do endereço mac de origem (--mac-source)

A opção multiport permite-nos trabalhar com várias portas, por exemplo:

iptables -A FORWARD -p udp -m multiport --dport 5190,4000 -j DROP

Bloqueia o encaminhamento de mensagens udp das portas 5190 e 4000

iptables -A FORWARD -s 192.168.0.0/24 -p tcp -m multiport --dports domain,ftp-data,ftp,https,pop3,smtp,21 -j ACCEPT

Libera o encaminhamento de mensagens das portas de destino domain,ftp-data,ftp,https,pop3,smtp,21. Uma relação de portas está disponível em /etc/services

Se você quer liberar um range de portas, pode fazer:

iptables -A INPUT -p udp -i eth+ --dport 33435:33525 -j DROP

Bloquear tudo o que for udp e que entrar por qualquer interface (-i eth+) para as portas de 33435 até 33525. Bloqueia o traceroute =)

A opção string permite-nos vasculhar o conteúdo do pacote, por exemplo, bloquear o que contém a string Kazaa.

iptables –A INPUT –m string --string “X-Kazaa” –j DROP

Hum… vamos ver o que está acontecendo? Log nele!

iptables –A INPUT –m string --string “sexo” –j LOG --log-prefix “IPTABLES: Log da string sexo, masculino ou feminino? =)”


Dicas

Não esqueça de sempre logar e depois bloquear, sempre liberar o chefe e depois bloquear o restante da empresa, e assim por diante, pois o iptables irá ler suas regras de cima para baixo, sempre.

O seu arquivo de firewall nada mais é que um “shell script”, permitindo, então você fazer:

# Redireciona VPN e TS para o PDC
PORTS=”1723 3306”
PROTOCOLOS=”tcp udp”
IFACEWEB=”eth1”
      for PORTA in $PORTS;do
            for PROTO in $PROTOCOLOS;do
                  $IPTABLES -t nat -A PREROUTING -p $PROTO -m $PROTO --dport $PORTA -i $IFACEWEB -j DNAT --to 192.168.0.3
      done
done

Resumão

# Ativando o NAT e definindo variáveis.

echo 1 > /proc/sys/net/ipv4/ip_forward
IPTABLES=”/sbin/iptables”
LAN=”192.168.0.0/24”
IFACEWEB=”eth1”

# Apagando as regras anteriores

$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t nat -Z
$IPTABLES -t filter -F
$IPTABLES -t filter -Z
$IPTABLES -t filter –X


# Configurando NAT e redirecionamento para SQUID, NINGUEM SAI PELA
# porta 80


$IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j MASQUERADE
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DROP

# Liberando acesso remoto Terminal Service a uma máquina da rede.
# Lembre-se, tudo o que entrar pela porta 7150 será redirecionado para
# a máquina interna 192.168.0.117 na porta 3389.

$IPTABLES -t nat -A PREROUTING -p tcp -m tcp --dport 7150 -j DNAT --to 192.168.0.117:3389

# Liberando acesso a uma determinada porta de um programa especifico
# (ERP) vindas da Filial (200.200.200.200)


$IPTABLES -A FORWARD -s 200.200.200.200 -p tcp -m tcp --dport 1494 -j ACCEPT

#Bloqueando ping com resposta unreachable

$IPTABLES -I INPUT -i $IFACEWEB -p icmp -j REJECT --reject-with icmp-host-unreachable

# Bloquear Bittorrent, ou outras portas, SQUID, Samba, DNS, etc...

$IPTABLES -I INPUT -p tcp -m tcp --dport 6881:6889 -j DROP
$IPTABLES -I OUTPUT -p tcp -m tcp --dport 6881:6889 -j DROP

# Bloquear conexões de algum programa que utilize algum destino ou
# alguma porta de destino, KAZAA, Emule


$IPTABLES -A FORWARD -d 216.35.208.0/24 -j DROP
$IPTABLES -A FORWARD -p tcp --dport 6346 -j DROP
$IPTABLES -A FORWARD -d 209.61.186.0/24 -j DROP

 

 


Copyright© 2006 flaviotorres.com.br . Todos os direitos reservados.