firewall não funciona, já não sei mais o que fazer.
Tentei 300 vezes, o firewall não funciona!!!
eth0 - é a placa da internet
eth1 - minha lan.
Não está trocada a placa de rede, porque tiro o cabo da eth1, e mando um ping para internet funciona.
Mas se tiro a eth0 não funciona, portanto as placas estao certas.
Outra coisa, achei que tinha funcionado, mas quando reiniciei o PC, nao foi mais.
Ou seja, de tanta testar os policiamentos, estava funcionando, mas quando resetei a máquina (Apagou toda sujeira) e nao foi mais.
Fiz tudo liberado, somente para testar realmente, o prerouting não funciona, troquei a placa de rede, mas voltei para o mesmo erro.
Código :
#Rede Interna
REDE_INTERNA=192.168.1.0/24
#Ativar modulos
#modprobe iptable_nat
#modprobe ip_conntrack
#modprobe ip_nat_ftp
#Matando Firewall
iptables -F
iptables -Z
iptables -X
iptables -t nat -F
#Dropando todos os Policiamentos
iptables -P INPUT DROP
iptables -P FORWARD DROP
#Compartilhar a Internet
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
#Proteger contra syn flood
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
iptables -t nat -A PREROUTING -i eth1 -s $REDE_INTERNA -p tcp --dport 80 -j REDIRECT --to-port 3128
#Regras INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -s $REDE_INTERNA -j ACCEPT
#Regras Forward
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o eth0 -s $REDE_INTERNA -j ACCEPT
echo "Levantando Firewall..."
Quando utilizo o PREROUTING, no SQUID.
Não navega de maneira alguma.
Mas com um script pronto que libera tudo funciona!!
Mas dessa maneira não vai, nem com reza.
firewall não funciona, já não sei mais o que fazer.
galera o PREROUTING não funciona dessa maneira !!
Squid nao navega!
Fixo nas configuracoes do navegador, o ip do server porta 3128, mas não navega...
Quando aplico este script aqui funciona !!
Código :
#!/bin/bash
# Local para o executavel do IPTables
IPT=`which iptables`;
# Interface da rede INTERNA
IF_INTERNA="eth1";
# Interface da rede EXTERNA
IF_EXTERNA="eth0";
# Definição da rede interna
REDE_INTERNA="192.168.1.0/24"
fw_start()
{
#ativa o roteamento dinamico
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
$IPT -t filter -P INPUT DROP
$IPT -t filter -P FORWARD DROP
$IPT -t filter -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P POSTROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT
$IPT -t mangle -P INPUT ACCEPT
$IPT -t mangle -P FORWARD ACCEPT
# Cria chain com regras de segurança
$IPT -N BLOCK
$IPT -A BLOCK -p icmp --icmp-type echo-request -j DROP
$IPT -A BLOCK -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$IPT -A BLOCK -p tcp -m limit --limit 1/s -j ACCEPT
$IPT -A BLOCK -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 1/s -j ACCEPT
$IPT -A BLOCK -m unclean -j DROP
$IPT -A BLOCK -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A BLOCK -j DROP
# Muda a prioridade dos pacotes (Type Of Service) para agilizar as coisas
$IPT -t mangle -A OUTPUT -o $IF_EXTERNA -p tcp -m multiport --dports 22,3134 -j TOS --set-tos 0x10
# Libera todo o trafego local
$IPT -t filter -A INPUT -i lo -j ACCEPT
$IPT -t filter -A INPUT -i $IF_INTERNA -j ACCEPT
$IPT -t filter -A FORWARD -i $IF_INTERNA -j ACCEPT
#Redirecionando porta para Proxy
$IPT -t nat -A PREROUTING -i $IF_INTERNA -p tcp --dport 80 -j REDIRECT --to-port 3128
#Libera SSH,ftp e Web
$IPT -t filter -A INPUT -i $IF_EXTERNA -p tcp -m multiport --dports 22,8080 -j ACCEPT
#Libera a conexao para a rede interna
$IPT -t nat -A POSTROUTING -s $REDE_INTERNA -j MASQUERADE
$IPT -A INPUT -j BLOCK
$IPT -A FORWARD -j BLOCK
}
fw_stop()
{
$IPT -t filter -P INPUT ACCEPT
$IPT -t filter -P FORWARD ACCEPT
$IPT -t filter -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P POSTROUTING ACCEPT
$IPT -t mangle -P OUTPUT ACCEPT
$IPT -t mangle -P INPUT ACCEPT
$IPT -t mangle -P FORWARD ACCEPT
$IPT -t filter -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -t filter -X
$IPT -t nat -X
$IPT -t mangle -X
$IPT -t filter -Z
$IPT -t nat -Z
$IPT -t mangle -Z
}
fw_usage()
{
echo
echo "$0 (start | stop | restart | clear)"
echo
echo "start - Ativa o firewall"
echo "stop - Desativa o firewall"
echo "restart - Reativa o firewall"
echo "clear - Limpa os contatores"
}
fw_clear()
{
$IPT -t filter -Z
$IPT -t nat -Z
$IPT -t mangle -Z
}
case $1 in
start)
fw_start;
;;
stop)
fw_stop;
;;
restart)
fw_stop;
fw_start;
;;
clear)
fw_clear;
;;
*)
fw_usage;
exit;
;;
esac
Quando aplico este script, depois o meu reduzido funciona os 2!!
Mas se eu reiniciar a máquina e aplicar o meu firewall não vai...
Como pode isso ???
firewall não funciona, já não sei mais o que fazer.
tem certas coisas que não da para acreditar.
Agora quando ligo o PC, sem script nenhum no FW, o squid funciona.
Não sei se por default fica compartilhada a internet.
Re: firewall não funciona, já não sei mais o que fazer.
Eu nao to entendendo vc ta com uma regra usada em proxy transparente e fala que coloca o ip e a porta no navegador !!!
Nao entendi !!!
firewall não funciona, já não sei mais o que fazer.
eu sempre utilizei assim, agora mesmo está rodando normal.
só redireciono a porta para ninguem usar a 80, sem colocar o proxy no navegador, e para dar a mensagem de erro, que o proxy envia como default.
Só para isso mesmo
Mas o squid não está como transparente.
firewall não funciona, já não sei mais o que fazer.
liberei tudo, ficou assim
Código :
#Rede Interna
REDE_INTERNA=192.168.1.0/24
#Ativar modulos
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_nat_ftp
#Matando Firewall
iptables -F
iptables -Z
iptables -X
iptables -t nat -F
#Dropando todos os Policiamentos
iptables -P INPUT DROP
iptables -P FORWARD DROP
#Compartilhar a Internet
iptables -t nat -A POSTROUTING -s $REDE_INTERNA -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 80
#Regras INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 777 --syn -j ACCEPT
#Regras Forward
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT
echo "Levantando Firewall..."
mas está funcionando normal.
Tirando o PREROUTING, que postei em outro tópico.
valeu
firewall não funciona, já não sei mais o que fazer.
bom, em primeiro lugar, um dica pra ti, coloca as regras da tabela nat sempre as ultimas, e em segundo, ao usar uma regra na chain prerounting, sera necessario que vc a libere a porta na forward, pq todo o trafego da rede passa primeiro na tabela nat, quando tu redireciona, ele vai pra tabela filter, como tu ta redirecionando pra uma maquina da tua rede, ele vai na chain forward, e se vc n libera na forward ele dropa o pacote, entao no seu caso, seria assim:
Citação:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 80
bora começa com teu squid, supondo que eth1= sua interface da rede interna e eth0=interface da internet
a primeira regra ta certa, só falto vc liberar a 3128 na INPUT, pois tmb suponho que o squid ta rodando no seu fw.
entao ficaria assim
iptables -A INPUT -i eth1 -s 192.168.0.0/24 -p tcp --dport 3128 -j ACCEPT
-s 192.168.0.0/24 classe ip da sua rede
agora liberar a porta 80 para redirect funcionar
iptables -A INPUT -i eth0 -p tcp --dport 80 --syn -j ACCEPT
com isso seus nat irão funcionar. tem mais 2 dicas pra vc.
retire imediatamente essas 2 regras
Citação:
iptables -A FORWARD -o eth0 -s $REDE_INTERNA -j ACCEPT
iptables -A INPUT -i eth1 -s $REDE_INTERNA -j ACCEPT
pois com elas seu fw n vale nada, elas simplismente ta liberado tudo pra todos, ou sejá, seu fw ta mais furado do que queijo suiço.
e a segunda dica eh para vc nunca aceitar ou utilizar script de fw já pronto, pois fw em algo muito personalizado, um script serve pra um mais n serve pra outro, em vez de protejer so faz enrolar. então da um estudada em iptables e faça vc mesmo seu script, vc so vai ta ganhando tempo estudando e n perdendo.
abraço e qualquer coisa posta ae.
to com tempinho sobrando pra responder os poste do pessoal aqui :)
firewall não funciona, já não sei mais o que fazer.
Ola brenno, muito obrigado pelas dicas.
Sim aprendei na marra, sempre precisa liberar na forward nesses casos, fiquei algumas horas na frente do console.
Mas no caso como a 8080 vai redirecionar para 80 do servidor, precisa liberar na INPUT também.
Eu estava querendo fazer o impossivel redirecionar sem liberar na INPUT.
Nào tinha como funcionar mesmo.
Quanto a liberar tudo, eu sei que não é bom, fiz só para teste.
Agora que tenho o esqueleto fica fácil montar algo maior.
Tudo está funcionando legal agora,liberei o emule para ficar com ID Alta etc...
Melhorei bastante.
Nunca cheguei a mexer direito com iptables, sabe como é, olha o script de um, pega de outro, quando vai fazer sozinho "A coisa muda".
Agora deu para pegar bem como a coisa funciona.
Muito Obrigado por tudo
"Um off topic"
Colocando o "--syn" tem muita vantagem ?
Você pode me explicar ?
Outra coisa o Squid está funcionando legal, não é transparente eu só redireciono para dar a mensagem para o usuario se ficar sem o proxy.
[]'s :good:
firewall não funciona, já não sei mais o que fazer.
para enteder o que significa --syn, ESTABLISHED RELATED NEW
vc tem q entender oq é handshake, ou aperto de mãos
Citação:
O handshake, eh o procedimento preludio, onde atraves de 3 vias, se pode efetuar o inicio de qualquer conexao na internet! Vejamos o diagrama abaixo, onde o host A irah tentar abrir uma conexao com o host B:
--------------------------------------------------------------------------------
| Host A | -------- SYN -------- > | Host B |
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
| Host A | < -----SYN+ACK -------- | Host B |
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
| Host A | -------- ACK -------- > | Host B |
--------------------------------------------------------------------------------
O host A solicita conexao atraves do envio de um pacote com o bit SYN ativado! Em seguida, o host B responde a solicitacao do Host A enviando um pacote com os bits SYN+ACK ativados! Por fim, para terminar o handshake, o Host A envia um pacote contendo o bit ACK ativado para o Host B, a partir de entao, as duas maquinas estarao conectadas e podem trocar dados entre si!
Abaixando um pouco mais o nivel, para os que desejam praticar Blind Spoof, Podemos analisar outro diagrama do handshake abaixo:
Host A Host B
texto tirado da url http://www.securityexperts.com.br/mo...howpage&pid=27
bom, com isso, eu digo que so aceite coneccao se a flag for --syn.
o ideal seria usar o -m state --state NEW, com isso ele só aceitaria a flag syn do inicio, quando coloco --syn, ele aceita qualquer tipo de pacote com flag syn, deu pra entender a diferença de new pra --syn?
o related seria no caso do syn+ack e established seria ack quando a coneccao esta estabelecida..
pouca gente sabe disso, quem sabe um dia eu escreva um howto detalhando isso :)
abraço
firewall não funciona, já não sei mais o que fazer.
com certeza, deu para entender legal.
o ESTABLISHED RELATED, eu peguei legal.
Antes eu tratava o retorno do pacote, mas com isso facilita muito a vida.
Agora o NEW, vou começar a colocar.
obs: (da maneira que eu estava fazendo poderia colocar ou não.
Por isso eu estava confuso)
Foi mais que uma aula isso!
Muito Obrigado Brenno :good: :clap: