Olá hamacker. Não li todo seu script, mas antes disso faça um teste.
Quando eu escrevi um script iptables pro meu roteador, tive que criar uma nova chain e inserir nessa nova chain as chains INPUT e FORWARD, como: $iptables -N FIREWALL $iptables -A INPUT -j FIREWALL $iptables -A FORWARD -j FIREWALL E todas as regras você escreve pra chain FIREWALL. Dá uma tentada nisso antes de darmos mais um passo. Atenciosamente, Allan Carvalho Em 24 de maio de 2010 11:23, hamacker <sirhamac...@gmail.com> escreveu: > Olá pessoal, será que seria possivel uma mãozinha aqui : > Estou desenvolvendo um script para firewall que bloqueia/libera > portas, dá acesso transparente a alguns ips, etc... > O script funciona perfeitamente no servidor onde coloco, porém quando > vou a uma estação e ponho tal servidor como gateway simplesmente não > funciona. > Sei que tá funcionando porque faço um ssh neste servidor e as regras > alí estão funcionando sem problemas, além disso, coloquei até um > proxy lá e com o proxy tá funcionando. > Vou colar aqui o script, só em suas regras e se alguem for ninja em > iptables e puder me dizer qual é o problema, eu seria muito grato. > > Gostaria de dizer que comentei todas as linhas para depurar e mesmo > que eu dê um : > $IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE > > para mascarar tudo, não adianta. > > Falha com DNS estão descartados. > Qualquer ajuda será bem vinda. > > # > # Inicio do Script > # > > # Declaração de variaveis > IPTABLES="/sbin/iptables" > FWDIR="$FIREWALL/config" > > # criando arquivos importantes para servirem de samples > . /home/servidor/fw-scripts/firewall.files > > # Interfaces de Rede > # Se precisar mudar a ordem das placas fisicamente, entao > # edite o arquivo : > # /etc/udev/rules.d/70-persistent-net.rules > LAN=eth1 > WAN=eth0 > REDE_INTERNA="192.168.0.0/16" > > # Os diversos módulos do iptables são chamdos através do modprobe > modprobe ip_tables > modprobe iptable_nat > modprobe ip_conntrack > modprobe ip_conntrack_ftp > modprobe ip_nat_ftp > modprobe ipt_LOG > modprobe ipt_REJECT > modprobe ipt_MASQUERADE > modprobe ipt_state > modprobe ipt_multiport > modprobe iptable_mangle > modprobe ipt_tos > modprobe ipt_limit > modprobe ipt_mark > modprobe ipt_MARK > > # Mensagem de inicialização do script > echo "########################################" > echo "# Script de Firewall - v2010.05 by Hamacker #" > echo "########################################" > > $IPTABLES -F > $IPTABLES -F INPUT > $IPTABLES -F OUTPUT > $IPTABLES -F FORWARD > $IPTABLES -t mangle -F > $IPTABLES -t nat -F > $IPTABLES -X > > $IPTABLES -P INPUT DROP > $IPTABLES -P OUTPUT ACCEPT > $IPTABLES -P FORWARD DROP > > echo "Ativando o redirecionamento entre as placas de rede (ip_forward)" > echo "1" > /proc/sys/net/ipv4/ip_forward > > echo "Ativando entrada/saida da interface de loopback" > $IPTABLES -I INPUT -i lo -j ACCEPT > $IPTABLES -I OUTPUT -o lo -j ACCEPT > > echo "Liberando portas do servidor ($WAN):" > while read LINHA ; do > PORTA=`semremarks "$LINHA"` > if [ "$PORTA" != "" ] ; then > echo -e "\tPorta : $PORTA" > $IPTABLES -A INPUT -p tcp --dport $PORTA -j ACCEPT > $IPTABLES -A FORWARD -p tcp --dport $PORTA -j ACCEPT > $IPTABLES -A OUTPUT -p tcp --sport $PORTA -j ACCEPT > fi > done <"$LISTA_PORTAS_LIBERADAS" > $IPTABLES -I INPUT -m state --state ESTABLISHED -j ACCEPT > $IPTABLES -I INPUT -m state --state RELATED -j ACCEPT > $IPTABLES -I OUTPUT -p icmp -o $WAN -j ACCEPT > $IPTABLES -I INPUT -p icmp -j ACCEPT > > echo "Redirecionando portas ($WAN) a outros servidores :" > while read LINHA ; do > i=`semremarks "$LINHA"` > if [ "$i" != "" ] ; then > REDIPROTO=`echo $i | cut -d ';' -f 1` #recebe o protocolo a ser > redirecionado > REDIPORTA=`echo $i | cut -d ';' -f 2` #recebe a porta a ser redirecionado > REDIP=`echo $i | cut -d ';' -f 3` #recebe o ip a ser redirecionado > REDISERVICO=`echo $i | cut -d ';' -f 4` #recebe o nome do serviço > REDIHOST=`echo $i | cut -d ';' -f 5` #recebe o nome do host > echo -e "\t$WAN:$REDIPORTA($REDISERVICO) ->$REDIP($REDIHOST)" > $IPTABLES -A FORWARD -p $REDIPROTO --dport $REDIPORTA -j ACCEPT > $IPTABLES -t nat -A PREROUTING -p $REDIPROTO -i $WAN --dport > $REDIPORTA -j DNAT --to $REDIP > fi > done <"$LISTA_REDIRECIONAMENTOS" > > echo "Bloqueando MacAddr da lista $LISTA_MACLIST_BLOQUEADOS :" > echo "(este bloqueio precede outras permissoes)" > while read LINHA ; do > MACSOURCE=`semremarks "$LINHA"` > if [ "$MACSOURCE" != "" ] ; then > echo -e "\tBloqueado MacAddr:$LINHA" > $IPTABLES -t filter -A FORWARD -m mac --mac-source $MACSOURCE -j DROP > $IPTABLES -t filter -A INPUT -m mac --mac-source $MACSOURCE -j DROP > #$IPTABLES -t filter -A PREROUTING -m mac --mac-source $MACSOURCE -j DROP > fi > done < "$LISTA_MACLIST_BLOQUEADOS" > > echo "Liberando IPs/Sites com acesso transparente e direito" > while read LINHA ; do > LIBERAR_SITE=`semremarks "$LINHA"` > if [ "$LIBERAR_SITE" != "" ] ; then > echo -e "\tSite transparente : $LINHA" > $IPTABLES -t nat -A POSTROUTING -s $REDE_INTERNA -d $LIBERAR_SITE > -j MASQUERADE > fi > done <"$SQUIDACL/sites_diretos.txt" > > echo "Liberando IPs transparentes fixos a partir de > $LISTA_IP_TRANSPARENTES_FIXO" > while read LINHA ; do > LIBERAR_IP=`semremarks "$LINHA"` > if [ "$LIBERAR_IP" != "" ] ; then > echo -e "\tIP transparente [fixo] : $LINHA" > $IPTABLES -t nat -A POSTROUTING -s $LIBERAR_IP -j MASQUERADE > fi > done <"$LISTA_IP_TRANSPARENTES_FIXO" > > echo "Liberando IPs transparentes temporarios a partir de > $LISTA_IP_TRANSPARENTES_TEMP" > while read LINHA ; do > LIBERAR_IP=`semremarks "$LINHA"` > if [ "$LIBERAR_IP" != "" ] ; then > echo -e "\tIP transparente [temp] : $LINHA" > $IPTABLES -t nat -A POSTROUTING -s $LIBERAR_IP -j MASQUERADE > fi > done <"$LISTA_IP_TRANSPARENTES_TEMP" > > echo "Bloqueando o acesso de nossa rede a algumas redes externas :" > while read LINHA ; do > SITE=`semremarks "$LINHA"` > if [ "$SITE" != "" ] ; then > echo -e "\tSite :$SITE" > $IPTABLES -t filter -A FORWARD -s $REDE_INTERNA -d $SITE -j DROP > $IPTABLES -t filter -A FORWARD -s $SITE -d $REDE_INTERNA -j DROP > $IPTABLES -t filter -A INPUT -s $SITE -j DROP > $IPTABLES -t filter -A OUTPUT -d $SITE -j DROP > fi > done <"$LISTA_SITES_NEGADOS" > > echo "Bloqueando algumas de portas :" > while read LINHA ; do > PORTA=`semremarks "$LINHA"` > if [ "$i" != "" ] ; then > echo -e "\tPorta :$i" > $IPTABLES -A INPUT -p tcp -i $WAN --dport $PORTA -j DROP > $IPTABLES -A INPUT -p udp -i $WAN --dport $PORTA -j DROP > $IPTABLES -A FORWARD -p tcp --dport $PORTA -j DROP > fi > done <"$LISTA_PORTAS_BLOQUEADAS" > > exit 0; > > > -- > To UNSUBSCRIBE, email to debian-user-portuguese-requ...@lists.debian.org > with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org > Archive: > http://lists.debian.org/aanlktilpfkvjf2aqkioej0z5xegpksrv_4l3yut9d...@mail.gmail.com > > -- To UNSUBSCRIBE, email to debian-user-portuguese-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/aanlktike3ctwrjmt1el5solyfw43jhhw0exqnsuze...@mail.gmail.com