Iptables (rc.firewall)

Iptables com opções de proxy transparente.

Categoria: Segurança

Software: Iptables

[ Hits: 16.736 ]

Por: Perfil removido


Iptables com proxy tarnsparente e internet para a rede local liberada! Yeah! :)

Para este script o seu "servidor" deve ter na eth0 sua interface de internet e na eth1 a conexão com a rede local. Além disso deve estar rodando o squid na porta padrão (3128). O squid vai controlar apenas as conexões para HTTP, mas se você quiser usar para o FTP também, basta configurar o squid e adicionar uma linha de redirecionamento da porta 21 para 3128 na cadeia FORWARD.


#!/bin/bash
# Script de Firewall

#####################################
### Passo 1: Primeiro vamos arrumar a casa :) ###
#####################################

# Limpando as Regras
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

# Definindo a Politica Default das Cadeias
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP


######################################
### Passo 2: Antes de Servir, vamos nos proteger ! ###
######################################

# Desabilitando o trafego IP Entre as Placas de Rede
echo "0" > /proc/sys/net/ipv4/ip_forward

# Configurando a Protecao anti-spoofing
echo "Setting anti-spoofing .....[ OK ]"
for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do
        echo "1" > $spoofing
done


#######################################
### Passo 3: Carregando os modulos do iptables ###
#######################################

modprobe ip_tables
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_MASQUERADE
echo "Setting rules .............[ OK ]"

#######################################
### Passo 4: Agora, vamos definir o que pode passar e o que nao ###
#######################################

# Cadeia de Entrada. Esta cadeia, so vale para o proprio host

# Qualquer pacote IP que venha do localhost, Ok.
iptables -A INPUT -i lo -j ACCEPT

# REDE INTERNA LIBERADA
iptables -A INPUT -i eth1 -j ACCEPT

# No iptables, temos de dizer quais sockets sao validos em uma conexao
iptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT


# Cadeia de Reenvio (FORWARD)

# Primeiro, ativar o mascaramento (nat).
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Agora dizemos quem e o que podem acessar externamente
# No iptables, o controle do acesso a rede externa e feito na cadeia "FORWARD"

# Redireciona porta 80 para 3128 (squid)
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

# REDE INTERNA LIBERADA
iptables -A FORWARD -i eth1 -j ACCEPT

# No iptables, temos de dizer quais sockets sao validos em uma conexao
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

########################################
### Finalmente, podemos "Ligar" o foward (clientes) :) ###
########################################

# Habilitando o trafego Ip, entre as Interfaces de rede
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Firewall OK ...............[ OK ]"
  


Comentários
[1] Comentário enviado por lacierdias em 07/05/2004 - 11:32h

mandou bem....

[2] Comentário enviado por removido em 07/05/2004 - 19:55h

Thanks! ;)
Só uma coisa que eu esqueci, caso o seu servidor não tenha nenhum serviço que precise ser acessado externamente, tipo Apache, FTP, etc... na cadeia INPUT você não precisa usar sockets NEW. O resto ta certinho!

[3] Comentário enviado por marcosvalente em 14/06/2004 - 04:19h

BOM CARA

[4] Comentário enviado por removido em 20/03/2005 - 02:22h

Olá virtualboy,

Eu achei esse script bastante interessante mas estou precisando implementar mais duas regras o Receitanet e o conectividade social por acaso alguém já fez isso ?

Abraços !

[5] Comentário enviado por oinuj em 30/10/2006 - 15:08h

Cara eu tenho um serviço que tenho que acessar externamente, um serviçlo online que esta dentro da minha sub-rede2 como faço para liberar caminho para esse pc no firewall?

[6] Comentário enviado por lipecys em 26/09/2007 - 16:02h

Valew...........

[7] Comentário enviado por andriopj em 08/03/2009 - 14:57h

caro "master foca"
para liberar a conectividade social, faco isso junto com o redirecionamento para o squid, ficando assim:

# # Proxy Transpatent
iptables -t nat -A PREROUTING -s 172.167.0.0/24 -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i 172.167.0.0/24 -p udp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128


ou seja, todo o trafego tcp, udp... que nao passe pelas ip 200.201.174.207, e seja porta 80 (http) sera redirecionado para a porta do squid 3128

[8] Comentário enviado por ratafonso em 21/03/2009 - 12:25h

O Conectividade Social já está funcionando.

Gostaria de saber qual regra usar para o Receita.net funcionar no Firewall (iptables).

uso Ubuntu Server 8.04

Aguardo resposta.


Contribuir com comentário

  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts