Nat em portas específicas

Voltar

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 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 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.
# Guilherme Straioto 23/10/03

# 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

Fonte: http://www.linuxnarede.com.br


Voltar

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s