[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Res: iptables com nat



Faça como segue:

Crie variaveis para ficar mais facil para gerenciar:
        IPT='/sbin/iptables'            # Define o caminho padrao para o binario
        INT_EXT='eth0'                  # Interface de rede Externa Internet
        INT_LOC='eth1'                  # Interface de rede da Rede Local
        UP_PORTS='1024:65535'           # Define numero de portas acima de 1024
# Enderecos que podem conectar-se a sites FTP.
        FTP_ACCEPT="192.168.0.2 192.168.0.3 192.168.0.4 192.168.0.5 192.168.0.6 192.168.0.9 192.168.0.11 192.168.0.34 192.168.0.91 192.168.0.9
5 192.168.0.150"

# Enderecos que podem conectar-se a internet diretamente.
        HTTP_ACCEPT="192.168.0.2 192.168.0.3 192.168.0.4 192.168.0.5 192.168.0.6 192.168.0.9 192.168.0.11 192.168.0.34 192.168.0.52 192.168.0.150"

# Declaracoes de Range IP de rede
        LAN_RANGE="192.168.0.0/24"      # Rede de Padrao


# Habilitando Redirecionamento de pacotes (IP forwarding)
   echo 1 > /proc/sys/net/ipv4/ip_forward

# Bloqueia solicitacoes de entrada, saida e passantes por padrao.
# Tabela filter
        $IPT -t filter -P INPUT DROP
        $IPT -t filter -P OUTPUT DROP
        $IPT -t filter -P FORWARD DROP

# Ativando o mascaramento da rede interna.
# Com isso tudo que sair para internet saira com o endereco externo.
# Permitindo que todas as maquinas da rede local naveguem na internet.
        $IPT -t nat -A POSTROUTING -s $LAN_RANGE -o $INT_EXT -j SNAT --to 200.XXX.XXX.XXX

#INPUT
 # Gera log de todo trafego entrante.
        $IPT -t filter -A INPUT -m state --state NEW,ESTABLISHED,RELATED -j LOG

# Aceita conexoes originadas na rede local.
        $IPT -t filter -A INPUT -s $LAN_RANGE -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

#FORWARD
# Permite a passagem de alguns tipos de ping e limita por causa do ping da morte.
# apenas de dentro para fora da rede.
        $IPT -t filter -A FORWARD -s $LAN_RANGE -i $INT_LOC -o $INT_EXT -p icmp -m limit --limit 1/s -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
        $IPT -t filter -A FORWARD -d $LAN_RANGE -i $INT_EXT -o $INT_LOC -p icmp -m limit --limit 1/s -m state --state RELATED,ESTABLISHED -j ACCEPT

# Permissao de acesso a sites e servidores FTP.
for FTP in ${FTP_ACCEPT};do
        $IPT -t filter -A FORWARD -s ${FTP} -i $INT_LOC -o $INT_EXT -m multiport -p tcp --dport 20,21 -m state --state NEW,RELATED,ESTABLISHED  -j ACCEPT
        $IPT -t filter -A FORWARD -s ${FTP} -i $INT_LOC -o $INT_EXT -p tcp --sport $UP_PORTS --dport $UP_PORTS -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
        $IPT -t filter -A FORWARD -d ${FTP} -i $INT_EXT -o $INT_LOC -m state --state ESTABLISHED,RELATED -j ACCEPT
done

# Permissao de acesso a servidores HTTP diretamente
for HTTP in ${HTTP_ACCEPT};do
        $IPT -t filter -A FORWARD -s ${HTTP} -i $INT_LOC -o $INT_EXT -m multiport -p tcp --dport 80,8080,443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
        $IPT -t filter -A FORWARD -d ${HTTP} -i $INT_EXT -o $INT_LOC -m multiport -p tcp --sport 80,8080,443 -m state --state ESTABLISHED,RELATED -j ACCEPT
done

Como voce bloqueou todos os acessos voce deve permitir em todas as chains (input, forward e output) cada servico que deseja acessar, portanto siga o exemplo das liberacoes de http e ftp para o forward e crie regras para permitir o mesmo no input e output, caso contrario o seu firewall nao conseguira acessar estes servicos. E lembre-se o protocolo TCP e como se fosse uma via de mao dupla, se voce libera a entrada tem que liberar a saida em cada uma das chains.

Qualquer coisa posta ai!

Falou
--------------------------------------
- - Claudio Rocha de Jesus
|.|-|.| Analista de Suporte Tecnico
- crochadejesus@yahoo.com.br
Linux user number 433834
--------------------------------------


----- Mensagem original ----
De: Carlos Alberto <camotacastro@gmail.com>
Para: squid-br@yahoogrupos.com.br; iptables-br@yahoogrupos.com.br; Lista Debian <debian-user-portuguese@lists.debian.org>
Enviadas: Quarta-feira, 23 de Maio de 2007 4:57:09
Assunto: iptables com nat

Pessoal, gostaria de só liberar a net, http, ftp e o msn, através de nat, ja tentei de tudo. Estou liberando tudo por nat. Como faço? segue abaixo o que fiz no iptables...:

#!/bin/bash

## Apaga quaisquer regras que por ventura existam
iptables -F

#### Regras de policiamento ####

## bloqueia qualquer pacote que não seja explicitament permitio
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#### INPUT ####

## Permite acesso a interface loopback
iptables -A INPUT -i lo -j ACCEPT

## Permite apenas entrada das respostas as conexões desaida
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## Aceita conexoes ICMP com limite de conexoes por minuto
iptables -A INPUT -p icmp -m limit --limit 3/m --limit-burst 3 -j ACCEPT

## Liberar a porta do ssh
iptables -A INPUT -p tcp -s 192.168.0.24  --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.159 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.150 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.148 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.115 --dport 22 -j ACCEPT

## Registra nos logs do sistema pacotes bloqueados, estes são marcados com  prefixo Firewall:
iptables -A INPUT -j LOG --log-prefix "Firewall: "

#### OUTPUT ####

## Permite que o servidor acesse outras maquinas
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


### FORWARD ###

# Connection tracking (aceita pacotes para conexoes já estabelecidas)
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

## Redireciona dados de eth0 para eth1
iptables -A FORWARD -s 192.168.0.159 -o eth1 -j ACCEPT 
iptables -A FORWARD -s 192.168.0.24 -o eth1 -j ACCEPT 
iptables -A FORWARD -s 192.168.0.148 -o eth1 -j ACCEPT
iptables -A FORWARD -s 192.168.0.115 -o eth1 -j ACCEPT
iptables -A FORWARD -s 192.168.0.150 -o eth1 -j ACCEPT

#### POSTROUTING ####

## Compartilhamento da internet
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -p tcp -j SNAT --to 192.168.2.97
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -p udp -j SNAT --to 192.168.2.97

### Ativa o modulo responsavel pelo encaminhamento de pacotes ###
echo 1 > /proc/sys/net/ipv4/ip_forward

--
Cumprimentos
Carlos Alberto Mota Castro (Maranhão)
Estudante de Engenharia Elétrica
UNESP - FEIS - Ilha Solteira
Usuário GNU/Linux


__________________________________________________
Fale com seus amigos de graça com o novo Yahoo! Messenger
http://br.messenger.yahoo.com/
Reply to: