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

Conectividade Social



Pessoal

Já pesquisei tá? Mas não direito onde to me perdendo.. 

Olha meu firewall denovo:

#!/bin/sh
# Script de Configuração de firewall
# Autor: Eder Gobbi - Woody
# Data: 21/03/2006
# Descrição: Produzido para ser distribuído livremente, baseado no guia
#             Foca GNU/Linux. http://www.guiafoca.org
#

# É assumido um sistema usando kmod para carga automática dos módulos
usados por
# esta configuração do firewall:
# ipt_filter
# ipt_nat
# ipt_conntrack
# ipt_mangle
# ipt_TOS
# ipt_MASQUERADE
# ipt_LOG

# Se você tem um kernel modularizado que não utiliza o kmod, será
necessário
# carregar estes módulos via modprobe, insmod ou iptables
--modprobe=modulo

##### Carregando módulos necessários #####
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

##### Definição de Policiamento #####
# Tabela filter
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD DROP
# Tabela nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING DROP
# Tabela mangle
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT


##### Proteção contra IP Spoofing #####
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
 echo 1 >$i
done

##### Ativamos o redirecionamento de pacotes (requerido para NAT) #####
echo "1" >/proc/sys/net/ipv4/ip_forward

# O iptables define automaticamente o número máximo de conexões
simultâneas
# com base na memória do sistema. Para 32MB = 2048, 64MB = 4096, 128MB =
8192,
# sendo que são usados 350 bytes de memória residente para controlar
# cada conexão.
# Quando este limite é excedido a seguinte mensagem é mostrada:
#  "ip_conntrack: maximum limit of XXX entries exceed"
#
# Como temos uma rede simples, vamos abaixar este limite. Por outro lado
isto
# criará uma certa limitação de tráfego para evitar a sobrecarga do
servidor.
# echo "2048" > /proc/sys/net/ipv4/ip_conntrack_max


###############################################################
#                      Tabela filter                          #
###############################################################

##### Chain INPUT #####
# Criamos um chain que será usado para tratar o tráfego vindo da
Internet e
iptables -N net-input

# Aceita todo o tráfego vindo do loopback e indo pro loopback
iptables -A INPUT -i lo -j ACCEPT
# Todo tráfego vindo da rede interna também é aceito
iptables -A INPUT -s 10.43.42.0/24 -i eth1 -j ACCEPT

# Conexões vindas da interface eth0 são tratadas pelo chain net-input
iptables -A INPUT -i eth0 -j net-input

# Qualquer outra conexão desconhecida é imediatamente registrada e
derrubada
iptables -A INPUT -j LOG --log-prefix "FIREWALL: INPUT "
iptables -A INPUT -j DROP


##### Chain FORWARD ####
# Permite redirecionamento de conexões entre as interfaces locais
# especificadas abaixo. Qualquer tráfego vindo/indo para outras
# interfaces será bloqueado neste passo
iptables -A FORWARD -d 10.43.42.0/24 -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -s 10.43.42.0/24 -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -j LOG --log-prefix "FIREWALL: FORWARD "
iptables -A FORWARD -j DROP


##### Chain net-input ####
# Aceitamos todas as mensagens icmp vindas de eth0 com certa limitação
# O tráfego de pacotes icmp que superar este limite será bloqueado
# pela regra "...! ESTABLISHED,RELATED -j DROP" no final do
# chain net-input
#
iptables -A net-input -p icmp -m limit --limit 2/s -j ACCEPT

# Primeiro aceitamos o tráfego vindo da Internet para o serviço www
(porta 80)
iptables -A net-input -p tcp --dport 80 -j ACCEPT

# A tentativa de acesso externo a estes serviços serão registrados no
syslog
# do sistema e serão bloqueados pela última regra abaixo.
iptables -A net-input -p tcp --dport 21 -j LOG --log-prefix "FIREWALL:
ftp "
iptables -A net-input -p tcp --dport 25 -j LOG --log-prefix "FIREWALL:
smtp "
iptables -A net-input -p udp --dport 53 -j LOG --log-prefix "FIREWALL:
dns "
iptables -A net-input -p tcp --dport 110 -j LOG --log-prefix "FIREWALL:
pop3 "
iptables -A net-input -p tcp --dport 113 -j LOG --log-prefix "FIREWALL:
identd "
iptables -A net-input -p udp --dport 111 -j LOG --log-prefix "FIREWALL:
rpc"
iptables -A net-input -p tcp --dport 111 -j LOG --log-prefix "FIREWALL:
rpc"
iptables -A net-input -p tcp --dport 137:139 -j LOG --log-prefix
"FIREWALL: samba "
iptables -A net-input -p udp --dport 137:139 -j LOG --log-prefix
"FIREWALL: samba "
# Bloqueia qualquer tentativa de nova conexão de fora para esta máquina
iptables -A net-input -m state --state ! ESTABLISHED,RELATED -j LOG
--log-prefix "FIREWALL: netin "
iptables -A net-input -m state --state ! ESTABLISHED,RELATED -j DROP
# Qualquer outro tipo de tráfego é aceito
iptables -A net-input -j ACCEPT


