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