opa, agora que olhei direito, realmente esqueci de liberar a forward, para a IF_EXTERNA...
mas porque será que a rede aqui trava tudo, se o INPUT estiver como DROP.
Versão Imprimível
opa, agora que olhei direito, realmente esqueci de liberar a forward, para a IF_EXTERNA...
mas porque será que a rede aqui trava tudo, se o INPUT estiver como DROP.
Citação:
Postado originalmente por cag
vc tem q ver oq a sua rede interna depende do fw, pois a chain INPUT referece aos pacotes que vem da internet com destino ao seu fw ou os pacotes que sai da sua rede interna com destino ao fw, veja oq vc roda no fw que sua rede utiliza e libere na INPUT
abraço
é que eu tenho um firewall, muito parecido e funciona tudo.
Mas agora que eu saquei, é que neste firewall o FORWARD, está accept.
Se eu colocar o forward para ACCEPT vai funcionar tudo.
olha este
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.254.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,8080 -j TOS --set-tos 0x10 $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 $IPT -t nat -A PREROUTING -i $IF_INTERNA -p tcp --dport 80 -j REDIRECT --to-port 3128 $IPT -t filter -A INPUT -i $IF_EXTERNA -p tcp -m multiport --dports 22-j ACCEPT $IPT -t nat -A PREROUTING -i $IF_EXTERNA -p tcp --dport 8080 -j REDIRECT --to-port 80 #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