O local certo para se aprender Linux no Brasil, a sua fonte de artigos, dicas, tutoriais, noticias, howto, reviews e muito mais.

Nat somente em portas determinadas

Arquivado em Tutoriais <> Segurança
Nat somente em portas determinadas
Esse tutorial explica como ativar nat somentes nas portas desejadas, fazendo com que a segurança do seu servidor fique melhor.

Em muitos sites vimos como funciona o roteamento convencional, basta apenas três linhas e pronto como no exemplo abaixo:

echo 1 > /proc/sys/net/ipv4/ip_forward // Habilitando o recurso de IP forwarding

modprobe iptable_nat // Carregando o módulo nat

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE // Ativando mascaramento

O problema é que todas as portas são habilitadas, no qual softwares p2p, messaging e outros funcionarão acarretando "lentidão" no link. Abaixo um script que habilita apenas portas para navegação e envio e recebimentos de emails, junto com proxy transparente.

O que é necessário:
1- Kernel com suporte a iptables
2- Proxy Transparente
3- Squid rodando com blacklists
4- Script nat


1- Kernel com suporte a iptables
Distribuições atuais com o kernel 2.4 e 2.6 suportam iptables.


2- Proxy transparente
Basta apenas você descomentar estas linhas no squid.conf, que o redirecionamento o script faz automático.

# HTTPD-ACCELERATOR OPTIONS
# ---------------------------------------
#
#
#
httpd_accel_port 80
httpd_accel_host virtual


E o Seguinte Grupo:


#
# TAG: httpd_accel_with_proxy
# --------------------------------------
#
#
httpd_accel_with_proxy on
#
#
# TAG: httpd_accel_uses_host_header on|off
#
#
httpd_accel_uses_host_header on


3- Squid rodando com black list
No caso do Msn Messenger quando ele tenta conectar na porta 1863 e não consegue, automaticamente ele conecta pela porta 80 estabilizando a conexão, com o blacklist ativado basta apenas bloquear ao acesso do messenger.hotmail.com.

a- Abra o squid.conf: vi /etc/squid/squid.conf
b- Adicione a acl: acl blacklist url_regex "/etc/squid/blacklist"
c- Adicione na seção http_access: http_access allow all !blacklist
d- Crie o arquivo blacklist: vi /etc/squid/blacklist, adicione as linhas:
messenger.hotmail.com
login.oscar.aol.com
login.icq.com
cs.yahoo.com

Rode o comando: squid -k reconfigure

4- Script nat
Copie e cole o conteúdo abaixo num arquivo chamado firewall.sh, e modifique se necessário a linha: IFINT='10.0.0.0/24' colocando a classe de ip da sua rede interna.

----- copie aqui
# Firewall para rede interna, filtrando serviços da internet.
# Definição de variáveis e regras fixas

IPT='/sbin/iptables'
IFINT='10.0.0.0/24'
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
$IPT -F
$IPT -t nat -F
$IPT -t nat -P POSTROUTING DROP
# Ativando o proxy transparente
$IPT -t nat -A PREROUTING -i eth0 -s $IFINT -p tcp --dport 80 -j REDIRECT --to-port 3128

# Ativando mascaramento para determinadas portas

$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p icmp -j MASQUERADE
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 110 -j MASQUERADE
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport 110 -j MASQUERADE
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 25 -j MASQUERADE
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport 25 -j MASQUERADE
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 80 -j MASQUERADE
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport 80 -j MASQUERADE
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 3128 -j ACCEPT
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 53 -j MASQUERADE
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport 53 -j ACCEPT
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport 53 -j MASQUERADE
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport 53 -j ACCEPT
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p tcp --dport https -j MASQUERADE
$IPT -t nat -A POSTROUTING -s $IFINT -d 0/0 -p udp --dport https -j MASQUERADE
----- corte aqui

Coloque no /etc/rc.local para inicializar quando sua máquina ligar.

# vi /etc/rc.local
# sh /etc/rc.d/firewall.sh

Pronto.

Softwares testados: kazaa, msn messenger, icq.

Guilherme Straioto
Envie seu comentário
 
 
Copyright © Sputnix.com.br, Seja Livre, Use Linux