Bem vindo ao linuxnarede.com.br - Dedicação e amor ao Linux - 6 anos - irc freenode #gnulinux


tutoriais relacionados a linux - dividido por categorias use o fórum para postar sua dúvida, auxiliar com seu conhecimento alguem que esteja com dúvida, debater assuntos aplicativos para linux, selecionados e divididos por categoria - Uma lista dos melhores aplicativos para Linux Fique antenado com a segurança do seu linux - tutoriais e notícias relacionadas a segurança você encontra aqui. dicas interessantes uma seleção de walpapers para você embelezar seu desktop Quem disse que o linux é feio ! Mude o visual do seu linux com temas e skins voltar a página principal


Nat somente em portas determinadas

postado por nightnux - comentários 0


Guilherme Straioto

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


Pronto.

Softwares testados: kazaa, msn messenger, icq.

Guilherme Straioto

Acompanhe

© linuxnarede.com.br - Todos os direitos reservados.
Linux é uma marca registrada de Linus Torvalds.