#######################################################
#                   Tabela nat                        #
#######################################################

##### Chain POSTROUTING #####
# Permite qualquer conexão vinda com destino a lo e rede local para eth1
iptables -t nat -A POSTROUTING -o lo -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.43.42.0/24 -o eth1 -j ACCEPT

# Não queremos que usuários tenham acesso direto a www e smtp da rede
externa, o
# squid e smtpd do firewall devem ser obrigatoriamente usados. Também
registramos
# as tentativas para monitorarmos qual máquina está tentando conectar-se
diretamente.
iptables -t nat -A POSTROUTING -s 10.43.42.0/24 -o eth0 -p tcp --dport
80 -j LOG --log-prefix "FIREWALL: SNAT-www "
#iptables -t nat -A POSTROUTING -s 10.43.42.0/24 -o eth0 -p tcp --dport
25 -j LOG --log-prefix "FIREWALL: SNAT-smtp "
#iptables -t nat -A POSTROUTING -s 10.43.42.0/24 -o eth0 -p tcp --dport
25 -j DROP
iptables -t nat -A POSTROUTING -s 10.43.42.0/24 -o eth0 -p tcp --dport
80 -j DROP
# É feito masquerading dos outros serviços da rede interna indo para a
interface
# eth0
iptables -t nat -A POSTROUTING -s 10.43.42.0/24 -o eth0 -j MASQUERADE

# Qualquer outra origem de tráfego desconhecida indo para eth1 (conexões
vindas
# de eth0) são bloqueadas aqui
iptables -t nat -A POSTROUTING -o eth1 -d 10.43.42.0/24 -j LOG
--log-prefix "FIREWALL: SNAT unknown"
iptables -t nat -A POSTROUTING -o eth1 -d 10.43.42.0/24 -j DROP
# Quando iniciamos uma conexão eth, obtemos um endereço classe A
(10.x.x.x) e após
# estabelecida a conexão real, este endereço é modificado. O tráfego
indo para
# a interface eth não deverá ser bloqueado. Os bloqueios serão feitos no
# chain INPUT da tabela filter
iptables -t nat -A POSTROUTING -o eth0 -j ACCEPT

# Registra e bloqueia qualquer outro tipo de tráfego desconhecido
iptables -t nat -A POSTROUTING -j LOG --log-prefix "FIREWALL: SNAT "
iptables -t nat -A POSTROUTING -j DROP


###############################################
#                Tabela mangle                #
###############################################

##### Chain OUTPUT #####
# Define mínimo de espera para os serviços ftp, telnet, irc e DNS, isto
# dará uma melhor sensação de conexão em tempo real e diminuirá o tempo
# de espera para conexões que requerem resolução de nomes.
#iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 21 -j TOS --set-tos
0x10
#iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 23 -j TOS --set-tos
0x10
#iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 6665:6668 -j TOS
--set-tos 0x10
#iptables -t mangle -A OUTPUT -o eth0 -p udp --dport 53 -j TOS --set-tos
0x10
iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 3389 -j TOS
--set-tos 0x10

O maldito programa da caixa não passa por essa coisa.. 

Ele usa porta 80, mas o protocolo usado não é HTTP, a conexão precisa
realmente passar por fora do proxy para os endereços da faixa
200.201.174.0/24, porém, como devem ter percebido nas minhas regras,
toda conexão na porta 80 está bloqueada.

Como eu posso fazer gente? 
Talvez bloquear toda conexão na porta 80 menos quando direcionada a esta
faixa? Neste caso, como eu faço? Já pesquisei mas não encontrei.. 

Grato
-- 
Eder Gobbi <informatica-sc@guararapes-plywood.com.br>



Reply to: