luis usei o seu script ( reiniciei a maquina primeiro ) e também nao funcionou
Versão Imprimível
luis usei o seu script ( reiniciei a maquina primeiro ) e também nao funcionou
caro maverick, estou reinstalando o slack , vou sair da versao 10.1 e voltar para a 10, também estou trocando as placas realteck 8139 por outras ( 3com / Digital ) que estavam em outra maquina funcionando.
Quando escolhi os pacotes na instalacao vi um pacote iproute2 creio que esse pacote deve ser o responsavel por rotas.
O slack 10 ja vem com o modulo iptables compilado no kernell de forma que nao é preciso carrega-lo e em mais de 10 tutoriais sobre o assunto, segundo entendi , estando o ip_forward ativado e no slack é o rc.ip_forward que faz echo 1>/proc/sys/net/ipv4/ip_forward , a principio bastaria 2 linhas para que o compatilhamento com a internet funcionasse que é o :
modprobe iptable_nat
iptables -t nat -A POSTROUTING -o interface_ligada_ao router(eth0) -j MASQUERADE
queria saber com certeza, esquecendo a segurança, basta isso e navega ?
caro maverick, estou reinstalando o slack , vou sair da versao 10.1 e voltar para a 10, também estou trocando as placas realteck 8139 por outras ( 3com / Digital ) que estavam em outra maquina funcionando.
Quando escolhi os pacotes na instalacao vi um pacote iproute2 creio que esse pacote deve ser o responsavel por rotas.
O slack 10 ja vem com o modulo iptables compilado no kernell de forma que nao é preciso carrega-lo e em mais de 10 tutoriais sobre o assunto, segundo entendi , estando o ip_forward ativado e no slack é o rc.ip_forward que faz echo 1>/proc/sys/net/ipv4/ip_forward , a principio bastaria 2 linhas para que o compatilhamento com a internet funcionasse que é o :
modprobe iptable_nat
iptables -t nat -A POSTROUTING -o interface_ligada_ao router(eth0) -j MASQUERADE
queria saber com certeza, esquecendo a segurança, basta isso e navega ?
Precisa também aceitar o FORWARD, ou seja, basta essas duas linhas:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -j LACCEPT
No caso de se usar NAT.
No caso de se usar um scrpt. Eu utilizo este que postei no Slack 8. eu o chamei de rc.firewall e faço o start do mesmo automaticamente no boot.
Caso queira um router linux mais fácil, você pode utilizar um que é bootável a partir de um floppy. O Coyote Linux (www.coyotelinux.com). Existe uma interface gráfica em Windows (tem script para linux também) no qual vc define as opções e ele cria o floppy (router) para você. Depois basta executar o boot pelo floppy. É muito mais prático e nem precisa de uma máquina tão potente (também dispensa o uso de hd).
Resolvi o problema, :P
Nao funcionava pois as placas de rede estavam compartilhando irq com outros perifericos, desabilitei os outros perifericos e funcionou.
O mais estranho era que elas respondiam ao ping sem problemas.
Mas queria uma ajuda se possivel , tenho o script abaixo, funcionando, e preciso que a rede 10.0.10.0/24 tenha acesso ao servidor 10.0.10.254 a vários servicos como telnet / ftp / samba que nao esta ocorrendo e que a maquina 10.0.10.83 nao tenha acesso ao messenger e a um site em especifico 200.234.200.9, alguem poderia me ajudar ?
Agradeço desde já. Obrigado
#!/bin/bash
# ----------------------------------------------------------------
# Scrip para firewall
# ----------------------------------------------------------------
echo "Carregando o firewall..."
# Definindo as variaveis
REDEINT="10.0.10.0/24"
# IPDNSPROVEDOR="192.168.254.254"
ENT="eth1"
SAI="eth0"
# carregando os modulos
modprobe iptable_nat
# limpando as tabelas
iptables -F
iptables -t nat -F
# Protege contra os "Ping of Death"
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# Protege contra os ataques do tipo "Syn-flood, DoS, etc"
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
# Permitir repassamento (NAT,DNAT,SNAT) de pacotes etabilizados e os relatados ...
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Logar os pacotes mortos por inatividade ...
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG
# Protege contra port scanners avançados (Ex.: nmap)
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Protege contra pacotes que podem procurar e obter informações da rede interna ...
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
# Protege contra todos os pacotes danificados e ou suspeitos ...
iptables -A FORWARD -m unclean -j DROP
# Bloqueando tracertroute
iptables -A INPUT -p udp -s 0/0 -i $ENT --dport 33435:33525 -j DROP
# Protecoes contra ataques
iptables -A INPUT -m state --state INVALID -j DROP
# Performance - Setando acesso a web com delay minimo
iptables -t mangle -A OUTPUT -o $ENT -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
iptables -t mangle -A OUTPUT -o $ENT -p tcp --dport 80 -j TOS --set-tos Minimize-Delay
# Deixa passar as portas UDP do servidores DNS, e Rejeitar o restante
#iptables -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR -j ACCEPT
#iptables -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR -j ACCEPT
iptables -A INPUT -i $ENT -p udp -j ACCEPT
# Bloqueia qualquer tentativa de conexao de fora para dentro por TCP
iptables -A INPUT -i $ENT -p tcp --syn -j DROP
# Mesmo assim fechar todas as portas abaixo de 32000
iptables -A INPUT -i $ENT -p tcp --dport :32000 -j DROP
# Responde pacotes icmp especificados e rejeita o restante
iptables -A INPUT -i $ENT -p icmp --icmp-type host-unreachable -j ACCEPT
iptables -A INPUT -i $ENT -p icmp --icmp-type source-quench -j ACCEPT
iptables -A INPUT -i $ENT -p icmp -j REJECT --reject-with icmp-host-unreachable
# Rejeita o Kazaa (não testado ainda)
#$iptables -A FORWARD -p tcp -m string --string X-Kazaa-Username: -j REJECT --reject-with tcp-reset
# libera acesso interno da rede
iptables -A INPUT -p tcp --syn -s $REDEINT -j ACCEPT
iptables -A OUTPUT -p tcp --syn -s $REDEINT -j ACCEPT
iptables -A FORWARD -p tcp --syn -s $REDEINT -j ACCEPT
# libera o loopback
iptables -A OUTPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
# libera conexoes de fora pra dentro
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT
#$iptables -A INPUT -p tcp --destination-port 443 -j ACCEPT
#$iptables -A INPUT -p tcp --destination-port 20 -j ACCEPT
#$iptables -A INPUT -p tcp --destination-port 21 -j ACCEPT
#$iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
#libera conexoes de dentro pra fora:
iptables -A OUTPUT -p tcp --destination-port 80 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 3306 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 20 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 21 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 86 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 5190 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 443 -j ACCEPT
# libera o bittorrent - (não testado)
# troque o X.X.X.X pelo IP da máquina correspondente
#$iptables -A INPUT -p tcp --destination-port 1214 -j ACCEPT
#$iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 1214 -j DNAT --to-dest X.X.X.X
#$iptables -A FORWARD -p tcp -i ppp0 --dport 1214 -d X.X.X.X -j ACCEPT
#$iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 1214 -j DNAT --to-dest X.X.X.X
#$iptables -A FORWARD -p udp -i ppp0 --dport 1214 -d X.X.X.X -j ACCEPT
# faz o icq receber arquivos - (não testado)
# troque o X.X.X.X pelo IP da máquina correspondente
#$iptables -A INPUT -p tcp --destination-port 2000:3000 -j ACCEPT
#$iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 2000:3000 -j DNAT --to-dest X.X.X.X
#$iptables -A FORWARD -p tcp -i ppp0 --dport 2000:3000 -d X.X.X.X -j ACCEPT
#$iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 2000:3000 -j DNAT --to-dest X.X.X.X
#$iptables -A FORWARD -p udp -i ppp0 --dport 2000:3000 -d X.X.X.X -j ACCEPT
# compartilha a web na rede interna
iptables -t nat -A POSTROUTING -s $REDEINT -o $SAI -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
# bloqueia o resto
iptables -A INPUT -p tcp --syn -j DROP
iptables -A OUTPUT -p tcp --syn -j DROP
iptables -A FORWARD -p tcp --syn -j DROP
# bloqueia ping
echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all
# ----------------------------------------------------------------
echo "Firewall carregado..."