NAT (enviei denovo pq apareceu um erro aqui...)
Pessoal, preciso de ajuda!
Sei que vocês já devem estar de saco cheio de responder isso, mas vou mandar assim mesmo...
Primeiro a história:
Trabalho em uma empresa que possui uma rede de aprox 50 micros, sendo a grande maioria de win98. Temos também uma conexão speedy com ip fixo (não arrumaram o nosso ainda!), compartilhada para as estações por meio de um pequeno micro também com win98 rodando o medíocre ICS.
Depois de muitos travamentos e tal, o ICS deixou de ser DHCP, o que fez com que mudássemos toda a rede para IP estático nas máquinas (loucura, mas me pediram pra fazer isso...). Esse gateway que usamos hoje é um Pentium 166 com 64 de RAM duas plaquinas de rede, sendo uma 3com e outra realtek vagabunda.
Depois de muito insistir, convenci o meu patrão a deixar que eu instalasse um pinguim no lugar desse servidor, pra que ele seja, além de gateway, também o DHCP da rede. Disse tbm que se a máquina aguentar, poderia instalar um DNS nele.Diante de tal situação, resolvi colocar meus poucos conhecimentos em prática.
Como a gateway nã pode parar, peguei um athlon da rede e instalei o vmware pra emular duas máquinas e poder testar roteamento e NAT nessa micro-rede-virtual.
Até agora, consegui aprender sozinho como instalar o Linux e configurar o roteamento e o DHCP (eu achei um grande feito... só lendo man-pages. vale lembrar que nunca tinha trabalhado com redes no linux... só sabia tocar musiquina e escrever no vi). Só que o meu roteador-virtual repassa pacotes de um lado para o outro livremente, o que não pode acontecer de forma alguma na vida real.
Depois de muito pesquisar, descobri que se tratava então de NAT, e que faria isso usando o IPTABLES (kernel 2.4.18 do CL<IMG SRC="images/forum/icons/icon_cool.gif">. Alguém poderia me ajudar?
Dados atuais:
Rede internet: 192.168.0.0
Máscara: 255.255.255.0
IP do Gateway: 192.168.0.1 (interno, na placa eth0) e 200.165.65.65/24 (externo, na placa eth1 e fictício, por ser fixo)
As duas placas de rede eu já consegui configurar.
Detalhe: Só preciso de um esqueminha bem simples, sem maiores restrições. Usuários podem usar MSN, ICQ, FTP e outras frescuras sem problemas...
Algém poderia me ajudar?
Agradeço desde já
Pablo Sanchez
NAT (enviei denovo pq apareceu um erro aqui...)
Já que vc quer que todos tenham acesso a tudo, vc pode fazer assim:
#!/bin/sh
#############################################################
# Script Criado Por: #
# Rodrigo Gustavo Gallacci #
# FIREWALL EM LINUX - iptables #
#############################################################
case $1 in
´start´)
#Primeiro precisamos levantar todos os serviços do firewall
USO=`cat /usr/firewall`
if [ $USO != 1 ]
then
echo 1 > /usr/firewall
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
insmod ip_nat_ftp
insmod ip_conntrack_ftp
fi
#Agora limpamos todas as regras
iptables -F
iptables -t nat -F
iptables -X
iptables -X -t nat
iptables -Z
#Aqui não vou fechar porta nenhuma,
#Mas fique esperto depois para fechar as que não são importantes pra vc
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#Agora trocamos o ip interno para o acesso a internet
iptables -A PREROUTING -t nat -d 127.0.0.1/32 -j DNAT --to IP_REDE_INTERNA
iptables -A POSTROUTING -t nat -s IP_REDE_INTERNA/MASK -j SNAT --to IP_REDE_EXTERNA
iptables -A POSTROUTING -t nat -s IP_REDE_INTERNA/MASK -j MASQUERADE
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#A partir daki vc coloca as portas que vc quer proibir exemplo
iptables -A FORWARD -p tcp --dport 200:300 -j DROP
#Essa linha vai fechar todas as portas de 200 até 300, pode ser assim também
iptables -A FORWARD -p tcp -s 200.230.222.10 -j DROP
#Essa linha rejeita tudo que vier do ip 200.230.222.10
touch /var/lock/subsys/firewall
;;
´stop´)
#Paramos o serviço
iptables -F
iptables -t nat -F
iptables -X.p
iptables -t nat -X
iptables -Z
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
echo 0 > /usr/firewall
rm -f /var/lock/subsys/firewall
;;
´restart´)
#Restartamos o serviço
echo "Parando o serviço de firewall: [OK]"
$0 start
echo "Iniciando o serviço de firewall: [OK]"
;;
´list´)
iptables -L -t nat
iptables -L
;;
*)
echo ""
echo "Erro 001:"
echo "Comando firewall não reconhecido"
echo "Tente digitar firewall {start|stop|restart|list}"
echo ""
exit 0
;;
esac
Leia com atençao e espero ter ajudado......
Qualquer dúvida meu e-mail é [email protected] me manda um e-mail que eu te ajudo!!!! <IMG SRC="images/forum/icons/icon_wink.gif">
NAT (enviei denovo pq apareceu um erro aqui...)
Valeu pela ajuda, cara...
Vou tentar implantar o pinguim no lugar do ics nesse domingo e conto as
notícias depois. Depois, com mais calma, vou analisar com cuidado o script pra conhecer melhor o iptables. Um dia vou entender mais desse sistema pra poder ajudar por aqui também...
Pra quem quebrou a cabeça sozinho e entendeu a lógica e as instruções de como fazer funcionar um DHCP e um DNS no linux sem nunca ter montado um antes, iptables vai ser só mais uma coisinha a entender.
Obrigado!